mirror of
https://github.com/python-kasa/python-kasa.git
synced 2025-08-06 10:44:04 +00:00
Add state feature for iot devices (#924)
This is allows a generic implementation for the switch platform in the homeassistant integration. Also elevates set_state(bool) to be part of the standard API.
This commit is contained in:
@@ -323,6 +323,18 @@ class IotDevice(Device):
|
||||
"""Initialize modules not added in init."""
|
||||
|
||||
async def _initialize_features(self):
|
||||
"""Initialize common features."""
|
||||
self._add_feature(
|
||||
Feature(
|
||||
self,
|
||||
id="state",
|
||||
name="State",
|
||||
attribute_getter="is_on",
|
||||
attribute_setter="set_state",
|
||||
type=Feature.Type.Switch,
|
||||
category=Feature.Category.Primary,
|
||||
)
|
||||
)
|
||||
self._add_feature(
|
||||
Feature(
|
||||
device=self,
|
||||
@@ -634,6 +646,13 @@ class IotDevice(Device):
|
||||
"""Return True if the device is on."""
|
||||
raise NotImplementedError("Device subclass needs to implement this.")
|
||||
|
||||
async def set_state(self, on: bool):
|
||||
"""Set the device state."""
|
||||
if on:
|
||||
return await self.turn_on()
|
||||
else:
|
||||
return await self.turn_off()
|
||||
|
||||
@property # type: ignore
|
||||
@requires_update
|
||||
def on_since(self) -> datetime | None:
|
||||
|
Reference in New Issue
Block a user