[2026-09-17] eagle: family/how-to/zont-config-compiler.md family/tech/zont-config-object-types.md

This commit is contained in:
Alexey Martemyanov
2026-09-17 11:59:16 +06:00
parent f6092f969b
commit a2b2eaf769
2 changed files with 46 additions and 5 deletions
+42 -2
View File
@@ -19,7 +19,7 @@ tags:
- homeautomation - homeautomation
title: ⚙️ ZONT Config Compiler — конвертеры .txt ⇄ .yml title: ⚙️ ZONT Config Compiler — конвертеры .txt ⇄ .yml
type: how-to type: how-to
updated: '2026-09-17' updated: '2026-09-17c'
--- ---
# ⚙️ ZONT Config Compiler — конвертеры `.txt ⇄ .yml` # ⚙️ ZONT Config Compiler — конвертеры `.txt ⇄ .yml`
@@ -91,6 +91,20 @@ updated: '2026-09-17'
> Неизвестный тип объекта — **падение с ошибкой**, а не тихий пропуск. Сделано намеренно: молча потерять объект хуже, чем не отдать файл. > Неизвестный тип объекта — **падение с ошибкой**, а не тихий пропуск. Сделано намеренно: молча потерять объект хуже, чем не отдать файл.
### Проверено против исходников (2026-09-17)
| Факт | Где в коде |
|---|---|
| `config-to-yml.py` exit-коды {1, 2} | `sys.exit(1)` — argc; `sys.exit(2)``ParseError` |
| `yml-to-config.py` exit-коды {1, 2, 3, 4} | argc / `FileNotFoundError` / `ConversionError` / общее / validation |
| `validate_config()` вызывается **до** вывода | стр. 913 `validation_errors = validate_config(data, lines)` |
| Вход YAML — UTF-8, выход — windows-1251 | стр. 907 `open(…, encoding='utf-8')`; стр. 921 `stdout.reconfigure(encoding='windows-1251', errors='replace')` |
| Дефолт типа 0 (16 полей) | `add_z_line(obj['id'], 0, register_ref, name, 0, 0, 1000, 2000, 7424, [], 20, [], [], 1, config_id, 0, 0)` |
| Дефолт типа 36 | `add_z_line(config_id, 36, [], [], [], 10, 0)` |
| README перечисляет 23 типа; код обрабатывает 25 | README пропускает `0` и `36` |
> 📌 `validate_config()` дополнительно проверяет кодируемость каждой строки в windows-1251 (символ вне CP1251 → ошибка валидации).
--- ---
## 3. Как пользоваться ## 3. Как пользоваться
@@ -171,7 +185,33 @@ grep -c '^#Z' A.txt B.txt # счётчик объектов
--- ---
## 6. Связанные заметки ## 6. Состояние проекта (проверено 2026-09-17)
Репозиторий `/Users/admin/Automation/HA-ZONT-Modbus`**рабочее дерево грязное**, разгребание ждёт отдельной команды Alex:
| Файл | Статус |
|---|---|
| `zont_config/H2000_PRO_config_actual-2.txt` / `-2.yml` | удалены из индекса (целы в `zont_config/archive/`) |
| `zont_config/H2000_PRO_config_actual-3.txt` / `-3.yml` | то же |
| `zont_config/H2000_PRO_config_actual-4.txt` / `-4.yml` | то же |
| `zont_config/archive/` | не добавлена в git |
| `zont_config/config_0FA7C33CC89F_…_2026-09-17_12-12-28.txt` | 32 689 байт — свежеснятый конфиг с контроллера, не закоммичен |
| одноимённый `.yml` | **0 байт** — конвертация запускалась и не завершилась |
> 🔴 **Пустой `.yml` (0 байт) рядом с непустым `.txt`** — признак незавершённой конвертации. Пересобрать шагом 2 из §3 перед использованием.
**Содержимое проекта, не относящееся к конвертерам:**
- `INFRASTRUCTURE.md` (342 стр.), `docker-compose.yml`, `docker run.txt`**исторический TrueNAS-стек** (docker-контейнеры `homeassistant`, `mbusd`, `modbus-bridge`, `mosquitto`, `zigbee2mqtt`, `nodered`, `caddy`, `immich`, `transmission`, `webdav`, `inpxer`, `cups-splix`, `portainer`, `watchtower`, `rclone`). Стек **декомиссирован**, автоматизация живёт на t610 — актуальное: [[family/how-to/home-automation]].
- `modbus_ha_bridge.py`, `modbus_mqtt_bridge.py` — исходники мостов (исторические, для TrueNAS).
- `nodered-flows-backup.json`, `nodered-flows-updated.json` — дампы потоков Node-RED (Node-RED остановлен).
- `homeassistant/`, `floorplan/` — снапшоты конфига HA и планировки (исторические, там же workflow «fetch from NAS → edit → deploy»).
- `README_converters.md` — исходное описание конвертеров (типы: 23, без `0` и `36`).
- `.gitignore` — исключает `*.cur`, логи, `__pycache__`, `.venv`, `.DS_Store`, **`project_home.pdf`** (крупный бинарь).
---
## 7. Связанные заметки
- [[family/tech/zont-config-object-types]] — таблица типов объектов (0, 1…57, 36) и `#S`-настройки - [[family/tech/zont-config-object-types]] — таблица типов объектов (0, 1…57, 36) и `#S`-настройки
- [[family/how-to/home-automation]] — контур автоматизации, ZONT, Modbus slave ID и регистры (§6) - [[family/how-to/home-automation]] — контур автоматизации, ZONT, Modbus slave ID и регистры (§6)
+4 -3
View File
@@ -16,15 +16,16 @@ tags:
- reference - reference
title: "\U0001F9E9 ZONT Config — типы объектов" title: "\U0001F9E9 ZONT Config — типы объектов"
type: reference type: reference
updated: '2026-09-17' updated: '2026-09-17b'
--- ---
# 🧩 ZONT Config — типы объектов # 🧩 ZONT Config — типы объектов
> Справочник по типам объектов конфига ZONT (первое поле в `#Z<id>=<type>,…`). > Справочник по типам объектов конфига ZONT (первое поле в `#Z<id>=<type>,…`).
> **Инструкция по конвертерам:** [[family/how-to/zont-config-compiler]] > **Инструкция по конвертерам:** [[family/how-to/zont-config-compiler]]
> **Источник:** `config-to-yml.py` / `yml-to-config.py` в `/Users/admin/Automation/HA-ZONT-Modbus`, `README_converters.md` > **Источник:** код `config-to-yml.py` / `yml-to-config.py` в `/Users/admin/Automation/HA-ZONT-Modbus`; инструкция по запуску — [[family/how-to/zont-config-compiler]].
> ⚠️ Таблица ниже — по README; колонка «Что реально делает скрипт» — по коду. Расхождения помечены. > Таблица сверена с кодом (2026-09-17): перечислены **все 25 обрабатываемых типов**, включая `0` и `36`, которых нет в `README_converters.md` (там 23).
> 🔴 Для каждого типа указаны только те поля, которые скрипт **реально декодирует**; остальное лежит в `raw` / `raw_params` и при сборке пишется как есть. Ссылка вроде «README → поле X» не должна вводить в заблуждение: если поля нет в таблице, оно не декодировано.
--- ---