[2026-09-14] eagle: family/plans/t610-home-automation.md

This commit is contained in:
Alexey Martemyanov
2026-09-14 14:37:54 +06:00
parent d31fdad19d
commit 71174d8c03
+44 -4
View File
@@ -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 <slug>` | `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 <slug>` — рабочий приём «оживить» 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`*. Правила: