[2026-09-14] eagle: family/how-to/home-automation.md family/how-to/truenas-infrastructure.md family/plans/t610-home-automation.md

This commit is contained in:
Alexey Martemyanov
2026-09-14 19:33:05 +06:00
parent 8d6f20f1dd
commit fe0a9c821c
3 changed files with 42 additions and 20 deletions
+6 -4
View File
@@ -20,11 +20,13 @@ related:
> **Статус на 2026-09-14:** домашняя автоматизация **перенесена на HP t610** (HA OS).
> 📌 **Всё про миграцию** — хост, доступ, карта USB/гнёзд, аддоны, Zigbee, питфоллы, текущее состояние — **в единственном документе [[family/plans/t610-home-automation]]. НЕ дублировать сюда.**
> 📌 **Этот документ — справочник по ЖЕЛЕЗУ:** AT2 (параметры/PWM), карта Slave ID, регистры заслонок/реле, ZONT relays. Оборудование и адреса Modbus при миграции не меняются.
> **Текущее состояние:** `unavailable` в HA — **8** (было 44 → 10 → 8). Оставшиеся все известные: 7 — slave 10 (AT2 fans, блок закомментирован, задача снята) + 1 — `todo.shopping_list` (системная). Первопричина массового отвала была в **перепутанных гнёздах аддонов** (`mbusd`↔`modbus-bridge`) — исправлено обменом привязок; ещё 2 (`dining_summary`/`dining_air_summary`) ожили после фикса сборки кадров bridge.
> **Текущее состояние:** `unavailable` в HA — **8** (было 44 → 10 → 8). Оставшиеся все известные: 7 — slave 10 (AT2 fans, блок закомментирован, задача снята Alex) + 1 — `todo.shopping_list` (системная). Первопричина массового отвала была в **перепутанных гнёздах аддонов** (`mbusd`↔`modbus-bridge`) — исправлено обменом привязок; ещё 2 (`dining_summary`/`dining_air_summary`) ожили после фикса сборки кадров bridge (коммит `3748feb`).
> **Zigbee-реле котла заведено (вечер-13):** `switch.boiler_controller_power` → `slave 104, рег. 1` (bidirectional), ✅ подтверждено Alex. Детали — ниже (карта Slave ID) и [[family/plans/t610-home-automation]] §5-кватер-И-7.
>
> **📷 Камера — ⚠️ СХЕМУ МЕНЯЕМ (2026-09-14, вечер-10):** USB-вебка **Logitech `046d:0825`** (смотрит на счётчик воды BK-G4T) физически подключена к t610. Сейчас заведена в HA как **`camera.usb_camera`** (YAML `camera: platform: ffmpeg`, `input: /dev/video0`) — кадр JPEG 640×480, **НО** схема нестабильна: даёт **`Resource busy`** (устройство держит `stream_worker` HA Core) и **не даёт `unique_id`**. **🔴 РЕШЕНИЕ Alex: вернуть схему «как было на TrueNAS»** — там камера работала как **отдельный HTTP-MJPEG-сервис** (`cam.mallexxx.duckdns.org` → `192.168.2.197:8090`, т.е. `ustreamer`/`mjpg-streamer`), HA ходила к нему по URL. Контейнер **утрачен при пересоздании пула** (локальный образ не пережил `.ix-apps`). **План:** поднять MJPEG-сервис заново (**аддон** на t610 — вебка там, Docker в HA OS закрыт; **или** вернуть вебку на TrueNAS) → Generic Camera по URL потока → ✅ `unique_id` + зона `kotelnaia` + мультиклиент (телефон/Frigate). История и все тупики — [[family/plans/t610-home-automation]] §5-кватер-И-3
>
> ⚠️ **Зону камере назначить нельзя** — у YAML-`ffmpeg`-камеры **нет unique_id** (в схеме интеграции только `input`/`name`/`extra_arguments`), поэтому она отсутствует в `entity_registry` и в UI пишет «does not have a unique ID → settings cannot be managed». **Это не ошибка** — штатное ограничение (офиц. FAQ HA). Обход — переименовать (`name: Камера котельной`). Разбор — [[family/plans/t610-home-automation]] §5-кватер-И-5.
> **📷 Камера — ✅✅ ФИНАЛЬНАЯ СХЕМА (2026-09-14, вечер-13):** USB-вебка **Logitech `046d:0825`** (смотрит на счётчик газа/воды BK-G4T) физически на t610, отдаёт **только MJPEG**. Работает через **аддон `a889bffc_go2rtc-hardware`** (в нём ffmpeg) → транскод MJPEG→H.264 отдельным `ffmpeg:`-источником → **RTSP `rtsp://192.168.2.176:8554/usb_camera_h264`** → в HA Generic Camera **`camera.192_168_2_176`** («Камера котельной», зона `kotelnaia`, `unique_id 01M2FX50K72X2RSYY549QSG3XP`, `rtsp_transport: tcp`). **WebRTC в приложении HA работает** (подтверждено Alex).
> **🔄 Поворот 90° добавлен** (камера стоит криво): суффикс **`#rotate=90`** в `ffmpeg:`-строке `/config/go2rtc.yaml`. Нативный параметр go2rtc (дока `go2rtc.org/internal/ffmpeg/`), работает при транскодинге. Поток стал `480x640`. **✅ Направление подтверждено Alex: «в ту»** — значение `90` верное. Бэкап `/config/go2rtc.yaml.bak-rotate-20260914-202817`.
> **❌ ОПРОВЕРГНУТО (вечер-11/13):** прежние записи в этом документе — «схема `camera: platform: ffmpeg` (`camera.usb_camera`)», «СХЕМУ МЕНЯЕМ, вечер-10», «зоне назначить нельзя, нет `unique_id`» — **устарели**. YAML-`ffmpeg`-камера была **отвергнута** (`Resource busy`, нет `unique_id`), заменена на `local_ustreamer` (вечер-11), затем на `go2rtc-hardware` (вечер-13). У финальной Generic Camera **`unique_id` ЕСТЬ**, зона `kotelnaia` назначена. **Каноны и питфоллы — [[family/plans/t610-home-automation]] §5-кватер-И-6 (КАНОН-1: синтаксис v4l2; КАНОН-2: поворот `#rotate=`).**
> ⚠️ **Камера = ОДИН процесс.** ustreamer и go2rtc вместе → залипание USB (`Failed to resubmit video URB (-1)`), лечится только power-cycle. `local_ustreamer` → `boot: manual`, `stopped` — оставлен для отката.
>
> **✅ ZONT MQTT — ПЕРЕНАПРАВЛЕН 2026-09-14:** на роутере `192.168.2.2` (OpenWrt) DNAT-правила `redirect[0]` (name `MQTT`) и `rule[3]` (name `allow-1883`) переключены `dest_ip` `192.168.2.197` → **`192.168.2.176`**. ZONT теперь пишет в mosquitto-**аддон на t610** (живой поток `modbus/sensors/kids/*`, `bedroom/*`). В настройках ZONT ничего не менялось — адрес `mqtt://zont:…@192.168.0.10:1883` остался тот же (`192.168.0.10` = wan-интерфейс самого роутера `192.168.2.2`). Бэкап правил: `/root/firewall.bak-20260914-092555`. Детали и откат — [[family/plans/t610-home-automation]] §5-кватер-Д. Также `/etc/config/dhcp`: `list address '/mallexxx.duckdns.org/192.168.0.10'` — внутренний DNS-пин для ZONT-сети.
>