[2026-09-17] eagle: family/how-to/zont-config-compiler.md
This commit is contained in:
@@ -144,6 +144,10 @@ updated: '2026-09-17g'
|
||||
|
||||
### Как это выглядит в YAML
|
||||
|
||||
> ⚠️ **ТЕКУЩАЯ форма (коммит `199f2b1`).** Переделывается по **§5c** — там одна вложенная форма
|
||||
> `blocks[].if/then` для всех сценариев вместо плоского дубля и отдельных секций. Ниже — как есть
|
||||
> сейчас, чтобы читать работающий код; целевая форма — в §5c.
|
||||
|
||||
Одношаговые сценарии (64 из 65) сохраняют плоский вид `when`/`then` — старые YAML не ломаются.
|
||||
Многошаговые получают список `steps`, а хвостовые задержки — `extra_links`:
|
||||
|
||||
@@ -376,7 +380,7 @@ diff A.txt B.txt # пусто = round-trip чистый
|
||||
|
||||
---
|
||||
|
||||
## 5c. 🔄 Переработка структуры YAML сценариев — ПЛАН, ждёт апрува (2026-09-17)
|
||||
## 5c. 🔄 Переработка структуры YAML сценариев — СОГЛАСОВАНО, в работе (2026-09-17)
|
||||
|
||||
**Задача Alex:** «переписать блок парсинга/сборки сценариев чтобы он составлял синтаксис как у Home Assistant automations вместо текущей разбросанной структуры. с опциональными айдишниками у операторов».
|
||||
|
||||
@@ -425,11 +429,12 @@ scenarios:
|
||||
| `wait` лежит отдельной секцией верхнего уровня | `wait` — **внутри** `then`, по месту срабатывания |
|
||||
| `extra_links: [11828]` — голые id | `tail:` с блоками `wait` |
|
||||
|
||||
**Открытые вопросы (заданы Alex, ответа ещё нет):**
|
||||
1. Имена ключей: `blocks`/`if`/`then` — или ближе к терминам ZONT `steps`/`condition`/`actions`?
|
||||
2. Пауза в конце (`11826`, `ms: 0`) — оставлять как `wait` (честно для round-trip) или схлопывать?
|
||||
**Имена ключей и нулевые паузы — решено, не переспрашивать:**
|
||||
- Ключи: **`blocks` / `if` / `then`** — ближе к формулировке Alex «вложенные инструкции если … то …».
|
||||
- Нулевые паузы (`ms: 0`) — **остаются как `wait`**. Честно отражают конфиг, нужны для round-trip.
|
||||
- `id` у операторов — **опциональные**: пишутся, когда есть в конфиге; отсутствуют, когда нет.
|
||||
|
||||
**План работ (после апрува):**
|
||||
**План работ:**
|
||||
1. `config-to-yml.py` — блок type 11: генерировать `blocks[].if/then`; `wait` (45) встраивать в `then`; `tail` для хвостовых
|
||||
2. `yml-to-config.py` — обратный разбор `blocks`; **поддержать старые формы** (`when`/`then`, `steps`) для совместимости
|
||||
3. `test_roundtrip.py` — все 4 конфига должны остаться чистыми
|
||||
|
||||
Reference in New Issue
Block a user