Steven B
215b8d4e4f
Fix discovery cli to print devices not printed during discovery timeout ( #670 )
...
* Fix discovery cli to print devices not printed during discovery
* Fix tests
* Fix print exceptions not being propagated
* Fix tests
* Reduce test discover_send time
* Simplify wait logic
* Add tests
* Remove sleep loop and make auth failed a list
2024-02-05 17:53:09 +00:00
Steven B
0d119e63d0
Refactor devices into subpackages and deprecate old names ( #716 )
...
* Refactor devices into subpackages and deprecate old names
* Tweak and add tests
* Fix linting
* Remove duplicate implementations affecting project coverage
* Update post review
* Add device base class attributes and rename subclasses
* Rename Module to BaseModule
* Remove has_emeter_history
* Fix missing _time in init
* Update post review
* Fix test_readmeexamples
* Fix erroneously duped files
* Clean up iot and smart imports
* Update post latest review
* Tweak Device docstring
2024-02-04 16:20:08 +01:00
Teemu R
fae071f0df
Fix port-override for aes&klap transports ( #734 )
...
* Fix port-override for aes&klap transports
* Add tests for port override
2024-02-03 15:28:20 +01:00
Teemu R
1f15bcda7c
Avoid crashing on childdevice property accesses ( #732 )
...
* Avoid crashing on childdevice property accesses
* Push updates from parent to child
2024-02-02 17:29:14 +01:00
J. Nick Koston
1f62aee7b6
Add TP25 fixtures ( #729 )
...
* Add TP25 fixtures
* redump fixture
2024-02-01 19:52:57 +01:00
Teemu R
1acf4e86da
Retain last two chars for children device_id ( #733 )
2024-02-01 19:27:01 +01:00
J. Nick Koston
8657959ace
Add TP15 fixture ( #730 )
2024-01-31 18:30:19 +01:00
Teemu R
55525fc58b
Unignore F401 for tests ( #724 )
...
* Unignore F401 for tests
* Fix linting
2024-01-30 00:15:58 +01:00
Teemu R
9e6896a08f
Various test code cleanups ( #725 )
...
* Separate fake protocols for iot and smart
* Move control_child impl into its own method
* Organize schemas into correct places
* Add test_childdevice
* Add missing return for _handle_control_child
2024-01-29 20:26:39 +01:00
Teemu R
f8e273981c
Add P300 fixture ( #717 )
...
* Add P300 fixture
* fixture after update
* Add tests for p300
2024-01-29 18:14:30 +01:00
Teemu R
1ad2a05b65
Initial support for tapos with child devices ( #720 )
...
* Add ChildDevice and ChildProtocolWrapper
* Initialize & update children
* Fix circular imports
* Add dummy_protocol fixture and tests for unwrapping responseData
* Use dummy_protocol for existing smartprotocol tests
* Move _ChildProtocolWrapper to smartprotocol.py
* Use dummy_protocol for test multiple requests
* Use device_id instead of position for selecting the child
* Fix wrapping for regular requests
* Remove unused imports
* tweak
* rename child_device to childdevice
* Fix import
2024-01-29 17:11:29 +01:00
J. Nick Koston
b479b6d84d
Avoid rebuilding urls for every request ( #715 )
...
* Avoid rebuilding urls for every request
* more fixes
* more fixes
* make mypy happy
* reduce
* tweak
* fix tests
* fix tests
* tweak
* tweak
* lint
* fix type
2024-01-29 15:26:00 +00:00
Steven B
9c0a831027
Enable batching of multiple requests ( #662 )
...
* Enable batching of multiple requests
* Test for debug enabled outside of loop
* tweaks
* tweaks
* tweaks
* Update kasa/smartprotocol.py
Co-authored-by: Teemu R. <tpr@iki.fi>
* revert
* Update pyproject.toml
* Add batch test and make batch_size configurable
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Teemu R. <tpr@iki.fi>
2024-01-29 11:55:54 +01:00
Steven B
cedffc5c9f
Update L510E(US) fixture with mac prefix ( #722 )
2024-01-29 09:25:36 +00:00
Steven B
0d0f56414c
Switch from TPLinkSmartHomeProtocol to IotProtocol/XorTransport ( #710 )
...
* Switch from TPLinkSmartHomeProtocol to IotProtocol/XorTransport
* Add test
* Update docs
* Fix ruff deleting deprecated import
2024-01-26 09:11:31 +00:00
Steven B
c318303255
Add concrete XorTransport class with full implementation ( #646 )
...
* Add concrete XorTransport class
* Update xortransport reset() docstring
2024-01-25 17:37:19 +00:00
J. Nick Koston
716b1f82d9
Add support for the S500 ( #705 )
...
* Add support for the S500D
* tweak
* Add S505
2024-01-25 09:07:01 +01:00
J. Nick Koston
cba073ebde
Add support for tapo wall switches (S500D) ( #704 )
...
* Add support for the S500D
* tweak
* Update README.md
2024-01-25 08:54:56 +01:00
J. Nick Koston
fa94548723
Add additional L900-10 fixture ( #707 )
2024-01-25 08:53:43 +01:00
J. Nick Koston
8947ffbc94
Add L930-5 fixture ( #694 )
...
* Add L930-5 fixture
* Mark L930-5 as variable temp
* Update readme
* Fix overly greedy _strip_rich_formatting
---------
Co-authored-by: Teemu Rytilahti <tpr@iki.fi>
2024-01-24 22:31:01 +00:00
J. Nick Koston
3235ba620d
Add updated L920 fixture ( #680 )
...
* Add updated L920 fixture
* Fix overly greedy _strip_rich_formatting
---------
Co-authored-by: Teemu R <tpr@iki.fi>
2024-01-24 22:29:55 +00:00
J. Nick Koston
3df837cc82
Ensure login token is only sent if aes state is ESTABLISHED ( #702 )
2024-01-24 09:43:42 -10:00
J. Nick Koston
24c645746e
Refactor aestransport to use a state enum ( #691 )
2024-01-23 22:50:25 -10:00
Steven B
eb217a748c
Fix test_klapprotocol test duration ( #698 )
2024-01-23 22:20:44 -10:00
J. Nick Koston
5907dc763a
Add fixtures for L510E ( #693 )
...
* Add fixtures for L510E
* mac
2024-01-24 06:59:39 +00:00
Steven B
1788c50146
Update transport close/reset behaviour ( #689 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-01-23 12:15:18 -10:00
Teemu R
e576fcdb46
Allow raw-command and wifi without update ( #688 )
...
* 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
2024-01-23 22:58:57 +01:00
Steven B
f045696ebe
Fix P100 error getting conn closed when trying default login after login failure ( #690 )
2024-01-23 11:51:07 -10:00
Steven B
e233e377ad
Generate AES KeyPair lazily ( #687 )
...
* Generate AES KeyPair lazily
* Fix coverage
* Update post-review
* Fix pragma
* Make json dumps consistent between python and orjson
* Add comment
* Add comments re json parameter in HttpClient
2024-01-23 15:29:27 +00:00
Steven B
718983c401
Try default tapo credentials for klap and aes ( #685 )
...
* Try default tapo credentials for klap and aes
* Add tests
2024-01-23 14:44:32 +00:00
Teemu R
c8ac3a29c7
Add reboot and factory_reset to tapodevice ( #686 )
...
* Add reboot and factory_reset to tapodevice
* Add test for reboot command
* Fix mocking as different protocols use different methods for comms..
2024-01-23 14:26:47 +01:00
J. Nick Koston
d5fdf05ed2
Add P100 test fixture ( #683 )
2024-01-23 10:12:24 +00:00
J. Nick Koston
abd3ee0768
Add P135 fixture ( #673 )
...
* Add P135 fixture
This device is a dimmer but we currently treat it as a on/off
* add to conftest
2024-01-23 08:31:19 +01:00
J. Nick Koston
65c47a9373
Update fixtures from test devices ( #679 )
...
* Update fixtures from test devices
* move l920 to another pr
2024-01-23 08:12:54 +01:00
J. Nick Koston
37f522c763
Add L530E(US) fixture ( #674 )
2024-01-23 06:24:08 +01:00
Steven B
ee487ad837
Sleep between discovery packets ( #656 )
...
* Sleep between discovery packets
* Add tests
2024-01-22 18:25:23 +01:00
Steven B
14acc8550e
Rename base TPLinkProtocol to BaseProtocol ( #669 )
2024-01-22 16:28:30 +01:00
Teemu R
df59791829
Add l900-5 1.1.0 fixture ( #664 )
...
* Adds new localSmart module
* Changed from AES to klap
* Doesn't reboot itself when receiving a RST for the cloud connectivity requests
2024-01-21 01:41:13 +01:00
Teemu R
f77e87dc5d
dump_devinfo improvements ( #657 )
...
* 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
2024-01-20 14:20:08 +01:00
Steven B
49cfef087c
Make close behaviour consistent across new protocols and transports ( #660 )
2024-01-20 13:35:05 +01:00
Steven B
e94cd118a4
Add fixtures with new MAC mask ( #661 )
2024-01-20 13:22:54 +01:00
Steven B
38159140fb
Fix httpclient exceptions on read and improve error info ( #655 )
2024-01-19 21:06:50 +01:00
Steven B
c3329155c8
Raise SmartDeviceException on invalid config dicts ( #640 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-01-18 07:51:50 -10:00
Steven B
642e9a1f5b
Migrate http client to use aiohttp instead of httpx ( #643 )
2024-01-18 07:32:26 -10:00
Steven B
3b1b0a3c21
Encapsulate http client dependency ( #642 )
...
* Encapsulate http client dependency
* Store cookie dict as variable
* Update post-review
2024-01-18 10:57:33 +01:00
J. Nick Koston
eadf1203fc
Add fixture for L920 ( #638 )
2024-01-14 23:49:31 +01:00
J. Nick Koston
aed67dad16
Fix connection indeterminate state on cancellation ( #636 )
...
* 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
2024-01-13 18:37:24 +01:00
Steven B
5b8280a8d9
Return alias as None for new discovery devices before update ( #627 )
...
* Trim the length of the unavailable device alias
* Update to use short mac as auth required alias
* Update to return alias as none
2024-01-11 16:12:02 +01:00
Steven B
fd2170c82c
Update config to_dict to exclude credentials if the hash is empty string ( #626 )
...
* Update config to_dict to exclude credentials if the hash is empty string
* Add test
2024-01-10 20:47:30 +01:00
Steven B
d5a6fd8e73
Improve test coverage ( #625 )
2024-01-10 20:37:43 +01:00