[2026-09-17] eagle: family/how-to/zont-config-compiler.md family/tech/zont-api.md
This commit is contained in:
@@ -8,6 +8,7 @@ aliases:
|
||||
created: '2026-09-17'
|
||||
namespace: family
|
||||
related:
|
||||
- '[[family/tech/zont-api]]'
|
||||
- '[[family/tech/zont-config-object-types]]'
|
||||
- '[[family/tech/zont-scenario-logic-11109]]'
|
||||
- '[[family/how-to/home-automation]]'
|
||||
@@ -20,7 +21,7 @@ tags:
|
||||
- homeautomation
|
||||
title: ⚙️ ZONT Config Compiler — конвертеры .txt ⇄ .yml
|
||||
type: how-to
|
||||
updated: '2026-09-17g'
|
||||
updated: 2026-09-17h
|
||||
---
|
||||
|
||||
# ⚙️ ZONT Config Compiler — конвертеры `.txt ⇄ .yml`
|
||||
@@ -501,99 +502,38 @@ scenarios:
|
||||
|
||||
---
|
||||
|
||||
## 5g. 🔴 Локальный эндпоинт контроллера: `http://192.168.0.50/config.txt`
|
||||
## 5g. 🔴 Локальный эндпоинт контроллера
|
||||
|
||||
**Факт (Alex, 2026-09-17):** контроллер отдаёт **весь конфиг** по HTTP **без авторизации**.
|
||||
|
||||
```
|
||||
http://192.168.0.50/config.txt
|
||||
```
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **Что отдаёт** | весь конфиг — тот же формат `#Z…` / `#S…`, что и файл из облака |
|
||||
| **Авторизация** | **не требуется** |
|
||||
| **Адрес** | `192.168.0.50` — локальный IP контроллера |
|
||||
|
||||
**Что это меняет:** снятие конфига с контроллера перестаёт быть ручной операцией через облако/UI —
|
||||
его можно тянуть напрямую curl'ом из локальной сети.
|
||||
Контроллер отдаёт **весь конфиг** по HTTP **без авторизации**:
|
||||
|
||||
```bash
|
||||
# снять конфиг напрямую с контроллера
|
||||
curl -s http://192.168.0.50/config.txt -o zont_config/config_$(date +%Y-%m-%d_%H-%M-%S).txt
|
||||
```
|
||||
|
||||
> ⚠️ **Не проверено:** кодировка ответа (ожидается windows-1251, как в облачных выгрузках) и коды
|
||||
> ответа при недоступности. Проверить `file`/`iconv` перед тем, как полагаться на байтовую идентичность.
|
||||
>
|
||||
> ⚠️ **Запись через этот эндпоинт не подтверждена.** Известно только чтение. Загрузка конфига в
|
||||
> контроллер — по-прежнему руками (см. §5b питфолл 8). Не предполагать наличие POST.
|
||||
Формат — тот же `#Z…` / `#S…`, что парсит `config-to-yml.py`. Снятие конфига больше не ручная
|
||||
операция через облако.
|
||||
|
||||
**Полный разбор локального интерфейса** — WebSocket-протокол, чтение/запись `#S`-настроек,
|
||||
кнопка сохранения `#S15=1`, 25 настроек против 9 в UI, утечка секретов, инструменты разведки:
|
||||
|
||||
➡️ **[[family/tech/zont-api]] §6bis**
|
||||
|
||||
---
|
||||
|
||||
## 5h. 🌐 API ZONT — что доступно (исследовано 2026-09-17)
|
||||
## 5h. 🌐 Облачный API ZONT — конфига не даёт
|
||||
|
||||
Доки скачаны в проект: `zont_api_docs/` (`zont_api_docs.html` 250 KB, `zont_api_docs.txt`,
|
||||
`convert.py` — воспроизводимая HTML→text сборка).
|
||||
Исследовано 2026-09-17. Доки скачаны в проект: `zont_api_docs/`.
|
||||
|
||||
**Источник:** https://zont-online.ru/api/docs/
|
||||
|
||||
### 🔴 Главный вывод: конфиг через API недоступен
|
||||
|
||||
Публичное API — это **состояния и история**, не конфигурация.
|
||||
|
||||
- Слово `scenario` в доке — **0 вхождений**. `relay` — 1.
|
||||
- Ни одного метода для типов `11 / 14 / 46 / 49` (сценарии, реле, шаги, условия).
|
||||
- `z3k_config` (где живут Z-объекты) упоминается **только как ссылка на ID** в `load_data`.
|
||||
Метода для работы с ним **нет**.
|
||||
**Главный вывод:** облачный API (`my.zont.online/api/*`, 11 методов) — это **состояния и история**,
|
||||
не конфигурация. Слово `scenario` в доке — **0 раз**. Методов для типов `11/14/46/49` нет.
|
||||
`z3k_config` упоминается только как источник ID.
|
||||
|
||||
**Следствие:** конвертер `.txt ⇄ .yml` — **единственный** путь правки сценариев и реле.
|
||||
Переписать управление на API нельзя, переписывать нечего.
|
||||
|
||||
### Все методы API (11 шт.)
|
||||
**Что API всё же умеет (для H-2000 PRO):** чтение состояний (`devices?load_io=true`),
|
||||
история (`load_data`), режимы отопления (`update_device`), сирена/охрана (`set_io_port`).
|
||||
|
||||
| Метод | Что делает | Конфиг? |
|
||||
|---|---|---|
|
||||
| `devices` | читает устройства + настройки (`load_io: true` → ещё и состояния) | чтение |
|
||||
| `update_device` | **меняет настройки** — термостат, режимы отопления, расписание, доверенные номера, баланс SIM, OpenTherm, `custom_controls` | ⚠️ узко |
|
||||
| `set_io_port` | управления состоянием: `guard-state`, `siren`, `engine-block`, `webasto` | — |
|
||||
| `send_custom_command` | послать пользовательскую команду по `command_id` (ZTC/Mega SX) | — |
|
||||
| `load_data` | **история** за период: `temperature`, `events`, `z3k_*` (Delta-time Array) | — |
|
||||
| `raw_events` | история событий | — |
|
||||
| `temperature` / `thermostat_work` | показания датчиков / работа термостата | — |
|
||||
| `custom_controls` | история пользовательских статусов | — |
|
||||
| `ztc_state` | питание, GSM, Wi-Fi | — |
|
||||
| `generate_archive` / `download_generated_archive` | выгрузка архива | — |
|
||||
|
||||
**Наш H-2000 PRO** из `update_device` получает только **отопление**: `thermostat_mode`,
|
||||
`thermostat_mode_temps`, `thermostat_ext_mode`, `thermostat_ext_modes_config`, `tempschedule`,
|
||||
`thermometers`, `ot_*` (OpenTherm).
|
||||
|
||||
### Аутентификация
|
||||
|
||||
1. `get_authtoken` (POST, с login/password) → `token`
|
||||
2. Дальше — заголовок `X-ZONT-Token: <token>` (или Basic)
|
||||
3. Обязательный заголовок `X-ZONT-Client: <email>`
|
||||
4. На **403** — токен отозван, получать заново
|
||||
|
||||
Базовый URL: `https://my.zont.online/api/<метод>`
|
||||
|
||||
**Легковесный вариант:** https://my.zont.online/api/widget/v3
|
||||
|
||||
### Что это значит практически
|
||||
|
||||
| Задача | Как решать |
|
||||
|---|---|
|
||||
| Править сценарии, реле, датчики | **только конвертер** (типы 11/14/46/49) |
|
||||
| Снять конфиг | `http://192.168.0.50/config.txt` без авторизации (§5g) |
|
||||
| Залить конфиг | руками (UI/облако) — API записи конфига нет |
|
||||
| Смотреть состояния реле/датчиков онлайн | `devices?load_io=true` — **можно** |
|
||||
| История температур/событий | `load_data` — **можно** |
|
||||
| Менять режимы отопления | `update_device` — **можно** |
|
||||
|
||||
**Рекомендация:** конвертер не выкидывать — он единственный путь к сценариям. API-обвязка
|
||||
(мониторинг состояний + история + режимы отопления) — **отдельная задача**, которая
|
||||
**дополняет** конвертер, а не заменяет его.
|
||||
➡️ **Полный разбор API — [[family/tech/zont-api]]**
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user