30 KiB
title, status, tags, created, updated, related
| title | status | tags | created | updated | related | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Перенос домашней автоматизации на HP t610 | draft |
|
2026-09-12 | 2026-09-12 |
Перенос домашней автоматизации на HP t610
Статус: ПЛАН, НЕ ВЫПОЛНЯЕТСЯ. Ждёт подтверждения Alex. Создан 2026-09-12. Цель: убрать всю домашнюю автоматизацию с TrueNAS (он перегружен — 17/21 ГБ RAM) на выделенный HP t610, с бэкапом конфигов на TrueNAS и в git.
0. Зачем и что переносим
Причина: TrueNAS работает на пределе по памяти (занято 17 из 21 ГБ) — на нём immich + HA + ~25 контейнеров + ZFS-кэш. Домашняя автоматизация должна жить на отдельном дешёвом/тихом хосте, чтобы не зависеть от NAS и не конкурировать за RAM.
Переносим на t610:
| Сервис | Образ / способ | Почему |
|---|---|---|
| Home Assistant | HA OS (нативно, вся ОС) | ядро автоматизации |
| Zigbee2MQTT | docker-контейнер | нужен USB-Zigbee координатор |
| Mosquitto (MQTT) | docker-контейнер | брокер для z2m, Node-RED, ZONT |
| Node-RED | docker-контейнер | логика автоматизаций |
| mbusd | docker-контейнер | RS-485 → TCP :502 (шина вентиляции AT2) |
| modbus-bridge | docker-контейнер (локальная сборка) | снифф 485-датчиков + виртуальные slaves для ZONT |
| Камера | docker-контейнер | см. §8 — разобраться отдельно |
| udev-скрипт tty-алиасов | нативный udev + systemd | обязателен для стабильного старта mbusd/modbus-bridge |
Остаётся на TrueNAS: immich, media-стек (jellyfin/transmission/radarr/sonarr/prowlarr), caddy, gitea, filebrowser, webdav, syncthing, rclone, cups, portainer, hermes-taiga, xray-*.
1. Железо: HP t610 — что мы имеем
| Параметр | Значение | Вывод |
|---|---|---|
| CPU | AMD T56N, 2 ядра @ 1.65 ГГц (Bobcat, 2011) | PassMark ~850, single-thread ~450 — вдвое слабее TrueNAS (G2020) |
| RAM | 4 ГБ DDR3-1600 SODIMM | ✅ за глаза для HA OS + контейнеров (с HA.OS+5 контейнеров ~1.5–2 ГБ реально) |
| USB | 2× USB 3.0 + 4× USB 2.0 | ✅ хватает: Zigbee + 2× CH340 |
| Сеть | Gigabit (Broadcom BCM57781) | ок |
| COM | 1× RS-232 | резерв (если перейдём на нативный mbusd) |
| Диск | HDD (переносим с TrueNAS) | ✅ места достаточно |
| БП | 19.5V 3.3A, штекер 7.4×5.0 мм | нужен родной БП |
| Потребление | ~12 Вт idle, ~20 Вт под нагрузкой | ✅ тихий, дёшево 24/7 |
📌 Диск — HDD (есть в наличии), отдельно проверять/апгрейдить не нужно. RAM 4 ГБ достаточно.
2. Целевая архитектура
ДОМ
┌────────────────────────────────────────────────────────┐
│ │
│ ZONT (192.168.0.10) Zigbee-устройства │
│ │ Modbus master на ttyZONT │ (Tuya датчики) │
│ │ │ │
│ USB-CH340#1 (ttyZONT) USB-Zigbee (ttyACM0) │
│ │ │ │
│ ┌─────── HP t610 — HA OS ───────┴─────────┐ │
│ │ HA OS (ядро, нативно) │ │
│ │ ├ mosquitto (docker) :1883 │ │
│ │ ├ zigbee2mqtt (docker) ── mosquitto │ │
│ │ ├ nodered (docker) ── mosquitto │ │
│ │ ├ mbusd (docker) :502 ← CH340#2 (ttyVent → AT2) │
│ │ └ modbus-bridge (docker) ← CH340#1 (ttyZONT) │
│ └─────────────────────────────────────────┘ │
│ │
│ GPON-роутер ──(port forward)──► t610:8123 (HA UI) │
└────────────────────────────────────────────────────────┘
│
│ бэкап конфигов (rsync/git)
▼
TrueNAS (RED_2TB) — хранилище бэкапов + bare git repo
Ключевые сетевые потоки:
- HA ↔ mosquitto (
localhost:1883) — MQTT-интеграция - zigbee2mqtt → mosquitto → HA (датчики Zigbee)
- Node-RED → mosquitto → HA (логика)
- HA →
t610:502(mbusd) — опрос вентиляции AT2 и заслонок по Modbus TCP - ZONT →
t610:1883(mosquitto) — по MQTT (через редирект GPON-роутера) - modbus-bridge →
localhost:8123(HA REST API) +localhost:1883(MQTT)
3. Что меняется по адресам (карта правок)
Это самый важный раздел — при переносе ломаются все хардкод-адреса:
| Где | Сейчас | Станет | Комментарий |
|---|---|---|---|
ha/configuration.yaml → modbus.host |
192.168.2.197 |
IP t610 | иначе HA на t610 не найдёт mbusd (он теперь локальный — можно 127.0.0.1, т.к. mbusd host-network) |
modbus-bridge/config.yml → ha.url |
http://localhost:8123 |
без изменений | остаётся localhost |
modbus-bridge/config.yml → mqtt.broker |
localhost |
без изменений | mosquitto рядом |
| ZONT → MQTT-брокер | TrueNAS (192.168.2.197:1883?) | t610:1883 | ⚠️ смотреть, где задаётся (в веб-интерфейсе ZONT, раздел MQTT) |
| GPON-роутер port forward | → 192.168.2.197 | → IP t610 | для HA UI + MQTT |
Caddy cam.mallexxx |
192.168.2.197:8090 |
IP t610:8090 | камера переезжает на t610 (или остаётся — см. §8) |
Caddy mallexxx.duckdns.org |
192.168.2.197:8123 |
IP t610:8123 | HA UI |
udev-правила 99-tty-alias.rules |
KERNELS=="?-1.6" / "?-1.5" (USB-топология TrueNAS) |
новые пути t610 | ⚠️ ОБЯЗАТЕЛЬНО пересчитать — на t610 нумерация USB другая |
4. Шаги переноса — пошагово
⚠️ Общий принцип: ничего не удаляем на TrueNAS, пока t610 не заработает полностью. Отключение на TrueNAS — отдельный финальный этап (§7).
Шаг 1. Установка HA OS на t610
Откуда качать образ: официальный раздел https://www.home-assistant.io/installation/generic-x86-64/
- Прямая ссылка на образ (generic x86-64):https://github.com/home-assistant/operating-system/releases
- Файл:
haos_generic-x86-64-<версия>.img.xz(в разделе Assets последнего релиза)
- Файл:
- Записать на USB-флешку/SSD:
# на Mac:
xz -d haos_generic-x86-64-<версия>.img.xz
diskutil list # найти целевой диск (НЕ ошибиться!)
diskutil unmountDisk /dev/diskN
sudo dd if=haos_generic-x86-64-<версия>.img of=/dev/rdiskN bs=4m && sync
⚠️ В HA OS UEFI: в BIOS t610 включить UEFI-boot (не Legacy). Если t610 не грузит HA OS — вариант: HA OS на Proxmox/Debian + qemu, но это сложнее; сначала пробуем bare-metal.
- После записи → вставить в t610 → загрузиться → HA OS сама расширит раздел.
Шаг 2. Первый запуск HA OS, сеть, static IP
- t610 подключить кабелем к GPON-роутеру.
- На роутере назначить static IP (DHCP reservation) — обязательно, до всего остального:
# OpenWrt (роутер сети 192.168.2.x), SSH root@192.168.2.2:
# узнать MAC t610, затем добавить в dhcp host:
uci add dhcp host
uci set dhcp.@host[-1].name='t610-ha'
uci set dhcp.@host[-1].mac='<MAC t610>'
uci set dhcp.@host[-1].ip='192.168.2.150' # ← выбранный статический IP
uci commit dhcp && /etc/init.d/dnsmasq restart
💡 Выбрать свободный IP (проверить ping). Кандидат:
192.168.2.150.
- HA OS Web UI:
http://<IP t610>:8123→ первичная настройка (создать аккаунт).
⚠️ HA OS ставит HA «с нуля» — конфиги мы переносим вручную (§5), НЕ через бэкап-снапшот, чтобы не тащить мусор от старой версии долей.
Шаг 3. Установка вспомогательных контейнеров на t610
HA OS поддерживает аддоны (встроенный docker). Два подхода:
- (A) Аддоны HA OS — Zigbee2MQTT и Mosquitto есть в официальном store. Быстро, но на t610 (4 ГБ) тяжелее и менее гибко.
- (B) Отдельный docker — как на TrueNAS (портируем
docker-compose.yml1:1). Больше контроля, совпадает со старой схемой.
Рекомендация: (B) отдельный docker, чтобы конфиги переносились как есть. На HA OS это делается через SSH-аддон + docker CLI или через add-on «Portainer».
Контейнеры (в порядке зависимостей):
- mosquitto — порт 1883, конфиги см. §5.1
- zigbee2mqtt — нужен mosquitto, USB-Zigbee
/dev/ttyACM0 - nodered — нужен mosquitto, порт 1880
- mbusd — порт 502, USB-CH340#2 (шина AT2)
- modbus-bridge — USB-CH340#1 (шина ZONT), host-network
- камера — см. §8
Шаг 4. Подключить USB-устройства и настроить udev-алиасы
⚠️ САМЫЙ ОПАСНЫЙ ШАГ — на t610 другая USB-топология.
Старые правила KERNELS=="?-1.6:1.0" / "?-1.5:1.0" не сработают — надо пересчитать пути.
# Подключить все 3 USB (2× CH340 + Zigbee) в ОДНИ И ТЕ ЖЕ порты навсегда!
# На t610 определить пути:
for d in /sys/class/tty/ttyUSB* /sys/class/tty/ttyACM*; do
echo "--- $d"; udevadm info -q property -p $d | grep -E "ID_VENDOR_ID|ID_MODEL_ID|ID_SERIAL|DEVPATH"
done
# DEVPATH даст что-то вида /devices/pci.../usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB0
# → путь для правила: KERNELS=="1-1.2:1.0" (или с wildcard "?-1.2:1.0")
Составить новые 99-tty-alias.rules по серийникам, а не по портам — надёжнее:
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{serial}=="<serial CH340 #1>", SYMLINK+="ttyZONT"
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{serial}=="<serial CH340 #2>", SYMLINK+="ttyVent"
⚠️ У дешёвых CH340 серийники часто отсутствуют/одинаковые → тогда только по
KERNELS(физическому порту). Тогда — жёстко зафиксировать, в какой USB-порт какой адаптер вставлен, и подписать порты физически. ⚠️ Гонка с udev (та же проблема, что на TrueNAS): docker стартует раньше udev → контейнеры сdevices:падают. На HA OS решать черезsystemdunitAfter=dev-ttyZONT.deviceИЛИ через скрипт ожидания (§ Шаг 6).
Шаг 5. Перенести конфиги (см. §5) и поднять сервисы
Порядок: скопировать конфиги → docker compose up -d по одному → проверить.
Шаг 6. Проверка работоспособности (чек-лист §6)
Шаг 7. Бэкап на TrueNAS + git (§9)
Шаг 8. Отключить на TrueNAS (§7) — ТОЛЬКО после успешной проверки
5. Что именно копировать (точные пути)
Источник: /mnt/RED_2TB/docker/ на TrueNAS (SSH truenas_admin@mallexxx.duckdns.org, ключ ~/.ssh/id_rsa).
Приёмник: t610, каталог /mnt/data/ (или /addon_configs для HA OS).
5.1 mosquitto
mosquitto/config/mosquitto.conf # listener 1883, allow_anonymous false, password_file
mosquitto/config/passwd # ⚠️ права 600, пароли пользователей
mosquitto/config/ → /mosquitto/config
mosquitto/data/ → /mosquitto/data
mosquitto/log/ → /mosquitto/log
compose (порт 1883).
5.2 zigbee2mqtt
zigbee2mqtt/configuration.yaml # serial: /dev/ttyACM0, adapter: ember, network_key, pan_id
zigbee2mqtt/database.db # ⚠️ КРИТИЧНО — иначе спаривать устройства заново!
zigbee2mqtt/state.json
zigbee2mqtt/coordinator_backup.json # бэкап координатора
→ всё в /app/data (внутри контейнера)
⚠️ КРИТИЧНО: network_key + pan_id + database.db должны совпасть 1:1, иначе все Zigbee-устройства надо спаривать заново.
compose: devices: /dev/ttyACM0:/dev/ttyACM0, network_mode: host.
5.3 nodered
nodered/flows.json + nodered/flows_cred.json # ⚠️ cred — там пароли нод
nodered/settings.js, package.json, node_modules (не обязательно)
→ /data
compose: порт 1880, TZ=Asia/Novosibirsk.
5.4 mbusd
mbusd/mbusd.conf # device=/dev/ttyUSB0, speed=9600, port=502
compose (как на TrueNAS):
services:
mbusd:
image: 3cky/mbusd
container_name: mbusd
entrypoint: ["/usr/bin/mbusd", "-d", "-L", "-", "-c", "/etc/mbusd.conf"]
ports: ["502:502"]
devices: [/dev/ttyVent:/dev/ttyUSB0]
volumes: [/mnt/data/mbusd/mbusd.conf:/etc/mbusd.conf]
restart: unless-stopped
5.5 modbus-bridge (локальная сборка)
modbus-bridge/Dockerfile
modbus-bridge/modbus_ha_bridge.py # основной скрипт
modbus-bridge/config.yml # serial port, ha url, mqtt broker, sniff, mappings
modbus-bridge/docker-compose.yml
compose (как на TrueNAS):
services:
modbus-bridge:
build: .
image: modbus-bridge-modbus-bridge
container_name: modbus-bridge
network_mode: host
devices: [/dev/ttyZONT:/dev/ttyUSB0]
volumes:
- /mnt/data/modbus-bridge/config.yml:/app/config.yml:ro
- /mnt/data/modbus-bridge/modbus_ha_bridge.py:/app/modbus_ha_bridge.py:ro
environment:
- HA_TOKEN=<long-lived token из HA>
restart: unless-stopped
⚠️
HA_TOKEN— long-lived token. После переноса HA на t610 — сгенерировать НОВЫЙ токен в HA (Профиль → Security → Long-lived tokens), т.к. старый привязан к прежней инсталляции (фактически токен привязан к HAauth, который мы не переносим вместе с.storage— см. примечание ниже).
5.6 Home Assistant config
ha/configuration.yaml # главный: modbus, template sensors, http.trusted_proxies
ha/automations.yaml
ha/scripts.yaml
ha/secrets.yaml
ha/.storage/ # ⚠️ осторожно: тут UI-интеграции, lovelace, entity registry
ha/www/floorplan/*.svg # фон плана этажей
Два варианта переноса HA-конфига:
| Вариант | Что копировать | Плюсы | Минусы |
|---|---|---|---|
| A. Полный | весь ha/ включая .storage |
всё UI-настроенное (интеграции, план) переезжает 1:1 | тянет мусор, .storage привязан к версии/аутентификации |
| B. Чистый | yaml-файлы + www/ + .storage/lovelace.home_plan |
чисто, версия свежая | UI-интеграции (MQTT, Tuya, HACS) настраивать заново вручную |
Рекомендация: вариант A (полный), т.к. в .storage живут:
core.config_entries— интеграции (MQTT, localtuya, tuya_local, modbus, HACS)lovelace.home_plan— dashboard с планом этажей (⚠️ НЕ пересоздать вручную)core.entity_registry/core.device_registry— имена entity (иначе все автоматизации сломаются по ссылкам!)
⚠️ Критично:
core.entity_registryсодержитentity_idдля всех автоматизаций. Без негоautomations.yamlне найдёт сущности. Сохранять обязательно. ⚠️.storage/auth— можно НЕ копировать (создастся новый пользователь); или скопировать, чтобы сохранить логины.
5.7 (опционально) камера
См. §8 — сначала выяснить, что это за камера.
5.8 udev + скрипт старта
system/99-tty-alias.rules # ⚠️ ПЕРЕСОЗДАТЬ под t610 (см. Шаг 5)
system/start-modbus.sh # скрипт ожидания tty перед docker start
Тот же паттерн, что на TrueNAS: ждать появления /dev/ttyZONT и /dev/ttyVent, потом docker start.
6. Чек-лист проверки после переноса
- HA UI открывается:
http://<t610-IP>:8123 docker ps— все 5–6 контейнеров Upls -la /dev/ttyZONT /dev/ttyVent /dev/ttyACM0— алиасы созданы, указывают на правильные ttyUSB- Zigbee: устройства видны в zigbee2mqtt UI (
http://<t610-IP>:8080или HA),permit_joinработает, датчики обновляются - MQTT:
mosquitto_sub -h localhost -t '#' -v— видно трафик z2m - Modbus вентиляция: HA видит AT2, заслонки переключаются (проверить физически!)
- ZONT: датчики 485 (Dining/Kids/Bedroom) в ZONT не «недоступные», температуры идут
- modbus-bridge: логи без ошибок, MQTT-топики
modbus/sensors/*публикуются - Node-RED:
http://<t610-IP>:1880— flows загружены, creds на месте - ZONT MQTT: ZONT шлёт данные на
t610:1883(проверить подпиской) - HA автоматизации: все работают (свет, вентиляция, ГВС) — функции автоматизаций срабатывают
- Floor plan: dashboard с планом этажей отображается
- Камера: доступна по
cam.mallexxx.duckdns.org(если переехала) - Стабильность:
reboott610 → всё поднялось само, без ручных команд (главный тест — гонка udev!)
7. Отключение на TrueNAS (только после проверки!)
⚠️ НЕ удалять, а остановить + отключить автозапуск. Данные остаются как откат.
ssh truenas_admin@mallexxx.duckdns.org
# 1. Остановить контейнеры
docker stop homeassistant zigbee2mqtt nodered mosquitto mbusd modbus-bridge
# 2. Убрать автозапуск (restart policy)
docker update --restart=no homeassistant zigbee2mqtt nodered mosquitto mbusd modbus-bridge
# 3. Отключить init-скрипт modbus (POSTINIT id=3)
midclt call initshutdownscript.update 3 '{"enabled": false}'
# 4. Caddy: переключить домены на t610 (не отключать!)
# mallexxx.duckdns.org → <t610-IP>:8123
# cam.mallexxx... → <t610-IP>:8090
docker restart caddy
# 5. Опционально (позже): archive папки
# mv /mnt/RED_2TB/docker/ha /mnt/RED_2TB/docker/ha.decommissioned-2026-09
⚠️ Caddy остаётся на TrueNAS — он терминирует TLS для всех доменов. Меняем только upstream-адреса HA и камеры. ⚠️ Редирект GPON-роутера на 8123 тоже переключить на t610.
8. Камера — пункт (разобраться позже)
Контейнер камеры был на TrueNAS, просто остановлен (в списке docker ps -a не значится — вероятно, удалён при восстановлении после пересоздания пула; в Caddy остался мёртвый upstream 192.168.2.197:8090). Разобраться отдельно: найти исходный образ/папку, поднять на t610, поправить upstream в Caddy.
9. Бэкап конфигов на TrueNAS + git
9.1 Бэкап на TrueNAS (основной)
Цель: копия конфигов t610 на TrueNAS, чтобы пережить смерть t610.
- Вариант rclone: добавить в
/mnt/RED_2TB/docker/rclone/config/backup.shстроку, синкающую бэкап-папку t610 →mailru-crypt: - Вариант rsync: cron на TrueNAS (или на t610) — раз в сутки тянуть конфиги с t610:
# на TrueNAS, cron 03:30:
rsync -a --delete root@<t610-IP>:/mnt/data/ /mnt/RED_2TB/backup/t610-automation/
⚠️ Для HA OS конфиги HA — в
/mnt/data/supervisor/homeassistant/(или через SSH-аддон). Точный путь уточнить после установки.
9.2 Git (версионирование конфигов)
Цель: история изменений конфигов, откат, диффы.
Вариант A — локальный bare-repo на TrueNAS + cron (как Obsidian sync):
t610: /mnt/data/ → git repo (init, .gitignore для *.db, *.log, node_modules)
↓ push (cron, раз в час)
TrueNAS: /mnt/RED_2TB/storage/git/homeassistant-config.git (bare)
Скрипт на t610:
cd /mnt/data && git add -A && git commit -m "auto: $(date +%F\ %T)" --allow-empty
git push origin main
Вариант B — Gitea (уже работает на TrueNAS: git.mallexxx.duckdns.org):
- Создать repo
homeassistant-configв Gitea (токенeagle-reflectесть в family/how-to/gitea-config) - t610 → push в Gitea
- ✅ Плюс: веб-просмотр, диффы, история в UI
Рекомендация: Вариант B (Gitea) — уже инфраструктура есть, веб-интерфейс удобнее.
Что класть в git:
✅ configuration.yaml, automations.yaml, scripts.yaml, secrets.yaml (⚠️ или отдельно)
✅ .storage/ (кроме auth, *.db-shm, *.db-wal, tmp*)
✅ mosquitto/mosquitto.conf, modbus-bridge/config.yml, mbusd/mbusd.conf
✅ zigbee2mqtt/configuration.yaml, database.db
✅ nodered/flows.json, flows_cred.json (⚠️ пароли!)
❌ home-assistant_v2.db (200 МБ, бинарная история — не в git)
❌ *.log, node_modules/, __pycache__
⚠️ Секреты:
secrets.yaml,flows_cred.json,passwd,HA_TOKEN— либо в отдельном приватном repo, либо черезgit-crypt/.gitignore+ отдельный бэкап. GiteaDISABLE_REGISTRATION=trueи за Caddy — приемлемо, но решить осознанно.
10. Риски и подводные камни
| Риск | Вероятность | Митигация |
|---|---|---|
| udev-гонка (docker стартует раньше tty) | высокая | скрипт ожидания + After=dev-tty*.device |
| USB-пути t610 ≠ TrueNAS | 100% | пересчитать udev по серийнику/физическому порту |
| Zigbee отвалится | средняя | database.db + network_key 1:1; переспаривание не нужно при верном переносе |
| entity_id разъедутся | средняя | копировать .storage/core.entity_registry |
Хардкод 192.168.2.197 в HA |
высокая | заменить на 127.0.0.1 (mbusd рядом) |
| GPON-редирект | высокая | переключить на t610:8123; проверить снаружи |
| HA OS не загрузится (Legacy/UEFI) | средняя | включить UEFI в BIOS; fallback — HA OS в VM |
| Камера неизвестна | — | §8, разобраться позже |
| Слабый CPU (T56N) | низкая | HA OS + 6 контейнеров — ок; камера с AI-детекцией — нет |
11. План выполнения (этапы)
| Этап | Содержание | Требует |
|---|---|---|
| 0 | Установка HA OS на t610 + static IP на роутере | физ. доступ |
| 1 | Docker + 5 контейнеров (mosquitto, z2m, nodered, mbusd, modbus-bridge) | ✅ |
| 2 | udev-алиасы + скрипт старта | ✅ |
| 3 | Перенос конфигов всех сервисов | ✅ |
| 4 | Перенос HA config (.storage + yaml + www) |
✅ |
| 5 | Правка хардкод-адресов (modbus host, HA_TOKEN) | ✅ |
| 6 | ZONT MQTT → на t610 | ✅ (доступ к ZONT) |
| 7 | Камера | ❓ (позже) |
| 8 | Полная проверка (§6) | ✅ |
| 9 | Бэкап: rsync на TrueNAS + git в Gitea | ✅ |
| 10 | GPON-редиректы + Caddy → t610 | ✅ |
| 11 | Отключение на TrueNAS (§7) | ✅ после проверки |
12. Данные, собранные при подготовке плана (2026-09-12)
Живое состояние TrueNAS (проверено):
| Контейнер | Образ | Сеть | Порты | Устройства | Ключевое |
|---|---|---|---|---|---|
| homeassistant | ghcr.io/home-assistant/home-assistant:stable |
ha_default |
8123 | — | HA 2026.9.1, volume /mnt/RED_2TB/docker/ha:/config |
| zigbee2mqtt | koenkk/zigbee2mqtt:latest |
host | — | /dev/ttyACM0 (Inswift ZBP-MG21, ember) |
network_key/pan_id в configuration.yaml |
| nodered | nodered/node-red:latest |
nodered_default |
1880 | — | TZ=Asia/Novosibirsk, Node-RED v5.0.7 |
| mosquitto | eclipse-mosquitto |
mosquitto_default |
1883 | — | allow_anonymous false, password_file /mosquitto/config/passwd |
| mbusd | 3cky/mbusd |
mbusd_default |
502 | /dev/ttyVent→/dev/ttyUSB0 (CH340 1a86:7523) |
conf: 9600 8n1, trx_control=addc |
| modbus-bridge | modbus-bridge-modbus-bridge (локальная сборка) |
host | — | /dev/ttyZONT→/dev/ttyUSB0 (CH340) |
env HA_TOKEN, config.yml |
USB-топология TrueNAS (для справки, на t610 будет иначе):
ttyUSB0 (1a86:7523 CH340) DEVPATH .../2-1/2-1.5/2-1.5:1.0 → ttyVent
ttyUSB1 (1a86:7523 CH340) DEVPATH .../2-1/2-1.6/2-1.6:1.0 → ttyZONT
ttyACM0 (Inswift Zigbee ZBP-MG21, 535A000001) → zigbee2mqtt
Текущие udev-правила (⚠️ НЕ подойдут для t610):
SUBSYSTEM=="tty", KERNEL=="ttyUSB*", KERNELS=="?-1.6:1.0", SYMLINK+="ttyZONT"
SUBSYSTEM=="tty", KERNEL=="ttyUSB*", KERNELS=="?-1.5:1.0", SYMLINK+="ttyVent"
HA configuration.yaml — modbus:
modbus:
- name: rtu_bus
type: tcp
host: 192.168.2.197 # ← ЭТО МЕНЯЕМ на 127.0.0.1 или IP t610
port: 502
(в блоке также закомментированные AT2-сенсоры и активные switch'и заслонок slave 11/12/13/14)
modbus-bridge config.yml (ключевое):
serial: {port: /dev/ttyUSB0, baudrate: 9600, rts_de: true, timeout: 0.05}
ha: {url: "http://localhost:8123", poll_interval: 15}
mqtt: {broker: localhost, port: 1883, topic_prefix: modbus}
sniff: # slave 1/2/3 → Dining/Kids/Bedroom, регистры 2 и 100
Связанные заметки
- family/how-to/home-automation — карта slave ID, ZONT, регистры вентиляции
- family/how-to/truenas-infrastructure — docker-стек TrueNAS
- family/how-to/zont-modbus-bridge-udev-race-protection — защита от udev-гонки
- family/how-to/truenas-rclone-backup — система бэкапов
- family/how-to/gitea-config — Gitea (для git-бэкапа конфигов)
- family/how-to/truenas-access — доступ, железо, OpenWrt