python-kasa/kasa
Teemu R 64da736717
Add generic interface for accessing device features (#741)
This adds a generic interface for all device classes to introspect available device features,
that is necessary to make it easier to support a wide variety of supported devices with different set of features.
This will allow constructing generic interfaces (e.g., in homeassistant) that fetch and change these features without hard-coding the API calls.

`Device.features()` now returns a mapping of `<identifier, Feature>` where the `Feature` contains all necessary information (like the name, the icon, a way to get and change the setting) to present and change the defined feature through its interface.
2024-02-15 16:25:08 +01:00
..
iot Add generic interface for accessing device features (#741) 2024-02-15 16:25:08 +01:00
smart Add generic interface for accessing device features (#741) 2024-02-15 16:25:08 +01:00
tests Add generic interface for accessing device features (#741) 2024-02-15 16:25:08 +01:00
__init__.py Add generic interface for accessing device features (#741) 2024-02-15 16:25:08 +01:00
aestransport.py Fix for P100 on fw 1.1.3 login_version none (#751) 2024-02-14 19:13:28 +00:00
bulb.py Refactor devices into subpackages and deprecate old names (#716) 2024-02-04 16:20:08 +01:00
cli.py Add generic interface for accessing device features (#741) 2024-02-15 16:25:08 +01:00
credentials.py Cleanup credentials handling (#605) 2024-01-03 19:26:52 +01:00
device_factory.py Ensure connections are closed when cli is finished (#752) 2024-02-14 17:03:50 +00:00
device_type.py Refactor devices into subpackages and deprecate old names (#716) 2024-02-04 16:20:08 +01:00
device.py Add generic interface for accessing device features (#741) 2024-02-15 16:25:08 +01:00
deviceconfig.py Enable batching of multiple requests (#662) 2024-01-29 11:55:54 +01:00
discover.py Fix discovery cli to print devices not printed during discovery timeout (#670) 2024-02-05 17:53:09 +00:00
effects.py Add effect support for light strips (#293) 2022-03-21 22:10:12 +01:00
emeterstatus.py Avoid crashing on childdevice property accesses (#732) 2024-02-02 17:29:14 +01:00
exceptions.py Avoid rebuilding urls for every request (#715) 2024-01-29 15:26:00 +00:00
feature.py Add generic interface for accessing device features (#741) 2024-02-15 16:25:08 +01:00
httpclient.py Fix port-override for aes&klap transports (#734) 2024-02-03 15:28:20 +01:00
iotprotocol.py Switch from TPLinkSmartHomeProtocol to IotProtocol/XorTransport (#710) 2024-01-26 09:11:31 +00:00
json.py Generate AES KeyPair lazily (#687) 2024-01-23 15:29:27 +00:00
klaptransport.py Reduce AuthenticationExceptions raising from transports (#740) 2024-02-05 21:49:26 +01:00
plug.py Refactor devices into subpackages and deprecate old names (#716) 2024-02-04 16:20:08 +01:00
protocol.py Use hashlib in place of hashes.Hash (#714) 2024-01-26 06:57:56 -10:00
py.typed Add py.typed to flag that the package is typed (#251) 2021-11-15 18:21:24 +01:00
smartprotocol.py Fix for P100 on fw 1.1.3 login_version none (#751) 2024-02-14 19:13:28 +00:00
xortransport.py Switch from TPLinkSmartHomeProtocol to IotProtocol/XorTransport (#710) 2024-01-26 09:11:31 +00:00