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

This commit is contained in:
Alexey Martemyanov
2026-09-17 19:37:19 +06:00
parent 4e63dc7bbe
commit 084253fb29
2 changed files with 188 additions and 29 deletions
+9 -4
View File
@@ -156,11 +156,16 @@ Modbus-регистры (тип 52) в конфиге — **отдельные
> ...
> ```
>
> `if` ← поле 2 (`cond_id`), `then` ← поле 3 (`[9563]`), `else` ← поле 4, `flag` ← поле 1.
> `then`/`else`/`if`/`flag` — **имена полей записи 46**, поэтому разрешены; `then`/`else` — **пара**.
> `if` ← поле 2 (`cond_id`), поле 3 — список действий, `else` ← поле 4, `flag` ← поле 1.
>
> 🔴 **Имя списка действий зависит от того, есть ли у шага свой `if`:**
> - **есть `if`** → `then:` (+ `else:` парой) — вся конструкция if/then/else в шаге;
> - **`if` поднят в `trigger:`** (у сценария ровно один шаг-46) → `action:`, шаг — чистый список.
>
> `if`/`then`/`else`/`action`/`flag` — **имена полей записи 46** (по контексту), поэтому разрешены.
> **`trigger:` на уровне сценария РАЗРЕШЁН** — выводится из тела (ровно один шаг 46), не подставляется.
> `type` / `field5` / `kind` / `_f5` / `action` — **запрещены**.
> Полностью — [[family/how-to/zont-config-compiler]] §6a, правки после коммита — §6d.
> `type` / `field5` / `kind` / `_f5` — **запрещены**.
> Полностью — [[family/how-to/zont-config-compiler]] §6 и §6a.
>
> ⚠️ **Питфолл (§6d):** условие для `trigger:` вынимается из шага **переносом (`pop`)**, не копией.
> `deepcopy` даёт PyYAML-анкоры `&idNNN`/`*idNNN`; убирание `if` из `dump_step` теряет условие у ВСЕХ