[2026-09-17] zont: круг 43 — тип 5 в шаге (action), HEAD 5fdedc9, круг 9/9

This commit is contained in:
Alexey Martemyanov
2026-09-17 23:27:11 +06:00
parent 6a7924a6a5
commit b5d86445d7
+24 -12
View File
@@ -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 <id> 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: <id>` и вообще ключ `action`** | **ОТМЕНЁН** (круг 39, `8f2edd4`). При поднятом условии шага в `steps` нет вообще: id шага едет в `trigger.step_id`, `steps` = тела действий. См. §5.3, §21.3 |
| ⛔ **`action: <id>` как список действий шага 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**.