sirmrak
40382afac5
fix: _send_audio_level — правильное создание Event
...
Проблема: Event(...).event() не существует
Решение: Event(type=..., data=...) напрямую
2026-05-21 15:19:06 +03:00
sirmrak
3d9ebfbb0a
fix: trigger_event — правильное создание Wyoming Event
...
Проблема: WyomingEvent(event_type, data).event() не работает
Решение: Использовать Event(type=..., data=...) напрямую
2026-05-21 14:55:27 +03:00
sirmrak
c7bf061611
feat: Web Client разработка — план и документация
...
Исправления:
- fix: баг volume/level — поддерживаются оба названия параметра
- docs: добавлен раздел Web Client в websocket-server-plan.md
- docs: создан web-client/README.md с полной документацией
Функции Web клиента:
- ✅ set_volume (громкость) — работает
- ✅ mute/unmute — работает
- ⏳ audio-level RMS — требует тестирования
- ⏳ LED управление — требует тестирования
- ⏳ Transcript — требует тестирования
Этапы разработки:
- WC-1: Базовая интеграция ✅
- WC-2: Визуализация (в процессе)
- WC-3: Дополнительные функции
- WC-4: UI/UX
2026-05-21 13:02:35 +03:00
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
sirmrak and Qwen-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