[2026-09-18] eagle: personal/projects/zont-config-compiler.md

This commit is contained in:
Alexey Martemyanov
2026-09-18 00:17:16 +06:00
parent 94dccee26c
commit ab313baeb1
+43
View File
@@ -93,6 +93,17 @@ aliases:
- ZONT YAML якорь id002
- ZONT алиас sms_notifications
- ZONT вызов сценария 11109
- ZONT call_sub
- ZONT send_sms
- ZONT exit вместо end
- ZONT end: true
- ZONT scenario_orphans пустой
- ZONT орфанов нет
- ZONT круг 47
- ZONT круг 48
- ZONT круг 49
- ZONT поле 4 expr
- ZONT битая ссылка exit
- ZONT тип 11 сценарий
- ZONT тип 3 SMS
- ZONT артефакт yml устарел
@@ -3992,3 +4003,35 @@ Alex: *«и `scenario_orphans: []` снеси. и пуш»*.
выводится, энкодер считает его сам. Правило (проверено по всем 26 `expr`-записям в 9 дампах):
`0` — правый операнд это id существующего объекта; `2` — литерал (объекта нет).
---
## 29. 📌 Шпаргалка: формы шага сценария (итог кругов 46-49)
Всё, что может стоять в `steps` / `then` / `else`, и как оно выглядит в YAML:
| Тип | Что это | Форма в YAML |
|---|---|---|
| 59 `puts` | печать в лог | `- id: N` + `log: <текст>` |
| 59 `storeev` | событие/сигналка | `- id: N` + `storeenv: {level, text}` |
| 59 `set <имя>` | присваивание | `- id: N` + `set_var: {name, value}` |
| 59 `expr` | выражение | `- id: N` + `type: expr` + `op`/`left`/`right` |
| 59 `objcmd` | команда объекту | `- id: N` + `set_sensor`/`set_analog_output`/`set_contour_temp: {target, value}` |
| 5 | действие на выход | `- id: N` + `{descr, target, action}` (`action` = 256/512) |
| 9 | команда реле/контура/режима | `- id: N` + `set_relay`/`set_contour_target`/`activate_mode: {descr, target, value}` |
| 11 | вызов сценария | `- call_sub: N` (своего `id` НЕТ) |
| 3 | отправка SMS | `- send_sms: N` (тело в `sms_notifications`) |
| 45 | ожидание | `- id: N` + `wait: <мс>` |
| 46 | условие | `- id: N` + `if`/`then`/`else` |
| 47/48/49 | лист условия | развёрнут на `op`/`left`/`right` |
| 50 | расписание | в `trigger:``type: days_mask` + `days` |
| — | **битая ссылка** | `- id: N` + `exit: true` (`id` **обязателен**) |
🔴 **Различие двух «контурных» действий** (частая путаница, питфолл 96):
- `set_contour_target`**тип 9**: `#Z8817=9,'...',10034,'2782'`, уставка **числом** (`5.2 °C`);
- `set_contour_temp`**тип 59 objcmd**: `#Z10379=59,'objcmd 8669 ",,,%0";#h',9146,0,0`, значение
**источником** (тело объекта под `value`).
Кельвин `(code-2730)/10` применяется **только** к `set_contour_target` (цель типа 16) и **только**
если значение не является id объекта типа 20 — иначе `8574` (id режима) превращался в `584.4 °C`.