from __future__ import annotations import sys from esphome.enum import StrEnum class DashboardEvent(StrEnum): """Dashboard WebSocket event types.""" # Server -> Client events (backend sends to frontend) ENTRY_ADDED = "entry_added" ENTRY_REMOVED = "entry_removed" ENTRY_UPDATED = "entry_updated" ENTRY_STATE_CHANGED = "entry_state_changed" IMPORTABLE_DEVICE_ADDED = "importable_device_added" IMPORTABLE_DEVICE_REMOVED = "importable_device_removed" INITIAL_STATE = "initial_state" # Sent on WebSocket connection PONG = "pong" # Response to client ping # Client -> Server events (frontend sends to backend) PING = "ping" # WebSocket keepalive from client REFRESH = "refresh" # Force backend to poll for changes MAX_EXECUTOR_WORKERS = 48 SENTINEL = object() ESPHOME_COMMAND = [sys.executable, "-m", "esphome"] DASHBOARD_COMMAND = [*ESPHOME_COMMAND, "--dashboard"]