diff --git a/family/how-to/home-automation.md b/family/how-to/home-automation.md index 3ec23609..49370087 100644 --- a/family/how-to/home-automation.md +++ b/family/how-to/home-automation.md @@ -22,6 +22,10 @@ related: > 📌 **Всё про миграцию** — хост, доступ, карта USB/гнёзд, аддоны, Zigbee, питфоллы, текущее состояние — **в единственном документе [[family/plans/t610-home-automation]]. НЕ дублировать сюда.** > 📌 **Этот документ — справочник по ЖЕЛЕЗУ:** AT2 (параметры/PWM), карта Slave ID, регистры заслонок/реле, ZONT relays. Оборудование и адреса Modbus при миграции не меняются. > **Текущее состояние:** `unavailable` в HA — **10** (было 44). Причина была в **перепутанных гнёздах аддонов** (`mbusd`↔`modbus-bridge`) — исправлено обменом привязок. **ZONT ещё НЕ перенаправлен** на MQTT t610 — редирект GPON-роутера пока смотрит на TrueNAS. +> +> **🔴 ZONT MQTT — подтверждено 2026-09-14:** на роутере `192.168.2.2` (OpenWrt) есть DNAT-правило `MQTT`: `wan:1883 → 192.168.2.197:1883` (mosquitto на **TrueNAS**), `src_ip 192.168.0.0/24` (сеть GPON/ZONT). Также `/etc/config/dhcp`: `list address '/mallexxx.duckdns.org/192.168.0.10'` — внутренний DNS-пин для ZONT-сети. **Для остатка Этапа 4:** переключить DNAT `MQTT` на `192.168.2.176:1883` (mosquitto-аддон на t610). +> +> **🔌 ZONT 485 спит на гнезде 4** (`/dev/serial/by-path/pci-0000:00:12.0-usb-0:4:1.0-port0`), вентиляция — гнездо 3. `modbus-bridge` (аддон на t610) сниффит ZONT-шину и публикует в MQTT топики `modbus/sensors/<комната>/<параметр>`. **Сейчас публикуются только `kids` и `bedroom`** (temperature/co2/humidity) — `dining/*` НЕ публикуется: ZONT опрашивает slave 1 / reg 100 каждые 5 с, датчик отвечает значением **0** → bridge отбрасывает как невалидное. Датчик физически есть (подтверждено Alex'ом), причина нуля не установлена. ## AT2 — калибровка PWM diff --git a/family/how-to/truenas-infrastructure.md b/family/how-to/truenas-infrastructure.md index b501681b..b1e6f361 100644 --- a/family/how-to/truenas-infrastructure.md +++ b/family/how-to/truenas-infrastructure.md @@ -1,6 +1,12 @@ # TrueNAS — инфраструктура -> ✅ **ДОМАШНЯЯ АВТОМАТИЗАЦИЯ ПЕРЕНЕСЕНА НА HP t610 (2026-09-14).** HA, zigbee2mqtt, mosquitto, mbusd, modbus-bridge переехали на **t610** (HA OS, `192.168.2.176`). Единый документ по t610 — [[family/plans/t610-home-automation]]. **TrueNAS-стек автоматизации пока работает как есть — не отключён** (отключение = Этап 4). Причина переноса: TrueNAS на пределе RAM (17/21 ГБ). +> ✅ **ДОМАШНЯЯ АВТОМАТИЗАЦИЯ ПЕРЕНЕСЕНА НА HP t610 (2026-09-14).** HA, zigbee2mqtt, mosquitto, mbusd, modbus-bridge **и flows Node-RED** переехали на **t610** (HA OS, `192.168.2.176`). Единый документ по t610 — [[family/plans/t610-home-automation]]. **TrueNAS-стек автоматизации пока работает как есть — не отключён** (отключение = Этап 4). Причина переноса: TrueNAS на пределе RAM (17/21 ГБ). +> +> **2026-09-14 (вечер-2) — Caddy ПЕРЕКЛЮЧЁН, Node-RED ПЕРЕНЕСЁН:** +> - **Caddy НЕ переносился и не будет:** 17 из 20 доменов `*.mallexxx.duckdns.org` — сервисы самого TrueNAS (immich, gitea, jellyfin, radarr, webdav, transmission, portainer…). Перенос Caddy на t610 положил бы их при падении t610. **Правлены только 2 upstream:** `mallexxx.duckdns.org` → `192.168.2.176:80` (HA на t610, HTTP 200) и `nodered.mallexxx.duckdns.org` → `192.168.2.176:1880` (**⚠️ этот сейчас отдаёт 401 от nginx HA, а не Node-RED — не используется, см. ниже**). Caddyfile: `/mnt/RED_2TB/docker/caddy/Caddyfile` (root-owned — агент только стейджит в `/tmp/`, подменяет Alex), бэкап `Caddyfile.bak-20260914`. Порты контейнера: `8088:80`, `8443:443`; DNAT на роутере `192.168.2.2`: `wan:80→192.168.2.197:8088`, `wan:443→192.168.2.197:8443`. +> - **Node-RED flows перенесены на t610** (`/addon_configs/a0d7b954_nodered/flows.json`, 68 узлов, узел `server` → `addon: true`). **Наружу НЕ выпущен** (порт-маппинг при `host_network: true` глушится, снимается только в UI) — доступ через ingress HA. Node-RED в докере TrueNAS (`/mnt/RED_2TB/docker/nodered/`, порт `1880:1880`) **продолжает работать** как источник/откат. +> - **🔴 Важно про доступ к HA извне:** `/config/.storage/http` на t610 требовал `trusted_proxies += 192.168.2.197/32`, иначе Caddy с другого хоста даёт **400** (HA `use_x_forwarded_for: true`). Обобщение: **IP любого внешнего reverse-proxy обязан быть в `trusted_proxies`.** +> - **Не перенесено с TrueNAS:** GPON-редирект → t610, **ZONT MQTT** (сейчас ZONT шлёт на `192.168.2.197:1883` — DNAT-правило `MQTT` на роутере `192.168.2.2`), камера (`cam.*` → мёртвый upstream `.197:8090`). > Обновлено: 2026-09-02 (vpn.mallexxx:443 = РАБОЧИЙ Xray-сервер, проверено end-to-end; vless-proxy outbound мёртв) diff --git a/family/plans/t610-home-automation.md b/family/plans/t610-home-automation.md index 64aae9db..5d0f1e3b 100644 --- a/family/plans/t610-home-automation.md +++ b/family/plans/t610-home-automation.md @@ -1405,7 +1405,28 @@ docker restart caddy **Правило (в процессные уроки):** **root-owned файлы TrueNAS агент не пишет** — готовит и стейджит в `/tmp/`, **подменяет Alex**. `sudo -S` с паролем у `truenas_admin` не прошёл. -**Открытые вопросы:** ① нужен ли пустой t610-Node-RED / переносить flows? ② копать ли «0» датчика столовой; ③ «замерзание» лога bridge; ④ GPON-редирект и ZONT MQTT → t610 (остаток Этапа 4); ⑤ где живёт точка входа, если TrueNAS нельзя гасить. +**Открытые вопросы:** ~~① нужен ли пустой t610-Node-RED / переносить flows?~~ — **✅ ЗАКРЫТ: flows перенесены, Node-RED работает (§5-кватер-Г)**; ② копать ли «0» датчика столовой; ③ «замерзание» лога bridge; ④ GPON-редирект и ZONT MQTT → t610 (остаток Этапа 4); ⑤ где живёт точка входа, если TrueNAS нельзя гасить. + +--- + +### 2026-09-14 (вечерняя сессия-2: перенос flows Node-RED, разбор порта) + +**Контекст:** Alex открыл `nodered.mallexxx.duckdns.org` → basic auth вместо Node-RED. Разбор вскрыл, что агент **при миграции не перенёс flows Node-RED** с TrueNAS. + +**Что сделано:** + +| Тема | Результат | +|---|---| +| Диагноз «basic auth» | `server: nginx` + `realm="Home Assistant Authentication"` = **nginx HA OS (ingress)**, не Node-RED. Порт 1880 на t610 занят nginx'ом HA | +| 🔴 Ошибка миграции | `flows.json` на t610 был **124 б (пусто)**; на TrueNAS — **54 955 б, 68 узлов**. Alex: «ты не перенёс все с truenas значит» | +| Перенос | `flows.json` скопирован с TrueNAS (`jq '(.[]|select(.type=="server")|.addon)=true'`); опция `npm_packages: ["node-red-contrib-home-assistant-websocket@0.80.3"]`; рестарт | +| ✅ Результат | `[server:Home Assistant] Connected to http://supervisor/core`, **ошибок 0** (было 24 × `Invalid server config`) | +| Питфолл токена | Токена HA в файлах Node-RED **нет вообще** (ни в `flows_cred.json`, ни в `settings.js`) — не искать, ставить `addon: true` | +| ❌ Порт наружу | `host_network: true` глушит маппинг; снять его через API **нельзя** (404/`extra keys not allowed`) — только UI. Слушает `127.0.0.1:46836`. **Alex: «ок. оставляем так»** → доступ через ingress | + +**Что менялось в железе:** `flows.json` на t610 (заменён на версию с `addon: true`), опции аддона `a0d7b954_nodered` (`npm_packages`), рестарт аддона. **Caddy НЕ менялся** в этой части. + +**Бэкапы:** t610 `/addon_configs/a0d7b954_nodered/backup-20260914-161031/`; локально `~/tmp-nodered/flows.truenas.json` (оригинал). ---