From e2f1a2aaece5ef1fa1f58f47d3a4ba88cbd65033 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sat, 12 Sep 2026 16:15:22 +0600 Subject: [PATCH] [2026-09-12] eagle: family/how-to/home-automation.md family/how-to/truenas-access.md family/plans/home-automation-migration-t610.md --- family/how-to/home-automation.md | 4 +- family/how-to/truenas-access.md | 1 + .../plans/home-automation-migration-t610.md | 90 +++++++------------ 3 files changed, 33 insertions(+), 62 deletions(-) diff --git a/family/how-to/home-automation.md b/family/how-to/home-automation.md index 066509c2..7c9b2bfe 100644 --- a/family/how-to/home-automation.md +++ b/family/how-to/home-automation.md @@ -2,8 +2,8 @@ title: "🏠 Умный дом — автоматика" aliases: ["Умный дом", "Home automation", "Modbus", "home-automation"] tags: ["family", "how-to", "smarthome", "modbus"] -updated: "2026-05-17" -related: ["[[family/how-to/router-bishkek-asus]]"] +updated: "2026-09-12" +related: ["[[family/how-to/router-bishkek-asus]]", "[[family/plans/home-automation-migration-t610]]"] --- # 🏠 Умный дом — автоматика diff --git a/family/how-to/truenas-access.md b/family/how-to/truenas-access.md index 63f885fd..26d42d3b 100644 --- a/family/how-to/truenas-access.md +++ b/family/how-to/truenas-access.md @@ -46,6 +46,7 @@ **Выводы:** - TrueNAS ≈ RPi4 по многопотоку (2 ядра против 4), но **вдвое выше в single-thread**. Сервисы HA/Node-RED/БД single-thread-зависимы → здесь TrueNAS выигрывает. - **HP t610 — вдвое слабее обоих** (2011, Bobcat-ядро). Единственный плюс — x86-64, официальные образы встают без возни с ARM. + - 📌 **2026-09-12: t610 назначен хостом для переноса домашней автоматизации** (HA OS + zigbee2mqtt/mosquitto/nodered/mbusd/modbus-bridge). План: [[family/plans/home-automation-migration-t610]]. RAM 4 ГБ и HDD признаны достаточными (замер нагрузки не требуется). - **Jellyfin-транскод не тянет никто** из трёх (iGPU HD2500 у G2020 без современного кодека; RPi4/t610 — нет аппаратного пути). ### Совместимость с DDR/DDR2 из гаража diff --git a/family/plans/home-automation-migration-t610.md b/family/plans/home-automation-migration-t610.md index 84d5cc11..537ea959 100644 --- a/family/plans/home-automation-migration-t610.md +++ b/family/plans/home-automation-migration-t610.md @@ -14,6 +14,8 @@ related: - '[[family/how-to/truenas-infrastructure]]' - '[[family/how-to/zont-modbus-bridge-udev-race-protection]]' - '[[family/how-to/truenas-rclone-backup]]' + - '[[family/how-to/gitea-config]]' + - '[[family/how-to/truenas-access]]' --- # Перенос домашней автоматизации на HP t610 @@ -34,7 +36,7 @@ related: | Node-RED | docker-контейнер | логика автоматизаций | | mbusd | docker-контейнер | RS-485 → TCP :502 (шина вентиляции AT2) | | modbus-bridge | docker-контейнер (локальная сборка) | снифф 485-датчиков + виртуальные slaves для ZONT | -| **Камера** | docker-контейнер (уточнить какой) | см. §8 — на TrueNAS НЕ найдена | +| **Камера** | 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-*. @@ -44,15 +46,15 @@ related: | Параметр | Значение | Вывод | |----------|----------|-------| | CPU | AMD T56N, 2 ядра @ 1.65 ГГц (Bobcat, 2011) | PassMark ~850, single-thread ~450 — **вдвое слабее TrueNAS (G2020)** | -| RAM | 4 ГБ DDR3-1600 SODIMM (штатно), **до 16 ГБ** (2 слота) | ⚠️ узкое место. HA OS + 6 контейнеров на 4 ГБ — впритык | +| 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) | -| Диск | DOM в SATA-разъёме + 2-й SATA | ⚠️ если DOM 1–2 ГБ — **мало для HA OS**, нужен SSD/USB-диск | +| Диск | **HDD** (переносим с TrueNAS) | ✅ места достаточно | | БП | 19.5V 3.3A, штекер 7.4×5.0 мм | нужен родной БП | | Потребление | ~12 Вт idle, ~20 Вт под нагрузкой | ✅ тихий, дёшево 24/7 | -**⚠️ Риск RAM.** HA OS требует ~2 ГБ минимум. На 4 ГБ: HA OS (2 ГБ) + z2m (0.15) + mosquitto (0.05) + node-red (0.25) + mbusd (0.02) + modbus-bridge (0.1) + камера (0.3–1) = ~3–4 ГБ. **Работать будет, но без запаса.** Если в t610 есть 2 слота и планки 2+2 — рекомендую поставить 8 ГБ (2×4) перед переносом. Проверить фактические планки и объём DOM — шаг 1. +> 📌 Диск — HDD (есть в наличии), отдельно проверять/апгрейдить не нужно. RAM 4 ГБ достаточно. ## 2. Целевая архитектура @@ -109,19 +111,7 @@ related: > ⚠️ Общий принцип: **ничего не удаляем на TrueNAS, пока t610 не заработает полностью.** Отключение на TrueNAS — отдельный финальный этап (§7). -### Шаг 1. Инвентаризация железа t610 (перед всем) -```bash -# На t610 (после загрузки в Live-USB или уже установленную ОС): -lscpu | grep -iE "model name|^CPU\(s\)|MHz" -free -h -lsblk -o NAME,SIZE,TYPE,MODEL # какой DOM/SSD, хватит ли места -sudo dmidecode -t 17 | grep -E "Size|Locator" # сколько слотов RAM и планки -``` -**Решения по результату:** -- RAM < 8 ГБ → решить, ставить ли 2×4 ГБ (рекомендуется) -- Диск < 32 ГБ → нужен SSD или USB-диск для HA OS - -### Шаг 2. Установка HA OS на t610 +### Шаг 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** последнего релиза) @@ -136,7 +126,7 @@ 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 сама расширит раздел. -### Шаг 3. Первый запуск HA OS, сеть, static IP +### Шаг 2. Первый запуск HA OS, сеть, static IP 1. t610 подключить кабелем к GPON-роутеру. 2. На роутере **назначить static IP (DHCP reservation)** — обязательно, до всего остального: ```bash @@ -152,7 +142,7 @@ uci commit dhcp && /etc/init.d/dnsmasq restart 3. HA OS Web UI: `http://:8123` → первичная настройка (создать аккаунт). > ⚠️ HA OS ставит HA «с нуля» — **конфиги мы переносим вручную** (§5), НЕ через бэкап-снапшот, чтобы не тащить мусор от старой версии долей. -### Шаг 4. Установка вспомогательных контейнеров на t610 +### Шаг 3. Установка вспомогательных контейнеров на t610 HA OS поддерживает **аддоны** (встроенный docker). Два подхода: - **(A) Аддоны HA OS** — Zigbee2MQTT и Mosquitto есть в официальном store. Быстро, но на t610 (4 ГБ) тяжелее и менее гибко. - **(B) Отдельный docker** — как на TrueNAS (портируем `docker-compose.yml` 1:1). Больше контроля, совпадает со старой схемой. @@ -167,7 +157,7 @@ HA OS поддерживает **аддоны** (встроенный docker). 5. **modbus-bridge** — USB-CH340#1 (шина ZONT), host-network 6. **камера** — см. §8 -### Шаг 5. Подключить USB-устройства и настроить udev-алиасы +### Шаг 4. Подключить USB-устройства и настроить udev-алиасы **⚠️ САМЫЙ ОПАСНЫЙ ШАГ — на t610 другая USB-топология.** Старые правила `KERNELS=="?-1.6:1.0"` / `"?-1.5:1.0"` **не сработают** — надо пересчитать пути. ```bash @@ -187,14 +177,14 @@ SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{seria > ⚠️ У дешёвых CH340 **серийники часто отсутствуют/одинаковые** → тогда только по `KERNELS` (физическому порту). Тогда — жёстко зафиксировать, в какой USB-порт какой адаптер вставлен, и подписать порты физически. > ⚠️ **Гонка с udev** (та же проблема, что на TrueNAS): docker стартует раньше udev → контейнеры с `devices:` падают. На HA OS решать через `systemd` unit `After=dev-ttyZONT.device` ИЛИ через скрипт ожидания (§ Шаг 6). -### Шаг 6. Перенести конфиги (см. §5) и поднять сервисы +### Шаг 5. Перенести конфиги (см. §5) и поднять сервисы Порядок: скопировать конфиги → `docker compose up -d` по одному → проверить. -### Шаг 7. Проверка работоспособности (чек-лист §6) +### Шаг 6. Проверка работоспособности (чек-лист §6) -### Шаг 8. Бэкап на TrueNAS + git (§9) +### Шаг 7. Бэкап на TrueNAS + git (§9) -### Шаг 9. Отключить на TrueNAS (§7) — ТОЛЬКО после успешной проверки +### Шаг 8. Отключить на TrueNAS (§7) — ТОЛЬКО после успешной проверки ## 5. Что именно копировать (точные пути) @@ -344,25 +334,9 @@ docker restart caddy > ⚠️ Caddy остаётся на TrueNAS — он терминирует TLS для всех доменов. Меняем только upstream-адреса HA и камеры. > ⚠️ Редирект GPON-роутера на 8123 тоже переключить на t610. -## 8. Камера — ОТКРЫТЫЙ ВОПРОС +## 8. Камера — пункт (разобраться позже) -**Факт (проверено 2026-09-12):** на TrueNAS камеры **нет** — ни контейнера, ни образа, ни папки в `/mnt/RED_2TB/docker/`, ни в `docker.bak/` (бэкап до пересоздания пула), ни в `storage/`, ни в `backup/`. Есть **только** мёртвая прокси-строка в Caddy (`cam.mallexxx.duckdns.org → 192.168.2.197:8090`), повторяющаяся во всех бэкапах Caddyfile с июля. Порт 8090 на TrueNAS никто не слушает. - -**Что нужно выяснить у Alex:** -1. Модель камеры (RTSP-IP-камера? USB? бренд) -2. Где она сейчас физически работает (HTPC / Kraken / Mac / отдельное устройство?) -3. Что нужно: только просмотр (MJPEG/HLS) или запись/детекция? - -**Кандидаты на t610 (по выбору):** - -| Инструмент | Для чего | Образ | -|------------|----------|-------| -| **go2rtc** | RTSP → WebRTC/HLS/MJPEG, лёгкий | `alexxit/go2rtc` или `roflcoopter/...` | -| **motionEye** | просмотр + запись по детекции движения | `ccrisan/motioneye` | -| **mediamtx** | RTSP/WebRTC-сервер | `bluenviron/mediamtx` | -| **Frigate** | детекция объектов (AI) | ⚠️ **не для t610** — нужен Coral/GPU, съест всю RAM | - -**Рекомендация:** если нужен просто просмотр → **go2rtc** (легчайший, идеален для слабого t610). Если запись по движению → motionEye (но следить за RAM). +Контейнер камеры **был на TrueNAS, просто остановлен** (в списке `docker ps -a` не значится — вероятно, удалён при восстановлении после пересоздания пула; в Caddy остался мёртвый upstream `192.168.2.197:8090`). Разобраться отдельно: найти исходный образ/папку, поднять на t610, поправить upstream в Caddy. ## 9. Бэкап конфигов на TrueNAS + git @@ -415,7 +389,6 @@ git push origin main | Риск | Вероятность | Митигация | |------|-------------|-----------| -| **RAM 4 ГБ мало** | высокая | поставить 8 ГБ до переноса; следить за `free -h` | | **udev-гонка** (docker стартует раньше tty) | высокая | скрипт ожидания + `After=dev-tty*.device` | | **USB-пути t610 ≠ TrueNAS** | 100% | пересчитать udev по серийнику/физическому порту | | **Zigbee отвалится** | средняя | `database.db` + `network_key` 1:1; переспаривание не нужно при верном переносе | @@ -423,28 +396,25 @@ git push origin main | **Хардкод `192.168.2.197` в HA** | высокая | заменить на `127.0.0.1` (mbusd рядом) | | **GPON-редирект** | высокая | переключить на t610:8123; проверить снаружи | | **HA OS не загрузится (Legacy/UEFI)** | средняя | включить UEFI в BIOS; fallback — HA OS в VM | -| **Диск DOM мал** | средняя | проверить `lsblk`, при малом — SSD | -| **Камера неизвестна** | — | §8, уточнить у Alex | -| **Слабый CPU (T56N)** | средняя | 6 контейнеров + HA OS — ок; камера с детекцией — нет | +| **Камера неизвестна** | — | §8, разобраться позже | +| **Слабый CPU (T56N)** | низкая | HA OS + 6 контейнеров — ок; камера с AI-детекцией — нет | ## 11. План выполнения (этапы) | Этап | Содержание | Требует | |------|-----------|---------| -| **0** | Инвентаризация t610 (RAM/диск/USB) | физ. доступ | -| **1** | (если нужно) апгрейд RAM до 8 ГБ, диск | покупка | -| **2** | Установка HA OS + static IP на роутере | ✅ | -| **3** | Docker + 5 контейнеров (mosquitto, z2m, nodered, mbusd, modbus-bridge) | ✅ | -| **4** | udev-алиасы + скрипт старта | ✅ | -| **5** | Перенос конфигов всех сервисов | ✅ | -| **6** | Перенос HA config (`.storage` + yaml + www) | ✅ | -| **7** | Правка хардкод-адресов (modbus host, HA_TOKEN) | ✅ | -| **8** | ZONT MQTT → на t610 | ✅ (доступ к ZONT) | -| **9** | Камера (после выяснения §8) | ❓ | -| **10** | Полная проверка (§6) | ✅ | -| **11** | Бэкап: rsync на TrueNAS + git в Gitea | ✅ | -| **12** | GPON-редиректы + Caddy → t610 | ✅ | -| **13** | Отключение на TrueNAS (§7) | ✅ после проверки | +| **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)