Teemu Rytilahti
ff7be987d8
Fix type hints for older python versions
2024-02-15 15:24:30 +01:00
Teemu Rytilahti
5baaa84a1d
Merge remote-tracking branch 'upstream/master' into feat/dev_descriptors
2024-02-15 15:17:48 +01:00
Teemu Rytilahti
3e25c79f39
Fix tests
2024-02-15 15:12:51 +01:00
Steven B
57835276e3
Fix devtools for P100 and add fixture ( #753 )
2024-02-14 19:43:10 +00:00
Teemu Rytilahti
20ec2f5c90
Make iotmodule's _add_feature private, too
2024-02-14 20:40:25 +01:00
Teemu Rytilahti
69108cea7d
Simplify impl by removing featurecategory and show_in_hass
2024-02-14 20:18:01 +01:00
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
Teemu Rytilahti
231a3e4dc5
Make add_feature private
2024-02-14 20:00:37 +01:00
Teemu Rytilahti
fc29d2456e
Remove last remnants from 'descriptor'
2024-02-14 19:14:35 +01:00
Teemu Rytilahti
5dc190837c
Rename descriptor to feature
2024-02-14 18:59:11 +01: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
Teemu Rytilahti
288b5cacce
Use correct key for chjecking if on since should be added
2024-02-09 00:17:47 +01: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 Rytilahti
72372fb254
Add rssi for smartdevices
2024-02-08 15:33:39 +01:00
Teemu Rytilahti
f0f1e478c4
Add generic interface (descriptors) for obtaining device features
2024-02-07 20:26:45 +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
6afd05be59
Do not crash cli on missing discovery info ( #735 )
2024-02-03 15:28:51 +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
414489ff18
Prepare 0.6.2.1 ( #736 )
...
[Full Changelog](https://github.com/python-kasa/python-kasa/compare/0.6.2...0.6.2.1 )
**Fixed bugs:**
- Avoid crashing on childdevice property accesses [\#732](https://github.com/python-kasa/python-kasa/pull/732 ) (@rytilahti)
**Merged pull requests:**
- Retain last two chars for children device\_id [\#733](https://github.com/python-kasa/python-kasa/pull/733 ) (@rytilahti)
- Add TP15 fixture [\#730](https://github.com/python-kasa/python-kasa/pull/730 ) (@bdraco)
- Add TP25 fixtures [\#729](https://github.com/python-kasa/python-kasa/pull/729 ) (@bdraco)
- Various test code cleanups [\#725](https://github.com/python-kasa/python-kasa/pull/725 ) (@rytilahti)
- Unignore F401 for tests [\#724](https://github.com/python-kasa/python-kasa/pull/724 ) (@rytilahti)
2024-02-02 20:18:46 +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
1e26434205
Prepare 0.6.2 ( #728 )
...
[Full Changelog](https://github.com/python-kasa/python-kasa/compare/0.6.1...0.6.2 )
Release highlights:
* Support for tapo power strips (P300)
* Performance improvements and bug fixes
**Implemented enhancements:**
- Implement alias set for tapodevice [\#721](https://github.com/python-kasa/python-kasa/pull/721 ) (@rytilahti)
- Initial support for tapos with child devices [\#720](https://github.com/python-kasa/python-kasa/pull/720 ) (@rytilahti)
- Avoid rebuilding urls for every request [\#715](https://github.com/python-kasa/python-kasa/pull/715 ) (@bdraco)
- Reduce the number of times creating the cipher in klap [\#712](https://github.com/python-kasa/python-kasa/pull/712 ) (@bdraco)
- Use hashlib for klap [\#711](https://github.com/python-kasa/python-kasa/pull/711 ) (@bdraco)
- Enable batching of multiple requests [\#662](https://github.com/python-kasa/python-kasa/pull/662 ) (@sdb9696)
**Merged pull requests:**
- Update L510E\(US\) fixture with mac prefix [\#722](https://github.com/python-kasa/python-kasa/pull/722 ) (@sdb9696)
- Add P300 fixture [\#717](https://github.com/python-kasa/python-kasa/pull/717 ) (@rytilahti)
- Use hashlib in place of hashes.Hash [\#714](https://github.com/python-kasa/python-kasa/pull/714 ) (@bdraco)
- Switch from TPLinkSmartHomeProtocol to IotProtocol/XorTransport [\#710](https://github.com/python-kasa/python-kasa/pull/710 ) (@sdb9696)
- Add concrete XorTransport class with full implementation [\#646](https://github.com/python-kasa/python-kasa/pull/646 ) (@sdb9696)
2024-01-29 19:58:30 +01:00
Steven B
bc1503c40e
Fix TapoBulb state information for non-dimmable SMARTSWITCH ( #726 )
2024-01-29 19:52:22 +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
Teemu R
69dcc0d8bb
Implement alias set for tapodevice ( #721 )
2024-01-29 11:57:32 +01: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
J. Nick Koston
7e2be35e4b
Reduce the number of times creating the cipher in klap ( #712 )
2024-01-26 07:44:41 -10:00
J. Nick Koston
dd38225f51
Use hashlib in place of hashes.Hash ( #714 )
2024-01-26 06:57:56 -10:00
J. Nick Koston
fcd4883645
Use hashlib for klap since its faster ( #711 )
2024-01-26 09:33:18 +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
Teemu R
c01c3c679c
Prepare 0.6.1 ( #709 )
...
[Full Changelog](https://github.com/python-kasa/python-kasa/compare/0.6.0.1...0.6.1 )
Release highlights:
* Support for tapo wall switches
* Support for unprovisioned devices
* Performance and stability improvements
**Implemented enhancements:**
- Add support for tapo wall switches \(S500D\) [\#704](https://github.com/python-kasa/python-kasa/pull/704 ) (@bdraco)
- Add new cli command 'command' to execute arbitrary commands [\#692](https://github.com/python-kasa/python-kasa/pull/692 ) (@rytilahti)
- Allow raw-command and wifi without update [\#688](https://github.com/python-kasa/python-kasa/pull/688 ) (@rytilahti)
- Generate AES KeyPair lazily [\#687](https://github.com/python-kasa/python-kasa/pull/687 ) (@sdb9696)
- Add reboot and factory\_reset to tapodevice [\#686](https://github.com/python-kasa/python-kasa/pull/686 ) (@rytilahti)
- Try default tapo credentials for klap and aes [\#685](https://github.com/python-kasa/python-kasa/pull/685 ) (@sdb9696)
- Sleep between discovery packets [\#656](https://github.com/python-kasa/python-kasa/pull/656 ) (@sdb9696)
**Fixed bugs:**
- Do not crash on missing geolocation [\#701](https://github.com/python-kasa/python-kasa/pull/701 ) (@rytilahti)
- Fix P100 error getting conn closed when trying default login after login failure [\#690](https://github.com/python-kasa/python-kasa/pull/690 ) (@sdb9696)
**Documentation updates:**
- Add protocol and transport documentation [\#663](https://github.com/python-kasa/python-kasa/pull/663 ) (@sdb9696)
- Document authenticated provisioning [\#634](https://github.com/python-kasa/python-kasa/pull/634 ) (@rytilahti)
**Closed issues:**
- Consider handshake as still valid on ServerDisconnectedError [\#676](https://github.com/python-kasa/python-kasa/issues/676 )
- AES Transport creates the key even if the device is offline [\#675](https://github.com/python-kasa/python-kasa/issues/675 )
- how to provision new Tapo plug devices? [\#565](https://github.com/python-kasa/python-kasa/issues/565 )
- Space out discovery requests [\#229](https://github.com/python-kasa/python-kasa/issues/229 )
**Merged pull requests:**
- Add additional L900-10 fixture [\#707](https://github.com/python-kasa/python-kasa/pull/707 ) (@bdraco)
- Replace rich formatting stripper [\#706](https://github.com/python-kasa/python-kasa/pull/706 ) (@bdraco)
- Add support for the S500 [\#705](https://github.com/python-kasa/python-kasa/pull/705 ) (@bdraco)
- Fix overly greedy \_strip\_rich\_formatting [\#703](https://github.com/python-kasa/python-kasa/pull/703 ) (@bdraco)
- Ensure login token is only sent if aes state is ESTABLISHED [\#702](https://github.com/python-kasa/python-kasa/pull/702 ) (@bdraco)
- Update readme fixture checker and readme [\#699](https://github.com/python-kasa/python-kasa/pull/699 ) (@rytilahti)
- Fix test\_klapprotocol test duration [\#698](https://github.com/python-kasa/python-kasa/pull/698 ) (@sdb9696)
- Renew the handshake session 20 minutes before we think it will expire [\#697](https://github.com/python-kasa/python-kasa/pull/697 ) (@bdraco)
- Add --batch-size hint to timeout errors in dump\_devinfo [\#696](https://github.com/python-kasa/python-kasa/pull/696 ) (@sdb9696)
- Add L930-5 fixture [\#694](https://github.com/python-kasa/python-kasa/pull/694 ) (@bdraco)
- Add fixtures for L510E [\#693](https://github.com/python-kasa/python-kasa/pull/693 ) (@bdraco)
- Refactor aestransport to use a state enum [\#691](https://github.com/python-kasa/python-kasa/pull/691 ) (@bdraco)
- Update transport close/reset behaviour [\#689](https://github.com/python-kasa/python-kasa/pull/689 ) (@sdb9696)
- Check README for supported models [\#684](https://github.com/python-kasa/python-kasa/pull/684 ) (@rytilahti)
- Add P100 test fixture [\#683](https://github.com/python-kasa/python-kasa/pull/683 ) (@bdraco)
- Make dump\_devinfo request batch size configurable [\#681](https://github.com/python-kasa/python-kasa/pull/681 ) (@sdb9696)
- Add updated L920 fixture [\#680](https://github.com/python-kasa/python-kasa/pull/680 ) (@bdraco)
- Update fixtures from test devices [\#679](https://github.com/python-kasa/python-kasa/pull/679 ) (@bdraco)
- Show discovery data for state with verbose [\#678](https://github.com/python-kasa/python-kasa/pull/678 ) (@rytilahti)
- Add L530E\(US\) fixture [\#674](https://github.com/python-kasa/python-kasa/pull/674 ) (@bdraco)
- Add P135 fixture [\#673](https://github.com/python-kasa/python-kasa/pull/673 ) (@bdraco)
- Rename base TPLinkProtocol to BaseProtocol [\#669](https://github.com/python-kasa/python-kasa/pull/669 ) (@sdb9696)
- Add 1003 \(TRANSPORT\_UNKNOWN\_CREDENTIALS\_ERROR\) [\#667](https://github.com/python-kasa/python-kasa/pull/667 ) (@rytilahti)
2024-01-25 09:32:45 +01: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
fa6bc59b29
Replace rich formatting stripper ( #706 )
...
* Revert "Fix overly greedy _strip_rich_formatting (#703 )"
This reverts commit ae6a31463e
.
* Improve rich formatter stripper
reverts and replaces #703
2024-01-25 08:49:26 +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
Teemu R
2d8b966e5b
Document authenticated provisioning ( #634 )
2024-01-24 22:09:27 +00:00
J. Nick Koston
ae6a31463e
Fix overly greedy _strip_rich_formatting ( #703 )
2024-01-24 11:53:28 -10:00