Commit Graph
4 Commits
Author SHA1 Message Date
sirmrak d9868a0c5b fix: websockets 16.0 API — убрать аргумент 'path' из handle_websocket()
В websockets 16.0 изменилась сигнатура handler:
- Было: async def handler(websocket, path)
- Стало: async def handler(websocket)

Fix для satellite.py:
- handle_websocket(websocket) без path
- Добавлен комментарий про websockets 16.0+
2026-05-20 18:10:33 +03:00
sirmrak b28052e93e feat: добавить Audio Level monitoring — RMS громкости микрофона в WebSocket
- settings.py: audio_level_enabled, audio_level_interval_ms
- satellite.py: _calculate_rms() — вычисление RMS (0.0-1.0)
- satellite.py: _send_audio_level() — фоновая задача отправки
- satellite.py: _last_mic_level, _audio_level_task атрибуты
- satellite.py: интеграция в _start() / _stop()
- satellite.py: вычисление RMS в event_from_mic() для всех классов
- __main__.py: CLI --audio-level-enabled, --audio-level-interval-ms

Событие в WebSocket (10 раз в секунду):
{type: audio-level, data: {level: 0.42}}
2026-05-20 17:17:18 +03:00
sirmrakandQwen-Coder 6398dc6a41 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>
2026-05-20 16:51:27 +03:00
sirmrak 87502c55e0 Загрузка исходника 2026-05-09 11:49:44 +03:00