Files
obsidian-vault/family/how-to/zigbee2mqtt-t610.md
T

11 KiB
Raw Blame History

title, aliases, tags, updated, related
title aliases tags updated related
📡 Zigbee2MQTT на t610 — справочник
Zigbee
Zigbee2MQTT
z2m
Zigbee справочник
zigbee2mqtt-t610
family
how-to
smarthome
zigbee
zigbee2mqtt
2026-09-15
family/plans/t610-home-automation
family/how-to/home-automation
family/how-to/ha-automations

📡 Zigbee2MQTT на t610 — справочник

Назначение документа: инвентарь Zigbee-устройств, пути и доступ к z2m, операции (спаривание/переименование), питфоллы диагностики. Хост/аддоны/USB/гнёзда — family/plans/t610-home-automation. Карта Modbus/железа — family/how-to/home-automation. Логика автоматизаций — family/how-to/ha-automations.


1. Базовая конфигурация (проверено живьём 2026-09-15)

Параметр Значение
Аддон 45df7312_zigbee2mqttstarted, v 2.14.1-1
Координатор Inswift ZBP-MG21 (usb-Inswift_Zigbee_ZBP-MG21_535A000001-if00), адаптер ember
Порт координатора /dev/serial/by-id/usb-Inswift_Zigbee_ZBP-MG21_535A000001-if00, baud 115200, rtscts: false
Физическое гнездо USB3 порт 1 (pci-0000:04:00.0-usb-0:1:1.0)
Канал 11
pan_id 36513
MQTT mqtt://core-mosquitto:1883, user zont
base_topic zigbee2mqtt
homeassistant: enabled true (устройства авто-пробрасываются в HA)
Frontend enabled: true, порт 8099⚠️ фактически недоступен (порт занят ttyd самого SSH-аддона)
retain: true да

Пути на t610 (аддон core_ssh, доступ по ключу ~/.ssh/id_rsa)

  • Живой конфиг z2m: /config/zigbee2mqtt/configuration.yaml (из опции аддона data_path: /config/zigbee2mqtt; НЕ /addon_configs/45df7312_zigbee2mqtt/ — та папка пустая).
  • Состояние устройств (последние значения): /config/zigbee2mqtt/state.json
  • База (сеть/связи/модели): /config/zigbee2mqtt/database.db (SQLite, но sqlite3 в аддоне НЕТ — читать через strings)
  • Бэкап координатора: /config/zigbee2mqtt/coordinator_backup.json
  • Логи: /config/zigbee2mqtt/log/<дата>/log.log (текущий) + log1.log (ротация)

Бэкапы конфига (уже есть): configuration.yaml.bak-20260914-114609, configuration.yaml.bak-20260914-121108; базы — database.db.bak-before-remove-20260914-114923, database.db.bak-before-remove2-20260914-120936.


2. Инвентарь устройств — 15 спарено (2026-09-15)

Currently 15 devices are joined. Соответствие IEEE ↔ friendly_name ↔ модель — из configuration.yaml + database.db:

IEEE address friendly_name Модель Что это
0xa4c13862d39377e6 office_temperature_sensor TS0201 (_TZ3000_akqdg6g7) Датчик t°/влажности Zigbee (кабинет) — 23.48 °C / 44.8 %
0xa4c138c4a94a6a31 shower_2_presence_sensor TS0601 (_TZE204_qasjif9e) Радар присутствия душевой 2 (+ освещённость lx)
0xa4c138f8da8bc478 recirculation_pump TS011F (_TZ3000_gjnozsaz) Розетка насоса рециркуляции ГВС (с мониторингом: V/E/P/I)
0xa4c138eb6fbe9d19 heating_cable_plug TS011F (_TZ3000_gjnozsaz) Розетка греющего кабеля (с мониторингом). На 2026-09-15: OFF, 0 Вт, 222 В
0xa4c1381694217e10 boiler_controller_power TS011F (_TZ3000_gjnozsaz) Питание контроллера котла → Modbus slave 104, рег.1 (bidirectional)
0xa4c1384fbe0b3a6b sauna TS011F (_TZ3210_nhqka112) Реле сауны. ⚠️ На 2026-09-15 в state.jsonnull, в HA-сущностях unknown
0xa4c1386d40ddb67b light_sensor_stairs TS0222 (_TZ3000_hy6ncvmw) Датчик освещённости лестницы (85 lx)
0xa4c1386d0839706a light_stairs TS0002 (_TZ3000_5gey1ohx) Подсветка лестницы
0xa4c1381186ed1a32 smart_light_office TS0012 (_TZ3000_0e6uvexf) Умный свет кабинета (2 канала: left/right)
0xa4c13873b5c1575b office_table_light_switch TS0002 (_TZ3000_5gey1ohx) Выключатель стола кабинета (L1/L2)
0xa4c13807b64c7fd4 kitchen_hood TS0003 (_TZ3000_odzoiovu) Вытяжка кухни (3 скорости: L1/L2/L3)
0xa4c138b0f9e674a5 wireless_light_switch_bed TS0041 (_TZ3000_kccru4oi) Беспроводная кнопка спальни
0xa4c13882a4b42db0 bed_dimmer TS0052 (_TZ3000_ooc8illt) Диммер спальни
0xa4c1383d5fcaa063 boiler_water_leak TS0207 (Zbeacon) Датчик протечки котельной (батарея 100 %)
0xa4c138d… (см. конфиг) 15-е устройство — сверять по живому configuration.yaml

⚠️ Список выше — снимок 2026-09-15. Источник истины — живой /config/zigbee2mqtt/configuration.yaml (секция devices:). При расхождении — прав живой конфиг.


3. Режим спаривания (permit_join)

  • В HA: switch.zigbee2mqtt_bridge_permit_join — на 2026-09-15 = off.
  • Диагностика z2m-моста в HA: binary_sensor.zigbee2mqtt_bridge_connection_state (= on), sensor.zigbee2mqtt_bridge_version (= 2.14.1), select.zigbee2mqtt_bridge_log_level (= info), button.zigbee2mqtt_bridge_restart.

Включить спаривание: HA-сервис switch.turn_on на switch.zigbee2mqtt_bridge_permit_join (таймер — свойство моста в UI). После спаривания — обязательно выключить обратно.

Как увидеть новое устройство: после интервью оно появится в configuration.yamldevices: и в HA как сущности sensor.<friendly_name>_*.


4. Питфоллы диагностики (проверено)

  • 🔴 mosquitto_sub внутри аддона core_ssh НЕ РАБОТАЕТError: Bad file descriptor. Не пытаться читать MQTT оттуда. Обход: читать state.json напрямую, либо GET /api/states через HA REST, либо подписка на MQTT с Mac (не из аддона).
  • 🔴 z2m frontend (порт 8099) недоступен — порт занят ttyd SSH-аддона (видно в netstat -tlnp: 0.0.0.0:8099 ... 164/ttyd). Заходить через ingress HA, не напрямую.
  • 🔴 data_path = /config/zigbee2mqtt, НЕ /addon_configs/... — папка /addon_configs/45df7312_zigbee2mqtt/ существует, но пуста (приманка).
  • 🔴 sqlite3 в аддоне отсутствуетdatabase.db читать через strings + grep.
  • ⚠️ ha apps logs обрезает вывод и отдаёт старый буфер → живой лог только файлом /config/zigbee2mqtt/log/<дата>/log.log.
  • ⚠️ В логе основной объём — поток телеметрии (MQTT publish: topic 'zigbee2mqtt/...'). Для событий спаривания/интервью фильтровать: grep -iE "interview|joining|joined|permit|Successfully" и исключать grep -v "MQTT publish".
  • ⚠️ Запросы к http://192.168.2.176 (raw IP, plain HTTP, private network) требуют апрува в Hermes — предупреждать Alex заранее.
  • ⚠️ Секрет-маскировщик Hermes подменяет Bearer $(cat …) на *** → собирать заголовок в файл printf'ом, затем curl -H @/tmp/h1. Рабочий /tmp/.hatok уже есть на Mac.

5. Открытый вопрос: датчик Т тёплого пола, туалет 1 этаж (2026-09-15)

Запрос Alex: «zigbee датчик в режиме спаривания пропиши его как датчик Т теплого пола в туалете на 1м этаже».

Факты на момент запроса:

  • permit_join = off → в режиме спаривания ничего не висело, новое устройство не предъявлено.
  • Существующий «датчик t° Zigbee» = office_temperature_sensor (0xa4c13862d39377e6, TS0201) — стоит в кабинете.
  • «Тёплый пол, туалет» в карте Modbus = Relay module 14 (0E), позиция 5 → «Туалет 1 — н.п.» — у ZONT это реле помечено неподключённым. См. family/how-to/home-automation §«Карта Slave ID».
  • Зигби-реле heating_cable_plug (0xa4c138eb6fbe9d19, TS011F) — на 2026-09-15 OFF, 0 Вт. Судя по имени — вилка греющего кабеля.

🔴 Ключевое ограничение (озвучено Alex): TS0201 — датчик, а не термостат. Он только измеряет воздух; тёплый пол включается реле. Поэтому «прописать как датчик Т пола» ≠ «управлять полом».

Варианты, предложенные Alex (ждём выбор):

  1. Просто датчик Т — привязать новый Zigbee-датчик температуры к зоне «Туалет 1 этаж», назвать toilet_1_floor_temperature (мониторинг t° воздуха).
  2. Термостат пола — если куплен Zigbee-термостат (датчик пола + реле в одном), завести в HA как climate.* и связать с реле греющего кабеля.
  3. Переименовать существующее — если имелось в виду уже спаренное устройство (heating_cable_plug / office_temperature_sensor).

Статус: НЕ ВЫПОЛНЕНО. Ждём от Alex: (а) какой вариант, (б) модель устройства, которое спаривается. Ничего в z2m не менялось.


6. Связанные заметки