1 """Support for Modern Forms switches."""
3 from __future__
import annotations
5 from datetime
import datetime
14 from .const
import CLEAR_TIMER, DOMAIN
15 from .coordinator
import ModernFormsDataUpdateCoordinator
16 from .entity
import ModernFormsDeviceEntity
22 async_add_entities: AddEntitiesCallback,
24 """Set up Modern Forms sensor based on a config entry."""
25 coordinator: ModernFormsDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
27 sensors: list[ModernFormsSensor] = [
32 if coordinator.data.info.light_type:
41 """Defines a Modern Forms binary sensor."""
47 coordinator: ModernFormsDataUpdateCoordinator,
50 """Initialize Modern Forms switch."""
52 super().
__init__(entry_id=entry_id, coordinator=coordinator)
53 self.
_attr_unique_id_attr_unique_id = f
"{self.coordinator.data.info.mac_address}_{self._key}"
57 """Defines the Modern Forms Light Timer remaining time sensor."""
59 _attr_translation_key =
"light_timer_remaining_time"
62 self, entry_id: str, coordinator: ModernFormsDataUpdateCoordinator
64 """Initialize Modern Forms Away mode switch."""
66 coordinator=coordinator,
68 key=
"light_timer_remaining_time",
74 """Return the state of the sensor."""
75 sleep_time: datetime = dt_util.utc_from_timestamp(
76 self.coordinator.data.state.light_sleep_timer
79 self.coordinator.data.state.light_sleep_timer == CLEAR_TIMER
80 or (sleep_time - dt_util.utcnow()).total_seconds() < 0
87 """Defines the Modern Forms Light Timer remaining time sensor."""
89 _attr_translation_key =
"fan_timer_remaining_time"
92 self, entry_id: str, coordinator: ModernFormsDataUpdateCoordinator
94 """Initialize Modern Forms Away mode switch."""
96 coordinator=coordinator,
98 key=
"fan_timer_remaining_time",
104 """Return the state of the sensor."""
105 sleep_time: datetime = dt_util.utc_from_timestamp(
106 self.coordinator.data.state.fan_sleep_timer
110 self.coordinator.data.state.fan_sleep_timer == CLEAR_TIMER
111 or (sleep_time - dt_util.utcnow()).total_seconds() < 0
StateType|datetime native_value(self)
None __init__(self, str entry_id, ModernFormsDataUpdateCoordinator coordinator)
StateType|datetime native_value(self)
None __init__(self, str entry_id, ModernFormsDataUpdateCoordinator coordinator)