[2026-09-18] eagle: family/how-to/home-automation.md family/plans/t610-zigbee-ids-battery-freshsensors-modbus.md personal/projects/zont-config-compiler.md

This commit is contained in:
Alexey Martemyanov
2026-09-18 01:13:14 +06:00
parent 9b974e5b00
commit 3721175549
3 changed files with 164 additions and 16 deletions
+31 -8
View File
@@ -54,8 +54,10 @@ updated: 2026-09-18
> **Итог:** удалены три слоя мусора (127 сущностей `platform=mqtt` + 18 устройств); **23 устройства ZHA** с читаемыми ID в едином виде (`<зона>_<роль>`), все в зонах; **12 автоматизаций контроля батарей** (порог 20 %, push + persistent); **9 температурных Zigbee-датчиков** отдаются ZONT'у как виртуальные Modbus slave **100, 105112**; **26 автоматизаций: 25 `on`, 1 `off` намеренно** (`Ventilation automation on`); кнопка спальни шлёт события, диммер рулится; свет лестницы + 2 сценария подсветки работают.
>
> 🔴 **Уточнение 2026-09-18 (§6.1):** «9 датчиков отдаются ZONT'у» — верно **только для bridge**.
> Со стороны ZONT зарегистрированы **4** (slaves 100103); датчики тёплых полов `105–111` bridge
> отдаёт, но **ZONT их не опрашивает** — на контроллере нет записей тип 51/52/1. В работе, см. §6.1.
> Bridge отдаёт 9 (slaves 100, 105112). Со стороны ZONT зарегистрированы **4** (slaves 100103).
> ✅ **Исправлено в тот же день (круг 51):** датчики тёплых полов `105–112` собраны в конфиге
> контроллера (24 объекта: 8×51 + 8×52 + 8×1, авто-id, имена «ТП: …»). Заливка на контроллер
> и проверка Alex'ом — ожидаются. См. §6.1.
>
> 🔴 **2026-09-16 (ночь): вычищены 185 призраков Z2M** из архива реестра (`deleted_entities` 360 → 175). Призраки живут **именно в архиве**, а не в `entities` — UI «Обслуживание» их показывал, `/api/states` и WS-реестр нет. Живые (572) не тронуты. Снесены также остатки аддонов `go2rtc`/`file_editor`/`samba_share` и старые `switch_as_x`-обёртки.
> 🔴 **План этажей (`home-plan`) ссылался на снесённого призрака** `light.smart_light_stairs_l1` → ошибка на карте. Исправлено на `light.light_stairs_left`. Проверять ссылки плана после сноса: `~/tmp-t610/fix_plan_stairs.sh`.
@@ -745,12 +747,33 @@ ZONT ──[тип 51: устройство, slave_id]────────
только контур отопления `#Z10152=16,'Тёплый пол'` и его штатный датчик `#Z8432=27`. Ни одной записи
типа 51/1 для тёплых полов нет → bridge их отдаёт, ZONT **не спрашивает**.
** Состояние регистрации (2026-09-18, круг 51):** работа **в процессе**. Энкодер научился
выдавать авто-id для типов **1 / 51 / 52** (коммит `9dfb2ed`), поэтому 21 новый объект
(7 × тип 51 + 7 × тип 52 + 7 × тип 1) добавляются **без прописанных id**. Имена на ZONT-стороне —
**короткий префикс «ТП: »** (`ТП: гостиная`, `ТП: серая`, …), решение Alex, не полная фраза
«Температура … тёплый пол». Скрипт `/tmp/add_floor_sensors.py` (флаг `--toilet` для 8-го датчика,
slave 112) готов и **не запущен** — ждёт ответа Alex по slave 112. Детали: §32 доки компилятора.
** Состояние регистрации (2026-09-18, круг 51, 2-я часть): 24 объекта СОБРАНЫ в конфиге ZONT.**
Энкодер научился выдавать авто-id для типов **1 / 51 / 52** (коммит `9dfb2ed`), поэтому 24 новых
объекта (**8 × тип 51 + 8 × тип 52 + 8 × тип 1**) добавлены **без прописанных id** — номера выдал
аллокатор из окна `4098..19999`: устройства `41174124`, регистры `41014108`, датчики `41094116`.
Имена на ZONT-стороне — **короткий префикс «ТП: »** (`ТП: гостиная`, `ТП: кабинет`, …), решение Alex.
| slave | HA-сущность | устройство (51) | регистр (52) | датчик (1) | имя в ZONT |
|---|---|---|---|---|---|
| 105 | `living_room_floor_*` | `4117` | `4101` | `4109` | ТП: гостиная |
| 106 | `severnaia_floor_*` | `4118` | `4102` | `4110` | ТП: серая ⚠️ имя уточняется |
| 107 | `kabinet_floor_*` | `4119` | `4103` | `4111` | ТП: кабинет |
| 108 | `kitchen_floor_*` | `4120` | `4104` | `4112` | ТП: кухня |
| 109 | `vannaia_floor_*` | `4121` | `4105` | `4113` | ТП: ванная |
| 110 | `prikhozhaia_floor_*` | `4122` | `4106` | `4114` | ТП: прихожая |
| 111 | `dushevaia_floor_*` | `4123` | `4107` | `4115` | ТП: душевая |
| 112 | `toilet_1_floor_*` | `4124` | `4108` | `4116` | ТП: туалет 1 |
**Проверено:** цепочка устройство→регистр→датчик по всем 8 — зелёная; круг `783 → 783` ЧИСТЫЙ;
txt→yml→txt байт-в-байт; регресс 10 снапшотов зелёный. 785 → **809 строк**.
**⏳ Осталось:** имя slave 106 (Alex: «не ТП серая, а zigbee серая — там нет ТП»; префикс «ТП: »
у остальных 7 не пересматривался) · **заливка на контроллер** (ждёт «лей») · **коммит ПОСЛЕ**
проверки Alex'ом (в рабочем дереве незакоммичены `yml-to-config.py` + целевой `.yml`).
🔑 **Ключевой факт:** bridge-сторона была готова ещё 2026-09-15 (8 маппингов slave 105112 в
`config.template.tmpl`) — работы на мосте **ноль**; не хватало именно ZONT-стороны. Источник истины
по маппингам — `config.template.tmpl` **на t610**, локальный `config.yml` в репо **устарел**.
Детали и питфоллы (107 — липкий id, 108 — `register_id`) — §32, §33 доки компилятора.
**Порядок работ (обе стороны!).** Bridge-сторона и ZONT-сторона правятся **разными файлами** и
деплоятся по-разному: bridge — `/addons/modbus-bridge/data/config.template.tmpl` на t610 + `rebuild`;