Steven B
13d8d94bd5
Fix for P100 on fw 1.1.3 login_version none ( #751 )
...
* Fix for P100 on fw 1.1.3 login_version none
* Fix coverage
* Add delay before trying default login
* Move devtools and fixture out
* Change logging string
Co-authored-by: Teemu R. <tpr@iki.fi>
* Fix test
---------
Co-authored-by: Teemu R. <tpr@iki.fi>
2024-02-14 19:13:28 +00:00
Steven B
45f251e57e
Ensure connections are closed when cli is finished ( #752 )
...
* Ensure connections are closed when cli is finished
* Test for close calls on error and success
2024-02-14 17:03:50 +00:00
Steven B
5d81e9f94c
Pass timeout parameters to discover_single ( #744 )
...
* Pass timeout parameters to discover_single
* Fix tests
2024-02-08 20:03:06 +01:00
Teemu R
458949157a
Add 'shell' command to cli ( #738 )
...
* Add 'shell' command to cli
* Add test
* Add ptpython as optional dep
2024-02-06 14:48:19 +01:00
Steven B
6ab17d823c
Reduce AuthenticationExceptions raising from transports ( #740 )
...
* Reduce AuthenticationExceptions raising from transports
* Make auth failed test ids easier to read
* Test invalid klap response length
2024-02-05 21:49:26 +01:00
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