[2026-09-14] eagle: family/how-to/home-automation.md family/how-to/truenas-infrastructure.md family/how-to/zont-modbus-bridge-udev-race-protection.md family/plans/t610-home-automation.md
This commit is contained in:
@@ -30,6 +30,8 @@ related:
|
||||
>
|
||||
> **✅ 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-сети.
|
||||
>
|
||||
> **⛔ ДЕКОМИССИЯ TrueNAS-СТЕКА (2026-09-14, ночь):** старый стек автоматизации на TrueNAS **погашен** — `homeassistant`, `mbusd`, `mosquitto`, `nodered`, `zigbee2mqtt`, `modbus-bridge`, `ser2net` (`docker stop` + `--restart=no`, **НЕ удалены**). Контейнеров на TrueNAS в этой схеме **больше нет** — весь домашний контур живёт на **t610** (`192.168.2.176`). USB-адаптеры CH340 физически на t610 → на TrueNAS узлов `/dev/ttyVent`/`/dev/ttyZONT` не существует. Полный разбор — [[family/plans/t610-home-automation]] §5-кватер-Л, канон-блок — [[family/how-to/truenas-infrastructure]].
|
||||
>
|
||||
> **🔌 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` И `dining`.**
|
||||
>
|
||||
> **✅ `dining/*` — ПОЧИНЕН 2026-09-14 (коммит `3748feb`).** Настоящая причина: **баг сборки RTU-кадров в `modbus_ha_bridge.py`** — ответы рвались (`ser.read(ser.in_waiting or 1)` + короткий таймаут), байты-сироты копились в голове буфера → сдвиг выравнивания → **19-байтный** кадр гостиной не сходился по CRC и молча отбрасывался (12-байтные `kids`/`bedroom` проскакивали). Фикс по канону libmodbus/pymodbus: **T3.5-разграничение** (пауза ≥ 3.5 символа = конец кадра; при 9600 бод = 4.01 мс) + **сброс битого буфера** (`buf = b""`, аналог `resetFrame`). Итог: 7/7 полей `dining` публикуются, `unavailable` 10→8. Диагностика `MODBUS_DEBUG_RAW` снята.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
>
|
||||
> **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`) **продолжает работать** как источник/откат.
|
||||
> - **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/`) **✅ ПОГАШЕН 2026-09-14** (`stop` + `--restart=no`; папка цела, откат = `docker start nodered` + `--restart=unless-stopped`).
|
||||
> - **🔴 Важно про доступ к 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`.
|
||||
@@ -25,13 +25,11 @@
|
||||
> ## ✅ СТАТУС на 2026-08-25: пул ONLINE, docker поднят, почти все контейнеры Up
|
||||
> **Пул RED_2TB пересоздан (2026-08-21) и работает:** `zpool status` ONLINE, rsync возврата данных завершён, `/mnt/RED_2TB/` смонтирован.
|
||||
> **Docker: ПОДНЯТ на 2026-08-25.** Почти все контейнеры Up (zigbee2mqtt, webdav, vless-proxy, homeassistant, caddy, transmission, syncthing, mosquitto, nodered, immich*, gitea, filebrowser, portainer*, hermes-taiga и др.). ✅ **cups-splix поднят 2026-08-26** — образ собран заново (`docker build -t cups-splix .`), контейнер запущен `docker compose up -d`, порт 631 открыт, принтер `Samsung_CLX-216x_Series` активен (USB `04e8:3425`). Причина былого падения: образ локальный, потерян при восстановлении пула (`.ix-apps` не переносился), вручную не пересобирали. Рецепт — ниже, раздел «Печать / cups-splix». Ещё не подняты (проверить при надобности): inpxer/inpx-web/arr/ser2net.
|
||||
> **⚠️ Известная проблема modbus-bridge/mbusd — гонка с udev при рестарте TrueNAS:**
|
||||
> - После перезагрузки docker стартует раньше udev, поэтому `/dev/ttyZONT` и `/dev/ttyVent` на момент старта контейнеров ещё не существуют.
|
||||
> - Контейнеры с `devices: /dev/ttyZONT:...` падают на `start` с `error gathering device information while adding custom device "/dev/ttyZONT": no such file or directory` (ExitCode 128/255, RestartCount=0).
|
||||
> - `restart: unless-stopped` НЕ перезапускает такой контейнер (отказ до старта процесса).
|
||||
> - Следствие: modbus-bridge не отвечает на шине → 485-датчики в ZONT отображаются **«недоступные»**.
|
||||
> - Ручной фикс: `docker start modbus-bridge mbusd` (после готовности tty-симлинков).
|
||||
> - Защита от рецидива (план, НЕ внедрён — ждёт OK Alex): `family/how-to/zont-modbus-bridge-udev-race-protection.md` — POSTINIT init script с ожиданием симлинков + `docker start`.
|
||||
> **⚠️ ИСТОРИЧЕСКАЯ проблема modbus-bridge/mbusd — гонка с udev при рестарте TrueNAS (❌ БОЛЬШЕ НЕАКТУАЛЬНА):**
|
||||
> - ~~После перезагрузки docker стартует раньше udev, поэтому `/dev/ttyZONT` и `/dev/ttyVent` на момент старта контейнеров ещё не существуют.~~
|
||||
> - **✅ НЕАКТУАЛЬНО с 2026-09-14:** USB-адаптеры (CH340 ZONT/вентиляция) **физически перенесены на t610** → на TrueNAS узлов `/dev/ttyZONT` / `/dev/ttyVent` **нет вообще**, а сами контейнеры `mbusd`, `modbus-bridge`, `ser2net` **погашены** (`stop` + `--restart=no`). Проверка: `ls /dev/ttyUSB*` → пусто; `/sys/bus/usb/devices` содержит только принтер Samsung `04e8:3425` (**`lsusb` на TrueNAS не установлен** — использовать `/sys/bus/usb/devices`).
|
||||
> - **Актуальная гонка udev живёт на t610** — см. [[family/how-to/zont-modbus-bridge-udev-race-protection]].
|
||||
> - ⚠️ **Историческая справка (если когда-нибудь откатывать):** `restart: unless-stopped` НЕ перезапускает контейнер, упавший на `start` из-за отсутствующего device-узла (отказ до старта процесса, ExitCode 128/255, RestartCount=0); лечилось ручным `docker start modbus-bridge mbusd` после готовности симлинков.
|
||||
> **⚠️ ДРУГОЕ (открытое):** пул `DEST` (IronWolf) на 2026-08-24 `DEGRADED` — разобраться, почему (отвалился mirror-член). TimeMachine (~277G) не возвращён (бэкапы macOS, вероятно не нужен — решение Alex не подтверждено). SSH с Mac по 192.168.2.197 нестабилен — использовать `mallexxx.duckdns.org`.
|
||||
|
||||
> ## 🔒 ИСТОРИЯ: статус до восстановления (2026-08-24)
|
||||
@@ -173,21 +171,50 @@ docker compose up -d
|
||||
**✅ Есть `docker-compose.yml` (поднимаются `docker compose -f ... up -d`)** — 22 шт:
|
||||
arr, caddy, cups, filebrowser, gitea, hermes, immich, inpx-web, inpxer, library, mbusd, mosquitto, nodered, portainer-mcp, portainer, rclone, ser2net, syncthing, transmission, vless-proxy, watchtower, **xray-admin (3x-ui, добавлен 2026-09-01)**
|
||||
|
||||
> 🔴 **ВАЖНО (2026-09-14):** `mbusd`, `mosquitto`, `nodered`, `ser2net` **погашены** — поднимать их обратно **НЕ НАДО** (переехали на t610). Остальные — активны.
|
||||
|
||||
**⚠️ НЕТ compose-файла — только конфиг (восстанавливать вручную, параметры из доки ниже):**
|
||||
- **ha** — Home Assistant: `/mnt/RED_2TB/docker/ha/` (automations.yaml). Образ `ghcr.io/home-assistant/home-assistant:stable`, порт `8123`, volume `/mnt/RED_2TB/docker/ha` → `/config`.
|
||||
- **webdav** — `/mnt/RED_2TB/docker/webdav/` (config.yml). Образ `hacdias/webdav:latest`, домен webdav.mallexxx.duckdns.org.
|
||||
- **modbus-bridge** — `/mnt/RED_2TB/docker/modbus-bridge/` (config.yml + modbus_ha_bridge.py). Образ `modbus-bridge` (локальная сборка из репо `HA-ZONT-Modbus`). Volumes: config.yml → `/app/config.yml` (ro), modbus_ha_bridge.py → `/app/modbus_ha_bridge.py` (ro).
|
||||
- **zigbee2mqtt** — `/mnt/RED_2TB/docker/zigbee2mqtt/` (configuration.yaml). Образ `koenkk/zigbee2mqtt:latest`, работает через mosquitto.
|
||||
- **homeassistant** — в доке упомянут как отдельный контейнер (порт 8123, volume → /config); папка `docker/homeassistant/` есть, но название контейнера в таблице `homeassistant`, а папка конфига HA фактически `ha/`. При восстановлении сверить, какой реально используется.
|
||||
- ~~**ha** — Home Assistant: `/mnt/RED_2TB/docker/ha/` (automations.yaml)~~ → 🔴 **ПОГАШЕН 2026-09-14.** Папка **сохранена как ЭТАЛОН конфига** (`configuration.yaml`, modbus-блок построчно идентичен t610, 32 заслонки) — **не удалять**.
|
||||
- **webdav** — `/mnt/RED_2TB/docker/webdav/` (config.yml). Образ `hacdias/webdav:latest`, домен webdav.mallexxx.duckdns.org. ✅ активен (compose на самом деле есть, см. строку выше).
|
||||
- ~~**modbus-bridge** — `/mnt/RED_2TB/docker/modbus-bridge/`~~ → 🔴 **ПОГАШЕН 2026-09-14** (`Exited (0)` с 14.09 01:59 — узел `/dev/ttyZONT` исчез). Папка цела.
|
||||
- ~~**zigbee2mqtt** — `/mnt/RED_2TB/docker/zigbee2mqtt/`~~ → 🔴 **ПОГАШЕН 2026-09-14** (`Exited (2)` — координатор на t610).
|
||||
- ~~**homeassistant** — папка `docker/homeassistant/`~~ → **ПУСТАЯ и не использовалась**; рабочая была `ha/` (см. выше).
|
||||
|
||||
### Порядок восстановления docker-стека (зависимости)
|
||||
|
||||
1. **docker engine:** `systemctl enable --now docker` (после создания data-root, см. шапку). Проверка: `docker info | grep -iE "Server Version|Docker Root Dir"`.
|
||||
2. **Инфраструктура/сеть:** mosquitto (MQTT) → zigbee2mqtt (нужен mosquitto) → nodered (MQTT) → caddy (прокси, тянет все домены) → vless-proxy (SOCKS5 для hermes).
|
||||
2. **Инфраструктура/сеть:** ~~mosquitto (MQTT) → zigbee2mqtt (нужен mosquitto) → nodered (MQTT)~~ — 🔴 **все три ПОГАШЕНЫ 2026-09-14, на TrueNAS НЕ ВОССТАНАВЛИВАТЬ** (живут на t610). Остаётся: caddy (прокси, тянет все домены) → vless-proxy (SOCKS5 для hermes).
|
||||
3. **Умный дом:** ⛔ **на TrueNAS БОЛЬШЕ НЕ ВОССТАНАВЛИВАТЬ** — переехало на t610 (см. «Декомиссия стека автоматизации»), **стек ПОГАШЕН 2026-09-14**. `mbusd` (Modbus TCP:502) → `modbus-bridge` (через mbusd) → `ha` (homeassistant, нужен caddy для домена) — **всё это теперь аддоны на `192.168.2.176`**.
|
||||
4. **Медиа/хранилище:** transmission (нужен caddy) → arr (radarr/sonarr/prowlarr) → inpxer (books), inpx-web, library → rclone, syncthing, filebrowser, webdav, gitea. ⚠️ `inpxer`/`inpx-web`/`library` — на 2026-09-14 в циклическом краше (см. декомиссию).
|
||||
4. **Медиа/хранилище:** transmission (нужен caddy) → arr (radarr/sonarr/prowlarr) → inpxer (books), inpx-web, library → rclone, syncthing, filebrowser, webdav, gitea. ⚠️ `inpxer`/`inpx-web` — на 2026-09-14 в циклическом краше (НЕ трогать по указанию Alex); `library` — погашен 2026-09-14 (см. декомиссию).
|
||||
5. **Сервисы/свои:** hermes-taiga (нужен vless-proxy), portainer, portainer-mcp, watchtower, cups. ~~ser2net~~ — **погашен 2026-09-14** (конфликт порта 502 с mbusd).
|
||||
6. **Проверка:** `docker ps`. HA: `docker exec homeassistant python -m homeassistant --script check_config --config /config`.
|
||||
6. **Проверка:** `docker ps`. HA (если когда-нибудь поднимать обратно): `docker exec homeassistant python -m homeassistant --script check_config --config /config` — но 🔴 контейнер **погашен**, живая HA = аддон на t610 `192.168.2.176`.
|
||||
|
||||
### ⛔ Декомиссия стека автоматизации TrueNAS (2026-09-14) — КАНОН
|
||||
|
||||
**Погашено 7 контейнеров** (`docker stop` + `docker update --restart=no`, **НЕ удалены**):
|
||||
|
||||
`homeassistant`, `mbusd`, `mosquitto`, `nodered`, `zigbee2mqtt`, `modbus-bridge`, `ser2net`
|
||||
|
||||
- **Почему:** всё это работает на **t610** (HA OS, `192.168.2.176`) как HA-аддоны; на TrueNAS ресурсы дублировались впустую, а `mbusd`/`modbus-bridge`/`zigbee2mqtt` вообще были мертвы (USB-адаптеры переехали физически).
|
||||
- **Папки `/mnt/RED_2TB/docker/*` ЦЕЛЫ.** Откат: `docker start <name>` + `docker update --restart=unless-stopped <name>`.
|
||||
- **`rm` НЕ делали** — удаление отдельным шагом, не раньше чем через 2–3 дня стабильной работы.
|
||||
- **Секрет:** `HA_TOKEN` лежит **открытым текстом** в `/mnt/RED_2TB/docker/modbus-bridge/docker-compose.yml` → `environment` (там же `MQTT_PASS: mqtt1z3$`) — кандидат на `.env` + ротацию. Папку **не трогать/не публиковать** до ротации.
|
||||
- **Полный разбор** — §5-кватер-Л в [[family/plans/t610-home-automation]].
|
||||
|
||||
**⚠️ Минные поля, найденные при аудите (НЕ трогались, отдельное решение Alex):**
|
||||
|
||||
| Контейнер | Проблема |
|
||||
|---|---|
|
||||
| `library` ⛔ | ~~`Restarting` циклически, **`RestartCount=29752`**~~ → **✅ ПОГАШЕН 2026-09-14** (по команде Alex): `docker stop library` + `docker update --restart=no` → `state=exited`, `restart=no`. Caddy-домен `library.mallexxx.duckdns.org` → **мёртв** (и был мёртв до гашения). **Не удалён**, папка цела. **Открыто:** почему падал (`image: library-app:latest` из `build: .` — локальная сборка; тот же паттерн, что утерянные `cups-splix`/камера при пересоздании пула) |
|
||||
| `inpx-web` / `inpxer` | оба `Exited (1)`, `RestartCount=13`; `books.mallexxx.duckdns.org` → `:18080` (мёртвый `inpxer`). **По указанию Alex НЕ трогать** |
|
||||
|
||||
**Диагностические питфоллы TrueNAS (проверено 2026-09-14):**
|
||||
|
||||
- ⚠️ **`curl http://192.168.2.176:8123` → `HTTP 000` — ЭТО НОРМА.** HA на t610 живёт **за Caddy**; её `:8123` закрыт, доступ = `:80` / `mallexxx.duckdns.org`. Не принимать за поломку.
|
||||
- **`lsusb` на TrueNAS НЕ установлен** → USB-устройства смотреть через `/sys/bus/usb/devices/` (`product`, `manufacturer`, `idVendor`/`idProduct`).
|
||||
- **`midclt call app.query` → `[]`** (TrueNAS Apps не используются), `/mnt/.ix-apps/app_configs` пуст. Всё — **per-service compose из своей папки**, Portainer stacks **не используются**.
|
||||
- **`sudo` на TrueNAS требует пароль** (passwordless нет) — root-операции только через root-SSH/Shell.
|
||||
- Кто чем управляется: `docker inspect <name> --format '{{index .Config.Labels "com.docker.compose.project.config_files"}}'`.
|
||||
|
||||
### Transmission — детали
|
||||
- **Config:** `/mnt/RED_2TB/docker/transmission/` (монтируется как `/config`; внутри `/config/docker-compose.yml`)
|
||||
@@ -528,16 +555,16 @@ git -C /mnt/RED_2TB/storage/git/obsidian-vault.git log --oneline -10
|
||||
|
||||
| Контейнер | Состояние | Причина | Решение |
|
||||
|---|---|---|---|
|
||||
| `homeassistant` | Up 5 дн | холостой — `modbus.host=192.168.2.197`, шины там нет | ⛔ гасить |
|
||||
| `mbusd` | Up (ложно), 14:42 `can't open /dev/ttyUSB0` | `/dev/ttyVent` не существует (USB уехал) | ⛔ гасить |
|
||||
| `mosquitto` | Up 3 нед | ZONT переключён на `.176` (DNAT) | ⛔ гасить |
|
||||
| `nodered` | Up (healthy) | flows перенесены на t610 (68 узлов) | ⛔ гасить *(решение Alex: сразу или страховка 2 дня — открыто)* |
|
||||
| `zigbee2mqtt` | Exited (2) **14.09 01:59** | `Adapter disconnected` — координатор на t610 | ⛔ останавливать (уже мёртв) |
|
||||
| `modbus-bridge` | Exited (0) **14.09 01:59** | `/dev/ttyZONT` исчез | ⛔ останавливать (уже мёртв) |
|
||||
| **`caddy`** | Up | **17 доменов TrueNAS + `mallexxx.*` → t610** | 🔴 **НЕ ТРОГАТЬ** |
|
||||
| `ser2net` | `Created` (никогда не стартовал) | конфликт 502 с mbusd | отдельное решение |
|
||||
| `library` | **Restarting, restart=29745** | 🔴 циклический краш, при этом Caddy ссылается (`library:8080`) | 🔴 отдельная задача |
|
||||
| `inpx-web`, `inpxer` | Exited (1), 13 рестартов, 3 нед | циклический краш | 🔴 отдельная задача |
|
||||
| `homeassistant` | Up 5 дн | холостой — `modbus.host=192.168.2.197`, шины там нет | ✅ **ПОГАШЕН 2026-09-14** |
|
||||
| `mbusd` | Up (ложно), 14:42 `can't open /dev/ttyUSB0` | `/dev/ttyVent` не существует (USB уехал) | ✅ **ПОГАШЕН 2026-09-14** |
|
||||
| `mosquitto` | Up 3 нед | ZONT переключён на `.176` (DNAT) | ✅ **ПОГАШЕН 2026-09-14** |
|
||||
| `nodered` | Up (healthy) | flows перенесены на t610 (68 узлов) | ✅ **ПОГАШЕН 2026-09-14** (решение Alex: «Гасим nodered») |
|
||||
| `zigbee2mqtt` | Exited (2) **14.09 01:59** | `Adapter disconnected` — координатор на t610 | ✅ `restart=no` 2026-09-14 |
|
||||
| `modbus-bridge` | Exited (0) **14.09 01:59** | `/dev/ttyZONT` исчез | ✅ `restart=no` 2026-09-14 |
|
||||
| **`caddy`** | Up | **17 доменов TrueNAS + `mallexxx.*` → t610** | 🔴 **НЕ ТРОГАТЬ** (не тронут) |
|
||||
| `ser2net` | `Created` (никогда не стартовал) | конфликт 502 с mbusd | ✅ **ПОГАШЕН 2026-09-14** (по команде Alex) |
|
||||
| `library` | ~~Restarting, restart=29752~~ | 🔴 циклический краш, Caddy ссылается (`library:8080`) | ✅ **ПОГАШЕН 2026-09-14** (по команде Alex); причина краша открыта |
|
||||
| `inpx-web`, `inpxer` | Exited (1), 13 рестартов, 3 нед | циклический краш | 🔴 **НЕ ТРОГАТЬ** (указание Alex) |
|
||||
|
||||
**Ключевой факт-маркер переезда:** `zigbee2mqtt` и `modbus-bridge` **оба** легли в **2026-09-14T01:59** — синхронно, в момент физического переноса USB-адаптеров. Это доказательство, что дубль перестал работать сам, а не «сломался от чего-то».
|
||||
|
||||
@@ -557,8 +584,9 @@ curl -s -o /dev/null -w '%{http_code}\n' https://mallexxx.duckdns.org # ожи
|
||||
**Правила этого шага:**
|
||||
- ❌ **НЕ** `docker rm`, ❌ не удалять `/mnt/RED_2TB/docker/<app>/` — сначала «погасить», откат = `docker start` + вернуть `restart: unless-stopped`.
|
||||
- ❌ **Caddy не гасить и не переносить** — 17 из 20 доменов это сервисы TrueNAS.
|
||||
- ❌ `library`/`inpx-*` — **отдельным решением**, не в этом заходе (там своя авария, не связанная с миграцией).
|
||||
- ⚠️ Порт 502: `mbusd` и `ser2net` **не поднимать одновременно**.
|
||||
- ❌ `inpx-*` — **не трогать** (указание Alex). `library` — **погашен отдельной командой Alex** (2026-09-14), причина краша не выяснена.
|
||||
- ⚠️ Порт 502: `mbusd` и `ser2net` **не поднимать одновременно** (оба погашены).
|
||||
- **✅ Факт выполнения 2026-09-14:** погашено 9 контейнеров (7 автоматизации + `ser2net` + `library`). Проверено: 502/1883/8123/1880 на TrueNAS свободны, `mallexxx.duckdns.org` = 200, MQTT на `.176` живой, RTSP `:8554` OPEN.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
---
|
||||
status: implemented
|
||||
status: obsolete
|
||||
tags:
|
||||
- family
|
||||
- homeautomation
|
||||
- zont
|
||||
- modbus
|
||||
title: Защита modbus-bridge от гонки с udev (ZONT датчики)
|
||||
updated: '2026-08-25'
|
||||
updated: '2026-09-14'
|
||||
---
|
||||
# Защита modbus-bridge/mbusd от гонки с udev (ZONT датчики)
|
||||
|
||||
> Статус: **внедрено** (2026-08-25, шаги 1–3). Датчики в ZONT снова отвечают, скрипт и init script на месте.
|
||||
> 🔴 **ДОКУМЕНТ УСТАРЕЛ (2026-09-14).** Речь идёт о контейнерах **на TrueNAS** — `modbus-bridge` и `mbusd`. Они **погашены** (`docker stop` + `--restart=no`) вместе со всем стеком автоматизации; USB-адаптеры физически переехали на **t610**, где узлов `/dev/ttyZONT`/`/dev/ttyVent` на TrueNAS больше не существует. **Проблема неактуальна.**
|
||||
> На **t610** гонка udev решается иначе: Supervisor (HA OS) сам ждёт устройство перед стартом аддона — отдельный init-скрипт не нужен.
|
||||
> История/контекст декомиссии: [[family/plans/t610-home-automation]] §5-кватер-Л, канон-блок — [[family/how-to/truenas-infrastructure]].
|
||||
> ⚠️ Документ **оставлен как историческая справка** (пригодится, если когда-нибудь откатывать TrueNAS-стек).
|
||||
>
|
||||
> ~~Статус: **внедрено** (2026-08-25, шаги 1–3). Датчики в ZONT снова отвечают, скрипт и init script на месте.~~
|
||||
|
||||
## Проблема
|
||||
ZONT (192.168.0.10) — Modbus master на RS-485 шине `ttyZONT`. 485-датчики: Dining=1, Kids=2, Bedroom=3.
|
||||
|
||||
Reference in New Issue
Block a user