From ee862074963de0d314c3708fe5ab392ceaa08ad3 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Tue, 15 Sep 2026 23:36:39 +0600 Subject: [PATCH] =?UTF-8?q?[2026-09-16]=20=D0=92=D1=8B=D1=87=D0=B8=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20185=20=D0=BF=D1=80=D0=B8=D0=B7=D1=80=D0=B0?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=20Z2M=20=D0=B8=D0=B7=20=D0=B0=D1=80=D1=85?= =?UTF-8?q?=D0=B8=D0=B2=D0=B0=20=D1=80=D0=B5=D0=B5=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?;=20=D0=BF=D0=BB=D0=B0=D0=BD=20=D1=8D=D1=82=D0=B0=D0=B6=D0=B5?= =?UTF-8?q?=D0=B9=20=D0=BF=D0=BE=D1=87=D0=B8=D0=BD=D0=B5=D0=BD=20(light=5F?= =?UTF-8?q?stairs=5Fleft);=20H2000=5FPRO=20=C2=B0F=20->=20=C2=B0C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- family/how-to/home-automation.md | 4 ++++ family/tech/zigbee-t610-z2m-i-zha.md | 3 +++ 2 files changed, 7 insertions(+) diff --git a/family/how-to/home-automation.md b/family/how-to/home-automation.md index 3844b0a4..b7245aa3 100644 --- a/family/how-to/home-automation.md +++ b/family/how-to/home-automation.md @@ -45,6 +45,10 @@ updated: 2026-09-15 (✅ поздний вечер — Zigbee: +7 новых TS0 > > **Итог:** удалены три слоя мусора (127 сущностей `platform=mqtt` + 18 устройств); **23 устройства ZHA** с читаемыми ID в едином виде (`<зона>_<роль>`), все в зонах; **12 автоматизаций контроля батарей** (порог 20 %, push + persistent); **9 температурных Zigbee-датчиков** отдаются ZONT'у как виртуальные Modbus slave **100, 105–112**; **26 автоматизаций: 25 `on`, 1 `off` намеренно** (`Ventilation automation on`); кнопка спальни шлёт события, диммер рулится; свет лестницы + 2 сценария подсветки работают. > +> 🔴 **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`. +> 🔴 **H2000_PRO отдавал °F** — ручной override `sensor.private.suggested_unit_of_measurement: "°F"` у трёх сущностей. Сброшено через WS с **`options_domain: "sensor.private"`** (через `"sensor"` update проходит, но НЕ меняет). Стало 12.9 / 28.2 / 30.2 °C. +> > 🔴 **Ключевой факт:** переименование HA-сущности **молча ломает** маппинг bridge → slave отдаёт `0`. Проверено на живом случае: slave 100 (кабинет) отдавал `0`, после правки — `23.97`. Правило: **переименовал сущность → проверь `data/config.template.tmpl` + `rebuild` + ссылки в `automations.yaml`.** > > 📌 **Перепаривание НЕ нужно — подтверждено фактом.** Устройства отвечают координатору, ZHA принимает их по NVRAM-сети. Имена даёт технические (`light.tz3000_*`) — переименованы вручную (HA НЕ перегенерирует `entity_id` при смене `name_by_user`). diff --git a/family/tech/zigbee-t610-z2m-i-zha.md b/family/tech/zigbee-t610-z2m-i-zha.md index 7045f66c..d72f4da3 100644 --- a/family/tech/zigbee-t610-z2m-i-zha.md +++ b/family/tech/zigbee-t610-z2m-i-zha.md @@ -394,6 +394,9 @@ curl -s -H "$HDR" http://supervisor/backups | jq | 21 | **Проверить slave bridge без ZONT нельзя** | Bridge — serial-slave: отвечает только на запрос. Признаки работы: `HA poll -> = ` (поллер) и `Response: ... = []` (ответ ZONT'у) | | 22 | 🔴 **`id_reuse: Identifier values have to increase` при переименовании сущности — штатный случай, не поломка** | Внутренний счётчик реестра. **Обход (проверен):** переименовать в промежуточное имя, затем из него в целевое. `entity_id → dom.tmp_xxx → dom.новое_имя` | | 23 | **После `automation reload` `entity_id` автоматизаций обновились сами** | HA перегенерировал их по alias: `automation.datchik_protechki_kotelnaia_batareia` → `automation.batareia_kotelnaia_datchik_protechki`. Проверять по `attributes.id`, не по `entity_id` | +| 24 | 🔴 **Призраки Z2M живут в `deleted_entities`** (архив реестра), а не в `entities`. UI «Обслуживание» их показывает, `/api/states` и WS-реестр — нет | Не путать: `jq '.data.entities'` — живое, `jq '.data.deleted_entities'` — архив. Снос только из архива, живое не трогать. Скрипт: `~/tmp-t610/ghost_purge.sh` (исключает живое + вентиляцию автоматически) | +| 25 | 🔴 **План этажей ссылался на снесённого призрака `light.smart_light_stairs_l1`** → ошибка «недоступно» на карте | Проверять ссылки плана: `jq -r ".data.config.views[].sections[].cards[]?\|select(.type==\"picture-elements\")\|.elements[]?\|select(.entity?!=null)\|.entity" /config/.storage/lovelace.home_plan` → сверить со `/api/states`. Живой = `light.light_stairs_left/right`. Скрипт: `~/tmp-t610/fix_plan_stairs.sh` | +| 26 | 🔴 **H2000_PRO показывал °F: ручной override `sensor.private.suggested_unit_of_measurement: "°F"`** | Сброс: WS `config/entity_registry/update` с **`options_domain: "sensor.private"`** и `options: {suggested_unit_of_measurement: null}`. ⚠️ `options_domain: "sensor"` даёт `success: true`, но **не меняет** единицу — проверено фактом. Значения тоже были в °F (55.22 °F = 12.9 °C) | ---