[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
+7 -7
View File
@@ -2,16 +2,16 @@
> ✅ **ДОМАШНЯЯ АВТОМАТИЗАЦИЯ ПЕРЕНЕСЕНА НА 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`.
> **2026-09-14 (вечер-2, обновлено вечер-13) — Caddy ПЕРЕКЛЮЧЁН, Node-RED ПЕРЕНЕСЁН:**
> - **Caddy НЕ переносился и не будет:** 17 из 20 доменов `*.mallexxx.duckdns.org` — сервисы самого TrueNAS (immich, gitea, jellyfin, radarr, webdav, transmission, portainer…). Перенос Caddy на t610 положил бы их при падении t610. **✅ ПРАВКА ЗАВЕРШЕНА (факт-проверка 2026-09-14 вечер-13):** в `Caddyfile` остался **ОДИН** upstream на t610 — `mallexxx.duckdns.org` → `192.168.2.176:80` (HA, HTTP 200 ✅). **УБРАНЫ совсем:** `cam.mallexxx.duckdns.org` (камера на t610 по RTSP — домен не нужен) и `nodered.mallexxx.duckdns.org` (Node-RED — через ingress HA, решение Alex «оставляем так»). 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`.**
> **2026-09-14 (вечер-3) — ZONT MQTT ПЕРЕНАПРАВЛЕН НА t610:**
> - DNAT на роутере `192.168.2.2`: `firewall.@redirect[0]` (name `MQTT`) и `firewall.@rule[3]` (name `allow-1883`) — `dest_ip` `192.168.2.197` → **`192.168.2.176`**. `uci commit firewall` + `/etc/init.d/firewall reload`. Бэкап: `/root/firewall.bak-20260914-092555`.
> - **Результат:** ZONT пишет в mosquitto-**аддон на t610** (живой поток `modbus/sensors/kids/*`, `bedroom/*`). В настройках ZONT ничего не менялось (`mqtt://…@192.168.0.10:1883`, где `.0.10` = wan-интерфейс роутера `192.168.2.2`, не отдельный GPON-роутер).
> - ✅ **`dining/*` тоже публикуется (2026-09-14, позже):** прежняя версия «ZONT не публикует / мёртвый upstream» — **❌ ОПРОВЕРГНУТА**. Причина была в **баге сборки RTU-кадров в `modbus-bridge`** (19-байтный кадр гостиной рвался), фикс `3748feb` → все 7 полей `dining` живы. Подробно — [[family/plans/t610-home-automation]] §5-кватер-З.
> - **⚠️ «Камера на TrueNAS» — ИСПРАВЛЕНО (2026-09-14, вечер-10):** прежняя запись «камера = USB-вебка на t610, upstream `cam.*:8090` к камере отношения не имеет» — **❌ НЕВЕРНА**. Поиск в `Caddyfile.bak` доказал: **`cam.mallexxx.duckdns.org → 192.168.2.197:8090` — ЭТО И БЫЛА камера** на TrueNAS: отдельный HTTP-MJPEG-сервис (`ustreamer`/`mjpg-streamer`, порт 8090 — канон для «USB-вебка → MJPEG»). **Контейнер УТРАЧЕН** при пересоздании пула (локальный образ не пережил `.ix-apps`, папка/конфиг не сохранились, остался только след в `Caddyfile.bak`; из живого Caddyfile строка уже удалена). Сейчас вебка `046d:0825` физически в **t610** и заведена как `camera.usb_camera` (ffmpeg) — но эта схема даёт `Resource busy` и не даёт `unique_id`. **План: вернуть схему «отдельный MJPEG-сервис» (аддон ustreamer/go2rtc на t610 или контейнер на TrueNAS) → Generic Camera по URL → уникальный ID + зона.** Подробно — [[family/plans/t610-home-automation]] §5-кватер-И-3.
> - **Не перенесено с TrueNAS:** погашение TrueNAS-стека (Этап 4 п.6 — заблокировано: Caddy на TrueNAS держит точку входа).
> - **⚠️ «Камера на TrueNAS» — ИСПРАВЛЕНО (2026-09-14, вечер-10) + ✅ РЕШЕНО ОКОНЧАТЕЛЬНО (вечер-13):** прежняя запись «камера = USB-вебка на t610, upstream `cam.*:8090` к камере отношения не имеет» — **❌ НЕВЕРНА**. Поиск в `Caddyfile.bak` доказал: **`cam.mallexxx.duckdns.org → 192.168.2.197:8090` — ЭТО И БЫЛА камера** на TrueNAS: отдельный HTTP-MJPEG-сервис (`ustreamer`/`mjpg-streamer`, порт 8090 — канон для «USB-вебка → MJPEG»). **Контейнер УТРАЧЕН** при пересоздании пула (локальный образ не пережил `.ix-apps`; из живого Caddyfile строка удалена — `cam.*` больше нет). **✅ ФИНАЛ (вечер-13):** вебка `046d:0825` физически в **t610**, работает через **аддон `a889bffc_go2rtc-hardware`** → RTSP H.264 `rtsp://192.168.2.176:8554/usb_camera_h264` → **Generic Camera** `camera.192_168_2_176` (зона `kotelnaia`, `unique_id`, **WebRTC работает**, поворот `#rotate=90`). Схема `camera: platform: ffmpeg` в Core — **❌ ОТВЕРГНУТА** (`Resource busy` + нет `unique_id`). Подробно — [[family/plans/t610-home-automation]] §5-кватер-И-3/И-6.
> - **Не перенесено с TrueNAS:** погашение TrueNAS-стека (Этап 4 п.6 — заблокировано: Caddy на TrueNAS держит точку входа). **⚠️ Обновлено (вечер-13):** Caddy-часть и ZONT MQTT **закрыты** (в `Caddyfile` на t610 ведёт только `mallexxx.*`, `cam.*`/`nodered.*` убраны; MQTT DNAT `.197`→`.176`). Осталась только остановка самого TrueNAS-стека.
> Обновлено: 2026-09-02 (vpn.mallexxx:443 = РАБОЧИЙ Xray-сервер, проверено end-to-end; vless-proxy outbound мёртв)
@@ -203,16 +203,16 @@ arr, caddy, cups, filebrowser, gitea, hermes, immich, inpx-web, inpxer, library,
### Caddy — домены
| Домен | → |
|-------|---|
| mallexxx.duckdns.org | Home Assistant :8123 |
| mallexxx.duckdns.org | **HA на t610** `192.168.2.176:80` ✅ (2026-09-14) |
| transmission.mallexxx.duckdns.org | Transmission :9091 |
| immich.mallexxx.duckdns.org | Immich :2283 |
| nodered.mallexxx.duckdns.org | Node-RED :1880 |
| ~~nodered.mallexxx.duckdns.org~~ | **❌ УБРАН из Caddyfile (2026-09-14):** Node-RED теперь аддон на t610, наружу НЕ выпущен — доступ через ingress HA. Решение Alex «оставляем так» |
| webdav.mallexxx.duckdns.org | WebDAV |
| books.mallexxx.duckdns.org | Inpxer :18080 🔒 basicauth (user: books-admin) |
| library.mallexxx.duckdns.org | library-app :8080 🔒 basicauth (user: books-admin) |
| portainer.mallexxx.duckdns.org | Portainer :9000 |
| truenas.mallexxx.duckdns.org | TrueNAS UI :80 |
| cam.mallexxx.duckdns.org | Камера :8090 ⚠️ **❌ УДАЛЕНО из живого Caddyfile** (2026-09-14). Исторический upstream: `192.168.2.197:8090` — отдельный HTTP-MJPEG-сервис (`ustreamer`), контейнер утрачен при пересоздании пула. Камера теперь на **t610** аддоном `local_ustreamer` (MJPEG :8090) и заведена в HA как `camera.192_168_2_176` (зона Котельная) — подробно [[family/plans/t610-home-automation]] §5-кватер-И-5 |
| ~~cam.mallexxx.duckdns.org~~ | **❌ УБРАН из Caddyfile (2026-09-14).** Исторический upstream: `192.168.2.197:8090` — отдельный HTTP-MJPEG-сервис (`ustreamer`), контейнер утрачен при пересоздании пула. **Камера теперь на t610:** аддон **`a889bffc_go2rtc-hardware`** → RTSP H.264 `rtsp://192.168.2.176:8554/usb_camera_h264``camera.192_168_2_176` (зона Котельная, **WebRTC работает**, поворот `#rotate=90`). Домен не нужен. Подробно [[family/plans/t610-home-automation]] §5-кватер-И-6 |
| **vpn-panel.mallexxx.duckdns.org** | **3x-ui панель :2053** (добавлен 2026-09-01) |
| **vpn.mallexxx.duckdns.org** | **Xray VLESS-WS (путь /vless) → xray-admin:10095** (добавлен 2026-09-01) |