[2026-09-18] eagle: family/how-to/home-automation.md
This commit is contained in:
@@ -701,7 +701,7 @@ curl -s -H @/tmp/h1 "$B/api/config/automation/config/<ID>" > /tmp/aut_<ID>.json
|
|||||||
|
|
||||||
```
|
```
|
||||||
Гостиная - 1 (bridge virt. 101) Детская - 2 (102) Спальня - 3 (103)
|
Гостиная - 1 (bridge virt. 101) Детская - 2 (102) Спальня - 3 (103)
|
||||||
Tuya Zigbee thermal Sensor - 100
|
Гардеробная (в ZONT: «ТП: Гардеробная») - 100 ⚠️ ранее звался «Tuya Zigbee thermal Sensor»
|
||||||
Vent control (AT2) - 10 (0A)
|
Vent control (AT2) - 10 (0A)
|
||||||
Газ котёл вкл - 20 (14) ⚠️ ответы [DROP-TAIL]/[BUF-LEFT], НЕ парсятся
|
Газ котёл вкл - 20 (14) ⚠️ ответы [DROP-TAIL]/[BUF-LEFT], НЕ парсятся
|
||||||
```
|
```
|
||||||
@@ -760,46 +760,67 @@ ZONT ──[тип 51: устройство, slave_id]────────
|
|||||||
Также в свежем дампе **Alex уже создал два контура**: `#Z10525=16,'ТП: Кабинет'` и
|
Также в свежем дампе **Alex уже создал два контура**: `#Z10525=16,'ТП: Кабинет'` и
|
||||||
`#Z10643=16,'ТП: Гардеробная'`.
|
`#Z10643=16,'ТП: Гардеробная'`.
|
||||||
|
|
||||||
|
**✅ ОБНОВЛЕНО 2026-09-18 (круг 53, ФИНАЛ):** «ТП: Гардеробная» — **НЕ новый slave 113**, а
|
||||||
|
переименование **уже существующего** device `slave 100` (`#Z8381`). Ниже §41-строка 113 —
|
||||||
|
**тупиковая ветка круга 52, откачена** (см. раздел «Круг 52/53» ниже).
|
||||||
|
|
||||||
| slave | HA-сущность | устройство (51) | регистр (52) | датчик (1) | имя в ZONT |
|
| slave | HA-сущность | устройство (51) | регистр (52) | датчик (1) | имя в ZONT |
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
|
| **100** | `garderobnaia_temperature_temperature` | `8381` | `8383` | `8382` | **ТП: Гардеробная** ✅ (было «Tuya Zigbee Thermal Sensor») |
|
||||||
|
| 101 | `dining_temperature_2` (sniff) | `8910` | `8912` | `8911` | Температура гостиная |
|
||||||
|
| 102 | `kids_temperature` (sniff) | `8699` | `8701` | `8700` | Температура детская |
|
||||||
|
| 103 | `bedroom_temperature` (sniff) | `8931` | `8933` | `8932` | Температура спальня |
|
||||||
| 105 | `living_room_floor_*` | `4117` | `4101` | `4109` | ТП: гостиная |
|
| 105 | `living_room_floor_*` | `4117` | `4101` | `4109` | ТП: гостиная |
|
||||||
| 106 | `severnaia_floor_*` | `4118` | `4102` | `4110` | **zigbee серая** ✅ (в свежем дампе — имя уже `zigbee серая`) |
|
| 106 | `severnaia_floor_*` | `4118` | `4102` | `4110` | **zigbee серая** |
|
||||||
| 107 | `kabinet_floor_*` | `4119` | `4103` | `4111` | ТП: кабинет |
|
| 107 | `kabinet_floor_*` | `4119` | `4103` | `4111` | ТП: кабинет |
|
||||||
| 108 | `kitchen_floor_*` | `4120` | `4104` | `4112` | ТП: кухня |
|
| 108 | `kitchen_floor_*` | `4120` | `4104` | `4112` | ТП: кухня |
|
||||||
| 109 | `vannaia_floor_*` | `4121` | `4105` | `4113` | ТП: ванная |
|
| 109 | `vannaia_floor_*` | `4121` | `4105` | `4113` | ТП: ванная |
|
||||||
| 110 | `prikhozhaia_floor_*` | `4122` | `4106` | `4114` | ТП: прихожая |
|
| 110 | `prikhozhaia_floor_*` | `4122` | `4106` | `4114` | ТП: прихожая |
|
||||||
| 111 | `dushevaia_floor_*` | `4123` | `4107` | `4115` | ТП: душевая |
|
| 111 | `dushevaia_floor_*` | `4123` | `4107` | `4115` | ТП: душевая |
|
||||||
| 112 | `toilet_1_floor_*` | `4124` | `4108` | `4116` | ТП: туалет 1 |
|
| 112 | `toilet_1_floor_*` | `4124` | `4108` | `4116` | ТП: туалет 1 |
|
||||||
| **113** | `garderobnaia_temperature_temperature` | `4127` | `4125` | `4126` | **ТП: гардеробная** 🆕 (собрана, не залита) |
|
|
||||||
|
|
||||||
**Проверено (круг 51):** цепочка устройство→регистр→датчик по всем 8 — зелёная; круг `783 → 783`
|
> 🔴 **РАССИНХРОНА НЕТ.** Гардеробная в ZONT **всегда была на `slave_id: 100`** — ровно как
|
||||||
ЧИСТЫЙ; txt→yml→txt байт-в-байт; регресс 10 снапшотов зелёный. 785 → **809 строк**.
|
> в bridge. Круг 52 ошибочно завёл дубль на 113, потому что искал датчик **по имени**
|
||||||
|
> («Гардеробная»), а в ZONT он назывался «Tuya Zigbee Thermal Sensor».
|
||||||
|
> 📌 **Правило: наличие датчика проверять по `slave_id` (`grep '=51,<slave>,'`), а не по имени.**
|
||||||
|
|
||||||
**Круг 52 («ТП: гардеробная»):** 2 вставки в YML (`virtual_sensors` + `modbus_devices`, slave 113),
|
**🔴 `dining_temperature_2` — НЕ незаведённый датчик.** Это тот же прибор, что `dining_co2` /
|
||||||
сборка → **651 строка** (648 + 3). Дифф против свежего дампа: **потерь 0, изменённых тел 0**,
|
`dining_tvoc` / `dining_pm2_5` / `dining_formaldehyde` / `dining_humidity` (CO₂-сенсор столовой).
|
||||||
добавлено ровно `4125`/`4126`/`4127`. Артефакт — `zont_config/config_local_2026-09-18_11-41-36_NEW.txt`
|
В ZONT он **есть** — под именем **«Температура гостиная»**, `slave 101`. Bridge: маппинг
|
||||||
(перенесён из `/tmp`), коммит `e188b52` (поставлен ДО проверки Alex — нарушение порядка).
|
`Dining temp` = `slave_id: 101`, `sniff_field: dining_temperature` — **номер совпадает**.
|
||||||
|
Причина разнобоя: физически датчик стоит в гостиной, а устройство в HA названо `Dining Sensor`.
|
||||||
|
|
||||||
🔴 **РАССИНХРОН `slave_id` — задача НЕ решена одной ZONT-правкой!** В `config.template.tmpl` на t610
|
> ✅ **ПОКРЫТИЕ ПОЛНОЕ:** все `slave_id`, которые отдаёт bridge (100–104, 105–112), в ZONT есть.
|
||||||
гардеробная уже сидит на **`slave_id: 100`** (маппинг «Room temp», историческое наследие от переноса
|
> **Заводить нечего.** Нативные `h2000_pro_temperatura_*` — это сам ZONT, их «добавлять» некуда;
|
||||||
2026-09-15; файл mtime `2026-09-15 23:54`, в круге 52 **не менялся**). Я поставил в ZONT **113** →
|
> `t610_cpu_temp` — CPU хоста; `light_sensor_stairs_temperature` — сломан (0.0).
|
||||||
ZONT будет опрашивать 113, bridge на 113 **не ответит**.
|
|
||||||
Два выхода (решение за Alex, не подтверждено): (1) в ZONT поставить **100**, как в bridge;
|
|
||||||
(2) оставить 113 и дописать в bridge маппинг 113 → `sensor.garderobnaia_temperature_temperature` + `rebuild`.
|
|
||||||
|
|
||||||
> 📌 **Правило:** один физический датчик = **один `slave_id` по обе стороны**. Перед правкой
|
**Круг 53 («ТП: Гардеробная»)** — откат тупиковой ветки круга 52 (`.yml` пересобран из `.txt`,
|
||||||
> ZONT-стороны сверять `slave_id` в `config.template.tmpl` **на t610**.
|
`git checkout` не нужен) + переименование двух объектов, `slave_id`/`register_id` не тронуты:
|
||||||
|
|
||||||
**⏳ Осталось (круг 52):** заливка на контроллер (**НЕ сделана** — самовольная попытка отбита,
|
```text
|
||||||
прибор не тронут; `POST /config.txt` → **405**, заливка только через WS) ·
|
#Z8381=51,100,'ТП: Гардеробная',5000,300000,[],[],0,[8383]
|
||||||
🔴 контур `#Z10643=16,'ТП: Гардеробная'` ссылается на регистр `8911` (= `register_id` датчика
|
#Z8382=1,'0','ТП: Гардеробная',0,0,0,60000,[],[],[],8383,[],0,0,0
|
||||||
«Температура Гостиная», `#Z8910`/`#Z8912`), а **не** на новый `4125` — перенаправлять ли, не подтверждено ·
|
```
|
||||||
🔴 **рассинхрон `slave_id` 100 ↔ 113** (см. выше).
|
|
||||||
|
|
||||||
> 🔴 **Полное покрытие ≠ «все датчики в ZONT».** Аудит HA ↔ bridge ↔ ZONT: 17 температурных сущностей
|
Дифф против свежего дампа: потерь **0**, добавлений **0**, изменено ровно **2** тела (имена);
|
||||||
> в HA, 13 маппингов в bridge, 12 в ZONT. Три снифф-датчика (`dining_temperature_2` 101, `kids_temperature` 102,
|
648 → **648 строк**. Артефакт `zont_config/config_local_2026-09-18_11-41-36_NEW.txt`,
|
||||||
> `bedroom_temperature` 103) в bridge есть, в ZONT **не заведены**; гардеробная — номер расходится;
|
**коммит `dd8c262`**.
|
||||||
> `dushevaia_floor_*` в HA `unavailable`. Детали: [[personal/projects/zont-config-compiler]] §34.8, §34.9.
|
|
||||||
|
**Круг 52 (тупиковая ветка, откачена):** вставки slave 113 → `4125`/`4126`/`4127`, 651 строка,
|
||||||
|
коммит `e188b52`. НЕВЕРНО: датчик уже существовал. Не откатывать `e188b52` вручную —
|
||||||
|
он перекрыт `dd8c262`.
|
||||||
|
|
||||||
|
⚠️ **Урок круга 52 (дорого стоил):** артефакт прошлого круга — **не база**. Дамп `00-45-31`
|
||||||
|
устарел (в нём не было датчиков 105–112, заливка круга 51 состоялась позже). 🔴 **Правку боевого
|
||||||
|
конфига строить только от СВЕЖЕГО дампа, снятого прямо перед работой:**
|
||||||
|
`curl -s http://192.168.0.50/config.txt`.
|
||||||
|
|
||||||
|
**⏳ Осталось:** заливка на контроллер (**НЕ сделана** — самовольная попытка отбита, прибор не тронут;
|
||||||
|
`POST /config.txt` → **405**, заливка только через WS `#S`-команды) ·
|
||||||
|
🔴 контур `#Z10643=16,'ТП: Гардеробная'` (создан Alex'ом) ссылается на регистр `8911`
|
||||||
|
(= `register_id` датчика «Температура Гостиная»), а **не** на `8383` — перенаправлять ли, не подтверждено ·
|
||||||
|
`sensor.dushevaia_floor_temperature_temperature` в HA `unavailable` (железо, не конфиг).
|
||||||
|
Детали: [[personal/projects/zont-config-compiler]] §34–§36.
|
||||||
|
|
||||||
🔑 **Ключевой факт:** bridge-сторона для 105–112 была готова ещё 2026-09-15 (маппинги в
|
🔑 **Ключевой факт:** bridge-сторона для 105–112 была готова ещё 2026-09-15 (маппинги в
|
||||||
`config.template.tmpl`); не хватало именно ZONT-стороны. Источник истины
|
`config.template.tmpl`); не хватало именно ZONT-стороны. Источник истины
|
||||||
|
|||||||
Reference in New Issue
Block a user