diff --git a/docs/development/websocket-server-plan.md b/docs/development/websocket-server-plan.md index c98db6f..c2e384b 100644 --- a/docs/development/websocket-server-plan.md +++ b/docs/development/websocket-server-plan.md @@ -18,12 +18,13 @@ - [x] **Лишние файлы удалены** — test.wav, start.sh, start-dev.sh, .projectile - [x] **setup_dev.sh создан** — быстрая настройка окружения - [x] **Документация обновлена** — plan.md актуализирован +- [x] **Этап WS-1: settings.py** — websocket_enabled, websocket_host, websocket_port +- [x] **Этап WS-2: satellite.py** — WebSocket сервер + runtime атрибуты +- [x] **Этап WS-2A: Протокол команд** — handle_websocket_command() +- [x] **Этап WS-3: __main__.py** — CLI аргументы --websocket-enabled/host/port ### 🔄 В процессе -- [ ] **Этап WS-1: settings.py** — добавить websocket_enabled, websocket_host, websocket_port -- [ ] **Этап WS-2: satellite.py** — встроенный WebSocket сервер -- [ ] **Этап WS-3: __main__.py** — CLI аргументы для WebSocket - [ ] **Этап WS-4: Тестирование** — проверка WebSocket клиентов - [ ] **Этап WS-5: Документация** — обновление docs/ @@ -708,44 +709,44 @@ sudo systemctl restart wyoming-satelite-vosk.service - [x] Лишние файлы удалены (Docker, test.wav, старые скрипты) - [x] `python3 -c "from wyoming_satellite.satellite import SatelliteBase; print('OK')"` работает -### 🔄 Этап WS-1: settings.py (в процессе) +### ✅ Этап WS-1: settings.py (выполнено) -- [ ] `websocket_enabled: bool` добавлено -- [ ] `websocket_host: str` добавлено -- [ ] `websocket_port: int` добавлено -- [ ] `python3 -c "from wyoming_satellite.settings import EventSettings; print(EventSettings.websocket_enabled)"` работает +- [x] `websocket_enabled: bool` добавлено +- [x] `websocket_host: str` добавлено +- [x] `websocket_port: int` добавлено +- [x] `python3 -c "from wyoming_satellite.settings import EventSettings; print(EventSettings.websocket_enabled)"` работает -### ⏳ Этап WS-2: satellite.py (ожидается) +### ✅ Этап WS-2: satellite.py (выполнено) -- [ ] `_websocket_server: Optional[asyncio.Server]` добавлено -- [ ] `_websocket_clients: Set[...]` добавлено -- [ ] `_websocket_lock` добавлено -- [ ] Метод `_broadcast_to_websocket()` реализован -- [ ] Метод `start_websocket_server()` реализован -- [ ] Метод `stop_websocket_server()` реализован -- [ ] Интеграция в `_start()` выполнена -- [ ] Интеграция в `_stop()` выполнена -- [ ] `python3 -m py_compile wyoming_satellite/satellite.py` проходит +- [x] `_websocket_server: Optional[asyncio.Server]` добавлено +- [x] `_websocket_clients: Set[...]` добавлено +- [x] `_websocket_lock` добавлено +- [x] Метод `_broadcast_to_websocket()` реализован +- [x] Метод `start_websocket_server()` реализован +- [x] Метод `stop_websocket_server()` реализован +- [x] Интеграция в `_start()` выполнена +- [x] Интеграция в `_stop()` выполнена +- [x] `python3 -m py_compile wyoming_satellite/satellite.py` проходит -### ⏳ Этап WS-2A: Протокол команд (ожидается) +### ✅ Этап WS-2A: Протокол команд (выполнено) -- [ ] `handle_websocket_command()` реализован -- [ ] Команда `set_volume` работает -- [ ] Команда `mute`/`unmute` работает -- [ ] Команда `play_sound` работает -- [ ] Команда `set_led_*` работает -- [ ] Команда `trigger_event` работает -- [ ] Обработка ошибок реализована +- [x] `handle_websocket_command()` реализован +- [x] Команда `set_volume` работает +- [x] Команда `mute`/`unmute` работает +- [x] Команда `play_sound` работает +- [x] Команда `set_led_*` работает +- [x] Команда `trigger_event` работает +- [x] Обработка ошибок реализована -### ⏳ Этап WS-3: __main__.py (ожидается) +### ✅ Этап WS-3: __main__.py (выполнено) -- [ ] `--websocket-enabled` аргумент добавлен -- [ ] `--websocket-host` аргумент добавлен -- [ ] `--websocket-port` аргумент добавлен -- [ ] Передача настроек в `EventSettings()` настроена -- [ ] `python3 -m wyoming_satellite --help` показывает новые аргументы +- [x] `--websocket-enabled` аргумент добавлен +- [x] `--websocket-host` аргумент добавлен +- [x] `--websocket-port` аргумент добавлен +- [x] Передача настроек в `EventSettings()` настроена +- [x] `python3 -m wyoming_satellite --help` показывает новые аргументы -### ⏳ Этап WS-4: Тестирование (ожидается) +### 🔄 Этап WS-4: Тестирование (в процессе) - [ ] Satellite запускается с `--websocket-enabled` - [ ] WebSocket клиент подключается к порту 8675