mirror of
https://github.com/python-kasa/python-kasa.git
synced 2025-08-06 10:44:04 +00:00
Add state features to iot strip sockets (#960)
Fixes iot strip sockets not creating their own state and on_since features.
This commit is contained in:
@@ -10,6 +10,7 @@ from typing import Any
|
||||
from ..device_type import DeviceType
|
||||
from ..deviceconfig import DeviceConfig
|
||||
from ..exceptions import KasaException
|
||||
from ..feature import Feature
|
||||
from ..module import Module
|
||||
from ..protocol import BaseProtocol
|
||||
from .iotdevice import (
|
||||
@@ -125,6 +126,8 @@ class IotStrip(IotDevice):
|
||||
)
|
||||
for child in children
|
||||
}
|
||||
for child in self._children.values():
|
||||
await child._initialize_features()
|
||||
|
||||
if update_children and self.has_emeter:
|
||||
for plug in self.children:
|
||||
@@ -250,6 +253,32 @@ class IotStripPlug(IotPlug):
|
||||
await super()._initialize_modules()
|
||||
self.add_module("time", Time(self, "time"))
|
||||
|
||||
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,
|
||||
id="on_since",
|
||||
name="On since",
|
||||
attribute_getter="on_since",
|
||||
icon="mdi:clock",
|
||||
)
|
||||
)
|
||||
# If the strip plug has it's own modules we should call initialize
|
||||
# features for the modules here. However the _initialize_modules function
|
||||
# above does not seem to be called.
|
||||
|
||||
async def update(self, update_children: bool = True):
|
||||
"""Query the device to update the data.
|
||||
|
||||
|
Reference in New Issue
Block a user