[2026-09-15] eagle: family/documents/home-automation-wishlist.md family/how-to/ha-automations.md family/how-to/home-automation.md

This commit is contained in:
Alexey Martemyanov
2026-09-15 10:51:44 +06:00
parent 921244241e
commit a0a92f440a
3 changed files with 160 additions and 3 deletions
+4 -2
View File
@@ -2,10 +2,11 @@
title: "🏡 Умный дом — хотелки и роадмап автоматизаций" title: "🏡 Умный дом — хотелки и роадмап автоматизаций"
aliases: [Умный дом, Умный дом хотелки, Home automation, Smart home, home-automation-wishlist] aliases: [Умный дом, Умный дом хотелки, Home automation, Smart home, home-automation-wishlist]
tags: [family, lists, smart-home, tech] tags: [family, lists, smart-home, tech]
updated: 2026-09-14 updated: 2026-09-15
related: related:
- "[[family/plans/t610-home-automation]]" - "[[family/plans/t610-home-automation]]"
- "[[family/how-to/home-automation]]" - "[[family/how-to/home-automation]]"
- "[[family/how-to/ha-automations]]"
- "[[family/how-to/nodered-ventilation]]" - "[[family/how-to/nodered-ventilation]]"
- "[[family/documents/home-wishlist]]" - "[[family/documents/home-wishlist]]"
--- ---
@@ -26,7 +27,7 @@ related:
| **Датчики воздуха** | 3 × 485-датчика (гостиная=1, детская=2, спальня=3) → виртуальные slave 101/102/103 в ZONT | ✅ все три публикуются (после фикса `3748feb`) | | **Датчики воздуха** | 3 × 485-датчика (гостиная=1, детская=2, спальня=3) → виртуальные slave 101/102/103 в ZONT | ✅ все три публикуются (после фикса `3748feb`) |
| **Zigbee (z2m)** | **15 устройств**: свет/лестница/диммер, розетки (насос обратки, греющий кабель, питание котлов), радар присутствия (душевая), датчик протечки (котельная), t°/влажность ×2 | ✅ координатор EmberZNet 7.4.5 | | **Zigbee (z2m)** | **15 устройств**: свет/лестница/диммер, розетки (насос обратки, греющий кабель, питание котлов), радар присутствия (душевая), датчик протечки (котельная), t°/влажность ×2 | ✅ координатор EmberZNet 7.4.5 |
| **Камера** | Logitech `046d:0825` на газовом счётчике BK-G4T → go2rtc → RTSP H.264 + поворот 90° | ✅ WebRTC работает | | **Камера** | Logitech `046d:0825` на газовом счётчике BK-G4T → go2rtc → RTSP H.264 + поворот 90° | ✅ WebRTC работает |
| **Автоматизации HA** | **16 шт.** (15 `on` / 1 `off`) | ⚠️ по сути только 2 содержательные: ночной свет душевой, кнопка стола | | **Автоматизации HA** | **16 шт.** (15 `on` / 1 `off`) | ⚠️ по сути только 2 содержательные: ночной свет душевой, кнопка стола. **🔴 в «ночном свете душевой» найден дефект логики** (нет условия по основному свету + недостижимый порог 8 lx) → разбор в [[family/how-to/ha-automations]] |
**🔑 Ключевая асимметрия:** сенсорика и исполнительные механизмы есть, **автоматики на них почти нет**. Основная работа — не покупать железо, а включать логику на существующем. **🔑 Ключевая асимметрия:** сенсорика и исполнительные механизмы есть, **автоматики на них почти нет**. Основная работа — не покупать железо, а включать логику на существующем.
@@ -116,6 +117,7 @@ ZONT-реле котлов уже дают статусы; 2 Zigbee-розетк
- [[family/plans/t610-home-automation]] — **единственный рабочий документ** по техчасти: хост, доступ, аддоны, Modbus, Zigbee, питфоллы - [[family/plans/t610-home-automation]] — **единственный рабочий документ** по техчасти: хост, доступ, аддоны, Modbus, Zigbee, питфоллы
- [[family/how-to/home-automation]] — карта железза: AT2 (параметры/PWM), Slave ID, регистры заслонок/реле, ZONT relays - [[family/how-to/home-automation]] — карта железза: AT2 (параметры/PWM), Slave ID, регистры заслонок/реле, ZONT relays
- [[family/how-to/ha-automations]] — логика HA-автоматизаций, карта device_id/entity_id, разбор дефекта «ночной свет душевой»
- [[family/how-to/nodered-ventilation]] — алгоритм вентиляции по CO₂ (Node-RED) - [[family/how-to/nodered-ventilation]] — алгоритм вентиляции по CO₂ (Node-RED)
- [[family/documents/home-wishlist]] — хотелки по дому и участку (не автоматизация) - [[family/documents/home-wishlist]] — хотелки по дому и участку (не автоматизация)
- [[family/index]] — топик-карта family/ - [[family/index]] — топик-карта family/
+153
View File
@@ -0,0 +1,153 @@
---
title: "⚙️ HA — автоматизации (automations.yaml)"
aliases: [HA automations, Автоматизации HA, automations.yaml, Ночной свет душевая]
tags: [family, how-to, smarthome, home-assistant, automation]
updated: 2026-09-15
related:
- "[[family/plans/t610-home-automation]]"
- "[[family/how-to/home-automation]]"
- "[[family/documents/home-automation-wishlist]]"
---
# ⚙️ HA — автоматизации (`automations.yaml`)
> **Назначение документа:** разбор логики автоматизаций Home Assistant на t610, карта «устройство ↔ entity_id ↔ device_id», найденные дефекты. Карта железа/Modbus — [[family/how-to/home-automation]]. Хост/аддоны/доступ — [[family/plans/t610-home-automation]].
## 1. Где живёт
- **Файл:** `/config/automations.yaml` в HA Core на t610.
- **Локальная копия-эталон (проверено 2026-09-15):** `~/tmp-t610/automations/automations.yaml` (208 строк, 16 автоматизаций) и `~/tmp-t610/etap3-fix/automations.yaml` (версия после правки зон, 2026-09-14).
- **Итого автоматизаций:** **16** (15 `on` / 1 `off`).
- ⚠️ **Живой конфиг читать через REST API**, а не по памяти: `GET /api/config/automation/config/<id>`. Готовый скрипт-образец — `~/tmp-t610/check_aut_dushev.sh`.
## 2. Карта device_id ↔ entity_id (из `~/tmp-t610/etap3-fix/devid_mapping.json`)
| device_id | Устройство / назначение |
|---|---|
| `4095e7c3b47b9dc9640cfb8c3aeff022` | **`shower_2_presence_sensor`** — радар присутствия душевой 2 (Tuya `ZY-M100-S_2` / TS0601) |
| `4d6e55505ff7dbad13d2674cdcb18d5a` | **`night_light_shower_2`** — ночная подсветка душевой 2 (Tuya `TS0001`, Zigbee-реле) |
| `1ea8bbc2612dde303e4279bc5fbad57a` | `light_sensor_stairs` — датчик освещённости лестницы (TS0222) |
| `028b7d9f489c87bdc9e563473a1d61e8` | подсветка лестницы (`switch`) |
| `5cd5d9d2d289b5e470bbeaac0eb7905c` | кнопка/диммер спальни (TS0043-подобная) |
| `098a641cb1d30f08f1ae293e00d9885b` | `light.bed_dimmer` (TS0052) |
| `16d2c6f64ec399e5261c89b35c1e75c6` | розетка циркуляции ГВС |
| `b9d384a51b780a7924ed9504eddec12e` | `boiler_water_leak` — датчик протечки котельной (TS0207) |
| `bcf47eeae909877978bdaf6c705210f8` | датчик t° Zigbee |
| `0c7a0eb6d60e852b447266da69a7785e` | *(entity-хелпер, см. mapping)* |
**Сущности радара душевой 2** (`device_id 4095e7c3…`, платформа `mqtt`):
- `sensor.shower_2_presence_sensor_illuminance` — «Освещенность», lx
- `binary_sensor.shower_2_presence_sensor_presence` — «Занятость», on/off
- `sensor.shower_2_presence_sensor_target_distance` — Target distance, м
- `number.shower_2_presence_sensor_radar_sensitivity` — 0..9
- `number.shower_2_presence_sensor_minimum_range` / `maximum_range` — 0..9.5 м, шаг 0.15
- `number.shower_2_presence_sensor_detection_delay` — 0..10 с
- `number.shower_2_presence_sensor_fading_time` — 0.5..1500 с
- `sensor.shower_2_presence_sensor_linkquality`
**Сущности ночной подсветки душевой 2** (`device_id 4d6e5550…`):
- `switch.night_light_shower_2`**само реле** (его и дёргает автоматизация)
- `light.night_light_shower_2` — хелпер `switch_as_x` поверх того же реле (`config_entry 01KKC78ZM7QRJQY36Q4D27KGCD`, `target_domain: light`, `invert: false`). **Один и тот же физический релей — управлять надо `switch.`-сущностью, к которой привязана автоматика.**
- `number.night_light_shower_2_countdown`, `select..._power_on_behavior`, `select..._switch_type`, `sensor..._linkquality`
## 3. Ночной свет душевой — две автоматизации
**ВКЛ — `id: '1771997851260'`, «Вкл. ночной свет душевая»**
```yaml
triggers:
- platform: device
type: occupied # binary_sensor.shower_2_presence_sensor_presence
device_id: 4095e7c3b47b9dc9640cfb8c3aeff022
entity_id: b4a50e16942064f9c00d0d86501a667e
- platform: device
type: illuminance # sensor.shower_2_presence_sensor_illuminance
device_id: 4095e7c3b47b9dc9640cfb8c3aeff022
entity_id: df9fe40b9d96de3b1bdeeb62707a7cab
below: 8
conditions:
- condition: device
type: is_illuminance ... below: 8
- condition: device
type: is_occupied
actions: # turn_on
- type: turn_on domain: switch entity_id: fa72bc65e5cf9e9249a5b0d377e5a3f4
# = switch.night_light_shower_2
mode: single
```
**ВЫКЛ — `id: '1771997918348'`, «Выкл. ночной свет душевая»**
```yaml
triggers:
- type: not_occupied # присутствие пропало
- type: illuminance ... above: 8
conditions: [] # ⚠️ ПУСТО — нет ни одного условия
actions: # turn_off switch.night_light_shower_2
mode: single
```
### 🔴 Дефект (диагностирован 2026-09-15)
**Симптом:** ночной свет горит при включённом основном освещении; датчик присутствия при этом ничего не нарушает.
**Первопричина — асимметрия логики, а НЕ датчик:**
1. **Нет связи «основное освещение включено → ночной свет не нужен».** В ВЫКЛ-автоматизации `conditions: []` — она ничего не проверяет про основной свет. Гасит только по `not_occupied` или `above: 8`.
2. **Порог `8 lx` недостижим.** Факт-замер 2026-09-15: `illuminance` = **2 lx** при выключенном свете, но основное освещение не подняло значение выше 8 (у TS0601 `reportable_change: 5`, сенсор расположен в стороне от основного потока). Триггер `above: 8` **не срабатывает** → ВЫКЛ не запускается.
3. **`mode: single` + `occupied` держится** → человек в душевой, темно по показаниям → ночной свет горит поверх основного.
**❌ Отвергнутые версии (не повторять):**
- «датчик присутствия не видит порог / виноват датчик» — **неверно**: `binary_sensor..._presence` работает штатно (observed `on`/`off` в 04:49:15).
- «порог просто надо чуть поднять» — **частично**: порог лишь симптом; корень в отсутствии условия по основному свету.
**✅ Факт-замер (2026-09-15, 04:4804:49 UTC):**
| Сущность | Значение |
|---|---|
| `sensor.shower_2_presence_sensor_illuminance` | 2 lx |
| `binary_sensor.shower_2_presence_sensor_presence` | off |
| `switch.night_light_shower_2` | off |
| `number..._fading_time` | 10 с |
| `number..._maximum_range` | 2.85 м |
### Предложенные правки (НЕ применены — ждут апрува Alex)
1. **Добавить в ВЫКЛ триггер/условие по основному освещению душевой** — гасить ночной свет, как только зажглось основное. ⚠️ **Блокер:** неизвестна сущность основного освещения верхней душевой (среди `light.*`/`switch.*` душевой найден только `night_light_shower_2`). Нужен ответ Alex.
2. Поднять порог `8 → 1520 lx` **или** откалибровать `illuminance_calibration` радара (2 lx при внутреннем свете подозрительно мало).
3. `fading_time` = 10 с, `maximum_range` = **2.85 м** — проверить, покрывает ли зона всю душевую.
## 4. Прочие содержательные автоматизации
| id | alias | Логика |
|---|---|---|
| `1768585827761` | Выключить циркуляцию ГВС | `time 23:00` → turn_off |
| `1768585922970` | Включить циркуляцию ГВС | `time 09:30` → turn_on |
| `1770404069135` | Ventilation automation on | `time 05:00``fan.turn_on fan.automation` |
| `5735cb9f855e462dbdbdf680d0d6a66f` | office_pass_switch_table | `switch.office_table_light_switch_l1` change → toggle `light.smart_light_office_left` |
| `45b96f6f38f6488ba70266fa5da665f5` | office_pass_switch_main | `switch.office_table_light_switch_l2` change → toggle `light.smart_light_office_right` |
| `1771466806839` | Светло: выкл. подсветку лестницы | lever `illuminance above: 150` → turn_off |
| `1771466955010` | Темно: вкл. подсветку лестницы | lever `illuminance below: 130` → turn_on |
| `1771683420621` | Toggle Dimmer bed | кнопка `single` → toggle `light.bed_dimmer` |
| `1771683677259` | Dimmer bed cycle | кнопка `double` → цикл яркости 20/40/60/80/100 % |
| `1771997851260` | **Вкл. ночной свет душевая** | см. §3 🔴 |
| `1771997918348` | **Выкл. ночной свет душевая** | см. §3 🔴 |
| `1773451257968` | Протечка котельная | `moist``notify.notify` «Протечка котельная» |
| `1773451323415` | Датчик протечки котельная батарея | `bat_low` → notify |
| `1773459513601` | Датчик освещенности лестница батарея | `battery_level below 10` → notify |
| `1773459606336` | Light switch bed батарея | `battery_level below 10` → notify |
| `1773459663218` | Zigbee T sensor батарея | `battery_level below 10` → notify |
> **⚠️ Наблюдение:** «Светло/Темно подсветка лестницы» использует **гистерезис** (below 130 / above 150) — это единственная пара с правильной защитой от дребезга. Паттерн годится как образец для правки душевой.
## 5. Питфоллы диагностики
- **Секрет-маскировщик Hermes** подменяет `Bearer $(cat ...)` на `***` → собирать заголовок через `printf` в файл, затем `curl -H @/tmp/hdr.txt`. Рабочий `/tmp/.hatok` уже есть на Mac.
- `ha apps logs <slug>` обрезает вывод и отдаёт старый буфер → живой лог только через API.
- Запросы к `http://192.168.2.176` (raw IP, plain HTTP, private network) **требуют апрува** в Hermes — предупреждать Alex заранее, не ретраить вслепую.
## Связанные заметки
- [[family/plans/t610-home-automation]] — единственный рабочий документ по техчасти (хост, доступ, аддоны, Modbus, Zigbee)
- [[family/how-to/home-automation]] — карта железа: AT2 (параметры/PWM), Slave ID, регистры заслонок/реле, ZONT relays
- [[family/documents/home-automation-wishlist]] — роадмап автоматизаций, приоритеты
- [[family/how-to/nodered-ventilation]] — алгоритм вентиляции по CO₂ (Node-RED)
+3 -1
View File
@@ -10,16 +10,18 @@ tags:
- how-to - how-to
- smarthome - smarthome
- modbus - modbus
updated: 2026-09-14 updated: 2026-09-15
related: related:
- '[[family/how-to/router-bishkek-asus]]' - '[[family/how-to/router-bishkek-asus]]'
- '[[family/plans/t610-home-automation]]' - '[[family/plans/t610-home-automation]]'
- '[[family/how-to/ha-automations]]'
- '[[family/how-to/truenas-access]]' - '[[family/how-to/truenas-access]]'
--- ---
# 🏠 Умный дом — автоматика # 🏠 Умный дом — автоматика
> **Статус на 2026-09-14:** домашняя автоматизация **перенесена на HP t610** (HA OS). > **Статус на 2026-09-14:** домашняя автоматизация **перенесена на HP t610** (HA OS).
> 📌 **Всё про миграцию** — хост, доступ, карта USB/гнёзд, аддоны, Zigbee, питфоллы, текущее состояние — **в единственном документе [[family/plans/t610-home-automation]]. НЕ дублировать сюда.** > 📌 **Всё про миграцию** — хост, доступ, карта USB/гнёзд, аддоны, Zigbee, питфоллы, текущее состояние — **в единственном документе [[family/plans/t610-home-automation]]. НЕ дублировать сюда.**
> 📌 **Этот документ — справочник по ЖЕЛЕЗУ:** AT2 (параметры/PWM), карта Slave ID, регистры заслонок/реле, ZONT relays. Оборудование и адреса Modbus при миграции не меняются. > 📌 **Этот документ — справочник по ЖЕЛЕЗУ:** AT2 (параметры/PWM), карта Slave ID, регистры заслонок/реле, ZONT relays. Оборудование и адреса Modbus при миграции не меняются.
> 📌 **Логика HA-автоматизаций (automations.yaml), карта device_id/entity_id, дефекты** — [[family/how-to/ha-automations]].
> **Текущее состояние:** `unavailable` в HA — **8** (было 44 → 10 → 8). Оставшиеся все известные: 7 — slave 10 (AT2 fans, блок закомментирован, задача снята Alex) + 1 — `todo.shopping_list` (системная). Первопричина массового отвала была в **перепутанных гнёздах аддонов** (`mbusd`↔`modbus-bridge`) — исправлено обменом привязок; ещё 2 (`dining_summary`/`dining_air_summary`) ожили после фикса сборки кадров bridge (коммит `3748feb`). > **Текущее состояние:** `unavailable` в HA — **8** (было 44 → 10 → 8). Оставшиеся все известные: 7 — slave 10 (AT2 fans, блок закомментирован, задача снята Alex) + 1 — `todo.shopping_list` (системная). Первопричина массового отвала была в **перепутанных гнёздах аддонов** (`mbusd`↔`modbus-bridge`) — исправлено обменом привязок; ещё 2 (`dining_summary`/`dining_air_summary`) ожили после фикса сборки кадров bridge (коммит `3748feb`).
> **Zigbee-реле котла заведено (вечер-13):** `switch.boiler_controller_power` → `slave 104, рег. 1` (bidirectional), ✅ подтверждено Alex. Детали — ниже (карта Slave ID) и [[family/plans/t610-home-automation]] §5-кватер-И-7. > **Zigbee-реле котла заведено (вечер-13):** `switch.boiler_controller_power` → `slave 104, рег. 1` (bidirectional), ✅ подтверждено Alex. Детали — ниже (карта Slave ID) и [[family/plans/t610-home-automation]] §5-кватер-И-7.
> >