[2026-09-15] eagle: family/how-to/home-automation.md family/tech/zigbee-t610-z2m-i-zha.md
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
title: "🏠 Домашняя автоматизация"
|
||||
aliases: [Умный дом, Home automation, HA, Zigbee, Modbus, вентиляция, t610, RCU stall, USB reset]
|
||||
tags: [family, how-to, smarthome]
|
||||
updated: 2026-09-15 (ночь-10: Zigbee — Z2M остановлен, ZHA создана стратегией `reuse_settings`, сеть взята со стика, устройства отвечают; переезд 4/5)
|
||||
updated: 2026-09-15 (ночь-11: Zigbee — переезд в ZHA НЕ состоялся, ZHA удалена прерванным откатом, Z2M работает; дом в исходном рабочем состоянии)
|
||||
---
|
||||
|
||||
# 🏠 Домашняя автоматизация
|
||||
@@ -41,7 +41,9 @@ updated: 2026-09-15 (ночь-10: Zigbee — Z2M остановлен, ZHA со
|
||||
|
||||
> 🔴 **Камера сейчас на xHCI (`USB3-1`), Zigbee — на OHCI (`USB1-2`).** Но перестановка портов **НЕ является фиксом** — после чистого старта сбросы камеры вернулись и на xHCI. Причину RCU stall см. §3.1, ограничения диагностики — §3.4, §3.5.
|
||||
|
||||
> 🔄 **ZIGBEE: ИДЁТ ПЕРЕЕЗД Z2M → ZHA (2026-09-15 ночь).** `zigbee2mqtt` **остановлен** (`state=stopped`, не удалён), **ZHA создана и `loaded`** (`entry_id` `01M2JNE7J4EG6ZN08M06927SM0`, стратегия `reuse_settings` — сеть взята со стика, устройства отвечают без перепаривания). Детали, рецепт и питфоллы — [[family/tech/zigbee-t610-z2m-i-zha]]. Пока Z2M выключен, Zigbee-сущности в HA (`light.smart_light_office_*` и др.) недоступны — это ожидаемо, не поломка.
|
||||
> ✅ **ZIGBEE: РАБОТАЕТ НА Z2M (2026-09-15, финал).** Попытка переезда Z2M → ZHA **не состоялась**: ZHA была создана (`reuse_settings`, сеть взята со стика, устройства отвечали), но затем **удалена прерванным скриптом откатa**, а **Z2M запущен заново**. Сейчас: `zigbee2mqtt` **started**, 19 устройств в сети, имена на месте, 16 автоматизаций целы, `modbus-bridge` получает данные. **Потерь нет.**
|
||||
>
|
||||
> 📌 **Переезд в ZHA — НЕ терминальная задача.** После `reuse_settings` каждое устройство заводится руками в UI («Add device»), 6 батарейных — с кнопкой в руках; REST не отдаёт список устройств ZHA (только WebSocket). Детали, рецепт, разбор ошибок — [[family/tech/zigbee-t610-z2m-i-zha]].
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ related:
|
||||
- '[[family/plans/t610-backup-to-truenas]]'
|
||||
---
|
||||
|
||||
# Zigbee на t610 — переезд Z2M → ZHA (В РАБОТЕ)
|
||||
# Zigbee на t610 — переезд Z2M → ZHA (НЕ СОСТОЯЛСЯ, рецепт сохранён)
|
||||
|
||||
> 🚦 **ИТОГОВОЕ СОСТОЯНИЕ (2026-09-15, ФИНАЛ):** переезд **НЕ состоялся**. ZHA была создана (`reuse_settings`, сеть взята со стика — техника подтверждена рабочей), но затем **удалена прерванным скриптом откатa**, а **Z2M запущен заново и работает**. Дом в исходном рабочем состоянии: 19 устройств, имена на месте, 16 автоматизаций целы, `modbus-bridge` получает данные. **Потерь данных нет.**
|
||||
>
|
||||
@@ -152,15 +152,17 @@ ZHA стартует на ТОМ ЖЕ стике
|
||||
ZHA их обнаруживает (уже в сети) — заново спаривать НЕ нужно
|
||||
```
|
||||
|
||||
**Порядок (статус на 2026-09-15 ночь-10):**
|
||||
**Порядок (статус на 2026-09-15, ФИНАЛ — шаги 1-4 выполнены и затем ОТКАЧЕНЫ):**
|
||||
|
||||
1. ✅ **СДЕЛАНО — Полный snapshot HA.** Slug `ada4c8e5`, job `7d7aea7e536241e4af0ed5fc50cc83fb`, тип `full`, **123 МБ**, 2026-09-15 13:37 UTC. Второй, более ранний: `2880be7c` (13:35). Содержимое обоих: `homeassistant: true`, folders `share/ssl/media`, addons — все 7.
|
||||
2. ✅ **СДЕЛАНО — скачаны `coordinator_backup.json` + `database.db` + `configuration.yaml` + `state.json`** на Mac, md5 сверены (см. §Бэкапы).
|
||||
3. ✅ **СДЕЛАНО — Z2M остановлен** (`45df7312_zigbee2mqtt`, `stop`, **не удалён**). Проверено: `state=stopped`, стик свободен (`/dev/ttyACM0`, `crw-rw---- root:audio`).
|
||||
4. ✅ **СДЕЛАНО — ZHA создана через config flow** (`entry_id` `01M2JNE7J4EG6ZN08M06927SM0`, `state=loaded`). Стратегия — **`reuse_settings`**: сеть взята со стика, файл backup НЕ заливался.
|
||||
5. ⬜ **СЛЕДУЮЩИЙ ШАГ — интервью устройств.** ZHA их слышит (`Unknown device AddrModeAddress(NWK, 0x…)` — сеть работает, ключи совпали, но IEEE ещё не известен). HA → Настройки → Устройства и службы → ZHA → **«Добавить устройство»**.
|
||||
1. ✅ **ВЫПОЛНЕНО — Полный snapshot HA.** Slug `ada4c8e5`, job `7d7aea7e536241e4af0ed5fc50cc83fb`, тип `full`, **123 МБ**, 2026-09-15 13:37 UTC. Второй, более ранний: `2880be7c` (13:35). Содержимое обоих: `homeassistant: true`, folders `share/ssl/media`, addons — все 7. **Бэкапы живы и остаются страховкой.**
|
||||
2. ✅ **ВЫПОЛНЕНО — скачаны `coordinator_backup.json` + `database.db` + `configuration.yaml` + `state.json`** на Mac, md5 сверены (см. §Бэкапы).
|
||||
3. ✅ **ВЫПОЛНЕНО — Z2M был остановлен** (`45df7312_zigbee2mqtt`, `stop`). **Сейчас снова запущен** (`state=started`).
|
||||
4. ✅ **ВЫПОЛНЕНО — ZHA была создана** через config flow (`entry_id` `01M2JNE7J4EG6ZN08M06927SM0`, `state=loaded`, стратегия `reuse_settings`). **Сейчас УДАЛЕНА** прерванным `rollback.sh` — в списке config entries её нет.
|
||||
5. ⬜ **НЕ ДОДЕЛАНО — интервью устройств.** Требует UI: HA → Настройки → Устройства и службы → ZHA → **«Добавить устройство»**.
|
||||
6. ⬜ Батарейные `EndDevice` (6 шт.) спят — разбудить кнопкой. Это **не перепаривание**.
|
||||
7. ⬜ Переназначить `modbus-bridge` (завязан на `switch.0xa4c138f8da8bc478`); задать 16 friendly names заново.
|
||||
7. ⬜ Задать 16 friendly names заново; переназначить `modbus-bridge`; переписать ссылки в 16 автоматизациях.
|
||||
|
||||
> 🔴 **Повтор возможен ТОЛЬКО как ручная операция в UI.** Агент может сделать шаги 1-4 (они отработаны, скрипты есть), но шаги 5-7 — за клавиатурой с кнопками в руках. Не начинать без готовности довести до конца.
|
||||
|
||||
### 🔑 Рабочий рецепт: создание ZHA через config flow (HA core API)
|
||||
|
||||
@@ -304,14 +306,15 @@ unavailable: 8 — и НИ ОДНА не Zigbee:
|
||||
|
||||
> ⚠️ **УРОК СЕССИИ (для будущих):** я трижды дал противоречащий ответ на один вопрос, потому что ухватился за пустой `devices: []` и объявил «перенос отменяется», не разобрав, что для ember это норма и что файл вообще не участвует. **Правильная формулировка для Alex — сразу факт: «сеть в стике, файл не нужен, переезд делается».** Alex читает ответ как решение, а не как рассуждение.
|
||||
|
||||
**Цена переезда (реальная, после выполнения):**
|
||||
- 16 friendly names задать заново (ZHA их не читает из `database.db`) — ⬜ осталось
|
||||
- Все автоматизации со ссылками на `switch.0xa4c138f8da8bc478` и подобными — переписать — ⬜ осталось
|
||||
- `modbus-bridge` сломается и требует переназначения (relay slave 104) — ⬜ осталось
|
||||
- Батарейные `EndDevice` спят — разбудить кнопкой (это НЕ перепаривание) — ⬜ осталось
|
||||
- ✅ **Сеть, ключи и PAN — НЕ потеряны.** Устройства отвечают без спаривания.
|
||||
**Цена переезда (реальная, если повторять):**
|
||||
- 16 friendly names задать заново (ZHA их не читает из `database.db`)
|
||||
- Все автоматизации со ссылками на `switch.0xa4c138f8da8bc478` и подобными — переписать
|
||||
- `modbus-bridge` сломается, требует переназначения (relay slave 104)
|
||||
- Батарейные `EndDevice` спят — разбудить кнопкой (это НЕ перепаривание)
|
||||
- ✅ **Сеть, ключи и PAN — НЕ теряются.** Устройства отвечают без спаривания.
|
||||
|
||||
> 📌 Формулировка: **вопрос не в возможностях ZHA, а в том, что переезд = сменить программу-управитель, а не перенести сеть.** Сеть остаётся в стике.
|
||||
> 📌 И в том, что **эту работу нельзя делегировать агенту** — она требует рук на устройствах.
|
||||
|
||||
---
|
||||
|
||||
@@ -365,6 +368,14 @@ state.json MD5 20bfb775cbab002e59d1be31a15db9e6
|
||||
| `zha-devcount.sh`, `zha-raw.sh` | ⚠️ `404` — device_registry только по WebSocket |
|
||||
| `zha-corelog.sh` | ✅ `GET /core/logs` — доказательство, что устройства отвечают |
|
||||
| `ha-core-check.sh` | ✅ `GET /core/info` → `port: 80`, версия 2026.9.2 |
|
||||
| `rollback.sh` | ⚠️ **УДАЛЯЕТ ZHA и стартует Z2M — ОПАСЕН, прерывался дважды** |
|
||||
| `restore-z2m.sh` | ✅ `start` аддона Z2M + проверка `state` + лог |
|
||||
| `check-final.sh` | ✅ итоговая проверка: unavailable, modbus-bridge, Z2M-публикации |
|
||||
| `state-now.sh`, `diag2.sh`, `diag3.sh`, `zha-recreate-1.sh` | диагностика состояния |
|
||||
|
||||
> 🔴 **ПИТФОЛЛ ПРЕРЫВАНИЯ (главный урок сессии):** `rollback.sh` был прерван на середине **дважды** — один раз успел выполнить `DELETE` config entry ZHA (снёс интеграцию), но не дошёл до `start` Z2M. Система оказалась в подвешенном состоянии. **Правило: скрипты, меняющие состояние, писать с проверкой состояния на входе и идемпотентно** — чтобы повторный запуск после прерывания доделывал, а не ломал.
|
||||
>
|
||||
> 🔴 **ПРИЧИНА ПРЕРЫВАНИЙ:** длинная ssh-команда ждёт апрува; если Alex пишет сообщение в чат вместо подтверждения — апрув истекает, команда убивается, **а уже отправленные на хост шаги остаются применёнными.**
|
||||
|
||||
> ⚠️ **Правило:** скрипты писать на Mac → `scp` → выполнить. Не инлайнить `mosquitto_sub` с паролем в одну ssh-строку — `$` в пароле `mqtt1z3$` ломается в двойных кавычках.
|
||||
> ⚠️ **Проверять скрипт на диске через `od -c`/`grep`, а не глазами в чате** — фильтр секретов маскирует строку с токеном в выводе, но файл на диске целый. Ложная тревога «скрипт побит» уже случалась.
|
||||
|
||||
Reference in New Issue
Block a user