12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- """Library to handle connection with Switchbot."""
- from __future__ import annotations
- import time
- from .device import REQ_HEADER, SwitchbotDeviceOverrideStateDuringConnection
- # Plug Mini keys
- PLUG_ON_KEY = f"{REQ_HEADER}50010180"
- PLUG_OFF_KEY = f"{REQ_HEADER}50010100"
- class SwitchbotPlugMini(SwitchbotDeviceOverrideStateDuringConnection):
- """Representation of a Switchbot plug mini."""
- async def update(self, interface: int | None = None) -> None:
- """Update state of device."""
- # No battery here
- self._last_full_update = time.monotonic()
- async def turn_on(self) -> bool:
- """Turn device on."""
- result = await self._send_command(PLUG_ON_KEY)
- ret = self._check_command_result(result, 1, {0x80})
- self._override_state({"isOn": True})
- self._fire_callbacks()
- return ret
- async def turn_off(self) -> bool:
- """Turn device off."""
- result = await self._send_command(PLUG_OFF_KEY)
- ret = self._check_command_result(result, 1, {0x80})
- self._override_state({"isOn": False})
- self._fire_callbacks()
- return ret
- def is_on(self) -> bool | None:
- """Return switch state from cache."""
- return self._get_adv_value("isOn")
- def poll_needed(self, last_poll_time: float | None) -> bool:
- """Return if device needs polling."""
- return False
|