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

This commit is contained in:
Alexey Martemyanov
2026-09-14 19:38:10 +06:00
parent fe0a9c821c
commit 95625da96c
+4 -4
View File
@@ -1971,10 +1971,10 @@ curl -s -X POST -H "$HDR" -H "Content-Type: application/json" \
| ~~4~~ | ~~**Камера** — найти образ/папку, поднять на t610, поправить upstream в Caddy~~**✅✅ РЕШЕНО ОКОНЧАТЕЛЬНО 2026-09-14 (вечер-11, §5-кватер-И-3/И-5):** найден исторический след (`cam.mallexxx.duckdns.org → 192.168.2.197:8090` в `Caddyfile.bak`) → схема восстановлена: аддон **`local_ustreamer`** на t610 (MJPEG :8090) + **Generic Camera** по URL → `camera.192_168_2_176`, кадр JPEG 640×480, **`unique_id` есть**, зона `kotelnaia`. Прежняя ffmpeg-схема (вечер-9) — отвергнута | ✅ закрыто |
| ~~4-зона~~ | ~~**Камера: привязать к зоне `kotelnaia` (Котельная)**~~**✅✅ ВЫПОЛНЕНО 2026-09-14 (вечер-11, §5-кватер-И-5).** Ключ: через **Generic Camera** камера получает `unique_id``entity_registry/update` с `area_id: kotelnaia` работает. Плюс имя устройства/сущности «Камера котельной». Прежний вывод «невозможно, только переименование» — ❌ опровергнут | ✅ закрыто |
| ~~5~~ | ~~**Этап 4:** Caddy upstream → t610~~**✅ ЧАСТЬ «CADDY» ЗАКРЫТА 2026-09-14 (см. §5-кватер-Б/В):** Caddyfile залит (Alex подменил файл + `restart caddy`), `mallexxx.duckdns.org`**HTTP 200** (HA на t610, подтверждено Alex'ом), попутно исправлен `trusted_proxies` в `.storage/http` (§5-кватер-В-1). **ОСТАЛОСЬ из Этапа 4:**`nodered.*` — починить порт (см. задачу 5-нр ниже); ② GPON-редирект → t610; ③ ZONT MQTT → t610. **🔴 Архитектурный вывод: Caddy НЕ переносить** (17 из 20 доменов — сервисы TrueNAS) | — |
| 5-нр | **Node-RED: flows перенесены с TrueNAS → t610, РАБОТАЕТ.** ~~Alex выбрал «выставить порт наружу»~~ → через API не удалось (`host_network` снимается только в UI, маппинг при нём игнорируется). **Alex: «ок. оставляем так»** — наружу НЕ выпущен, доступ через ingress. 68 узлов, `[server:Home Assistant] Connected to http://supervisor/core`, ошибок 0. Ключевая правка: узел `server` `addon: false``true`. Подробно — **§5-кватер-Г**. Остаётся на будущее (если понадобится домен): снять `host_network` в UI + Caddy → `:11880` | ✅ сделано |
| ~~5-нр~~ | ~~**Node-RED: flows перенесены с TrueNAS → t610**~~**✅ ЗАКРЫТО.** ~~Alex выбрал «выставить порт наружу»~~ → через API не удалось (`host_network` снимается только в UI, маппинг при нём игнорируется). **Alex: «ок. оставляем так»** — наружу НЕ выпущен, доступ через ingress. 68 узлов, `[server:Home Assistant] Connected to http://supervisor/core`, ошибок 0. Ключевая правка: узел `server` `addon: false``true`. Подробно — **§5-кватер-Г**. Остаётся на будущее (если понадобится домен): снять `host_network` в UI + Caddy → `:11880` | ✅ сделано |
| 5-мк | **ZONT MQTT → t610** (остаток Этапа 4). Переключить на роутере `192.168.2.2` (OpenWrt) DNAT: `firewall.@redirect[0]` (name `MQTT`) `dest_ip` `.197``.176` **и** `firewall.@rule[3]` (name `allow-1883`) `dest_ip` `.197``.176`. В ZONT ничего не менять. Схема, питфоллы, проверки — **§5-кватер-Д**. ⚠️ Перед правкой: `uci export firewall > backup`. ⚠️ Порт 1883 t610 OPEN, юзер `zont` есть, пароль `mqtt1z3$` проверен | **✅ сделано 2026-09-14** — оба правила → `.176`, `uci commit` + firewall reload, ZONT пошёл в mosquitto t610 (живой поток kids/bedroom). Бэкап `/root/firewall.bak-20260914-092555` |
| ~~5-арх~~ | ~~«Перенести Caddy на OpenWrt/t610»~~**❌ ОТВЕРГНУТО (§5-кватер-Б):** на OpenWrt 80/443 заняты `uhttpd`; у Caddy 17 доменов TrueNAS → при переносе падение t610 положит все медиасервисы. **Caddy остаётся на TrueNAS.** | — |
| 6 | Остановить + отключить автозапуск сервисов на TrueNAS (не удалять — откат). **⚠️ ЗАБЛОКИРОВАНО дважды:** ① пока Caddy на TrueNAS — он держит точку входа; ② **на TrueNAS всё ещё живой полный стек** (`homeassistant`, `mbusd` 502, `mosquitto` 1883, `nodered` 1880 — все `Up`, проверено 2026-09-14 вечер-3), и **ZONT пишет MQTT именно туда**. Гасить можно только после пункта 5-мк и решения по точке входа (§5-кватер-Б) | — |
| 6 | Остановить + отключить автозапуск сервисов на TrueNAS (не удалять — откат). **✅ РАЗБЛОКИРОВАНО 2026-09-14:** условие снято — п. **5-мк СДЕЛАН** (ZONT MQTT → t610). **Гасим ТОЛЬКО стек автоматизации:** `homeassistant` (8123), `mbusd` (502), `mosquitto` (1883), `nodered` (1880), + `zigbee2mqtt`/`modbus-bridge` если есть. **🔴 Caddy НЕ ГАСИТЬ и не переносить** — он не в списке, он рабочий элемент (17 доменов TrueNAS + `mallexxx.*` → t610) | — |
| ~~7~~ | ~~Static IP для t610 на роутере (сейчас DHCP)~~**✅ ВЫПОЛНЕНО 2026-09-14 (вечер-8, §5-кватер-И-1):** `dhcp.@host[1]` = `t610` / MAC `9c:8e:99:ef:3f:c5` / `192.168.2.176`, бэкап `/root/dhcp.bak-20260914-104152` | ✅ закрыто |
| 8 | Бэкап конфигов t610 → Mac + TrueNAS + git (Gitea `git.mallexxx.duckdns.org`). **📌 Добавить в бэкап:** `/config/.storage/http` (фикс `trusted_proxies`), сам `Caddyfile`, `/config/go2rtc.yaml` (камера + поворот `#rotate=90`), `/config/automations.yaml`, а также `data/config.template.tmpl` аддона `modbus-bridge` (там живёт маппинг реле котла) | — |
| ~~9~~ | ~~**Zigbee-реле котла → modbus-bridge**~~**✅✅ ВЫПОЛНЕНО + ПОДТВЕРЖДЕНО ALEX 2026-09-14 (вечер-13, §5-кватер-И-7):** `switch.boiler_controller_power` = **`slave 104, рег. 1`** (bidirectional). Бэкап `.bak-relay-20260914-200827` | ✅ закрыто |
@@ -1987,7 +1987,7 @@ curl -s -X POST -H "$HDR" -H "Content-Type: application/json" \
**✅ Закрыто / установлено в этой сессии (2026-09-14, вечерняя верификация 15:33):**
- **Регресс-проверка после обмена гнёзд — ПРОЙДЕНА (только чтение, ничего не менялось).** Оба аддона `started`, привязки совпадают с финалом (`mbusd``usb-0:3`, `bridge``usb-0:4`), сниффинг живой (slave 1/2/3/14/20/101/103, CRC OK), MQTT публикуется. Срочный пункт «гнездо 4 отключено» — **закрыт**.
- **Осталось 10 `unavailable` — все известные и объяснённые.** Пересчёт 2026-09-14 15:39: **7** — slave 10 (AT2 fans) закомментирован, задача снята — не поломка; **2**`dining_summary`/`dining_air_summary` (причина: ZONT не публикует `modbus/sensors/dining/*`, НЕ `\|default(0)` — см. §5-тер); **1**`todo.shopping_list` системная. `switch.sauna` — розетка обесточена. Ничего нового не сломалось.
- **Осталось 10 `unavailable` — все известные и объяснённые.** Пересчёт 2026-09-14 15:39: **7** — slave 10 (AT2 fans) закомментирован, задача снята — не поломка; **2**`dining_summary`/`dining_air_summary` ~~(причина: ZONT не публикует `modbus/sensors/dining/*`)~~ **❌ ОПРОВЕРГНУТО (2026-09-14, вечер-6/7):** эти два summary **ожили** после фикса сборки кадров `3748feb` (п.3 плана — закрыт). Данные ZONT публикует, `unavailable` 10→8. Прежняя формулировка «ZONT не публикует» — неверна; **1**`todo.shopping_list` системная. `switch.sauna` — розетка обесточена. Ничего нового не сломалось.
- **⚠️ Новое наблюдение:** лог `modbus-bridge` не писался ~7 ч (последняя строка `08:32:58` при времени `15:33`) при `state: started`; `ha apps restart local_modbus-bridge` оживил. **Причина НЕ установлена — теорий не строить, проверять фактом.** Приём «restart для оживления bridge» задокументирован в §1.
- **Деталь привязки:** `by-path` `usb-0:3`/`usb-0:4` **нестабильны по tty-номеру** (`usb-0:4``ttyUSB1`, `usb-0:3``ttyUSB0` на момент проверки). Работать **только по by-path**, tty-номера не запоминать (§3).
@@ -1995,7 +1995,7 @@ curl -s -X POST -H "$HDR" -H "Content-Type: application/json" \
- **📹 Поворот камеры 90°** — `#rotate=90` в `/config/go2rtc.yaml` (нативный параметр go2rtc, работает при транскодинге). Поток стал `480x640`, кадр проверен, CPU `load 0.20`. **Alex: «Все хорошо, в ту»** — направление подтверждено. Канон — §5-кватер-И-6 (КАНОН-2). Бэкап `/config/go2rtc.yaml.bak-rotate-20260914-202817`, скрипт `~/tmp-t610/relay/patch_rotate.py`.
- **📹 B3 / Этап 4 закрыт** — факт-проверка роутера: `firewall.@redirect[0]` (MQTT) и `@rule[3]` `dest_ip=192.168.2.176` (ZONT MQTT → t610). Отдельного «GPON-роутера» нет.
- **📹 Caddy ПЕРЕСТРОЕН** — из `Caddyfile` убраны `cam.*` (камера на t610 по RTSP) и `nodered.*` (ingress HA); на t610 ведёт **только** `mallexxx.duckdns.org``192.168.2.176:80`. Обновлён [[family/how-to/truenas-infrastructure]].
- **⚠️ Осталось:** бэкап конфигов t610 (п.8, A3); погашение TrueNAS-стека; в роутере остался `redirect[1]` HA `8123``.197` — проверить нужность.
- **⚠️ ОСТАЛОСЬ 2 пункта:** ① **п.8** — бэкап конфигов t610 (A3); ② **п.6** — погасить на TrueNAS стек автоматизации (`homeassistant`/`mbusd`/`mosquitto`/`nodered`) — **РАЗБЛОКИРОВАН** (5-мк закрыт), **Caddy не гасить**. Хвост: ротация токена из remote `nolvu-landing`; в роутере `redirect[1]` HA `8123``.197` помечен `enabled='0'` — мёртвый, можно удалить.
**✅ Закрыто / установлено в этой сессии (2026-09-14, позднейшая, Modbus-диагностика):**
- **Опции mbusd — откат подтверждён.** Аддон `started`, значения `timeout 1000 / retries 3 / maxconn 8` (как было). `maxconn` **не трогать** (питфолл в §5).