|
@@ -1 +1,36 @@
|
|
|
from __future__ import annotations
|
|
|
+
|
|
|
+from typing import Any
|
|
|
+
|
|
|
+from .device import SwitchbotDevice
|
|
|
+
|
|
|
+# Plug Mini keys
|
|
|
+PLUG_ON_KEY = "570f50010180"
|
|
|
+PLUG_OFF_KEY = "570f50010100"
|
|
|
+
|
|
|
+
|
|
|
+class SwitchbotBulb(SwitchbotDevice):
|
|
|
+ """Representation of a Switchbot bulb."""
|
|
|
+
|
|
|
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
|
|
|
+ """Switchbot plug mini constructor."""
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+ self._settings: dict[str, Any] = {}
|
|
|
+
|
|
|
+ async def update(self, interface: int | None = None) -> None:
|
|
|
+ """Update state of device."""
|
|
|
+ await self.get_device_data(retry=self._retry_count, interface=interface)
|
|
|
+
|
|
|
+ async def turn_on(self) -> bool:
|
|
|
+ """Turn device on."""
|
|
|
+ result = await self._sendcommand(PLUG_ON_KEY, self._retry_count)
|
|
|
+ return result[1] == 0x80
|
|
|
+
|
|
|
+ async def turn_off(self) -> bool:
|
|
|
+ """Turn device off."""
|
|
|
+ result = await self._sendcommand(PLUG_OFF_KEY, self._retry_count)
|
|
|
+ return result[1] == 0x00
|
|
|
+
|
|
|
+ def is_on(self) -> bool | None:
|
|
|
+ """Return blub state from cache."""
|
|
|
+ return self._get_adv_value("isOn")
|