* Renew the KLAP handshake session 20 minutes before we think it will expire
Currently we assumed the clocks were perfectly aligned and the handshake
session lasted 20 hours. We now add a 20 minute buffer
* use timeout cookie when available
* Add new cli command 'command' to execute arbitrary commands
This deprecates 'raw-command', which requires positional argument for module,
in favor of new 'command' that accepts '--module' option for IOT devices.
* Pull block list to the module level
* Allow raw-command and wifi without update
* Call update always but on wifi&raw-command
* Add tests
* Skip update also if device_family was defined, as device factory performs an update
* dump_devinfo improvements
* Scrub only the last three bytes for mac addresses
* Add --target to allow creating fixtures based on discovery
* Save fixtures directly to correct location, add --basedir to allow defining the location of repository root
* Add --autosave to disable prompting for saving
* Update fixtures for devices I have
* Add fixture for HS110 hw 4.0 fw 1.0.4
* Improve help strings
* Fix tests
* Update devtools README
* Default to discovery if no host/target given
This major brings major changes to the library by adding support for devices that require authentication for communications, all of this being possible thanks to the great work by @sdb9696!
This release adds support to a large range of previously unsupported devices, including:
* Newer kasa-branded devices, including Matter-enabled devices like KP125M
* Newer hardware/firmware versions on some models, like EP25, that suddenly changed the used protocol
* Tapo-branded devices like plugs (P110), light bulbs (KL530), LED strips (L900, L920), and wall switches (KS205, KS225)
* UK variant of HS110, which was the first device using the new protocol
If your device that is not currently listed as supported is working, please consider contributing a test fixture file.
Special thanks goes to @SimonWilkinson who created the initial PR for the new communication protocol!
* 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