[2026-09-17] eagle: family/how-to/zont-config-compiler.md family/tech/zont-config-object-types.md family/tech/zont-scenario-logic-11109.md

This commit is contained in:
Alexey Martemyanov
2026-09-17 19:42:24 +06:00
parent 084253fb29
commit 8d5824d6fa
3 changed files with 162 additions and 8 deletions
+6 -6
View File
@@ -120,7 +120,8 @@ Modbus-регистры (тип 52) в конфиге — **отдельные
> `delays` / `scenario_scripts` / `scenario_raw_objects` **убраны** — тела живут только внутри
> `steps[]`. Осталась одна служебная секция `scenario_orphans`.
>
> **Trigger-сценарий** (`steps` = ровно один шаг 46) — условие поднимается в `trigger:`:
> **Trigger-сценарий** (`steps` = ровно один шаг 46) — условие поднимается в `trigger:`,
> у шага остаётся **`action`** — голый id действия (тело объекта живёт в своей секции):
>
> ```yaml
> - id: 9691
@@ -132,13 +133,12 @@ Modbus-регистры (тип 52) в конфиге — **отдельные
> value: 1
> steps:
> - id: 9819
> then:
> - id: 9563
> descr: 'Включить выход 14/14: Прихожая (н/п)'
> target: 146064
> value: 1
> action: 9563
> ```
>
> ⚠️ **Условие НЕ дублируется** в шаге как `if:` — оно переносится в `trigger:` (`pop`).
> Дублирование давало PyYAML-анкоры `&id061` / `*id061` (69 шт).
>
> **Все остальные типы** — `trigger:` отсутствует, условие шага живёт в нём как `if:`:
>
> ```yaml
+13 -1
View File
@@ -1,6 +1,18 @@
# 8.17. ✅ МОДЕЛЬ ЗАКРЫТА (2026-09-17, финал) — поле 5, форма сценария, type 47/49
> **Статус:** все открытые вопросы §8.16 закрыты. Ниже — подтверждённые факты.
> 🔴 **ЧАСТИЧНО УСТАРЕЛО — актуальная форма в [[family/how-to/zont-config-compiler]] §8.**
> Что здесь неверно:
> - **`if`/`then`/`else` НЕ выдумка** (§(б) ниже утверждает обратное). Это **поля записи 46**
> — поле 3 = `then`-список, поле 4 = `else`-список, поле 2 = условие. Alex: «Then конечно!!!».
> Пара `then`/`else` обязательна там, где у шага есть свой `if`.
> - **`action`** — не выдумка, но и не универсальное имя: у шага **с поднятым условием**
> (`trigger:` наверху) список действий называется `action`; у шага **со своим `if`** — `then`.
> - **`trigger:` не дублируется** в шаге: условие **переносится** (`pop`), иначе PyYAML ставит
> анкоры `&id061`/`*id061` (было 69 штук).
> - **`_kind`/`_f5`/`_then`** в примерах §(б) — выдуманные служебные ключи, вырезаны.
> - **Поле 5 в YAML не хранится вообще** (`type`/`field5` тоже вырезаны) — собирается из тела.
> **Статус (исторический):** все открытые вопросы §8.16 закрыты. Ниже — подтверждённые факты.
> Таблица `TRIGGER_KINDS` **удалена из кода**; доказательство получено **тостингом сценариев
> в UI**: Alex выключил/включил тестовые сценарии, поле 5 снято до и после, плюс повторный
> тостинг `8597`/`8599` дал **включённые** значения `schedule`/`interval` (`0` и `2`).