diff --git a/personal/projects/zont-config-compiler.md b/personal/projects/zont-config-compiler.md index 1fb10e95..32f8ef13 100644 --- a/personal/projects/zont-config-compiler.md +++ b/personal/projects/zont-config-compiler.md @@ -766,12 +766,82 @@ git commit -m "Scenario YAML shape: bare action ids, no anchors" 4. **Тип 3** (SMS `8195`) — тело лежит якорем в `sms_notifications`, не раскрыто. 5. **Тип 11 внутри `steps` другого сценария** — ссылка на сценарий голым `id` (`#Z8456` держит `11109`). 6. **Старые снапшоты `14-16-35.yml` / `16-02-18.yml`** — по 2 вхождения старого `type:`, не перегенерированы. -7. 🔴 **Семантика поля 2 объекта 49 (`operator`) — НЕ ПОДТВЕРЖДЕНА.** По данным поле принимает только - `0` (5×) и `1` (71×); поле 4 — значения и ссылки на объекты. Знак из `LEAF_OPS` типа 47 подставлен - **по аналогии**, а не выведено из данных (§10.1 круг 18). Нужны имена из UI прибора. - Alex: «че блядь за оператор ⚠️ Порядок событий датчика (`0`–`4`) выведен из **порядка строк в списке Alex**, а не из UI-подписей +> по каждому коду. Для датчиков совпадает у `9259` и `9864` (`0,1,2,3,4`) — сильно, но не доказано. +> **Реле и адаптеры сходятся точно** (Alex назвал и код, и текст). +> 🔴 У `8847` поле 3 = `0` (не `1`) при `49,8560,0,3` — то есть `field: 0` тоже встречается +> в живых `set_var`. Семантика `0` vs `1` — **всё ещё открыта**. + +> ✅ **Тот же объект 49 работает и как `trigger` сценария** (Alex: «точно такие же conditions +> могут быть trigger сценария») — см. §5.1, `trigger: {id, object, value}`. Разбор §10.4 применим +> к триггерам тоже. + +> ❌ **`8860` в Conditions Test НЕ появился** — опровергает версию «8860 = один из типовых conditions». ### 10.1. ✅ Разбор тел записи 59 (2026-09-17) @@ -861,6 +931,19 @@ git commit -m "Scenario YAML shape: bare action ids, no anchors" > **по аналогии с типом 47** (§5.8, `op`), а не выведено из данных. > **Открыто:** имена/значения поля 2 в UI прибора. До подтверждения `operator` может быть неверен. > Питфолл 32: сначала СЛОВА из UI, потом модель. +> +> ✅ **РАЗРЕШЕНИЕ (2026-09-17, вечер): поле названо `field`, пишется кодом как есть.** +> Alex: **«field его обзови»**. Знак из `LEAF_OPS` **убран** — вместо него сырое значение поля 3. +> ```yaml +> set_var: +> id: 8847 +> name: var1 +> object: 8560 # поле 2 объекта 49 — id +> field: 0 # поле 3 объекта 49 — код как есть, семантика не подтверждена +> value: 3 # поле 4 +> ``` +> Итог: пока из UI не придут слова — **не расшифровывать**. `field` честно означает «поле 3». +> Разбор по снимку `20-40-48` (сценарий **Conditions Test**) — см. §10.4. > 📌 **Круг 18 — урок:** прежде чем подставлять знак/имя чужого типа, **проверить множество > значений поля по ВСЕМУ конфигу** (`Counter` по полю). Тип 47 и тип 49 — разные объекты,