* Fix connection indeterminate state on cancellation
If the task the query is running in it cancelled, we do
know the state of the connection so we must close. Previously
we would not close on BaseException which could result
in reading the previous response if the previous query was
cancelled after the request had been sent
* add test for cancellation
* Avoid linear search for emeter realtime and emeter_today
Most of the time the data we want is at the end of the
list so we now search backwards to avoid having to
scale all the data and throw most of it away
* more tweaks
* coverage
* coverage
* preen
* coverage
* branch cover
Otherwise, the file would be extracted in the main site-packages which is rather unexpected..
Uninstalling python-kasa-0.6.0.dev0:
Would remove:
/home/tpr/.virtualenvs/default/bin/kasa
/home/tpr/.virtualenvs/default/lib/python3.11/site-packages/CHANGELOG.md
/home/tpr/.virtualenvs/default/lib/python3.11/site-packages/kasa/*
/home/tpr/.virtualenvs/default/lib/python3.11/site-packages/python_kasa-0.6.0.dev0.dist-info/*
Proceed (Y/n)?
* Pull has_emeter property up to tapodevice base class
This will also use the existence of energy_monitoring in the component_nego query to decide if the device has the service.
* Move emeter related functions to tapodevice
* Remove supported_modules override for now
This should be done in a separate PR, if we want to expose the available components to cli and downstreams
* Dedent extra reqs
* Move extra_reqs initialization
* Fix tests
* Do login entirely within AesTransport
* Remove login and handshake attributes from BaseTransport
* Add AesTransport tests
* Synchronise transport and protocol __init__ signatures and rename internal variables
* Update after review
- Show discovery results for unsupported devices and devices that fail to authenticate.
- Rename `--show-unsupported` to `--verbose`.
- Remove separate `--timeout` parameter from cli discovery so it's not confused with `--timeout` now added to cli command.
- Add tests.
This fixes changing the color for L530:
* If color temp is set on the device, it overrides any hue/sat settings. We override it to zero which seems to work.
* L530 does not allow None/null for brightness, so we avoid passing it on to the device.
* Add KP125M fixture. Enable tapo auth in pytest.
* authentication is not just for tapo
* Use "##MASKEDNAME##" base64 for nickname and ssid.
---------
Co-authored-by: Teemu R. <tpr@iki.fi>
* Update readme with clearer instructions, tapo support
All in all, making the readme more approachable landing page:
* Link to provisioning docs from the beginning
* Hints about support for tapo devices
* Add some documentation about how to pass credentials
* Clearer usage instructions and links to find more information
* Lint