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

This commit is contained in:
Alexey Martemyanov
2026-09-17 16:39:11 +06:00
parent 82025e8d4a
commit b23f164ba1
2 changed files with 182 additions and 69 deletions
+11 -9
View File
@@ -607,27 +607,29 @@ scenarios:
> способами. Я нашёл `(t+273)*10` на 22 и 23.8, но **не вшивал её в парсер**, пока Alex не дал
> третью точку (5.2). Правило: **≥3 точки, прежде чем кодировать формулу.**
**Что раскрыто в YAML (type 9):**
**Что раскрыто в YAML (type 9)** — ✅ **финальные имена полей (2026-09-17): `descr`/`target`/`value`**,
сырьё в `raw_value` (Alex: «ОЧЕВИДНО ИЛИ НЕТ ЧТО НАМ НУЖНЫ ПОЛЯ descr, target id и value который блядь 5,2»):
```yaml
- id: 8817
command: Установить целевую температуру 5.2 для контура Спальня
descr: Установить целевую температуру 5.2 для контура Спальня
target: 10034
target_name: Спальня # развёрнуто из id (тип 16 = контур)
target_type: 16
value: '2782' # код как в конфиге (источник истины)
temp_c: 5.2 # ← раскодировано, ТОЛЬКО если формула сходится точно
value: 5.2 # ← Цельсии, то, что правит человек
raw_value: '2782' # сырой код из конфига (источник истины для сборки)
- id: 9826
command: 'Включить реле «Реле 1: Конвектор кухня»'
descr: 'Включить реле «Реле 1: Конвектор кухня»'
target: 9263
target_name: 'Реле 1: Конвектор кухня'
target_type: 14 # 14 = реле
value: '1'
state_on: true
value: true # ← раскодировано (было '1')
raw_value: '1'
```
`temp_c` появляется **только** при точном совпадении формулы (`|round(t*10)-(код-2730)| < 0.5`);
иначе остаётся голый `value`. `state_on: true/false` — только при `value == '1'/'0'`.
`value`**раскодированное** значение (Цельсии / `true` / `false`), `raw_value` — сырьё.
Декодирование уставки — **только** при точном совпадении формулы (`|round(t*10)-(код-2730)| < 0.5`);
иначе `value` = сырая строка без `raw_value`. Энкодер собирает строку из `raw_value`, не из `value`.
### 8.14. `objcmd <id> "1 %0"` — запись значения в объект