Teemu Rytilahti
330763bc83
Bind consumable on lambda def
2024-12-02 13:39:28 +01:00
Teemu Rytilahti
43de201d84
Dynamic consumable feature construction
2024-12-02 13:39:28 +01:00
Teemu Rytilahti
dc04e83b4c
Add vacuumconsumables
2024-12-02 13:39:28 +01:00
Teemu R.
74b59d7f98
Scrub more vacuum keys ( #1328 )
2024-12-01 18:07:05 +01:00
Teemu R.
9966c6094a
Add ssltransport for robovacs ( #943 )
...
This PR implements a clear-text, token-based transport protocol seen on
RV30 Plus (#937 ).
- Client sends `{"username": "email@example.com", "password":
md5(password)}` and gets back a token in the response
- Rest of the communications are done with POST at `/app?token=<token>`
---------
Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
2024-12-01 18:06:48 +01:00
Teemu R.
9a52056522
Remove unnecessary check for python <3.10 ( #1326 )
2024-11-30 15:35:38 +00:00
Teemu R.
d122b48788
Add vacuum component queries to dump_devinfo ( #1320 )
2024-11-29 19:02:04 +00:00
Steven B.
5ef8f21b4d
Handle missing mgt_encryption_schm in discovery ( #1318 )
2024-11-29 15:23:16 +00:00
Teemu R.
fcb604e435
Follow main package structure for tests ( #1317 )
...
* Transport tests under tests/transports/
* Protocol tests under tests/protocols/
* IOT tests under iot/
* Plus some minor cleanups, most code changes are related to splitting
up smart & iot tests
2024-11-28 17:56:20 +01:00
Steven B.
6adb2b5c28
Prepare 0.8.0 ( #1312 )
...
## [0.8.0](https://github.com/python-kasa/python-kasa/tree/0.8.0 ) (2024-11-26)
[Full Changelog](https://github.com/python-kasa/python-kasa/compare/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](https://github.com/python-kasa/python-kasa/pull/1282 ) (@sdb9696)
- Replace custom deviceconfig serialization with mashumaru [\#1274](https://github.com/python-kasa/python-kasa/pull/1274 ) (@sdb9696)
- Remove support for python \<3.11 [\#1273](https://github.com/python-kasa/python-kasa/pull/1273 ) (@sdb9696)
**Implemented enhancements:**
- Update cli modify presets to support smart devices [\#1295](https://github.com/python-kasa/python-kasa/pull/1295 ) (@sdb9696)
- Use credentials\_hash for smartcamera rtsp url [\#1293](https://github.com/python-kasa/python-kasa/pull/1293 ) (@sdb9696)
- Add voltage and current monitoring to smart Devices [\#1281](https://github.com/python-kasa/python-kasa/pull/1281 ) (@ryenitcher)
- Update cli feature command for actions not to require a value [\#1264](https://github.com/python-kasa/python-kasa/pull/1264 ) (@sdb9696)
- Add pan tilt camera module [\#1261](https://github.com/python-kasa/python-kasa/pull/1261 ) (@sdb9696)
- Add alarm module for smartcamera hubs [\#1258](https://github.com/python-kasa/python-kasa/pull/1258 ) (@sdb9696)
- Move TAPO smartcamera out of experimental package [\#1255](https://github.com/python-kasa/python-kasa/pull/1255 ) (@sdb9696)
- Add SmartCamera Led Module [\#1249](https://github.com/python-kasa/python-kasa/pull/1249 ) (@sdb9696)
- Use component queries to select smartcamera modules [\#1248](https://github.com/python-kasa/python-kasa/pull/1248 ) (@sdb9696)
- Print formatting for IotLightPreset [\#1216](https://github.com/python-kasa/python-kasa/pull/1216 ) (@Puxtril)
- Allow getting Annotated features from modules [\#1018](https://github.com/python-kasa/python-kasa/pull/1018 ) (@sdb9696)
- Add common Thermostat module [\#977](https://github.com/python-kasa/python-kasa/pull/977 ) (@sdb9696)
**Fixed bugs:**
- TP-Link Tapo S505D cannot disable gradual on/off [\#1309](https://github.com/python-kasa/python-kasa/issues/1309 )
- Inconsistent emeter information between features and emeter cli [\#1308](https://github.com/python-kasa/python-kasa/issues/1308 )
- How to dump power usage after latest updates? [\#1306](https://github.com/python-kasa/python-kasa/issues/1306 )
- kasa.discover: Got unsupported connection type: 'device\_family': 'SMART.IPCAMERA' [\#1267](https://github.com/python-kasa/python-kasa/issues/1267 )
- device \_\_repr\_\_ fails if no sys\_info [\#1262](https://github.com/python-kasa/python-kasa/issues/1262 )
- Tapo P110M: Error processing Energy for device, module will be unavailable: get\_energy\_usage for Energy [\#1243](https://github.com/python-kasa/python-kasa/issues/1243 )
- Listing light presets throws error [\#1201](https://github.com/python-kasa/python-kasa/issues/1201 )
- Include duration when disabling smooth transition on/off [\#1313](https://github.com/python-kasa/python-kasa/pull/1313 ) (@rytilahti)
- Expose energy command to cli [\#1307](https://github.com/python-kasa/python-kasa/pull/1307 ) (@rytilahti)
- Make discovery on unsupported devices less noisy [\#1291](https://github.com/python-kasa/python-kasa/pull/1291 ) (@rytilahti)
- Fix repr for device created with no sysinfo or discovery info" [\#1266](https://github.com/python-kasa/python-kasa/pull/1266 ) (@sdb9696)
- Fix discovery by alias for smart devices [\#1260](https://github.com/python-kasa/python-kasa/pull/1260 ) (@sdb9696)
- Make \_\_repr\_\_ work on discovery info [\#1233](https://github.com/python-kasa/python-kasa/pull/1233 ) (@rytilahti)
**Added support for devices:**
- Add HS200 \(US\) Smart Fixture [\#1303](https://github.com/python-kasa/python-kasa/pull/1303 ) (@ZeliardM)
- Add smartcamera devices to supported docs [\#1257](https://github.com/python-kasa/python-kasa/pull/1257 ) (@sdb9696)
- Add P110M\(AU\) fixture [\#1244](https://github.com/python-kasa/python-kasa/pull/1244 ) (@rytilahti)
- Add L630 fixture [\#1240](https://github.com/python-kasa/python-kasa/pull/1240 ) (@rytilahti)
- Add EP40M Fixture [\#1238](https://github.com/python-kasa/python-kasa/pull/1238 ) (@ryenitcher)
- Add KS220 Fixture [\#1237](https://github.com/python-kasa/python-kasa/pull/1237 ) (@ryenitcher)
**Documentation updates:**
- Use markdown footnotes in supported.md [\#1310](https://github.com/python-kasa/python-kasa/pull/1310 ) (@sdb9696)
- Update docs for the new module attributes has/get feature [\#1301](https://github.com/python-kasa/python-kasa/pull/1301 ) (@sdb9696)
- Fixup contributing.md for running test against a real device [\#1236](https://github.com/python-kasa/python-kasa/pull/1236 ) (@sdb9696)
**Project maintenance:**
- Rename tests/smartcamera to tests/smartcam [\#1315](https://github.com/python-kasa/python-kasa/pull/1315 ) (@sdb9696)
- Do not error on smartcam hub attached smartcam child devices [\#1314](https://github.com/python-kasa/python-kasa/pull/1314 ) (@sdb9696)
- Add P110M\(EU\) fixture [\#1305](https://github.com/python-kasa/python-kasa/pull/1305 ) (@sdb9696)
- Run tests with caplog in a single worker [\#1304](https://github.com/python-kasa/python-kasa/pull/1304 ) (@sdb9696)
- Rename smartcamera to smartcam [\#1300](https://github.com/python-kasa/python-kasa/pull/1300 ) (@sdb9696)
- Move iot fixtures into iot subfolder [\#1299](https://github.com/python-kasa/python-kasa/pull/1299 ) (@sdb9696)
- Annotate fan\_speed\_level of Fan interface [\#1298](https://github.com/python-kasa/python-kasa/pull/1298 ) (@sdb9696)
- Add PIR ADC Values to Test Fixtures [\#1296](https://github.com/python-kasa/python-kasa/pull/1296 ) (@ryenitcher)
- Exclude \_\_getattr\_\_ for deprecated attributes from type checkers [\#1294](https://github.com/python-kasa/python-kasa/pull/1294 ) (@sdb9696)
- Simplify omit http\_client in DeviceConfig serialization [\#1292](https://github.com/python-kasa/python-kasa/pull/1292 ) (@sdb9696)
- Add SMART Voltage Monitoring to Fixtures [\#1290](https://github.com/python-kasa/python-kasa/pull/1290 ) (@ryenitcher)
- Remove pydantic dependency [\#1289](https://github.com/python-kasa/python-kasa/pull/1289 ) (@sdb9696)
- Do not print out all the fixture names at the start of test runs [\#1287](https://github.com/python-kasa/python-kasa/pull/1287 ) (@sdb9696)
- dump\_devinfo: iot light strip commands [\#1286](https://github.com/python-kasa/python-kasa/pull/1286 ) (@sdb9696)
- Migrate TurnOnBehaviours to mashumaro [\#1285](https://github.com/python-kasa/python-kasa/pull/1285 ) (@sdb9696)
- dump\_devinfo: query smartlife.iot.common.cloud for fw updates [\#1284](https://github.com/python-kasa/python-kasa/pull/1284 ) (@rytilahti)
- Migrate RuleModule to mashumaro [\#1283](https://github.com/python-kasa/python-kasa/pull/1283 ) (@sdb9696)
- Update sphinx dependency to 6.2 to fix docs build [\#1280](https://github.com/python-kasa/python-kasa/pull/1280 ) (@sdb9696)
- Update DiscoveryResult to use mashu Annotated Alias [\#1279](https://github.com/python-kasa/python-kasa/pull/1279 ) (@sdb9696)
- Extend dump\_devinfo iot queries [\#1278](https://github.com/python-kasa/python-kasa/pull/1278 ) (@sdb9696)
- Migrate triggerlogs to mashumaru [\#1277](https://github.com/python-kasa/python-kasa/pull/1277 ) (@sdb9696)
- Migrate smart firmware module to mashumaro [\#1276](https://github.com/python-kasa/python-kasa/pull/1276 ) (@sdb9696)
- Migrate IotLightPreset to mashumaru [\#1275](https://github.com/python-kasa/python-kasa/pull/1275 ) (@sdb9696)
- Allow callable coroutines for feature setters [\#1272](https://github.com/python-kasa/python-kasa/pull/1272 ) (@sdb9696)
- Fix deprecated SSLContext\(\) usage [\#1271](https://github.com/python-kasa/python-kasa/pull/1271 ) (@sdb9696)
- Use \_get\_device\_info methods for smart and iot devs in devtools [\#1265](https://github.com/python-kasa/python-kasa/pull/1265 ) (@sdb9696)
- Remove experimental support [\#1256](https://github.com/python-kasa/python-kasa/pull/1256 ) (@sdb9696)
- Move protocol modules into protocols package [\#1254](https://github.com/python-kasa/python-kasa/pull/1254 ) (@sdb9696)
- Add linkcheck to readthedocs CI [\#1253](https://github.com/python-kasa/python-kasa/pull/1253 ) (@rytilahti)
- Update cli energy command to use energy module [\#1252](https://github.com/python-kasa/python-kasa/pull/1252 ) (@sdb9696)
- Consolidate warnings for fixtures missing child devices [\#1251](https://github.com/python-kasa/python-kasa/pull/1251 ) (@sdb9696)
- Update smartcamera fixtures with components [\#1250](https://github.com/python-kasa/python-kasa/pull/1250 ) (@sdb9696)
- Move transports into their own package [\#1247](https://github.com/python-kasa/python-kasa/pull/1247 ) (@rytilahti)
- Fix warnings in our test suite [\#1246](https://github.com/python-kasa/python-kasa/pull/1246 ) (@rytilahti)
- Move tests folder to top level of project [\#1242](https://github.com/python-kasa/python-kasa/pull/1242 ) (@sdb9696)
- Fix test framework running against real devices [\#1235](https://github.com/python-kasa/python-kasa/pull/1235 ) (@sdb9696)
- Add Additional Firmware Test Fixures [\#1234](https://github.com/python-kasa/python-kasa/pull/1234 ) (@ryenitcher)
- Update DiscoveryResult to use Mashumaro instead of pydantic [\#1231](https://github.com/python-kasa/python-kasa/pull/1231 ) (@sdb9696)
- Update fixture for ES20M 1.0.11 [\#1215](https://github.com/python-kasa/python-kasa/pull/1215 ) (@rytilahti)
- Enable ruff check for ANN [\#1139](https://github.com/python-kasa/python-kasa/pull/1139 ) (@rytilahti)
**Closed issues:**
- Expose Fan speed range from the library [\#1008](https://github.com/python-kasa/python-kasa/issues/1008 )
- \[META\] 0.7 series - module support for SMART devices, support for introspectable device features and refactoring the library [\#783](https://github.com/python-kasa/python-kasa/issues/783 )
2024-11-26 12:10:02 +00:00
Steven B.
f71450b880
Do not error on smartcam hub attached smartcam child devices ( #1314 )
2024-11-26 11:37:14 +00:00
Steven B.
6c42b36865
Rename tests/smartcamera to tests/smartcam ( #1315 )
2024-11-26 11:36:30 +00:00
Teemu R.
0c755f7120
Include duration when disabling smooth transition on/off ( #1313 )
...
Fixes #1309
2024-11-26 10:39:31 +00:00
Teemu R.
69e08c2385
Expose energy command to cli ( #1307 )
...
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
2024-11-26 09:42:55 +00:00
Steven B.
3dfada7575
Add common Thermostat module ( #977 )
2024-11-26 09:37:15 +00:00
Steven B.
cb4e28394d
Update docs for the new module attributes has/get feature ( #1301 )
2024-11-26 08:38:20 +00:00
Steven B.
fe53cd7d9c
Use markdown footnotes in supported.md ( #1310 )
...
Brings our markdown inline with the [HA
markdown](https://github.com/home-assistant/home-assistant.io/pull/33342#discussion_r1653484233 )
2024-11-25 18:02:12 +01:00
Steven B.
15ecf320d9
Add P110M(EU) fixture ( #1305 )
2024-11-23 12:38:42 +00:00
ZeliardM
ea73b858e8
Add HS200 (US) Smart Fixture ( #1303 )
2024-11-23 12:31:27 +00:00
Teemu R.
d0a2ed7388
Add P110M(AU) fixture ( #1244 )
2024-11-23 12:30:39 +00:00
Steven B.
412c65c428
Run tests with caplog in a single worker ( #1304 )
2024-11-23 12:20:51 +00:00
Steven B.
2bda54fcb1
Rename smartcamera to smartcam ( #1300 )
2024-11-23 09:07:47 +01:00
Steven B.
b525d6a35c
Annotate fan_speed_level of Fan interface ( #1298 )
2024-11-22 21:21:29 +01:00
Steven B.
f4316110c9
Move iot fixtures into iot subfolder ( #1299 )
2024-11-22 21:19:33 +01:00
Ryan Nitcher
c5830a4cdc
Add PIR ADC Values to Test Fixtures ( #1296 )
2024-11-22 07:59:17 +00:00
Steven B.
37cc4da7b6
Allow getting Annotated features from modules ( #1018 )
...
Co-authored-by: Teemu R. <tpr@iki.fi>
2024-11-22 07:52:23 +00:00
Steven B.
cae9decb02
Exclude __getattr__ for deprecated attributes from type checkers ( #1294 )
2024-11-21 18:40:13 +00:00
Steven B.
652b4e0bd7
Use credentials_hash for smartcamera rtsp url ( #1293 )
2024-11-21 18:39:15 +00:00
Teemu R.
f2ba23301a
Make discovery on unsupported devices less noisy ( #1291 )
2024-11-21 18:22:54 +00:00
Steven B.
5221fc07ca
Simplify omit http_client in DeviceConfig serialization ( #1292 )
...
Related explanation: https://github.com/Fatal1ty/mashumaro/issues/264
2024-11-21 19:18:04 +01:00
Steven B.
879aca77d1
Update cli modify presets to support smart devices ( #1295 )
2024-11-21 19:10:18 +01:00
Ryan Nitcher
dab64e5d48
Add voltage and current monitoring to smart Devices ( #1281 )
2024-11-20 18:18:30 +00:00
Ryan Nitcher
59b047f485
Add SMART Voltage Monitoring to Fixtures ( #1290 )
2024-11-20 17:59:09 +00:00
Steven B.
0058ad9f2e
Remove pydantic dependency ( #1289 )
...
Remove pydantic dependency in favor of mashumaro.
2024-11-20 15:19:12 +00:00
Steven B.
f7778aaa53
Migrate RuleModule to mashumaro ( #1283 )
...
Also fixes a bug whereby multiple queries for the same module would overwrite each other.
2024-11-20 14:59:32 +00:00
Steven B.
a4258cc75b
Do not print out all the fixture names at the start of test runs ( #1287 )
2024-11-20 15:42:56 +01:00
Steven B.
955e7ab4d0
Migrate TurnOnBehaviours to mashumaro ( #1285 )
2024-11-20 15:35:51 +01:00
Steven B.
0e5013d4b4
dump_devinfo: iot light strip commands ( #1286 )
2024-11-20 15:06:59 +01:00
Steven B.
5eca487bcb
Migrate iot cloud module to mashumaro ( #1282 )
...
Breaking change as the CloudInfo interface is changing to snake case for
consistency with the rest of the library.
2024-11-20 14:34:26 +01:00
Steven B.
df48c21900
Migrate triggerlogs to mashumaru ( #1277 )
2024-11-20 13:21:08 +00:00
Teemu R.
bbe68a5fe9
dump_devinfo: query smartlife.iot.common.cloud for fw updates ( #1284 )
2024-11-20 13:07:02 +00:00
Steven B.
999e84d2de
Migrate smart firmware module to mashumaro ( #1276 )
2024-11-20 11:54:13 +00:00
Steven B.
03c073c293
Migrate IotLightPreset to mashumaru ( #1275 )
2024-11-20 08:37:04 +00:00
Steven B.
79ac9547e8
Replace custom deviceconfig serialization with mashumaru ( #1274 )
2024-11-20 08:35:32 +00:00
Steven B.
bf23f73cce
Extend dump_devinfo iot queries ( #1278 )
2024-11-20 00:36:16 +01:00
Steven B.
2683623997
Update DiscoveryResult to use mashu Annotated Alias ( #1279 )
2024-11-19 19:09:50 +00:00
Steven B.
e1e6d72222
Update sphinx dependency to 6.2 to fix docs build ( #1280 )
2024-11-19 19:05:11 +00:00
Steven B.
5b5a148f9a
Add pan tilt camera module ( #1261 )
...
Add ptz controls for smartcameras.
---------
Co-authored-by: Teemu R. <tpr@iki.fi>
2024-11-19 10:11:51 +00:00
Steven B.
a01247d48f
Remove support for python <3.11 ( #1273 )
...
Python 3.11 ships with latest Debian Bookworm.
pypy is not that widely used with this library based on statistics. It could be added back when pypy supports python 3.11.
2024-11-18 18:46:36 +00:00
Steven B.
0c40939624
Allow callable coroutines for feature setters ( #1272 )
2024-11-18 14:53:49 +00:00