From b5d86445d72dada701e77483700a46b5361f598d Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Thu, 17 Sep 2026 23:27:11 +0600 Subject: [PATCH] =?UTF-8?q?[2026-09-17]=20zont:=20=D0=BA=D1=80=D1=83=D0=B3?= =?UTF-8?q?=2043=20=E2=80=94=20=D1=82=D0=B8=D0=BF=205=20=D0=B2=20=D1=88?= =?UTF-8?q?=D0=B0=D0=B3=D0=B5=20(action),=20HEAD=205fdedc9,=20=D0=BA=D1=80?= =?UTF-8?q?=D1=83=D0=B3=209/9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personal/projects/zont-config-compiler.md | 36 +++++++++++++++-------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/personal/projects/zont-config-compiler.md b/personal/projects/zont-config-compiler.md index 862663a2..549fd386 100644 --- a/personal/projects/zont-config-compiler.md +++ b/personal/projects/zont-config-compiler.md @@ -52,6 +52,12 @@ aliases: - ZONT код действия 256 512 - ZONT новый тестовый конфиг 23-21-20 - ZONT scenario_step_actions + - ZONT круг 43 + - ZONT params снесён + - ZONT action вызов действия + - ZONT дубли id scenario_step + - ZONT curl config.txt + - ZONT стянуть конфиг related: - '[[family/tech/zont-api]]' - '[[family/how-to/home-automation]]' @@ -304,6 +310,9 @@ echo "=== pass=$pass fail=$fail" | `'expr "%0 + %1"'` | `type: expr` + `op` + `left`/`right` | операнды — телами, не голыми id (§18) | | `'objstate 0 0'` | `type: objstate` + `object` | | +> ⚠️ **Запись типа 5 в шаге — не Pickle.** Это отдельный объект-действие +> (`[5, descr, output_ref, …, action]`), он разбирается в `dump_step`, а не в телах 59: см. §22. + ### 5.1. Trigger-сценарий `steps` состоит **ровно из одного шага типа 46** — условие **переносится** в `trigger:` наверх @@ -482,7 +491,7 @@ enabled = not (f5 & 8) | ⛔ **`from: 0` / `value: 0` — поле 2 тела `set var`** | Alex: **«Я СКАЗАЛ СНЕСТИ, А НЕ МЕНЯТЬ НАЗВАНИЯ!»**. Поле 2 **не раскрывается** в YAML; энкодер ставит `0` сам (§17) | | ⛔ **`raw: [50,1,0,0,109]` в `trigger:`** | расписание — тот же объект, что цель `set_var`; раскрывать `type: days_mask` + `days` (§19) | | ⛔ **`raw: [59, 'puts "…"', 0,0,0]` в орфанах** | `puts`/`storeev` — разобранные тела; орфан раскрывается как `log:` / `storeenv:` (§19.3) | -| ⛔ **`action: ` и вообще ключ `action`** | **ОТМЕНЁН** (круг 39, `8f2edd4`). При поднятом условии шага в `steps` нет вообще: id шага едет в `trigger.step_id`, `steps` = тела действий. См. §5.3, §21.3 | +| ⛔ **`action: ` как список действий шага 46** | **ОТМЕНЁН** (круг 39, `8f2edd4`). При поднятом условии шага в `steps` нет вообще: id шага едет в `trigger.step_id`, `steps` = тела действий. ⚠️ **Не путать** с ключом `action:` у записи **типа 5** — там это поле 10 (код действия `256`/`512`), см. §22. См. §5.3, §21.3 | | ⛔ **`args: [0, 1]` у `set_var` с числовым полем 2** | поле 5 записи 59 — **производное** («поле 2 = литерал, а не id»), энкодер ставит сам. Alex: «да блядь! опять?!» (§21.5) | | ⛔ **раскрывать поля 4/5 записи 59 в YAML** | у `expr` поле 4 = `2` и у `set` поле 5 = `1` — **одно и то же производное поле** («операнд/значение — литерал»). В YAML не пишется, восстановимо по составу (§21.5) | | ⛔ **`params:` у шага-действия (запись типа 5)** | хвост `0,0,[],0,0,0` (поля 4..9) — дефолты, а поле 10 = `512`/`256` — **код действия**. Alex: «тут просто выполнить действие по id». Шаг = `descr` + `target` + `action`, всё (§22) | @@ -3132,18 +3141,18 @@ Alex прочитал `git show --stat ba6ef44` (2 файла, 10 строк) и | | | |---|---| -| **HEAD** | **`4b99d8e`** — «set_var: args убран у числового поля 2, поле 5 ставится само» · ✅ **ЗАПУШЕН** | -| **Рабочее дерево** | ⚠️ **изменено, НЕ закоммичено** (`config-to-yml.py`, `yml-to-config.py` — круг 42, §22) | -| **Файл на диске** | `config_local_2026-09-17_22-26-26.yml` — 757 объектов; `trigger.step_id`, `end: true` у терминаторов, `args` только у `objcmd` | -| **Круг** | ✅ **8/8** (в `zont_config/` 8 снапшотов `.txt`) — потеряно 0, лишнее 0 | -| **Коммиты сессии** | `4b99d8e` · `8f2edd4` · `272f4c6` · `6d0b6a5` · `4c6a6f5` · `806ed2e` · `b770bed` · `ba6ef44` · `0cbbeb8` · `2007771` · `0c4b9a6` · `821659b` · `16ec710` · `375d01a` · `07c076f` — ✅ **ЗАПУШЕНЫ** (`d94b809..4b99d8e`) | -| **Док в vault** | `personal/projects/zont-config-compiler.md` — коммит vault `ab32dd4` | -| **Незакоммичено в `zont_config/`** | 2 удалённых `.yml`-снапшота (`18-43-24`, `19-53-21`), новый `.txt` | -| **Открыто** | только поле 4 = `2` у `expr` (`10077`–`10085`) — имя не дано; всё остальное ✅ закрыто | +| **HEAD** | **`5fdedc9`** — «type 5 в шаге: action вместо хвоста params, отдельная секция сборки» · ⚠️ **НЕ запушен** | +| **Рабочее дерево** | ✅ **чисто** по конвертерам (круг 43 закоммичен) | +| **Файл на диске** | `config_local_2026-09-17_23-21-20.yml` — **759 объектов**, 90 973 байта; `action` у типа 5, `trigger.step_id`, `end: true` у терминаторов | +| **Круг** | ✅ **9/9** (в `zont_config/` 9 снапшотов `.txt`) — потеряно 0, лишнее 0 | +| **Коммиты сессии** | `5fdedc9` (круг 43) · `4b99d8e` (круг 40) · `8f2edd4` · `272f4c6` · `6d0b6a5` · `4c6a6f5` · `806ed2e` · `b770bed` · `ba6ef44` · `0cbbeb8` · `2007771` · `0c4b9a6` · `821659b` · `16ec710` · `375d01a` · `07c076f` — 15 из них ✅ запушены (`d94b809..4b99d8e`), **`5fdedc9` — нет** | +| **Док в vault** | `personal/projects/zont-config-compiler.md` | +| **Незакоммичено в `zont_config/`** | ничего (2 удалённых `.yml`-снапшота и новый `.txt` ушли в `5fdedc9`) | +| **Открыто** | только поле 4 = `2` у `expr` (`10379`-группа) — имя не дано; всё остальное ✅ закрыто | -⚠️ **Первая строка «HEAD» описывает коммиты, а не рабочее дерево.** После круга 42 в дереве лежат -**несохранённые** правки `config-to-yml.py` / `yml-to-config.py` — при следующей сессии начинать с -`git status` / `git diff`, а не с предположения «всё закоммичено». +⚠️ **Первая строка «HEAD» описывает коммиты, а не рабочее дерево.** На конец круга 43 дерево +**чистое**: круг 43 закоммичен в `5fdedc9`. При следующей сессии всё равно начинать с `git status`, +а не с предположения «всё закоммичено». ### 21.2.1 ✅ Круг 40 (ФИНАЛ) — `set_var`: `args` выдуман, поле 5 производное @@ -3378,6 +3387,9 @@ def _ref(a): **Круг ✅ 9/9 чистый**, включая новый конфиг `config_local_2026-09-17_23-21-20.txt` (759 объектов). +**Коммит:** **`5fdedc9`** («type 5 в шаге: action вместо хвоста params, отдельная секция сборки»). +**Push:** ⚠️ не делался. + ### 22.4. Новый тестовый конфиг Alex Alex добавил пачку тестовых значений в UI контроллера: **objcmd** и **action calls**.