work: добавил каркас под управление вытяжкой!

This commit is contained in:
2026-09-20 18:24:17 +03:00
parent 9fd1b3976d
commit 32f3fc754f
7 changed files with 489 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
from dataclasses import asdict, dataclass
from datetime import datetime
@dataclass(frozen=True, slots=True)
class ExhaustState:
mqtt_connected: bool = False
device_online: bool = False
last_message_at: datetime | None = None
firmware: str | None = None
uptime_seconds: int | None = None
wifi_rssi: int | None = None
def to_dict(self) -> dict:
result = asdict(self)
if result["last_message_at"] is not None:
result["last_message_at"] = (
result["last_message_at"].isoformat()
)
return result