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

This commit is contained in:
Alexey Martemyanov
2026-09-18 11:48:57 +06:00
parent f8745833e3
commit 6ff97ea070
4 changed files with 210 additions and 24 deletions
+31 -14
View File
@@ -747,33 +747,50 @@ ZONT ──[тип 51: устройство, slave_id]────────
только контур отопления `#Z10152=16,'Тёплый пол'` и его штатный датчик `#Z8432=27`. Ни одной записи
типа 51/1 для тёплых полов нет → bridge их отдаёт, ZONT **не спрашивает**.
**✅ Состояние регистрации (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.
**✅ Состояние регистрации (2026-09-18, круг 52): 8 датчиков ТП — НА КОНТРОЛЛЕРЕ, + «ТП: гардеробная» собрана.**
Свежий дамп контроллера (`config_local_2026-09-18_11-41-36.txt`, 648 строк, снят
`curl -s http://192.168.0.50/config.txt`) **подтверждает фактом:** объекты `#Z4117``#Z4124`
(тип 51) + `#Z4109``#Z4116` (тип 1) **уже в конфиге прибора** — т.е. заливка круга 51 **состоялась**.
⚠️ **Урок (дорого стоил):** этот дамп **сильно отличается** от артефакта `00-45-31` — тот дамп
устарел (в нём датчиков 105–112 не было вовсе). 🔴 **Правку боевого конфига строить только от
СВЕЖЕГО дампа, снятого прямо перед работой.** Артефакт прошлого круга — не база.
Также в свежем дампе **Alex уже создал два контура**: `#Z10525=16,'ТП: Кабинет'` и
`#Z10643=16,'ТП: Гардеробная'`.
| slave | HA-сущность | устройство (51) | регистр (52) | датчик (1) | имя в ZONT |
|---|---|---|---|---|---|
| 105 | `living_room_floor_*` | `4117` | `4101` | `4109` | ТП: гостиная |
| 106 | `severnaia_floor_*` | `4118` | `4102` | `4110` | ТП: серая ⚠️ имя уточняется |
| 106 | `severnaia_floor_*` | `4118` | `4102` | `4110` | **zigbee серая** ✅ (в свежем дампе — имя уже `zigbee серая`) |
| 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 |
| **113** | `garderobnaia_temperature_temperature` | `4127` | `4125` | `4126` | **ТП: гардеробная** 🆕 (собрана, не залита) |
**Проверено:** цепочка устройство→регистр→датчик по всем 8 — зелёная; круг `783 → 783` ЧИСТЫЙ;
txt→yml→txt байт-в-байт; регресс 10 снапшотов зелёный. 785 → **809 строк**.
**Проверено (круг 51):** цепочка устройство→регистр→датчик по всем 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-стороны. Источник истины
**Круг 52 («ТП: гардеробная»):** 2 вставки в YML (`virtual_sensors` + `modbus_devices`, slave 113),
сборка → **651 строка** (648 + 3). Дифф против свежего дампа: **потерь 0, изменённых тел 0**,
добавлено ровно `4125`/`4126`/`4127`. Артефакт — `/tmp/zont_gard.txt` (**на боевой путь не перенесён**).
⚠️ **Маппинг bridge для slave 113 нужен!** В `config.template.tmpl` на t610 сейчас **только 105112**;
для гардеробной надо добавить `source: ha``sensor.garderobnaia_temperature_temperature` + `rebuild`,
иначе ZONT будет спрашивать пустой слот.
**⏳ Осталось (круг 52):** заливка на контроллер (ждёт «лей») · коммит ДО/ПОСЛЕ ·
🔴 контур `#Z10643=16,'ТП: Гардеробная'` ссылается на регистр `8911` (= `register_id` датчика
«Температура Гостиная», `#Z8910`/`#Z8912`), а **не** на новый `4125` — перенаправлять ли, не подтверждено.
🔑 **Ключевой факт:** bridge-сторона для 105–112 была готова ещё 2026-09-15 (маппинги в
`config.template.tmpl`); не хватало именно ZONT-стороны. Источник истины
по маппингам — `config.template.tmpl` **на t610**, локальный `config.yml` в репо **устарел**.
Детали и питфоллы (107 — липкий id, 108 — `register_id`) — §32, §33 доки компилятора.
Детали и питфоллы (107 — липкий id, 108 — `register_id`) — §32, §33, §34 доки компилятора.
**Порядок работ (обе стороны!).** Bridge-сторона и ZONT-сторона правятся **разными файлами** и
деплоятся по-разному: bridge — `/addons/modbus-bridge/data/config.template.tmpl` на t610 + `rebuild`;