feat: добавить WebSocket сервер для приёма событий и команд

- settings.py: websocket_enabled, websocket_host, websocket_port
- satellite.py: WebSocket сервер + runtime атрибуты (_runtime_volume, _runtime_led_brightness)
- satellite.py: handle_websocket_command() для обработки команд
- satellite.py: _broadcast_to_websocket() для рассылки событий
- satellite.py: интеграция в _start() / _stop()
- __main__.py: CLI аргументы --websocket-enabled/host/port

Поддерживаемые команды:
- set_volume: изменить громкость
- mute/unmute: микрофон
- play_sound: воспроизвести WAV
- set_led_brightness: яркость LED
- trigger_event: отправить событие в HA

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
2026-05-20 16:51:27 +03:00
co-authored by Qwen-Coder
parent b1c6ef3385
commit 6398dc6a41
3 changed files with 247 additions and 1 deletions
+10
View File
@@ -178,6 +178,16 @@ class EventSettings(ServiceSettings):
connected: Optional[List[str]] = None
disconnected: Optional[List[str]] = None
# WebSocket server settings
websocket_enabled: bool = False
"""True если WebSocket сервер должен быть запущен."""
websocket_host: str = "0.0.0.0"
"""Host для WebSocket сервера."""
websocket_port: int = 8675
"""Port для WebSocket сервера."""
@dataclass(frozen=True)
class TimerSettings: