[2026-09-17] eagle: family/how-to/zont-config-compiler.md family/tech/zont-scenario-logic-11109.md
This commit is contained in:
@@ -21,7 +21,7 @@ tags:
|
||||
- homeautomation
|
||||
title: ⚙️ ZONT Config Compiler — конвертеры .txt ⇄ .yml
|
||||
type: how-to
|
||||
updated: 2026-09-17h
|
||||
updated: 2026-09-17i
|
||||
---
|
||||
|
||||
# ⚙️ ZONT Config Compiler — конвертеры `.txt ⇄ .yml`
|
||||
@@ -384,20 +384,20 @@ diff A.txt B.txt # пусто = round-trip чистый
|
||||
|
||||
---
|
||||
|
||||
## 5c. 🔄 Переработка структуры YAML сценариев — ПРИОСТАНОВЛЕНО, ждёт решения (2026-09-17)
|
||||
## 5c. 🔄 Переработка структуры YAML сценариев — 🟢 СОГЛАСОВАНО, парсер дописывается (2026-09-17)
|
||||
|
||||
> ⏸ **СТАТУС: РАБОТА НЕ НАЧАТА. Alex дал «стоп» и поставил под сомнение сам проект.**
|
||||
> Причина — исследование облачного API ZONT ([[family/tech/zont-api]]): Alex предположил, что
|
||||
> у ZONT есть свой API/формат, покрывающий датчики и автоматику, и спросил — доделывать конвертер
|
||||
> или переписать всё с 0.
|
||||
> ✅ **СТАТУС (обновлено 2026-09-17, вечер): Alex дал «дописывай парсер».** Семантика типов
|
||||
> 47/48/50/59 **раскрыта** (ответы Alex — [[family/tech/zont-scenario-logic-11109]] §8.7),
|
||||
> таблица операторов и логики подтверждена фактами конфига. Работа по §5c разрешена.
|
||||
>
|
||||
> **Результат исследования: API конфиг не поддерживает** (сценарии/реле/11/14/46/49 — в API нет,
|
||||
> `scenario` в доке 0 раз). Переписывать с 0 **не на что**. Конвертер остаётся единственным путём
|
||||
> к сценариям. **Новый открытый вопрос Alex'у:** нужен ли онлайн-мониторинг ZONT в HA
|
||||
> (отдельный проект на API, дополняет конвертер).
|
||||
> ⚠️ **Но остались 8 непрозрачных элементов** конкретно в сценарии `8456`
|
||||
> (`#8458`, `#8463`, `#8465`, `#8467`, `#8486`, `#8488`, `#9500`, `#8457`/`#8470`).
|
||||
> Alex спросил «всё ли кристально прозрачно?» — ответ: **нет**. Вопросы заданы, ответа ещё нет
|
||||
> (полный список — [[family/tech/zont-scenario-logic-11109]] §8.10).
|
||||
>
|
||||
> ⚠️ **Код конвертера НЕ тронут.** Коммит `199f2b1` — последнее рабочее состояние.
|
||||
> Не начинать §5c без явного «делай» от Alex.
|
||||
> 📌 **Решение по стратегии парсера:** сохранять байт-в-байт всё, что не понято (скрипты `59`
|
||||
> как сырые строки, суффиксы `;#a`/`;#h`/`;#p`, отсутствующие id — как есть), без «умного» перевода.
|
||||
> Тогда round-trip чистый, а непонятное не портится.
|
||||
|
||||
**Задача Alex (исходная):** «переписать блок парсинга/сборки сценариев чтобы он составлял синтаксис как у Home Assistant automations вместо текущей разбросанной структуры. с опциональными айдишниками у операторов».
|
||||
|
||||
@@ -639,9 +639,14 @@ EXIT=2
|
||||
2. **Новые типы:** `47` (лист условия), `48` (группа И/ИЛИ), `50` (запуск по id),
|
||||
`59` (мини-скрипт: `objcmd`/`objstate`/`expr`/`set`/`puts`/`storeev`).
|
||||
|
||||
**Что нужно сделать** (после ответов Alex на семантику — [[family/tech/zont-scenario-logic-11109]] §8.7):
|
||||
парсер 47/48/50/59 с рекурсивным деревом условий; поле 5 хранить как тип запуска; принимать
|
||||
непустое поле 4 шага; допускать не-46 типы в поле 2.
|
||||
**Что нужно сделать** (семантика получена — [[family/tech/zont-scenario-logic-11109]] §8.7;
|
||||
работа разрешена Alex'ом 2026-09-17 вечером, «дописывай парсер»):
|
||||
парсер 47/48/50/59 с рекурсивным деревом условий; поле 5 хранить как тип запуска (плюс маска дней
|
||||
и время для расписания); принимать непустое поле 4 шага; допускать не-46 типы в поле 2.
|
||||
|
||||
> 📌 **Стратегия:** всё непонятое (скрипты `59` дословно, суффиксы `;#a`/`;#h`/`;#p`, отсутствующие id)
|
||||
> сохранять байт-в-байт, без «умного» перевода — round-trip останется чистым. 8 открытых вопросов
|
||||
> по сценарию `8456` — [[family/tech/zont-scenario-logic-11109]] §8.10.
|
||||
|
||||
➡️ **Полный разбор — [[family/tech/zont-scenario-logic-11109]] §8**
|
||||
|
||||
@@ -664,6 +669,8 @@ EXIT=2
|
||||
| `zont_api_docs/` | ✅ **новая папка** — локальная копия доки облачного API ZONT (`zont_api_docs.html` 250 KB, `zont_api_docs.txt` 99 KB, `convert.py`). **не в git**. Исследование — [[family/tech/zont-api]] |
|
||||
| `zont_config/config_local_2026-09-17_14-16-35.txt` | 🆕 **34 907 байт, 660 `#Z`, 25 `#S`** — конфиг с **тестовыми сценариями** Alex (все виды триггеров/логики). Снят с `http://192.168.0.50/config.txt`. **не в git** |
|
||||
| `dump_new_types.py`, `probe_types.py`, `trace_scenarios.py` | 🆕 **новые скрипты разбора** сценарных типов 47/48/50/59. Разбор — [[family/tech/zont-scenario-logic-11109]] §8.8. **не в git** |
|
||||
| `read_scenarios.py` | 🆕 **читаемый дамп сценария** — дерево если/то/иначе с именами объектов. Токенайзер `split_top()` учитывает кавычки/`\`/`[]`. **не в git** |
|
||||
| `probe_sched.py`, `verify_answers.py`, `check_ops.py`, `audit_8456.py`, `audit2.py` | 🆕 **проверочные скрипты** — расписание, ответы Alex против конфига, операторы, аудит 8456. **не в git** |
|
||||
| `~/rasputin-tmp/zont-util/` | ✅ **новая папка на Mac** (вне репо) — настроечная утилита `H1000 Programmator` 2.8.5, драйвер USB, прошивка `.enc`, скрипт распаковки `extract.py`. Разбор — §5g-2, [[family/tech/zont-api]] §10 |
|
||||
| `~/rasputin-tmp/zont-{auth-probe,recon,recon2,ws-probe}.js` | ✅ скрипты разведки локального WS-интерфейса. **не в git** |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user