[2026-09-16] eagle: family/how-to/ha-automations.md family/plans/t610-zigbee-ids-battery-freshsensors-modbus.md

This commit is contained in:
Alexey Martemyanov
2026-09-16 21:08:33 +06:00
parent 875bb9efda
commit 00af3ee860
2 changed files with 50 additions and 34 deletions
@@ -1,7 +1,7 @@
---
title: "План и результат: читаемые ID Zigbee, алерты батарей, виртуальные Modbus-датчики"
created: '2026-09-15'
updated: 2026-09-16 (поздний вечер, ФИНАЛ: объединение сценариев душевой применено в HA и проверено Alex'ом — «Работает!». Коммиты проекта `2eaa704` (до) и `0f5924f` (после проверки). Старая автоматизация `1771997918348` отключена, не удалена — как откат)
updated: 2026-09-16 (поздний вечер, ФИНАЛ: объединение сценариев душевой применено в HA и проверено Alex'ом — «Работает!». Коммиты проекта `2eaa704` (до), `0f5924f` (после проверки), `d019477` (снос старой). Старая автоматизация `1771997918348` УДАЛЕНА ПОЛНОСТЬЮ через `DELETE /api/config/automation/config/<id>` — итог 24 автоматизации)
type: plan
namespace: family
status: 🟢 ВЫПОЛНЕНО 2026-09-16. Шаги 14 закрыты 2026-09-15; 5–6 (вычистка призраков + починка UI) — 2026-09-16 ночью; 7–8 (автоматизации кабинета — 2 дефекта; душевая — `fading_time` 10→2, задержка 10 с в ВЫКЛ, ложные включения ВКЛ) — 2026-09-16 днём. Всё проверено фактами. 🟡 Открыт один вопрос — feedback loop по порогам душевой (§4.6 в [[family/how-to/ha-automations]]), правка отклонена Alex.
@@ -476,7 +476,7 @@ python3 ~/tmp-t610/trace_dump.py 14:02:33
**Задача Alex:** убрать гонку двух автоматизаций (`1771997851260` ВКЛ + `1771997918348` ВЫКЛ), реагирующих на одни события presence/lux. HA **не имеет** взаимной блокировки между автоматизациями — `mode` работает только внутри своей.
**Решение (согласовано Alex, дожато до финала):** одна автоматизация `1771997851260`, **4 триггера** (`P`/`Poff`/`Llow`/`Lhi`), **4 ветки `choose`**, `mode: restart`. Вторая (`1771997918348`) — отключена (пустые `triggers`/`actions`), не удалена.
**Решение (согласовано Alex, дожато до финала):** одна автоматизация `1771997851260`, **4 триггера** (`P`/`Poff`/`Llow`/`Lhi`), **4 ветки `choose`**, `mode: restart`. Вторая (`1771997918348`) — **УДАЛЕНА ПОЛНОСТЬЮ** 2026-09-16 по команде Alex «Сноси».
**Правки Alex поверх первой редакции — не откатывать:**
1. `wait_for_trigger` из ветки 3 **убран** («Триггер должен перезапустить сценарий») — `mode: restart` уже убивает текущий запуск при новом триггере.
@@ -498,10 +498,12 @@ python3 ~/tmp-t610/trace_dump.py 14:02:33
5. 🔴 **Вторую пришлось выключать явно** — `POST /api/services/automation/turn_off` (`entity_id: automation.vykl_nochnoi_svet_dushevaia`). **Пустых `triggers: []` НЕДОСТАТОЧНО:** после `reload` автоматизация остаётся `on`. Проверено: без `turn_off` висела `on`.
6. **✅ ПРОВЕРКА ALEX'ОМ ВЖИВУЮ: «Работает!»**
7. **Коммит `0f5924f`** «Merge shower automations: 2 scenarios -> 1 (mode restart, 4-branch truth table)» (+ `.gitignore` для бэкапов проекта).
8. **Снос старой автоматизации (Alex: «Сноси»):** `DELETE /api/config/automation/config/1771997918348` → `200 {"result":"ok"}`, повторный `GET` → **404**; блок убран из файла проекта (816 строк, 24 `^- id:`); `reload`. **Коммит `d019477`** «Remove old shower off-automation».
9. **Бэкап-файлы убраны из папки проекта** — в git вся история; Alex: «Нахуя бэкап в папке проекта у тебя гит есть». **Исправлен `.gitignore`:** склеенная строка `project_home.pdfhomeassistant/automations.yaml.bak-*` → `project_home.pdf` (отдельное правило `.bak-*` снято, `*.bak` уже покрыто).
**Состояние:** HA — `1771997851260` `on` / `1771997918348` `off`, 25 автоматизаций, `unavailable` = 0. Старая автоматизация **отключена, не удалена** (откат доступен правкой; история — в git).
**Состояние (ФИНАЛ):** HA — **24 автоматизации: 23 `on`, 1 `off`**, `unavailable` = 0. Работает только `1771997851260` (`on`). Старая `1771997918348` **удалена** — тело в HA отсутствует (`GET` → 404), блок убран из проекта; вернуть можно только из git-истории.
**Инструменты:** `~/tmp-t610/ha_duck.sh` (рабочее чтение); скрипты заливки писались на Mac (python3 `urllib`), токен читать `fh.readline().strip()` — `pathlib.read_text()` рвётся фильтром секретов.
**Бэкапы:** `~/Automation/HA-ZONT-Modbus/homeassistant/automations.yaml.bak-20260916-205509`; на t610 `.bak-shower-merge-20260916-214012` (эталон 25 автоматизаций), `.bak-before-restore-20260916-214949`.
**Бэкапы (только в `/config` на t610):** `.bak-shower-merge-20260916-214012` (эталон 25 автоматизаций), `.bak-before-restore-20260916-214949`. **В папке проекта бэкапы НЕ хранить — там git.**
**Детали:** [[family/how-to/ha-automations]] §4.7.