Conversation
…_multiple_request
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1246 +/- ##
==========================================
- Coverage 92.56% 92.46% -0.10%
==========================================
Files 103 103
Lines 6681 6678 -3
Branches 706 705 -1
==========================================
- Hits 6184 6175 -9
- Misses 375 382 +7
+ Partials 122 121 -1 ☔ View full report in Codecov by Sentry. |
| with pytest.deprecated_call(match="use: Module.Led in device.modules instead"): | ||
| original = dev.led |
There was a problem hiding this comment.
This should all be done via the led module
Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
|
I pushed a couple of commits that should have brought the number of deprecated warnings generated by tests down to zero so this is probably good to go now. There are still a few warnings being generated by the cli and the odd |
sdb9696
left a comment
There was a problem hiding this comment.
LGTM, feel free to check over the commits I added before merging
rytilahti
left a comment
There was a problem hiding this comment.
Looks great, thanks! Just a minor comment wrt using dir(), feel free to take a look and merge as you wish.
## [0.8.0](https://github.com/python-kasa/python-kasa/tree/0.8.0) (2024-11-26) [Full Changelog](0.7.7...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` and `get_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](https://docs.astral.sh/uv/). - Renamed `device_config.to_dict()` to `device_config.to_dict_control_credentials()`. `to_dict()` is still available but takes no parameters. - From the `iot.Cloud` module the `iot.CloudInfo` class attributes have been converted to snake case. **Breaking changes:** - Migrate iot cloud module to mashumaro [\#1282](#1282) (@sdb9696) - Replace custom deviceconfig serialization with mashumaru [\#1274](#1274) (@sdb9696) - Remove support for python \<3.11 [\#1273](#1273) (@sdb9696) **Implemented enhancements:** - Update cli modify presets to support smart devices [\#1295](#1295) (@sdb9696) - Use credentials\_hash for smartcamera rtsp url [\#1293](#1293) (@sdb9696) - Add voltage and current monitoring to smart Devices [\#1281](#1281) (@ryenitcher) - Update cli feature command for actions not to require a value [\#1264](#1264) (@sdb9696) - Add pan tilt camera module [\#1261](#1261) (@sdb9696) - Add alarm module for smartcamera hubs [\#1258](#1258) (@sdb9696) - Move TAPO smartcamera out of experimental package [\#1255](#1255) (@sdb9696) - Add SmartCamera Led Module [\#1249](#1249) (@sdb9696) - Use component queries to select smartcamera modules [\#1248](#1248) (@sdb9696) - Print formatting for IotLightPreset [\#1216](#1216) (@Puxtril) - Allow getting Annotated features from modules [\#1018](#1018) (@sdb9696) - Add common Thermostat module [\#977](#977) (@sdb9696) **Fixed bugs:** - TP-Link Tapo S505D cannot disable gradual on/off [\#1309](#1309) - Inconsistent emeter information between features and emeter cli [\#1308](#1308) - How to dump power usage after latest updates? [\#1306](#1306) - kasa.discover: Got unsupported connection type: 'device\_family': 'SMART.IPCAMERA' [\#1267](#1267) - device \_\_repr\_\_ fails if no sys\_info [\#1262](#1262) - Tapo P110M: Error processing Energy for device, module will be unavailable: get\_energy\_usage for Energy [\#1243](#1243) - Listing light presets throws error [\#1201](#1201) - Include duration when disabling smooth transition on/off [\#1313](#1313) (@rytilahti) - Expose energy command to cli [\#1307](#1307) (@rytilahti) - Make discovery on unsupported devices less noisy [\#1291](#1291) (@rytilahti) - Fix repr for device created with no sysinfo or discovery info" [\#1266](#1266) (@sdb9696) - Fix discovery by alias for smart devices [\#1260](#1260) (@sdb9696) - Make \_\_repr\_\_ work on discovery info [\#1233](#1233) (@rytilahti) **Added support for devices:** - Add HS200 \(US\) Smart Fixture [\#1303](#1303) (@ZeliardM) - Add smartcamera devices to supported docs [\#1257](#1257) (@sdb9696) - Add P110M\(AU\) fixture [\#1244](#1244) (@rytilahti) - Add L630 fixture [\#1240](#1240) (@rytilahti) - Add EP40M Fixture [\#1238](#1238) (@ryenitcher) - Add KS220 Fixture [\#1237](#1237) (@ryenitcher) **Documentation updates:** - Use markdown footnotes in supported.md [\#1310](#1310) (@sdb9696) - Update docs for the new module attributes has/get feature [\#1301](#1301) (@sdb9696) - Fixup contributing.md for running test against a real device [\#1236](#1236) (@sdb9696) **Project maintenance:** - Rename tests/smartcamera to tests/smartcam [\#1315](#1315) (@sdb9696) - Do not error on smartcam hub attached smartcam child devices [\#1314](#1314) (@sdb9696) - Add P110M\(EU\) fixture [\#1305](#1305) (@sdb9696) - Run tests with caplog in a single worker [\#1304](#1304) (@sdb9696) - Rename smartcamera to smartcam [\#1300](#1300) (@sdb9696) - Move iot fixtures into iot subfolder [\#1299](#1299) (@sdb9696) - Annotate fan\_speed\_level of Fan interface [\#1298](#1298) (@sdb9696) - Add PIR ADC Values to Test Fixtures [\#1296](#1296) (@ryenitcher) - Exclude \_\_getattr\_\_ for deprecated attributes from type checkers [\#1294](#1294) (@sdb9696) - Simplify omit http\_client in DeviceConfig serialization [\#1292](#1292) (@sdb9696) - Add SMART Voltage Monitoring to Fixtures [\#1290](#1290) (@ryenitcher) - Remove pydantic dependency [\#1289](#1289) (@sdb9696) - Do not print out all the fixture names at the start of test runs [\#1287](#1287) (@sdb9696) - dump\_devinfo: iot light strip commands [\#1286](#1286) (@sdb9696) - Migrate TurnOnBehaviours to mashumaro [\#1285](#1285) (@sdb9696) - dump\_devinfo: query smartlife.iot.common.cloud for fw updates [\#1284](#1284) (@rytilahti) - Migrate RuleModule to mashumaro [\#1283](#1283) (@sdb9696) - Update sphinx dependency to 6.2 to fix docs build [\#1280](#1280) (@sdb9696) - Update DiscoveryResult to use mashu Annotated Alias [\#1279](#1279) (@sdb9696) - Extend dump\_devinfo iot queries [\#1278](#1278) (@sdb9696) - Migrate triggerlogs to mashumaru [\#1277](#1277) (@sdb9696) - Migrate smart firmware module to mashumaro [\#1276](#1276) (@sdb9696) - Migrate IotLightPreset to mashumaru [\#1275](#1275) (@sdb9696) - Allow callable coroutines for feature setters [\#1272](#1272) (@sdb9696) - Fix deprecated SSLContext\(\) usage [\#1271](#1271) (@sdb9696) - Use \_get\_device\_info methods for smart and iot devs in devtools [\#1265](#1265) (@sdb9696) - Remove experimental support [\#1256](#1256) (@sdb9696) - Move protocol modules into protocols package [\#1254](#1254) (@sdb9696) - Add linkcheck to readthedocs CI [\#1253](#1253) (@rytilahti) - Update cli energy command to use energy module [\#1252](#1252) (@sdb9696) - Consolidate warnings for fixtures missing child devices [\#1251](#1251) (@sdb9696) - Update smartcamera fixtures with components [\#1250](#1250) (@sdb9696) - Move transports into their own package [\#1247](#1247) (@rytilahti) - Fix warnings in our test suite [\#1246](#1246) (@rytilahti) - Move tests folder to top level of project [\#1242](#1242) (@sdb9696) - Fix test framework running against real devices [\#1235](#1235) (@sdb9696) - Add Additional Firmware Test Fixures [\#1234](#1234) (@ryenitcher) - Update DiscoveryResult to use Mashumaro instead of pydantic [\#1231](#1231) (@sdb9696) - Update fixture for ES20M 1.0.11 [\#1215](#1215) (@rytilahti) - Enable ruff check for ANN [\#1139](#1139) (@rytilahti) **Closed issues:** - Expose Fan speed range from the library [\#1008](#1008) - \[META\] 0.7 series - module support for SMART devices, support for introspectable device features and refactoring the library [\#783](#783)
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
## [0.8.0](https://github.com/python-kasa/python-kasa/tree/0.8.0) (2024-11-26) [Full Changelog](0.7.7...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` and `get_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](https://docs.astral.sh/uv/). - Renamed `device_config.to_dict()` to `device_config.to_dict_control_credentials()`. `to_dict()` is still available but takes no parameters. - From the `iot.Cloud` module the `iot.CloudInfo` class attributes have been converted to snake case. **Breaking changes:** - Migrate iot cloud module to mashumaro [\#1282](#1282) (@sdb9696) - Replace custom deviceconfig serialization with mashumaru [\#1274](#1274) (@sdb9696) - Remove support for python \<3.11 [\#1273](#1273) (@sdb9696) **Implemented enhancements:** - Update cli modify presets to support smart devices [\#1295](#1295) (@sdb9696) - Use credentials\_hash for smartcamera rtsp url [\#1293](#1293) (@sdb9696) - Add voltage and current monitoring to smart Devices [\#1281](#1281) (@ryenitcher) - Update cli feature command for actions not to require a value [\#1264](#1264) (@sdb9696) - Add pan tilt camera module [\#1261](#1261) (@sdb9696) - Add alarm module for smartcamera hubs [\#1258](#1258) (@sdb9696) - Move TAPO smartcamera out of experimental package [\#1255](#1255) (@sdb9696) - Add SmartCamera Led Module [\#1249](#1249) (@sdb9696) - Use component queries to select smartcamera modules [\#1248](#1248) (@sdb9696) - Print formatting for IotLightPreset [\#1216](#1216) (@Puxtril) - Allow getting Annotated features from modules [\#1018](#1018) (@sdb9696) - Add common Thermostat module [\#977](#977) (@sdb9696) **Fixed bugs:** - TP-Link Tapo S505D cannot disable gradual on/off [\#1309](#1309) - Inconsistent emeter information between features and emeter cli [\#1308](#1308) - How to dump power usage after latest updates? [\#1306](#1306) - kasa.discover: Got unsupported connection type: 'device\_family': 'SMART.IPCAMERA' [\#1267](#1267) - device \_\_repr\_\_ fails if no sys\_info [\#1262](#1262) - Tapo P110M: Error processing Energy for device, module will be unavailable: get\_energy\_usage for Energy [\#1243](#1243) - Listing light presets throws error [\#1201](#1201) - Include duration when disabling smooth transition on/off [\#1313](#1313) (@rytilahti) - Expose energy command to cli [\#1307](#1307) (@rytilahti) - Make discovery on unsupported devices less noisy [\#1291](#1291) (@rytilahti) - Fix repr for device created with no sysinfo or discovery info" [\#1266](#1266) (@sdb9696) - Fix discovery by alias for smart devices [\#1260](#1260) (@sdb9696) - Make \_\_repr\_\_ work on discovery info [\#1233](#1233) (@rytilahti) **Added support for devices:** - Add HS200 \(US\) Smart Fixture [\#1303](#1303) (@ZeliardM) - Add smartcamera devices to supported docs [\#1257](#1257) (@sdb9696) - Add P110M\(AU\) fixture [\#1244](#1244) (@rytilahti) - Add L630 fixture [\#1240](#1240) (@rytilahti) - Add EP40M Fixture [\#1238](#1238) (@ryenitcher) - Add KS220 Fixture [\#1237](#1237) (@ryenitcher) **Documentation updates:** - Use markdown footnotes in supported.md [\#1310](#1310) (@sdb9696) - Update docs for the new module attributes has/get feature [\#1301](#1301) (@sdb9696) - Fixup contributing.md for running test against a real device [\#1236](#1236) (@sdb9696) **Project maintenance:** - Rename tests/smartcamera to tests/smartcam [\#1315](#1315) (@sdb9696) - Do not error on smartcam hub attached smartcam child devices [\#1314](#1314) (@sdb9696) - Add P110M\(EU\) fixture [\#1305](#1305) (@sdb9696) - Run tests with caplog in a single worker [\#1304](#1304) (@sdb9696) - Rename smartcamera to smartcam [\#1300](#1300) (@sdb9696) - Move iot fixtures into iot subfolder [\#1299](#1299) (@sdb9696) - Annotate fan\_speed\_level of Fan interface [\#1298](#1298) (@sdb9696) - Add PIR ADC Values to Test Fixtures [\#1296](#1296) (@ryenitcher) - Exclude \_\_getattr\_\_ for deprecated attributes from type checkers [\#1294](#1294) (@sdb9696) - Simplify omit http\_client in DeviceConfig serialization [\#1292](#1292) (@sdb9696) - Add SMART Voltage Monitoring to Fixtures [\#1290](#1290) (@ryenitcher) - Remove pydantic dependency [\#1289](#1289) (@sdb9696) - Do not print out all the fixture names at the start of test runs [\#1287](#1287) (@sdb9696) - dump\_devinfo: iot light strip commands [\#1286](#1286) (@sdb9696) - Migrate TurnOnBehaviours to mashumaro [\#1285](#1285) (@sdb9696) - dump\_devinfo: query smartlife.iot.common.cloud for fw updates [\#1284](#1284) (@rytilahti) - Migrate RuleModule to mashumaro [\#1283](#1283) (@sdb9696) - Update sphinx dependency to 6.2 to fix docs build [\#1280](#1280) (@sdb9696) - Update DiscoveryResult to use mashu Annotated Alias [\#1279](#1279) (@sdb9696) - Extend dump\_devinfo iot queries [\#1278](#1278) (@sdb9696) - Migrate triggerlogs to mashumaru [\#1277](#1277) (@sdb9696) - Migrate smart firmware module to mashumaro [\#1276](#1276) (@sdb9696) - Migrate IotLightPreset to mashumaru [\#1275](#1275) (@sdb9696) - Allow callable coroutines for feature setters [\#1272](#1272) (@sdb9696) - Fix deprecated SSLContext\(\) usage [\#1271](#1271) (@sdb9696) - Use \_get\_device\_info methods for smart and iot devs in devtools [\#1265](#1265) (@sdb9696) - Remove experimental support [\#1256](#1256) (@sdb9696) - Move protocol modules into protocols package [\#1254](#1254) (@sdb9696) - Add linkcheck to readthedocs CI [\#1253](#1253) (@rytilahti) - Update cli energy command to use energy module [\#1252](#1252) (@sdb9696) - Consolidate warnings for fixtures missing child devices [\#1251](#1251) (@sdb9696) - Update smartcamera fixtures with components [\#1250](#1250) (@sdb9696) - Move transports into their own package [\#1247](#1247) (@rytilahti) - Fix warnings in our test suite [\#1246](#1246) (@rytilahti) - Move tests folder to top level of project [\#1242](#1242) (@sdb9696) - Fix test framework running against real devices [\#1235](#1235) (@sdb9696) - Add Additional Firmware Test Fixures [\#1234](#1234) (@ryenitcher) - Update DiscoveryResult to use Mashumaro instead of pydantic [\#1231](#1231) (@sdb9696) - Update fixture for ES20M 1.0.11 [\#1215](#1215) (@rytilahti) - Enable ruff check for ANN [\#1139](#1139) (@rytilahti) **Closed issues:** - Expose Fan speed range from the library [\#1008](#1008) - \[META\] 0.7 series - module support for SMART devices, support for introspectable device features and refactoring the library [\#783](#783)
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
## [0.8.0](https://github.com/python-kasa/python-kasa/tree/0.8.0) (2024-11-26) [Full Changelog](python-kasa/python-kasa@0.7.7...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` and `get_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](https://docs.astral.sh/uv/). - Renamed `device_config.to_dict()` to `device_config.to_dict_control_credentials()`. `to_dict()` is still available but takes no parameters. - From the `iot.Cloud` module the `iot.CloudInfo` class attributes have been converted to snake case. **Breaking changes:** - Migrate iot cloud module to mashumaro [\python-kasa#1282](python-kasa#1282) (@sdb9696) - Replace custom deviceconfig serialization with mashumaru [\python-kasa#1274](python-kasa#1274) (@sdb9696) - Remove support for python \<3.11 [\python-kasa#1273](python-kasa#1273) (@sdb9696) **Implemented enhancements:** - Update cli modify presets to support smart devices [\python-kasa#1295](python-kasa#1295) (@sdb9696) - Use credentials\_hash for smartcamera rtsp url [\python-kasa#1293](python-kasa#1293) (@sdb9696) - Add voltage and current monitoring to smart Devices [\python-kasa#1281](python-kasa#1281) (@ryenitcher) - Update cli feature command for actions not to require a value [\python-kasa#1264](python-kasa#1264) (@sdb9696) - Add pan tilt camera module [\python-kasa#1261](python-kasa#1261) (@sdb9696) - Add alarm module for smartcamera hubs [\python-kasa#1258](python-kasa#1258) (@sdb9696) - Move TAPO smartcamera out of experimental package [\python-kasa#1255](python-kasa#1255) (@sdb9696) - Add SmartCamera Led Module [\python-kasa#1249](python-kasa#1249) (@sdb9696) - Use component queries to select smartcamera modules [\python-kasa#1248](python-kasa#1248) (@sdb9696) - Print formatting for IotLightPreset [\python-kasa#1216](python-kasa#1216) (@Puxtril) - Allow getting Annotated features from modules [\python-kasa#1018](python-kasa#1018) (@sdb9696) - Add common Thermostat module [\python-kasa#977](python-kasa#977) (@sdb9696) **Fixed bugs:** - TP-Link Tapo S505D cannot disable gradual on/off [\python-kasa#1309](python-kasa#1309) - Inconsistent emeter information between features and emeter cli [\python-kasa#1308](python-kasa#1308) - How to dump power usage after latest updates? [\python-kasa#1306](python-kasa#1306) - kasa.discover: Got unsupported connection type: 'device\_family': 'SMART.IPCAMERA' [\python-kasa#1267](python-kasa#1267) - device \_\_repr\_\_ fails if no sys\_info [\python-kasa#1262](python-kasa#1262) - Tapo P110M: Error processing Energy for device, module will be unavailable: get\_energy\_usage for Energy [\python-kasa#1243](python-kasa#1243) - Listing light presets throws error [\python-kasa#1201](python-kasa#1201) - Include duration when disabling smooth transition on/off [\python-kasa#1313](python-kasa#1313) (@rytilahti) - Expose energy command to cli [\python-kasa#1307](python-kasa#1307) (@rytilahti) - Make discovery on unsupported devices less noisy [\python-kasa#1291](python-kasa#1291) (@rytilahti) - Fix repr for device created with no sysinfo or discovery info" [\python-kasa#1266](python-kasa#1266) (@sdb9696) - Fix discovery by alias for smart devices [\python-kasa#1260](python-kasa#1260) (@sdb9696) - Make \_\_repr\_\_ work on discovery info [\python-kasa#1233](python-kasa#1233) (@rytilahti) **Added support for devices:** - Add HS200 \(US\) Smart Fixture [\python-kasa#1303](python-kasa#1303) (@ZeliardM) - Add smartcamera devices to supported docs [\python-kasa#1257](python-kasa#1257) (@sdb9696) - Add P110M\(AU\) fixture [\python-kasa#1244](python-kasa#1244) (@rytilahti) - Add L630 fixture [\python-kasa#1240](python-kasa#1240) (@rytilahti) - Add EP40M Fixture [\python-kasa#1238](python-kasa#1238) (@ryenitcher) - Add KS220 Fixture [\python-kasa#1237](python-kasa#1237) (@ryenitcher) **Documentation updates:** - Use markdown footnotes in supported.md [\python-kasa#1310](python-kasa#1310) (@sdb9696) - Update docs for the new module attributes has/get feature [\python-kasa#1301](python-kasa#1301) (@sdb9696) - Fixup contributing.md for running test against a real device [\python-kasa#1236](python-kasa#1236) (@sdb9696) **Project maintenance:** - Rename tests/smartcamera to tests/smartcam [\python-kasa#1315](python-kasa#1315) (@sdb9696) - Do not error on smartcam hub attached smartcam child devices [\python-kasa#1314](python-kasa#1314) (@sdb9696) - Add P110M\(EU\) fixture [\python-kasa#1305](python-kasa#1305) (@sdb9696) - Run tests with caplog in a single worker [\python-kasa#1304](python-kasa#1304) (@sdb9696) - Rename smartcamera to smartcam [\python-kasa#1300](python-kasa#1300) (@sdb9696) - Move iot fixtures into iot subfolder [\python-kasa#1299](python-kasa#1299) (@sdb9696) - Annotate fan\_speed\_level of Fan interface [\python-kasa#1298](python-kasa#1298) (@sdb9696) - Add PIR ADC Values to Test Fixtures [\python-kasa#1296](python-kasa#1296) (@ryenitcher) - Exclude \_\_getattr\_\_ for deprecated attributes from type checkers [\python-kasa#1294](python-kasa#1294) (@sdb9696) - Simplify omit http\_client in DeviceConfig serialization [\python-kasa#1292](python-kasa#1292) (@sdb9696) - Add SMART Voltage Monitoring to Fixtures [\python-kasa#1290](python-kasa#1290) (@ryenitcher) - Remove pydantic dependency [\python-kasa#1289](python-kasa#1289) (@sdb9696) - Do not print out all the fixture names at the start of test runs [\python-kasa#1287](python-kasa#1287) (@sdb9696) - dump\_devinfo: iot light strip commands [\python-kasa#1286](python-kasa#1286) (@sdb9696) - Migrate TurnOnBehaviours to mashumaro [\python-kasa#1285](python-kasa#1285) (@sdb9696) - dump\_devinfo: query smartlife.iot.common.cloud for fw updates [\python-kasa#1284](python-kasa#1284) (@rytilahti) - Migrate RuleModule to mashumaro [\python-kasa#1283](python-kasa#1283) (@sdb9696) - Update sphinx dependency to 6.2 to fix docs build [\python-kasa#1280](python-kasa#1280) (@sdb9696) - Update DiscoveryResult to use mashu Annotated Alias [\python-kasa#1279](python-kasa#1279) (@sdb9696) - Extend dump\_devinfo iot queries [\python-kasa#1278](python-kasa#1278) (@sdb9696) - Migrate triggerlogs to mashumaru [\python-kasa#1277](python-kasa#1277) (@sdb9696) - Migrate smart firmware module to mashumaro [\python-kasa#1276](python-kasa#1276) (@sdb9696) - Migrate IotLightPreset to mashumaru [\python-kasa#1275](python-kasa#1275) (@sdb9696) - Allow callable coroutines for feature setters [\python-kasa#1272](python-kasa#1272) (@sdb9696) - Fix deprecated SSLContext\(\) usage [\python-kasa#1271](python-kasa#1271) (@sdb9696) - Use \_get\_device\_info methods for smart and iot devs in devtools [\python-kasa#1265](python-kasa#1265) (@sdb9696) - Remove experimental support [\python-kasa#1256](python-kasa#1256) (@sdb9696) - Move protocol modules into protocols package [\python-kasa#1254](python-kasa#1254) (@sdb9696) - Add linkcheck to readthedocs CI [\python-kasa#1253](python-kasa#1253) (@rytilahti) - Update cli energy command to use energy module [\python-kasa#1252](python-kasa#1252) (@sdb9696) - Consolidate warnings for fixtures missing child devices [\python-kasa#1251](python-kasa#1251) (@sdb9696) - Update smartcamera fixtures with components [\python-kasa#1250](python-kasa#1250) (@sdb9696) - Move transports into their own package [\python-kasa#1247](python-kasa#1247) (@rytilahti) - Fix warnings in our test suite [\python-kasa#1246](python-kasa#1246) (@rytilahti) - Move tests folder to top level of project [\python-kasa#1242](python-kasa#1242) (@sdb9696) - Fix test framework running against real devices [\python-kasa#1235](python-kasa#1235) (@sdb9696) - Add Additional Firmware Test Fixures [\python-kasa#1234](python-kasa#1234) (@ryenitcher) - Update DiscoveryResult to use Mashumaro instead of pydantic [\python-kasa#1231](python-kasa#1231) (@sdb9696) - Update fixture for ES20M 1.0.11 [\python-kasa#1215](python-kasa#1215) (@rytilahti) - Enable ruff check for ANN [\python-kasa#1139](python-kasa#1139) (@rytilahti) **Closed issues:** - Expose Fan speed range from the library [\python-kasa#1008](python-kasa#1008) - \[META\] 0.7 series - module support for SMART devices, support for introspectable device features and refactoring the library [\python-kasa#783](python-kasa#783)
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
## [0.8.0](https://github.com/python-kasa/python-kasa/tree/0.8.0) (2024-11-26) [Full Changelog](python-kasa/python-kasa@0.7.7...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` and `get_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](https://docs.astral.sh/uv/). - Renamed `device_config.to_dict()` to `device_config.to_dict_control_credentials()`. `to_dict()` is still available but takes no parameters. - From the `iot.Cloud` module the `iot.CloudInfo` class attributes have been converted to snake case. **Breaking changes:** - Migrate iot cloud module to mashumaro [\python-kasa#1282](python-kasa#1282) (@sdb9696) - Replace custom deviceconfig serialization with mashumaru [\python-kasa#1274](python-kasa#1274) (@sdb9696) - Remove support for python \<3.11 [\python-kasa#1273](python-kasa#1273) (@sdb9696) **Implemented enhancements:** - Update cli modify presets to support smart devices [\python-kasa#1295](python-kasa#1295) (@sdb9696) - Use credentials\_hash for smartcamera rtsp url [\python-kasa#1293](python-kasa#1293) (@sdb9696) - Add voltage and current monitoring to smart Devices [\python-kasa#1281](python-kasa#1281) (@ryenitcher) - Update cli feature command for actions not to require a value [\python-kasa#1264](python-kasa#1264) (@sdb9696) - Add pan tilt camera module [\python-kasa#1261](python-kasa#1261) (@sdb9696) - Add alarm module for smartcamera hubs [\python-kasa#1258](python-kasa#1258) (@sdb9696) - Move TAPO smartcamera out of experimental package [\python-kasa#1255](python-kasa#1255) (@sdb9696) - Add SmartCamera Led Module [\python-kasa#1249](python-kasa#1249) (@sdb9696) - Use component queries to select smartcamera modules [\python-kasa#1248](python-kasa#1248) (@sdb9696) - Print formatting for IotLightPreset [\python-kasa#1216](python-kasa#1216) (@Puxtril) - Allow getting Annotated features from modules [\python-kasa#1018](python-kasa#1018) (@sdb9696) - Add common Thermostat module [\python-kasa#977](python-kasa#977) (@sdb9696) **Fixed bugs:** - TP-Link Tapo S505D cannot disable gradual on/off [\python-kasa#1309](python-kasa#1309) - Inconsistent emeter information between features and emeter cli [\python-kasa#1308](python-kasa#1308) - How to dump power usage after latest updates? [\python-kasa#1306](python-kasa#1306) - kasa.discover: Got unsupported connection type: 'device\_family': 'SMART.IPCAMERA' [\python-kasa#1267](python-kasa#1267) - device \_\_repr\_\_ fails if no sys\_info [\python-kasa#1262](python-kasa#1262) - Tapo P110M: Error processing Energy for device, module will be unavailable: get\_energy\_usage for Energy [\python-kasa#1243](python-kasa#1243) - Listing light presets throws error [\python-kasa#1201](python-kasa#1201) - Include duration when disabling smooth transition on/off [\python-kasa#1313](python-kasa#1313) (@rytilahti) - Expose energy command to cli [\python-kasa#1307](python-kasa#1307) (@rytilahti) - Make discovery on unsupported devices less noisy [\python-kasa#1291](python-kasa#1291) (@rytilahti) - Fix repr for device created with no sysinfo or discovery info" [\python-kasa#1266](python-kasa#1266) (@sdb9696) - Fix discovery by alias for smart devices [\python-kasa#1260](python-kasa#1260) (@sdb9696) - Make \_\_repr\_\_ work on discovery info [\python-kasa#1233](python-kasa#1233) (@rytilahti) **Added support for devices:** - Add HS200 \(US\) Smart Fixture [\python-kasa#1303](python-kasa#1303) (@ZeliardM) - Add smartcamera devices to supported docs [\python-kasa#1257](python-kasa#1257) (@sdb9696) - Add P110M\(AU\) fixture [\python-kasa#1244](python-kasa#1244) (@rytilahti) - Add L630 fixture [\python-kasa#1240](python-kasa#1240) (@rytilahti) - Add EP40M Fixture [\python-kasa#1238](python-kasa#1238) (@ryenitcher) - Add KS220 Fixture [\python-kasa#1237](python-kasa#1237) (@ryenitcher) **Documentation updates:** - Use markdown footnotes in supported.md [\python-kasa#1310](python-kasa#1310) (@sdb9696) - Update docs for the new module attributes has/get feature [\python-kasa#1301](python-kasa#1301) (@sdb9696) - Fixup contributing.md for running test against a real device [\python-kasa#1236](python-kasa#1236) (@sdb9696) **Project maintenance:** - Rename tests/smartcamera to tests/smartcam [\python-kasa#1315](python-kasa#1315) (@sdb9696) - Do not error on smartcam hub attached smartcam child devices [\python-kasa#1314](python-kasa#1314) (@sdb9696) - Add P110M\(EU\) fixture [\python-kasa#1305](python-kasa#1305) (@sdb9696) - Run tests with caplog in a single worker [\python-kasa#1304](python-kasa#1304) (@sdb9696) - Rename smartcamera to smartcam [\python-kasa#1300](python-kasa#1300) (@sdb9696) - Move iot fixtures into iot subfolder [\python-kasa#1299](python-kasa#1299) (@sdb9696) - Annotate fan\_speed\_level of Fan interface [\python-kasa#1298](python-kasa#1298) (@sdb9696) - Add PIR ADC Values to Test Fixtures [\python-kasa#1296](python-kasa#1296) (@ryenitcher) - Exclude \_\_getattr\_\_ for deprecated attributes from type checkers [\python-kasa#1294](python-kasa#1294) (@sdb9696) - Simplify omit http\_client in DeviceConfig serialization [\python-kasa#1292](python-kasa#1292) (@sdb9696) - Add SMART Voltage Monitoring to Fixtures [\python-kasa#1290](python-kasa#1290) (@ryenitcher) - Remove pydantic dependency [\python-kasa#1289](python-kasa#1289) (@sdb9696) - Do not print out all the fixture names at the start of test runs [\python-kasa#1287](python-kasa#1287) (@sdb9696) - dump\_devinfo: iot light strip commands [\python-kasa#1286](python-kasa#1286) (@sdb9696) - Migrate TurnOnBehaviours to mashumaro [\python-kasa#1285](python-kasa#1285) (@sdb9696) - dump\_devinfo: query smartlife.iot.common.cloud for fw updates [\python-kasa#1284](python-kasa#1284) (@rytilahti) - Migrate RuleModule to mashumaro [\python-kasa#1283](python-kasa#1283) (@sdb9696) - Update sphinx dependency to 6.2 to fix docs build [\python-kasa#1280](python-kasa#1280) (@sdb9696) - Update DiscoveryResult to use mashu Annotated Alias [\python-kasa#1279](python-kasa#1279) (@sdb9696) - Extend dump\_devinfo iot queries [\python-kasa#1278](python-kasa#1278) (@sdb9696) - Migrate triggerlogs to mashumaru [\python-kasa#1277](python-kasa#1277) (@sdb9696) - Migrate smart firmware module to mashumaro [\python-kasa#1276](python-kasa#1276) (@sdb9696) - Migrate IotLightPreset to mashumaru [\python-kasa#1275](python-kasa#1275) (@sdb9696) - Allow callable coroutines for feature setters [\python-kasa#1272](python-kasa#1272) (@sdb9696) - Fix deprecated SSLContext\(\) usage [\python-kasa#1271](python-kasa#1271) (@sdb9696) - Use \_get\_device\_info methods for smart and iot devs in devtools [\python-kasa#1265](python-kasa#1265) (@sdb9696) - Remove experimental support [\python-kasa#1256](python-kasa#1256) (@sdb9696) - Move protocol modules into protocols package [\python-kasa#1254](python-kasa#1254) (@sdb9696) - Add linkcheck to readthedocs CI [\python-kasa#1253](python-kasa#1253) (@rytilahti) - Update cli energy command to use energy module [\python-kasa#1252](python-kasa#1252) (@sdb9696) - Consolidate warnings for fixtures missing child devices [\python-kasa#1251](python-kasa#1251) (@sdb9696) - Update smartcamera fixtures with components [\python-kasa#1250](python-kasa#1250) (@sdb9696) - Move transports into their own package [\python-kasa#1247](python-kasa#1247) (@rytilahti) - Fix warnings in our test suite [\python-kasa#1246](python-kasa#1246) (@rytilahti) - Move tests folder to top level of project [\python-kasa#1242](python-kasa#1242) (@sdb9696) - Fix test framework running against real devices [\python-kasa#1235](python-kasa#1235) (@sdb9696) - Add Additional Firmware Test Fixures [\python-kasa#1234](python-kasa#1234) (@ryenitcher) - Update DiscoveryResult to use Mashumaro instead of pydantic [\python-kasa#1231](python-kasa#1231) (@sdb9696) - Update fixture for ES20M 1.0.11 [\python-kasa#1215](python-kasa#1215) (@rytilahti) - Enable ruff check for ANN [\python-kasa#1139](python-kasa#1139) (@rytilahti) **Closed issues:** - Expose Fan speed range from the library [\python-kasa#1008](python-kasa#1008) - \[META\] 0.7 series - module support for SMART devices, support for introspectable device features and refactoring the library [\python-kasa#783](python-kasa#783)
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
## [0.8.0](https://github.com/python-kasa/python-kasa/tree/0.8.0) (2024-11-26) [Full Changelog](python-kasa/python-kasa@0.7.7...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` and `get_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](https://docs.astral.sh/uv/). - Renamed `device_config.to_dict()` to `device_config.to_dict_control_credentials()`. `to_dict()` is still available but takes no parameters. - From the `iot.Cloud` module the `iot.CloudInfo` class attributes have been converted to snake case. **Breaking changes:** - Migrate iot cloud module to mashumaro [\python-kasa#1282](python-kasa#1282) (@sdb9696) - Replace custom deviceconfig serialization with mashumaru [\python-kasa#1274](python-kasa#1274) (@sdb9696) - Remove support for python \<3.11 [\python-kasa#1273](python-kasa#1273) (@sdb9696) **Implemented enhancements:** - Update cli modify presets to support smart devices [\python-kasa#1295](python-kasa#1295) (@sdb9696) - Use credentials\_hash for smartcamera rtsp url [\python-kasa#1293](python-kasa#1293) (@sdb9696) - Add voltage and current monitoring to smart Devices [\python-kasa#1281](python-kasa#1281) (@ryenitcher) - Update cli feature command for actions not to require a value [\python-kasa#1264](python-kasa#1264) (@sdb9696) - Add pan tilt camera module [\python-kasa#1261](python-kasa#1261) (@sdb9696) - Add alarm module for smartcamera hubs [\python-kasa#1258](python-kasa#1258) (@sdb9696) - Move TAPO smartcamera out of experimental package [\python-kasa#1255](python-kasa#1255) (@sdb9696) - Add SmartCamera Led Module [\python-kasa#1249](python-kasa#1249) (@sdb9696) - Use component queries to select smartcamera modules [\python-kasa#1248](python-kasa#1248) (@sdb9696) - Print formatting for IotLightPreset [\python-kasa#1216](python-kasa#1216) (@Puxtril) - Allow getting Annotated features from modules [\python-kasa#1018](python-kasa#1018) (@sdb9696) - Add common Thermostat module [\python-kasa#977](python-kasa#977) (@sdb9696) **Fixed bugs:** - TP-Link Tapo S505D cannot disable gradual on/off [\python-kasa#1309](python-kasa#1309) - Inconsistent emeter information between features and emeter cli [\python-kasa#1308](python-kasa#1308) - How to dump power usage after latest updates? [\python-kasa#1306](python-kasa#1306) - kasa.discover: Got unsupported connection type: 'device\_family': 'SMART.IPCAMERA' [\python-kasa#1267](python-kasa#1267) - device \_\_repr\_\_ fails if no sys\_info [\python-kasa#1262](python-kasa#1262) - Tapo P110M: Error processing Energy for device, module will be unavailable: get\_energy\_usage for Energy [\python-kasa#1243](python-kasa#1243) - Listing light presets throws error [\python-kasa#1201](python-kasa#1201) - Include duration when disabling smooth transition on/off [\python-kasa#1313](python-kasa#1313) (@rytilahti) - Expose energy command to cli [\python-kasa#1307](python-kasa#1307) (@rytilahti) - Make discovery on unsupported devices less noisy [\python-kasa#1291](python-kasa#1291) (@rytilahti) - Fix repr for device created with no sysinfo or discovery info" [\python-kasa#1266](python-kasa#1266) (@sdb9696) - Fix discovery by alias for smart devices [\python-kasa#1260](python-kasa#1260) (@sdb9696) - Make \_\_repr\_\_ work on discovery info [\python-kasa#1233](python-kasa#1233) (@rytilahti) **Added support for devices:** - Add HS200 \(US\) Smart Fixture [\python-kasa#1303](python-kasa#1303) (@ZeliardM) - Add smartcamera devices to supported docs [\python-kasa#1257](python-kasa#1257) (@sdb9696) - Add P110M\(AU\) fixture [\python-kasa#1244](python-kasa#1244) (@rytilahti) - Add L630 fixture [\python-kasa#1240](python-kasa#1240) (@rytilahti) - Add EP40M Fixture [\python-kasa#1238](python-kasa#1238) (@ryenitcher) - Add KS220 Fixture [\python-kasa#1237](python-kasa#1237) (@ryenitcher) **Documentation updates:** - Use markdown footnotes in supported.md [\python-kasa#1310](python-kasa#1310) (@sdb9696) - Update docs for the new module attributes has/get feature [\python-kasa#1301](python-kasa#1301) (@sdb9696) - Fixup contributing.md for running test against a real device [\python-kasa#1236](python-kasa#1236) (@sdb9696) **Project maintenance:** - Rename tests/smartcamera to tests/smartcam [\python-kasa#1315](python-kasa#1315) (@sdb9696) - Do not error on smartcam hub attached smartcam child devices [\python-kasa#1314](python-kasa#1314) (@sdb9696) - Add P110M\(EU\) fixture [\python-kasa#1305](python-kasa#1305) (@sdb9696) - Run tests with caplog in a single worker [\python-kasa#1304](python-kasa#1304) (@sdb9696) - Rename smartcamera to smartcam [\python-kasa#1300](python-kasa#1300) (@sdb9696) - Move iot fixtures into iot subfolder [\python-kasa#1299](python-kasa#1299) (@sdb9696) - Annotate fan\_speed\_level of Fan interface [\python-kasa#1298](python-kasa#1298) (@sdb9696) - Add PIR ADC Values to Test Fixtures [\python-kasa#1296](python-kasa#1296) (@ryenitcher) - Exclude \_\_getattr\_\_ for deprecated attributes from type checkers [\python-kasa#1294](python-kasa#1294) (@sdb9696) - Simplify omit http\_client in DeviceConfig serialization [\python-kasa#1292](python-kasa#1292) (@sdb9696) - Add SMART Voltage Monitoring to Fixtures [\python-kasa#1290](python-kasa#1290) (@ryenitcher) - Remove pydantic dependency [\python-kasa#1289](python-kasa#1289) (@sdb9696) - Do not print out all the fixture names at the start of test runs [\python-kasa#1287](python-kasa#1287) (@sdb9696) - dump\_devinfo: iot light strip commands [\python-kasa#1286](python-kasa#1286) (@sdb9696) - Migrate TurnOnBehaviours to mashumaro [\python-kasa#1285](python-kasa#1285) (@sdb9696) - dump\_devinfo: query smartlife.iot.common.cloud for fw updates [\python-kasa#1284](python-kasa#1284) (@rytilahti) - Migrate RuleModule to mashumaro [\python-kasa#1283](python-kasa#1283) (@sdb9696) - Update sphinx dependency to 6.2 to fix docs build [\python-kasa#1280](python-kasa#1280) (@sdb9696) - Update DiscoveryResult to use mashu Annotated Alias [\python-kasa#1279](python-kasa#1279) (@sdb9696) - Extend dump\_devinfo iot queries [\python-kasa#1278](python-kasa#1278) (@sdb9696) - Migrate triggerlogs to mashumaru [\python-kasa#1277](python-kasa#1277) (@sdb9696) - Migrate smart firmware module to mashumaro [\python-kasa#1276](python-kasa#1276) (@sdb9696) - Migrate IotLightPreset to mashumaru [\python-kasa#1275](python-kasa#1275) (@sdb9696) - Allow callable coroutines for feature setters [\python-kasa#1272](python-kasa#1272) (@sdb9696) - Fix deprecated SSLContext\(\) usage [\python-kasa#1271](python-kasa#1271) (@sdb9696) - Use \_get\_device\_info methods for smart and iot devs in devtools [\python-kasa#1265](python-kasa#1265) (@sdb9696) - Remove experimental support [\python-kasa#1256](python-kasa#1256) (@sdb9696) - Move protocol modules into protocols package [\python-kasa#1254](python-kasa#1254) (@sdb9696) - Add linkcheck to readthedocs CI [\python-kasa#1253](python-kasa#1253) (@rytilahti) - Update cli energy command to use energy module [\python-kasa#1252](python-kasa#1252) (@sdb9696) - Consolidate warnings for fixtures missing child devices [\python-kasa#1251](python-kasa#1251) (@sdb9696) - Update smartcamera fixtures with components [\python-kasa#1250](python-kasa#1250) (@sdb9696) - Move transports into their own package [\python-kasa#1247](python-kasa#1247) (@rytilahti) - Fix warnings in our test suite [\python-kasa#1246](python-kasa#1246) (@rytilahti) - Move tests folder to top level of project [\python-kasa#1242](python-kasa#1242) (@sdb9696) - Fix test framework running against real devices [\python-kasa#1235](python-kasa#1235) (@sdb9696) - Add Additional Firmware Test Fixures [\python-kasa#1234](python-kasa#1234) (@ryenitcher) - Update DiscoveryResult to use Mashumaro instead of pydantic [\python-kasa#1231](python-kasa#1231) (@sdb9696) - Update fixture for ES20M 1.0.11 [\python-kasa#1215](python-kasa#1215) (@rytilahti) - Enable ruff check for ANN [\python-kasa#1139](python-kasa#1139) (@rytilahti) **Closed issues:** - Expose Fan speed range from the library [\python-kasa#1008](python-kasa#1008) - \[META\] 0.7 series - module support for SMART devices, support for introspectable device features and refactoring the library [\python-kasa#783](python-kasa#783)
No description provided.