0.8.0
Release highlights:
- Initial support for devices using the Tapo camera protocol, i.e. Tapo cameras and the Tapo H200 hub.
- New camera functionality such as exposing RTSP streaming urls and camera pan/tilt.
- New way of testing module support for individual features with
has_feature
andget_feature
. - Adding voltage and current monitoring to
smart
devices. - Migration from pydantic to mashumaro for serialization.
Special thanks to @ryenitcher and @Puxtril for their new contributions to the improvement of the project! Also thanks to everyone who has helped with testing, contributing fixtures, and reporting issues!
Breaking change notes:
- Removed support for python <3.11. If you haven't got a compatible version try uv.
- Renamed
device_config.to_dict()
todevice_config.to_dict_control_credentials()
.to_dict()
is still available but takes no parameters. - From the
iot.Cloud
module theiot.CloudInfo
class attributes have been converted to snake case.
Breaking changes:
- Migrate iot cloud module to mashumaro #1282 (@sdb9696)
- Replace custom deviceconfig serialization with mashumaru #1274 (@sdb9696)
- Remove support for python <3.11 #1273 (@sdb9696)
Implemented enhancements:
- Update cli modify presets to support smart devices #1295 (@sdb9696)
- Use credentials_hash for smartcamera rtsp url #1293 (@sdb9696)
- Add voltage and current monitoring to smart Devices #1281 (@ryenitcher)
- Update cli feature command for actions not to require a value #1264 (@sdb9696)
- Add pan tilt camera module #1261 (@sdb9696)
- Add alarm module for smartcamera hubs #1258 (@sdb9696)
- Move TAPO smartcamera out of experimental package #1255 (@sdb9696)
- Add SmartCamera Led Module #1249 (@sdb9696)
- Use component queries to select smartcamera modules #1248 (@sdb9696)
- Print formatting for IotLightPreset #1216 (@Puxtril)
- Allow getting Annotated features from modules #1018 (@sdb9696)
- Add common Thermostat module #977 (@sdb9696)
Fixed bugs:
- TP-Link Tapo S505D cannot disable gradual on/off #1309
- Inconsistent emeter information between features and emeter cli #1308
- How to dump power usage after latest updates? #1306
- kasa.discover: Got unsupported connection type: 'device_family': 'SMART.IPCAMERA' #1267
- device __repr__ fails if no sys_info #1262
- Tapo P110M: Error processing Energy for device, module will be unavailable: get_energy_usage for Energy #1243
- Listing light presets throws error #1201
- Include duration when disabling smooth transition on/off #1313 (@rytilahti)
- Expose energy command to cli #1307 (@rytilahti)
- Make discovery on unsupported devices less noisy #1291 (@rytilahti)
- Fix repr for device created with no sysinfo or discovery info" #1266 (@sdb9696)
- Fix discovery by alias for smart devices #1260 (@sdb9696)
- Make __repr__ work on discovery info #1233 (@rytilahti)
Added support for devices:
- Add HS200 (US) Smart Fixture #1303 (@ZeliardM)
- Add smartcamera devices to supported docs #1257 (@sdb9696)
- Add P110M(AU) fixture #1244 (@rytilahti)
- Add L630 fixture #1240 (@rytilahti)
- Add EP40M Fixture #1238 (@ryenitcher)
- Add KS220 Fixture #1237 (@ryenitcher)
Documentation updates:
- Use markdown footnotes in supported.md #1310 (@sdb9696)
- Update docs for the new module attributes has/get feature #1301 (@sdb9696)
- Fixup contributing.md for running test against a real device #1236 (@sdb9696)
Project maintenance:
- Rename tests/smartcamera to tests/smartcam #1315 (@sdb9696)
- Do not error on smartcam hub attached smartcam child devices #1314 (@sdb9696)
- Add P110M(EU) fixture #1305 (@sdb9696)
- Run tests with caplog in a single worker #1304 (@sdb9696)
- Rename smartcamera to smartcam #1300 (@sdb9696)
- Move iot fixtures into iot subfolder #1299 (@sdb9696)
- Annotate fan_speed_level of Fan interface #1298 (@sdb9696)
- Add PIR ADC Values to Test Fixtures #1296 (@ryenitcher)
- Exclude __getattr__ for deprecated attributes from type checkers #1294 (@sdb9696)
- Simplify omit http_client in DeviceConfig serialization #1292 (@sdb9696)
- Add SMART Voltage Monitoring to Fixtures #1290 (@ryenitcher)
- Remove pydantic dependency #1289 (@sdb9696)
- Do not print out all the fixture names at the start of test runs #1287 (@sdb9696)
- dump_devinfo: iot light strip commands #1286 (@sdb9696)
- Migrate TurnOnBehaviours to mashumaro #1285 (@sdb9696)
- dump_devinfo: query smartlife.iot.common.cloud for fw updates #1284 (@rytilahti)
- Migrate RuleModule to mashumaro #1283 (@sdb9696)
- Update sphinx dependency to 6.2 to fix docs build #1280 (@sdb9696)
- Update DiscoveryResult to use mashu Annotated Alias #1279 (@sdb9696)
- Extend dump_devinfo iot queries #1278 (@sdb9696)
- Migrate triggerlogs to mashumaru #1277 (@sdb9696)
- Migrate smart firmware module to mashumaro #1276 (@sdb9696)
- Migrate IotLightPreset to mashumaru #1275 (@sdb9696)
- Allow callable coroutines for feature setters #1272 (@sdb9696)
- Fix deprecated SSLContext() usage #1271 (@sdb9696)
- Use _get_device_info methods for smart and iot devs in devtools #1265 (@sdb9696)
- Remove experimental support #1256 (@sdb9696)
- Move protocol modules into protocols package #1254 (@sdb9696)
- Add linkcheck to readthedocs CI #1253 (@rytilahti)
- Update cli energy command to use energy module #1252 (@sdb9696)
- Consolidate warnings for fixtures missing child devices #1251 (@sdb9696)
- Update smartcamera fixtures with components #1250 (@sdb9696)
- Move transports into their own package #1247 (@rytilahti)
- Fix warnings in our test suite #1246 (@rytilahti)
- Move tests folder to top level of project #1242 (@sdb9696)
- Fix test framework running against real devices #1235 (@sdb9696)
- Add Additional Firmware Test Fixures #1234 (@ryenitcher)
- Update DiscoveryResult to use Mashumaro instead of pydantic #1231 (@sdb9696)
- Update fixture for ES20M 1.0.11 #1215 (@rytilahti)
- Enable ruff check for ANN #1139 (@rytilahti)
Closed issues: