From 71174d8c0324ddad99797daac9e207efefc3b5a2 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Mon, 14 Sep 2026 14:37:54 +0600 Subject: [PATCH] [2026-09-14] eagle: family/plans/t610-home-automation.md --- family/plans/t610-home-automation.md | 48 +++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/family/plans/t610-home-automation.md b/family/plans/t610-home-automation.md index 4eab05f5..28d25a03 100644 --- a/family/plans/t610-home-automation.md +++ b/family/plans/t610-home-automation.md @@ -6,9 +6,10 @@ --- -## 1. Состояние на 2026-09-14 +## 1. Состояние на 2026-09-14 (актуализировано 15:33) **Этап 1 ✅ · Этап 2 ✅ · Этап 3 ✅ ЗАКРЫТ.** Остался Этап 4 (переключение трафика и отключение TrueNAS). +**Последняя верификация: 2026-09-14 15:33 — регресс-проверка после обмена гнёзд пройдена, всё живо (см. ниже). Ничего не менялось (только чтение).** | Что | Факт | |---|---| @@ -20,6 +21,24 @@ | Аддоны | `core_ssh`, `core_mosquitto`, `a0d7b954_nodered`, `45df7312_zigbee2mqtt`, `local_mbusd`, `local_modbus-bridge` — все `started` | | modbus-bridge | MQTT + HA-опрос работают (без 404) | +### ✅ Верификация 2026-09-14 15:33 (только чтение, ничего не менялось) + +Проверено командами на t610 по итогам сессии: + +| Проверка | Команда | Результат | +|---|---|---| +| Шнур в гнезде 4 воткнут | `ls /dev/serial/by-path/` | ✅ `pci-0000:00:12.0-usb-0:4:1.0-port0 → ttyUSB0/1` **есть**, `lsusb` видит **оба** CH340 (`1a86:7523`) | +| Привязка mbusd | `ha apps info local_mbusd --raw-json \| jq -r '.data.options.device'` | `...usb-0:3:1.0-port0` — **вентиляция (гнездо 3)** ✅ | +| Привязка bridge | `ha apps info local_modbus-bridge --raw-json \| jq -r '.data.options.device'` | `...usb-0:4:1.0-port0` — **ZONT 485 (гнездо 4)** ✅ | +| Оба аддона | `ha apps info ` | `local_mbusd` 1.0.0 `started`, `local_modbus-bridge` 1.1.0 `started` | +| Сниффинг живой | `ha apps logs local_modbus-bridge` | slave 1, 2, 3, 14, 20, 101, 103 — CRC OK, публикации в MQTT идут | + +> ✅ **Срочный пункт из прошлой сессии («гнездо 4 осталось отключённым») ЗАКРЫТ** — шнур на месте, оба аддона работают на верных гнёздах, регресса нет. + +**⚠️ НОВОЕ НАБЛЮДЕНИЕ (не исследовано, причина неизвестна):** лог `modbus-bridge` «замерзал» — последняя запись была `08:32:58`, при живом аддоне (`started`) и текущем времени `15:33` → **~7 часов без единой строки**. После `ha apps restart local_modbus-bridge` лог ожил и пошёл сниффинг. +**Что НЕ утверждается:** причина не установлена, теорий не строим. Возможные направления для будущей сессии (проверять фактом, не гипотезой): засыпание USB-контроллера / зависание serial-хендла в контейнере / ротация лога. **Проверить** при следующем появлении: `ha apps info local_modbus-bridge` (state), сверить время последней строки лога с `date`, на живом ли HA (bridge опрашивает HA-сенсоры). +> 📌 Побочный эффект наблюдения: **`ha apps restart ` — рабочий приём «оживить» bridge**, если HA-опрос встал. Проверено, безопасно (опции не трогает). + **Не работает / не доделано:** | Что | Состояние | @@ -855,6 +874,12 @@ curl -s -X POST -H "$HDR" -H "Content-Type: application/json" \ - **`not_from`** убран из триггеров кнопок (бэкап `automations.yaml.bak-20260914-131541`). - **«Аппаратный блокер» заслонок опровергнут** — шина живая, заслонки (slave 11/12) отвечают. +**✅ Закрыто / установлено в этой сессии (2026-09-14, вечерняя верификация 15:33):** +- **Регресс-проверка после обмена гнёзд — ПРОЙДЕНА (только чтение, ничего не менялось).** Оба аддона `started`, привязки совпадают с финалом (`mbusd`→`usb-0:3`, `bridge`→`usb-0:4`), сниффинг живой (slave 1/2/3/14/20/101/103, CRC OK), MQTT публикуется. Срочный пункт «гнездо 4 отключено» — **закрыт**. +- **Осталось 10 `unavailable` — все известные и объяснённые** (slave 10 закомментирован — задача снята; `*_summary` без `\|default(0)`; `todo.shopping_list` системная; `switch.sauna` — розетка обесточена). Ничего нового не сломалось. +- **⚠️ Новое наблюдение:** лог `modbus-bridge` не писался ~7 ч (последняя строка `08:32:58` при времени `15:33`) при `state: started`; `ha apps restart local_modbus-bridge` оживил. **Причина НЕ установлена — теорий не строить, проверять фактом.** Приём «restart для оживления bridge» задокументирован в §1. +- **Деталь привязки:** `by-path` `usb-0:3`/`usb-0:4` **нестабильны по tty-номеру** (`usb-0:4`→`ttyUSB1`, `usb-0:3`→`ttyUSB0` на момент проверки). Работать **только по by-path**, tty-номера не запоминать (§3). + **✅ Закрыто / установлено в этой сессии (2026-09-14, позднейшая, Modbus-диагностика):** - **Опции mbusd — откат подтверждён.** Аддон `started`, значения `timeout 1000 / retries 3 / maxconn 8` (как было). `maxconn` **не трогать** (питфолл в §5). - **Привязку tty агент НЕ менял** — доказано бэкапом опций `/config/mb-fix-backup-20260914-145419/mbusd-options.json` (`device` был и остался `...usb-0:4...`). @@ -867,9 +892,24 @@ curl -s -X POST -H "$HDR" -H "Content-Type: application/json" \ - **`ha core stop` в SSH-скрипте может повиснуть** — проверять живость после (§5). **⏳ СРОЧНО, при следующей сессии (состояние железа после теста):** -- 🔴 **Гнездо 4 (по тесту — ZONT-линия) ОСТАЛОСЬ ОТКЛЮЧЕННЫМ** — Alex выдернул шнур, не воткнул обратно. `mbusd` сейчас работает **без устройства**. -- **Проверка:** `ls /dev/serial/by-path/` должен показать **`pci-0000:00:12.0-usb-0:4:1.0-port0`**. Если нет — шнур не воткнут. `ha apps info local_mbusd --raw-json | jq -r '.data.options.device'` → должен указывать на `...usb-0:4...`. -- Если шнур не вернуть — **вся вентиляция/ZONT-линия в дауне**, а `44 unavailable` могут измениться. +- ✅ **ЗАКРЫТО 2026-09-14 15:33:** гнездо 4 (ZONT-линия) **воткнуто**, `by-path/pci-0000:00:12.0-usb-0:4:1.0-port0` существует, `lsusb` видит оба CH340. `mbusd` работает с гнездом 3, `modbus-bridge` — с гнездом 4. Вся вентиляция/ZONT-линия **в дауне НЕ находится**. Доп. деталь: `by-path` **нестабилен по имени tty** — `usb-0:4` на момент проверки вёл на `ttyUSB1`, а `usb-0:3` на `ttyUSB0` (порядок регистрации не гарантирован). **Привязка только по by-path, tty-номера не запоминать.** +- **Осталось проверить при возврате к теме:** стабильность bridge (см. «НОВОЕ НАБЛЮДЕНИЕ» выше — лог замирал на 7 ч). + +**🗺 ПРЕДЛОЖЕННЫЙ ПЛАН НА СЛЕДУЮЩУЮ СЕССИЮ (2026-09-14 15:33, ожидает выбора Alex):** + +**Вариант A — безопасный заход (рекомендован агентом):** + +| Шаг | Задача | Риск | Действие | +|---|---|---|---| +| A1 | **№3**: `\|default(0)` в template-сенсоры `*_summary` | ✅ низкий | Бэкап `configuration.yaml` → правка (`round(0)` получает `unknown`) → `ha core check` → `ha core restart`. Гасит 4 ERROR'а, оживляет `sensor.bedroom_summary`/`kids_summary`/`dining_summary`/`dining_air_summary`. Откат = один файл | +| A2 | **№7**: Static IP для t610 | ✅ низкий | На роутере `192.168.2.2` (SSH root) привязать MAC `9c:8e:99:ef:3f:c5` → `192.168.2.176`. Сервисы не трогаются | +| A3 | **№8**: Бэкап конфигов t610 | ✅ низкий | `tar` конфигов t610 → Mac + TrueNAS + коммит в Gitea `git.mallexxx.duckdns.org` | + +**Вариант B — сразу Этап 4** (№5: Caddy upstream → t610, GPON-редирект → t610, ZONT MQTT → t610). 🔴 Трогает рабочее → нужно окно и согласование с Alex. + +**Открытый вопрос к Alex:** по «замерзанию» лога bridge — копать сейчас или отложить. + +--- **🔴 ПРОЦЕССНЫЙ УРОК СЕССИИ (для будущих сессий):** Агент потратил ~полсессии на теории (второй мастер, шторм коннектов, шторм `.157`), слал запросы в шину (засоряя её и портя собственные замеры), сломал mbusd, останавливал HA — вместо **одного физического теста**, который Alex сделал за минуту: *выдернуть шнур → посмотреть `dmesg`*. Правила: