[2026-09-16] eagle: family/how-to/ha-automations.md family/tech/zigbee-t610-z2m-i-zha.md
This commit is contained in:
@@ -560,6 +560,35 @@ curl -s -H "$H" "$B/api/logbook/$T+00:00?entity=automation.<alias>"
|
||||
```
|
||||
Без этого легко «найти» баг автоматизации там, где был ручной тестовый вызов.
|
||||
|
||||
### 13.5.5. 🔴 `mode` автоматизации действует ТОЛЬКО внутри неё (2026-09-16, вечер)
|
||||
|
||||
**Взаимной блокировки между автоматизациями в HA НЕТ.** Запуск одной не останавливает другую, даже если обе управляют одной сущностью. Две автоматизации душевой (ВКЛ `single` + ВЫКЛ `restart`) реагируют на одни и те же события presence/lux и тянут свет в противоположные стороны — побеждает тот `turn_*`, что выполнился последним. Это **гонка**, а не логический конфликт условий.
|
||||
|
||||
| `mode` | Поведение при новом триггере во время работы |
|
||||
|---|---|
|
||||
| `single` | новое событие **игнорируется** |
|
||||
| `restart` | текущий запуск **убивается** (включая `delay`/`wait_for_trigger`), стартует новый |
|
||||
| `queued` | встаёт в очередь, выполнится после |
|
||||
|
||||
> ⚠️ **`single` + `delay` — скрытая потеря срабатываний.** Пока идёт `delay`, новый триггер молча отбрасывается: «зашёл, свет не зажёгся, потому что сценарий был занят».
|
||||
> ✅ **`restart` — правильный выбор, когда нужен ровно один прогон.** Он структурно лечит дрожание датчика: сколько бы раз радар ни флипнул, параллельных выполнений не бывает.
|
||||
|
||||
**`trigger.id` — как сценарий узнаёт, какой триггер сработал:**
|
||||
- каждый триггер получает метку `id`; в `actions` доступно `trigger.id` / `trigger.platform`;
|
||||
- доступен **только сработавший сейчас** триггер — проверить оба состояния можно лишь через `condition: state`, не через `trigger`;
|
||||
- **`automation.trigger` без `skip_condition` даёт пустой `trigger.id`** — ветки `condition: trigger` уходят в `default`, так тестировать нельзя;
|
||||
- у триггера без `id` значение будет `null`, а не имя.
|
||||
|
||||
> 📌 **Триггер по освещённости `type: illuminance` с `below`/`above` = `numeric_state`** — срабатывает только на **пересечение порога**. Изменение `1 → 2` сценарий не запускает. (Alex проговаривал это отдельно как требование.)
|
||||
|
||||
### 13.5.6. 🧠 Процессный питфолл: вопрос ≠ команда действовать
|
||||
|
||||
Дважды за сессию Alex резко реагировал («какого хуя ты пошел чето делать», «хули ты полез делать») на попытку **проверить систему вместо ответа на вопрос**. Вопросы вида «могут ли два сценария взаимоисключаться?», «знает ли сценарий свой триггер?» — это **теоретические вопросы**, ответ на них даётся словами, из уже известных фактов.
|
||||
|
||||
Правило: **пока нет явного «делай/применяй» — только текст.** Чтение живого конфига/сенсоров/истории = действие, требует команды.
|
||||
|
||||
**Связанный питфолл:** не переобъяснять Alex устройство его же системы. Рассуждение «подсветка засвечивает датчик освещённости» он дважды отклонил как irrelevant — он это знает. Если он говорит «олень»/«нихуя не понял» — значит ответ был **не на его вопрос**, а не то, что он не понимает тему.
|
||||
|
||||
---
|
||||
|
||||
## Связанные заметки
|
||||
|
||||
Reference in New Issue
Block a user