[2026-09-23] eagle: family/tech/zont-api.md personal/projects/zont-config-compiler.md
This commit is contained in:
1 parent
e610ba52c4
commit
9f645e2b37
2 files changed
+114
-3
No files matched your search
+49
-1
@@ -19,12 +19,13 @@ tags:
|
||||
- reference
|
||||
title: "🌐 ZONT — облачный API, локальный UI, прошивки"
|
||||
type: reference
|
||||
updated: 2026-09-17c
|
||||
updated: 2026-09-23 (§5bis — модель режимов отопления в API: старая/новая схема, `thermostat_ext_modes_config`, нумерация зон. Оракул для неразобранного типа 20 конфига)
|
||||
---
|
||||
|
||||
# 🌐 ZONT — облачный API, локальный UI и прошивки
|
||||
|
||||
> **Раздел §1–§7** — облачный API `my.zont.online` (исследован 2026-09-17).
|
||||
> **Раздел §5bis** — модель режимов отопления в API (оракул для типа 20 конфига).
|
||||
> **Раздел §6bis** — локальный интерфейс контроллера (там реально есть конфиг).
|
||||
> **Раздел §10** — настроечная утилита и прошивки.
|
||||
|
||||
@@ -186,6 +187,53 @@ POST https://my.zont.online/api/load_data
|
||||
|
||||
---
|
||||
|
||||
## 5bis. 🌡️ Модель режимов отопления в API (оракул для типа 20)
|
||||
|
||||
> **Зачем:** тип 20 конфига (`heating_modes`) не имеет размеченных полей. Единственный источник
|
||||
> семантики — глава «Управление отоплением (ZONT H)» в родной доке:
|
||||
> `~/Automation/HA-ZONT-Modbus/zont_api_docs/zont_api_docs.txt:2646-2850`.
|
||||
> Разбор применения — `personal/projects/zont-config-compiler.md` §4.2.
|
||||
|
||||
**Две схемы, НЕ совместимые между собой.** Прибор работает **либо** по старой, **либо** по новой;
|
||||
API отдаёт поля обеих ради обратной совместимости, **новые имеют приоритет**.
|
||||
|
||||
| Модель прошивки | Поддержка нового формата |
|
||||
|---|---|
|
||||
| ZONT H-1, H-1V, H-1B, H-2 | ≥ `xx:82` |
|
||||
| ZONT H-1000, H-2000 | любая |
|
||||
|
||||
**Старый формат:**
|
||||
- `thermostat_mode` — строка: `econom` (Эконом) ‖ `comfort` (Комфорт) ‖ `schedule` (Расписание) ‖ `idle` (Антизаморозка/выключен).
|
||||
- `thermostat_mode_temps` — `{econom, comfort, idle}` (числа °C) + `full_off` (bool; `true` → вместо Антизаморозки используется режим «Выключен»).
|
||||
|
||||
**Новый формат:**
|
||||
- `thermostat_ext_mode` (int) — номер **текущего** режима = индекс в `thermostat_ext_modes_config`.
|
||||
- `thermostat_ext_modes_config` — **объект, НЕ массив**. Ключи = номера режимов с нуля.
|
||||
Каждый режим:
|
||||
| Поле | Тип | Смысл |
|
||||
|---|---|---|
|
||||
| `active` | bool | режим настроен (существует) |
|
||||
| `hidden` | bool | кнопка скрыта на странице управления |
|
||||
| `name` | string | название режима |
|
||||
| `schedule_number` | int\|null | `null` — расписание не используется; `1` — недельное; `2..8` — расписание пн..вс (день недели) |
|
||||
| `zone_temp` | object | zone → `null` (не задана, напр. режим по расписанию) ‖ `false` (зона отключена) ‖ число (°C) |
|
||||
| `zone_sensors` | object | zone → номер слота целевого датчика (`thermometers[].slot`) ‖ `null` (датчик по умолчанию) |
|
||||
|
||||
- **Нумерация зон:** `0` = **ГВС**, `1` = основная отопительная зона, `2+` = дополнительные.
|
||||
(В `thermometers[].functions[].zone` — наоборот: основная зона = `1`.)
|
||||
|
||||
**Смежное:**
|
||||
- `tempstep` (float) — шаг кнопок −/+ в веб-интерфейсе и приложении.
|
||||
- `tempschedule` — `week` (ключи `"0".."6"`: 0 = пн … 6 = вс, массивы из 24 температур) ‖ `day` (не используется приборами).
|
||||
- `thermometers[]` — `uuid`, `is_assigned_to_slot` (при `false` датчик игнорировать), `slot`, `serial`, `name`, `color`, `functions[]` (`f` ∈ `control`/`control-reserve`/`heat`/`outside`, + `zone`), `limits{low,high}`, `last_value_time`, `last_state` (`ok`/`malfunction`), `last_value`.
|
||||
- OpenTherm: `ot_enabled`, `ot_mode` (`analog`), `ot_max_setpoint`, `ot_min_setpoint`, `ot_dhw_setpoint`, `ot_config` (`["ch","dhw"]`), `ot_save_params`, `ot_max_ml`, `ot_min_wp`.
|
||||
|
||||
> ⚠️ В родной доке отдельно оговорено: составной параметр можно менять **частично** — не указанные
|
||||
> поля сохраняют прежнее значение («была изменена только целевая температура режима Комфорт»).
|
||||
> Также: для новых прошивок число в запросе = **номер задаваемого пользователем режима**, а не индекс.
|
||||
|
||||
---
|
||||
|
||||
## 6. Ответ на вопрос «доделывать или переделать с 0»
|
||||
|
||||
**Переделать с 0 — не на что.** API не предоставляет доступа к сценариям/реле, поэтому
|
||||
|
||||
Reference in new issue
Block a user