12 KiB
title, created, updated, type, namespace, status, tags, related
| title | created | updated | type | namespace | status | tags | related | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| План: читаемые ID Zigbee, алерты батарей, виртуальные Modbus-датчики | 2026-09-15 | 2026-09-15 | plan | family | 🟡 ПЛАН НА УТВЕРЖДЕНИИ |
|
|
План: читаемые ID, алерты батарей, виртуальные Modbus-датчики
Задача от Alex (2026-09-15): 1) убедиться, что у всех Zigbee-устройств читаемые ID; 2) каждому батарейному — оповещение о низком заряде; 3) каждый температурный Zigbee-датчик прописать как виртуальное устройство Modbus в bridge; 4) обновить доку.
0. Что установлено фактами (снимок 2026-09-15)
0.1. Новые устройства (8 всего, +1 был в доке)
ZHA: 24 записи (23 устройства + координатор). Было 17.
| # | Устройство (name_by_user) | IEEE | Модель | Зона | Батарея |
|---|---|---|---|---|---|
| 1 | Темп теплый пол гостиная |
a4c13827ea585609 |
TS0201 | living_room | ✅ |
| 2 | Температура серая |
a4c1382ac15720dd |
TS0201 | severnaia | ✅ |
| 3 | Темп теплый пол кабинет |
a4c1382dac5e10e2 |
TS0201 | kabinet | ✅ |
| 4 | Темп теплый пол кухня |
a4c13837021f5298 |
TS0201 | kitchen | ✅ |
| 5 | Темп теплый пол ванная |
a4c13867875ee7d3 |
TS0201 | vannaia | ✅ |
| 6 | Темп теплый пол прихожая |
a4c138cde6eed013 |
TS0201 | prikhozhaia | ✅ |
| 7 | Темп теплый пол душевая |
a4c13865e226312d |
TS0201 | dushevaia | ✅ (был ранее) |
| 8 | shower_2_presence_sensor |
a4c138c4a94a6a31 |
TS0601 | dushevaia | ❌ mains |
Все 12 TS0201 — батарейные EndDevice, сущность Батарея есть у каждого.
0.2. 🔴 Дефекты ID, найденные при проверке
| # | Дефект | Пример | Оценка |
|---|---|---|---|
| D1 | Имя устройства по-русски (HA транслитерирует) | Темп теплый пол гостиная → sensor.temp_teplyi_pol_gostinaia_temperatura |
🔴 громоздко, ломает консистентность |
| D2 | Перепутан префикс: tualet_ при зоне prikhozhaia |
sensor.tualet_temp_teplyi_pol_prikhozhaia_temperatura |
🔴 прямая ошибка в имени |
| D3 | Дубли _2 / _3 у LQI/RSSI (остатки миграции) |
sensor.tz3000_gjnozsaz_ts011f_lqi_2, _3 |
🟡 косметика, disabled_by=integration |
| D4 | sauna — зона tualet, хотя это реле |
switch.sauna в зоне ТУАЛЕТ |
🔴 неверная зона |
| D5 | select-сущности sauna названы bed_dimmer_* |
select.bed_dimmer_power_on_behavior под устройством sauna |
🟡 ошибка выбора при переименовании |
Остальные 16 устройств (реле, свет, кнопки, диммер) — ID читаемые ✅.
0.3. Батарейные устройства и их сущности (7 шт.)
| Устройство | Сущность батареи | Текущий заряд |
|---|---|---|
toilet_1_floor_temperature |
sensor.toilet_1_floor_temperature_battery |
100.0 |
light_sensor_stairs |
sensor.light_sensor_stairs_battery |
100.0 |
Темп теплый пол душевая |
sensor.shower_2_floor_battery |
100.0 |
boiler_water_leak |
sensor.boiler_water_leak_battery |
100.0 |
wireless_light_switch_bed |
sensor.tz3000_kccru4oi_ts0041_batareia |
? |
office_temperature_sensor |
sensor.tz3000_akqdg6g7_ts0201_batareia |
? |
| 6 × новых TS0201 | sensor.*_batareia |
? |
Оповещений о низком заряде — НЕТ ни у одного (проверено: автоматизаций на battery нет).
0.4. Modbus-bridge — занятость адресов
| Slave | Что | Регистр |
|---|---|---|
| 100 | sensor.office_temperature_sensor_temperature (Room temp) |
100 |
| 101 | снифф dining_temperature + запись switch.recirculation_pump |
100 / 1 |
| 102 | снифф kids_temperature |
100 |
| 103 | снифф bedroom_temperature |
100 |
| 104 | Zigbee-реле switch.boiler_controller_power |
1 |
Свободно: 105+ (у 100/102/103 — регистры ≠ 100).
1. План действий
Шаг 1. Переименовать устройства в читаемые ID (ZHA)
Живой конфиг bridge — не трогать до подтверждения имён.
Предлагаемая схема имён (единый стиль <зона>_floor_temperature):
| Текущее | Предлагаемое | Итоговые сущности |
|---|---|---|
Темп теплый пол гостиная |
living_room_floor_temperature |
sensor.living_room_floor_temperature_temperature |
Температура серая |
severnaia_floor_temperature |
sensor.severnaia_floor_temperature_temperature |
Темп теплый пол кабинет |
kabinet_floor_temperature |
sensor.kabinet_floor_temperature_temperature |
Темп теплый пол кухня |
kitchen_floor_temperature |
sensor.kitchen_floor_temperature_temperature |
Темп теплый пол ванная |
vannaia_floor_temperature |
sensor.vannaia_floor_temperature_temperature |
Темп теплый пол прихожая |
prikhozhaia_floor_temperature |
sensor.prikhozhaia_floor_temperature_temperature |
Темп теплый пол душевая |
dushevaia_floor_temperature |
sensor.dushevaia_floor_temperature_temperature |
office_temperature_sensor |
kabinet_temperature |
sensor.kabinet_temperature_temperature |
⚠️ Переименование душевой затронет уже используемые ID
sensor.shower_2_floor_temperature/humidity/battery— их надо либо оставить как есть, либо обновить все ссылки. Требует решения Alex.
Механика: ZHA не читает friendly_name из Z2M → задавать через config/device_registry/update (WS) с name_by_user.
⚠️ Питфолл: удаление device_id сбрасывает area_id; переименование не сбрасывает, но проверять area_id после каждой операции.
Шаг 2. Починить зону sauna (D4) и select-имена (D5)
sauna→ зонаkotelnaia(уточнить у Alex: сауна или котельная?)select.bed_dimmer_*подsauna→ переименовать вsauna_*
Шаг 3. Оповещения о низком заряде (7 батарейных)
На каждое устройство — автоматизация:
- id: <N>
alias: "Батарея: <устройство> разряжена"
triggers:
- trigger: numeric_state
entity_id: sensor.<entity>_battery
below: 20
for: "02:00:00"
actions:
- action: persistent_notification.create
data:
title: "🔋 Батарея разряжена"
message: "<устройство>: {{ states('sensor.<entity>_battery') }}%"
Порог 20 %, выдержка 2 ч (защита от просадки под нагрузкой).
⚠️ Домен триггера в ZHA — battery → battery_level. Проверять имена сущностей (_battery vs _batareia).
Способ доставки: persistent_notification — обсуждаемо (могут быть мобильные нотификации).
Шаг 4. Виртуальные Modbus-датчики в bridge
Добавить в data/config.template.tmpl секцию mappings:
| Slave | Источник (HA entity) | Регистр | Имя |
|---|---|---|---|
| 105 | sensor.living_room_floor_temperature_temperature |
100 | Living room floor temp |
| 106 | sensor.severnaia_floor_temperature_temperature |
100 | Severnaia floor temp |
| 107 | sensor.kabinet_floor_temperature_temperature |
100 | Kabinet floor temp |
| 108 | sensor.kitchen_floor_temperature_temperature |
100 | Kitchen floor temp |
| 109 | sensor.vannaia_floor_temperature_temperature |
100 | Vannaia floor temp |
| 110 | sensor.prikhozhaia_floor_temperature_temperature |
100 | Prikhozhaia floor temp |
| 111 | sensor.dushevaia_floor_temperature_temperature |
100 | Dushevaia floor temp |
| 112 | sensor.toilet_1_floor_temperature_temperature |
100 | Toilet 1 floor temp |
Формат (по образцу существующего):
- name: "Living room floor temp"
source: "ha"
entity_id: "sensor.living_room_floor_temperature_temperature"
slave_id: 105
register_address: 100
register_count: 1
data_type: "int16"
divider: 10
⚠️ Проверить свободно ли 105+ по двум источникам: эта карта + сам шаблон (сделано ✅).
⚠️ rebuild обязателен — шаблон впекается в образ.
⚠️ Только температурные. dining/kids/bedroom — уже есть (сниффы).
Шаг 5. Обновить доку
family/tech/zigbee-t610-z2m-i-zha.md— карта устройств 16 → 23, новые TS0201, дефекты ID.family/how-to/home-automation.md§6 — карта slave'ов 100–112.family/how-to/ha-automations.md— 7 новых автоматизаций батарей.
2. Вопросы к Alex (до начала работ)
- Схема имён — устраивает
living_room_floor_temperature/severnaia_floor_temperature? Или другой стиль? - Переименовывать ли
office_temperature_sensor→kabinet_temperature? (затронет slave 100 в bridge) - Душевая: оставить
shower_2_floor_*или переименовать вdushevaia_floor_temperature_*? (переименование = правка ссылок) saunaв зоне «Туалет» — куда правильно: котельная?- Порог/доставка алертов: 20 %, 2 ч,
persistent_notification— или мобильные push? - Нужны ли в Modbus влажность/CO2, или только температура?
3. Порядок выполнения и риски
| Шаг | Риск | Откат |
|---|---|---|
| 1. Переименование | Средний — меняются entity_id, ломаются ссылки в автоматизациях/дашбордах | Бэкап core.entity_registry + список старых ID |
| 2. Зона/select | Низкий | Вернуть area_id |
| 3. Автоматизации | Низкий | Бэкап automations.yaml |
| 4. Modbus mappings | Средний — rebuild аддона, возможен RCU/нагрузка | Бэкап config.template.tmpl, rollback |
Обязательно перед началом:
- Бэкап
/config/.storage/core.entity_registry,core.device_registry,core.restore_state - Бэкап
/config/automations.yaml - Бэкап
/addons/modbus-bridge/data/config.template.tmpl(новый.bak-idmodbus-<дата>) - Снять снапшот HA (
POST /backups/new/full)