Files
obsidian-vault/family/plans/t610-zigbee-ids-battery-freshsensors-modbus.md
T

12 KiB
Raw Blame History

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 🟡 ПЛАН НА УТВЕРЖДЕНИИ
t610
zigbee
zha
modbus
battery
family/tech/zigbee-t610-z2m-i-zha
family/how-to/home-automation
family/how-to/ha-automations

План: читаемые 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 — batterybattery_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'ов 100112.
  • family/how-to/ha-automations.md — 7 новых автоматизаций батарей.

2. Вопросы к Alex (до начала работ)

  1. Схема имён — устраивает living_room_floor_temperature / severnaia_floor_temperature? Или другой стиль?
  2. Переименовывать ли office_temperature_sensorkabinet_temperature? (затронет slave 100 в bridge)
  3. Душевая: оставить shower_2_floor_* или переименовать в dushevaia_floor_temperature_*? (переименование = правка ссылок)
  4. sauna в зоне «Туалет» — куда правильно: котельная?
  5. Порог/доставка алертов: 20 %, 2 ч, persistent_notification — или мобильные push?
  6. Нужны ли в 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)