Полностью переведена вся документация в docs/: - docs/architecture/overview.md — Архитектура Wyoming Satellite - docs/settings-cheatsheet.md — Шпаргалка по настройкам (CLI флаги) - docs/deployment/systemd-services.md — Настройка systemd сервисов - docs/integration/mqtt-led.md — MQTT LED управление - docs/integration/vad-wakeword.md — Уже был на русском - docs/tutorials/2mic-hat.md — Tutorial для 2-MIC HAT - docs/tutorials/installer.md — Интерактивный установщик - docs/README.md — Индекс документации Обновлены корневые файлы: - README.md — Полностью на русском - DEPLOY.md — Полностью на русском Вся документация теперь на русском языке для удобства русскоязычных пользователей. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
183 lines
6.3 KiB
Markdown
183 lines
6.3 KiB
Markdown
# MQTT LED Управление
|
||
|
||
Руководство по интеграции LED управления ReSpeaker через MQTT и Home Assistant.
|
||
|
||
## Обзор
|
||
|
||
LED сервис (`examples/wyoming-led.py`) предоставляет:
|
||
|
||
- **Light сущность** — Управление яркостью и цветом LED
|
||
- **Sensor сущность** — Состояние спутника (ожидание, слушание, говорение)
|
||
- **Number сущности** — 7 слайдеров для точной настройки
|
||
- **MQTT Discovery** — Авто-конфигурация в Home Assistant
|
||
|
||
## Архитектура
|
||
|
||
```
|
||
┌──────────────────┐ MQTT ┌──────────────────┐
|
||
│ Home Assistant │◄─────────────►│ wyoming-led.py │
|
||
│ │ │ (порт 10501) │
|
||
└──────────────────┘ └────────┬─────────┘
|
||
│
|
||
│ Wyoming Events
|
||
│ (порт 10500)
|
||
┌────────▼─────────┐
|
||
│ Satellite │
|
||
│ (порт 10700) │
|
||
└──────────────────┘
|
||
```
|
||
|
||
## Установка
|
||
|
||
### 1. Установка зависимостей
|
||
|
||
```bash
|
||
cd ~/projects/Satellite
|
||
source ~/.venv_satellite/bin/activate
|
||
pip install paho-mqtt
|
||
```
|
||
|
||
### 2. Настройка MQTT
|
||
|
||
Отредактируйте `examples/wyoming-led.py`:
|
||
|
||
```python
|
||
MQTT_BROKER = "192.168.200.100" # Ваш MQTT брокер
|
||
MQTT_PORT = 1883
|
||
MQTT_USER = "mqtt"
|
||
MQTT_PASS = "mqtt"
|
||
```
|
||
|
||
### 3. Создание systemd сервиса
|
||
|
||
```bash
|
||
sudo nano /etc/systemd/system/wyoming-led.service
|
||
```
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=Wyoming LED Service с MQTT
|
||
After=network.target mosquitto.service
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=sirmrak
|
||
WorkingDirectory=/home/sirmrak/projects/Satellite
|
||
Environment="PATH=/home/sirmrak/projects/.venv_satellite/bin"
|
||
ExecStart=/home/sirmrak/projects/.venv_satellite/bin/python3 /home/sirmrak/projects/Satellite/examples/wyoming-led.py --host 0.0.0.0 --port 10501
|
||
Restart=always
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
### 4. Включение сервиса
|
||
|
||
```bash
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl enable --now wyoming-led.service
|
||
```
|
||
|
||
## MQTT топики
|
||
|
||
| Топик | Направление | Описание |
|
||
|-------|-------------|----------|
|
||
| `wyoming/led/command` | HA → Скрипт | Команды света (вкл/выкл, цвет, яркость) |
|
||
| `wyoming/led/brightness/set` | HA → Скрипт | Установка яркости (0-255) |
|
||
| `wyoming/led/brightness/state` | Скрипт → HA | Текущая яркость |
|
||
| `wyoming/led/state` | Скрипт → HA | Состояние LED (вкл/выкл) |
|
||
| `wyoming/led/availability` | Скрипт → HA | Онлайн/офлайн статус |
|
||
| `wyoming/satellite/state` | Скрипт → HA | Состояние спутника |
|
||
|
||
## Сущности Home Assistant
|
||
|
||
После discovery вы увидите:
|
||
|
||
- **Light:** `light.wyoming_led` — RGB управление
|
||
- **Sensor:** `sensor.wyoming_satellite_state` — Текущее состояние
|
||
- **Number:** `number.wyoming_led_brightness` — Слайдер яркости
|
||
- **Number:** `number.wyoming_led_red/green/blue` — Слайдеры цвета
|
||
- **Number:** `number.wyoming_led_idle/listening/speaking` — Цвета состояний
|
||
|
||
## Состояния LED
|
||
|
||
| Состояние | Цвет | Поведение |
|
||
|-----------|------|-----------|
|
||
| Ожидание (Idle) | Синий (тусклый) | Дыхательный эффект |
|
||
| Слушание (Listening) | Голубой | Постоянный |
|
||
| Говорение (Speaking) | Зелёный | Постоянный |
|
||
| Ошибка (Error) | Красный | Мигание |
|
||
|
||
## Настройка яркости
|
||
|
||
Яркость LED хранится в `examples/led_brightness_config.json`:
|
||
|
||
```json
|
||
{
|
||
"idle": 50,
|
||
"listening": 100,
|
||
"speaking": 150,
|
||
"error": 200
|
||
}
|
||
```
|
||
|
||
Этот файл создаётся автоматически и должен быть исключён из git tracking:
|
||
|
||
```bash
|
||
git update-index --assume-unchanged examples/led_brightness_config.json
|
||
```
|
||
|
||
## Диагностика
|
||
|
||
### LED не реагирует
|
||
|
||
```bash
|
||
# Проверка статуса сервиса
|
||
sudo systemctl status wyoming-led.service
|
||
|
||
# Просмотр логов
|
||
journalctl -u wyoming-led.service -f
|
||
|
||
# Тест вручную
|
||
python3 examples/wyoming-led.py --debug
|
||
```
|
||
|
||
### MQTT подключение не удалось
|
||
|
||
- Проверьте, что брокер запущен: `sudo systemctl status mosquitto`
|
||
- Проверьте учётные данные в `wyoming-led.py`
|
||
- Тест подключения: `mosquitto_sub -t 'wyoming/led/#' -v`
|
||
|
||
### ReSpeaker не обнаружен
|
||
|
||
```bash
|
||
# Проверка USB устройств
|
||
lsusb | grep -i respeaker
|
||
|
||
# Тест xvf_host.py
|
||
python3 examples/xvf_host.py --help
|
||
```
|
||
|
||
## Поддерживаемое оборудование
|
||
|
||
| Устройство | Поддержка | Примечания |
|
||
|------------|-----------|------------|
|
||
| ReSpeaker XVF3800 (USB 4-MIC) | ✅ Полная | Рекомендуется |
|
||
| ReSpeaker 2-MIC HAT | ✅ Полная | Требуется GPIO |
|
||
| ReSpeaker 4-MIC HAT | ✅ Полная | Требуется GPIO |
|
||
| Обычный USB микрофон | ⚠️ Частичная | Без LED управления |
|
||
|
||
## Связанные файлы
|
||
|
||
- `examples/wyoming-led.py` — Основной скрипт LED управления
|
||
- `examples/xvf_host.py` — Драйвер ReSpeaker XVF3800
|
||
- `examples/led_brightness_config.json` — Настройки яркости
|
||
- `services/wyoming-event.service` — Сервис событий (альтернатива)
|
||
|
||
---
|
||
|
||
## 🔗 Связанное
|
||
|
||
- [Руководство по развёртыванию](../../DEPLOY.md)
|
||
- [Настройка systemd сервисов](deployment/systemd-services.md)
|