Teemu R
10629f2db9
Be more lax on unknown SMART devices ( #863 )
2024-04-25 07:36:30 +01:00
Steven B
fcad0d2344
Add WallSwitch device type and autogenerate supported devices docs ( #758 )
2024-03-01 18:32:45 +00:00
Steven B
97680bdcee
Refactor test framework ( #794 )
...
This is in preparation for tests based on supporting features amongst
other tweaks:
- Consolidates the filtering logic that was split across `filter_model`
and `filter_fixture`
- Allows filtering `dev` fixture by `component`
- Consolidates fixtures missing method warnings into one warning
- Does not raise exceptions from `FakeSmartTransport` for missing
methods (required for KS240)
2024-02-27 18:39:04 +01:00
Steven B
8c39e81a40
Rename and deprecate exception classes ( #739 )
...
# Public #
SmartDeviceException -> KasaException
UnsupportedDeviceException(SmartDeviceException) -> UnsupportedDeviceError(KasaException)
TimeoutException(SmartDeviceException, asyncio.TimeoutError) -> TimeoutError(KasaException, asyncio.TimeoutError)
Add new exception for error codes -> DeviceError(KasaException)
AuthenticationException(SmartDeviceException) -> AuthenticationError(DeviceError)
# Internal #
RetryableException(SmartDeviceException) -> _RetryableError(DeviceError)
ConnectionException(SmartDeviceException) -> _ConnectionError(KasaException)
2024-02-21 16:52:55 +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
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
55525fc58b
Unignore F401 for tests ( #724 )
...
* Unignore F401 for tests
* Fix linting
2024-01-30 00:15:58 +01: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
1788c50146
Update transport close/reset behaviour ( #689 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-01-23 12:15:18 -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
Teemu R
30c4e6a6a3
Cleanup credentials handling ( #605 )
...
* credentials: don't allow none to simplify checks
* Implement __bool__ for credentials
* Cleanup klaptransport cred usage
* Cleanup deviceconfig and tapodevice
* fix linting
* Pass dummy credentials for tests
* Remove __bool__ dunder and add docs to credentials
* Check for cred noneness in tapodevice.update()
2024-01-03 19:26:52 +01:00
sdb9696
f6fd898faf
Add DeviceConfig to allow specifying configuration parameters ( #569 )
...
* Add DeviceConfig handling
* Update post review
* Further update post latest review
* Update following latest review
* Update docstrings and docs
2023-12-29 20:17:15 +01:00
sdb9696
4a00199506
Add klap support for TAPO protocol by splitting out Transports and Protocols ( #557 )
...
* Add support for TAPO/SMART KLAP and seperate transports from protocols
* Add tests and some review changes
* Update following review
* Updates following review
2023-12-04 19:50:05 +01:00
sdb9696
9728866afb
Re-add protocol_class parameter to connect ( #551 )
...
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-11-28 20:13:15 +01:00
J. Nick Koston
e98252ff17
Move connect_single to SmartDevice.connect ( #538 )
...
This refactors `Discover.connect_single` by moving device instance construction into a separate device factory module.
New `SmartDevice.connect(host, *, port, timeout, credentials, device_type)` class method replaces the functionality of `connect_single`,
and also now allows constructing device instances without relying on UDP discovery for type discovery if `device_type` parameter is set.
---------
Co-authored-by: Teemu R. <tpr@iki.fi>
2023-11-21 23:48:53 +01:00