NAV Navbar
Logo
curl python php

Введение

API системы ZONT позволяет получать информацию о состоянии устройств марки ZONT и Mega SX и управлять ими из собственного приложения или сайта. Через API доступны все функции системы, и всё, что вы можете сделать через веб-интерфейс, также доступно и через API. В то же время, эта документация пока не является полной, поэтому если вам потребуются какие-то функции, которые здесь не описаны, то напишите нам, и мы дополним документацию.

Примеры

# $ pip install requests

import requests
<?php
require_once 'Requests.php';
Requests::register_autoloader();

В правой части страницы вы найдёте готовые работающие примеры кода на разных языках, которые делают соответствующие запросы к API. Язык примеров можно переключить с помощью кнопок справа вверху.

Формат запросов

POST https://zont-online.ru/api/set_io_port HTTP/1.1
Host: zont-online.ru
Content-Type: application/json
Content-Length: 88
Authorization: Basic ZWxvbjptYXJzNGV2ZXI=
X-ZONT-Client: elon@tesla.com

{
  "device_id": 1209,
  "portname": "siren",
  "type": "bool",
  "value": true
}

Обращения к API производятся с помощью POST-запросов на адрес https://zont-online.ru/api/method, где method – названия метода API. Некоторые методы вызываются с помощью метода GET, это оговаривается отдельно в описании этих методов.

В каждом запросе должен быть указан заголовок X-ZONT-Client. Укажите в этом заголовке ваш e-mail или иной контакт, по которому мы сможем связаться с вами в случае планируемых изменений в API.

Параметры запроса передаются одним из способов:

Аутентификация

curl 'https://zont-online.ru/api/some_method' \
  -u 'login:password'                         \
  -H 'X-ZONT-Client: your@email'
import requests

requests.post('https://zont-online.ru/api/method', auth=('login', 'password'),
              headers={'X-ZONT-Client': 'your@email'}).json()
<?php
require_once 'Requests.php';
Requests::register_autoloader();

$headers = array('X-ZONT-Client' => 'your@email', 'Content-Type' => 'application/json');
$options = array('auth' => array('login', 'password'));
$request = Requests::post($url, $headers, json_encode($data), $options);

Не забудьте заменить login, password и your@email на ваш логин, пароль и адрес электронной почты

Большинство запросов к API требуют аутентификации.

При обращении к API укажите логин и пароль пользователя с помощью HTTP Basic Authentication. Это можно сделать либо встроенными средствами вашей http-библиотеки, либо указав заголовок:

Authorization: Basic XXX

где XXX – это строка логин:пароль, закодированная в Base64.

Результат запроса

{
  "ok": false,
  "error": "no_such_device",
  "error_ui": "Устройство не найдено"
}

Если не оговорено иное, сервер отвечает на запрос результатом в формате JSON. В возвращаемом объекте всегда присутствует поле "ok", которое равно true в случае успеха или false в случае ошибки. Если поле "ok" равно false, то в ответе также будут присутствовать поля "error" с кодом ошибки и "error_ui" с её описанием на русском языке.

Устройства

devices – Запрос устройств

curl 'https://zont-online.ru/api/devices' \
  -u 'demo:demo'                          \
  -H 'X-ZONT-Client: your@email'          \
  -H 'Content-Type: application/json'     \
  -d '{"load_io": true}'
import requests

url = 'https://zont-online.ru/api/devices'
data = {'load_io': True}

headers = {'X-ZONT-Client': 'your@email'}
result = requests.post(url, json=data, auth=('demo', 'demo'), headers=headers).json()
<?php
require_once 'Requests.php';
Requests::register_autoloader();

$url = 'https://zont-online.ru/api/devices';
$data = array('load_io' => true);

$headers = array('X-ZONT-Client' => 'your@email', 'Content-Type' => 'application/json');
$options = array('auth' => array('demo', 'demo'));
$request = Requests::post($url, $headers, json_encode($data), $options);
$response = json_decode($request->body, true);

Результат:

{
  "ok": true,
  "devices": [
    {
      "device_id": 1209
      ...
    }
  ]
}

POST https://zont-online.ru/api/devices

Возвращает список всех устройств пользователя, а также их параметров.

Параметры

Имя Тип Описание
load_io bool возвращать ли в поле io Состояния устройства (см. Параметры устройств)

Результат

В поле devices возвращается массив объектов, описывающих устройства. Порядок элементво в массиве соответствует порядку устройств в личном кабинете пользователя.

Каждый объект, описывающий устройство, может иметь поля, описанные в разделе Параметры устройств.

add_device – Добавить устройство

curl 'https://zont-online.ru/api/add_device'                                            \
  -u 'demo:demo'                                                                        \
  -H 'X-ZONT-Client: your@email'                                                        \
  -H 'Content-Type: application/json'                                                   \
  -d '{"devtype": "ZTC-700, "name": "my car", "serial": "012345678915", "timezone": 3}'
import requests

url = 'https://zont-online.ru/api/add_device'
data = {
    'devtype': 'ZTC-700',
    'name': 'my car',
    'serial': '012345678915',
    'timezone': 3
}

headers = {'X-ZONT-Client': 'your@email'}
result = requests.post(url, json=data, auth=('demo', 'demo'), headers=headers).json()
<?php
require_once 'Requests.php';
Requests::register_autoloader();

$url = 'https://zont-online.ru/api/add_device';
$data = array(
    'devtype' => "ZTC-700",
    'name' => "my car",
    'serial' => "012345678915",
    'timezone' => 3
);

$headers = array('X-ZONT-Client' => 'your@email', 'Content-Type' => 'application/json');
$options = array('auth' => array('demo', 'demo'));
$request = Requests::post($url, $headers, json_encode($data), $options);
$response = json_decode($request->body, true);

Результат:

{
  "ok": true,
  "device_id": 1209
}

POST https://zont-online.ru/api/add_device

Добавить устройство в аккаунт пользователя.

Параметры

Имя Тип Обязательный Описание
devtype string да Тип устройства. Один из идентификаторов, описанных в разделе Типы устройств.
name string да Название устройства для пользователя.
serial string да Серийный номер
timezone int да Часовой пояс
tel_password string нет Телефонный пароль (для GSM-устройств). Телефонный пароль запрашивается устройством при дозвоне на него с номера, не являющегося доверенным. Строка должна состоять только из цифр.
notes string нет Произвольные заметки об устройстве (например, номер его SIM-карты, чтобы не забыть)
wifi_credentials array нет Параметры Wi-Fi-сети (только для устройств с Wi-Fi). Массив объектов вида {"ssid": "имя_сети", "password": "пароль_сети"}. ZONT H-2 поддерживает не более одной сети.
boiler_vendor string нет Производитель котла (для отопительных устройств)
boiler_model string нет Модель котла (для отопительных устройств)

Результат

Возвращается объект с полем device_id равным ID нового устройства.

delete_device – Удалить устройство

curl 'https://zont-online.ru/api/delete_device' \
  -u 'demo:demo'                                \
  -H 'X-ZONT-Client: your@email'                \
  -H 'Content-Type: application/json'           \
  -d '{"device_id": 1209, "clear_data": true}'
import requests

url = 'https://zont-online.ru/api/delete_device'
data = {
    'device_id': 1209,
    'clear_data': True
}

headers = {'X-ZONT-Client': 'your@email'}
result = requests.post(url, json=data, auth=('demo', 'demo'), headers=headers).json()
<?php
require_once 'Requests.php';
Requests::register_autoloader();

$url = 'https://zont-online.ru/api/delete_device';
$data = array(
    'device_id' => 1209,
    'clear_data' => true
);

$headers = array('X-ZONT-Client' => 'your@email', 'Content-Type' => 'application/json');
$options = array('auth' => array('demo', 'demo'));
$request = Requests::post($url, $headers, json_encode($data), $options);
$response = json_decode($request->body, true);

Результат:

{
  "ok": true
}

POST https://zont-online.ru/api/delete_device

Удалить устройство из аккаунта пользователя.

Параметры

Имя Тип Обязательный Описание
device_id int да ID устройства
transfer bool нет Передать устройство другому пользователю вместо удаления
transfer_username string нет Логин пользователя, которому передать устройство. Применяется только если параметр transfer равен true.
clear_access bool нет Отозвать доступ других пользователей к этому устройству. Если поле transfer не равно true, то доступ других пользователей к устройству отзывается независимо от значения этого параметра.
clear_data bool нет Удалить все накопленные данные по этому устройству

Результат

{"ok": true}

update_device – Изменение настроек устройства

curl 'https://zont-online.ru/api/update_device'                      \
  -u 'demo:demo'                                                     \
  -H 'X-ZONT-Client: your@email'                                     \
  -H 'Content-Type: application/json'                                \
  -d '{"device_id": 1580, "thermostat_mode_temps": {"comfort": 21}}'
import requests

url = 'https://zont-online.ru/api/update_device'
data = {
    'device_id': 1580,
    'thermostat_mode_temps': {
        'comfort': 21
    }
}

headers = {'X-ZONT-Client': 'your@email'}
result = requests.post(url, json=data, auth=('demo', 'demo'), headers=headers).json()
<?php
require_once 'Requests.php';
Requests::register_autoloader();

$url = 'https://zont-online.ru/api/update_device';
$data = array(
    'device_id' => 1580,
    'thermostat_mode_temps' => array(
        'comfort' => 21
    )
);

$headers = array('X-ZONT-Client' => 'your@email', 'Content-Type' => 'application/json');
$options = array('auth' => array('demo', 'demo'));
$request = Requests::post($url, $headers, json_encode($data), $options);
$response = json_decode($request->body, true);

Результат:

{
  "ok": true,
  "thermostat_mode_temps": {
    "comfort": 21,  // только это поле было изменено
    "econom": 16,
    "idle": 5,
    "full_off": false
  }
}

POST https://zont-online.ru/api/update_device

Изменяет параметры устройства. Если устройство на связи, обновлённые параметры будут сразу же отправлены ему. Если связи с устройством в данные момент нет, то настройки будут отправлены при следующем выходе на связь.

Параметры

Имя Тип Описание
device_id int ID устройства

Все остальные параметры в запросе обозначают настройки устройства, которым нужно установить соответствующие значения. Возможные имена, значения и форматы настроек описаны в разделе Параметры устройств.

В случае составного параметра, имеющего внутренние поля, в запросе могут быть указаны только некоторые поля этого параметра. Остальные поля сохранят своё прежнее значение. Так, в примере справа была изменена только целевая температура режима Комфорт, а температуры других режимов остались прежними.

Результат

В возвращаемом объекте указываются все параметры, которые были изменены по запросу, и их новые значения.

set_io_port – Управление состоянием устройства

curl 'https://zont-online.ru/api/set_io_port'         \
  -u 'demo:demo'                                      \
  -H 'X-ZONT-Client: your@email'                      \
  -H 'Content-Type: application/json'                 \
  -d '{"device_id": 1209, "portname": "guard-state",
       "type": "string", "value": "enabled"}'
import requests

url = 'https://zont-online.ru/api/set_io_port'
data = {
    'device_id': 1209,
    'portname': 'guard-state',
    'type': 'string',
    'value': 'enabled'
}

headers = {'X-ZONT-Client': 'your@email'}
result = requests.post(url, json=data, auth=('demo', 'demo'), headers=headers).json()
<?php
require_once 'Requests.php';
Requests::register_autoloader();

$url = 'https://zont-online.ru/api/set_io_port';
$data = array(
    'device_id' => 1209,
    'portname' => 'guard-state',
    'type' => 'string',
    'value' => 'enabled'
);

$headers = array('X-ZONT-Client' => 'your@email', 'Content-Type' => 'application/json');
$options = array('auth' => array('demo', 'demo'));
$request = Requests::post($url, $headers, json_encode($data), $options);
$response = json_decode($request->body, true);

Результат:

{
  "ok": true
}

POST https://zont-online.ru/api/set_io_port

Посылает устройству команду на изменение одного из следующих Состояний:

Отправка команды возможна только тогда, когда устройство на связи. Метод всегда возвращает успешное значение, даже в случае, когда связи с устройством нет или если отправка команды не удалась.

Параметры

Имя Тип Описание
device_id int ID устройства
portname string Имя состояния. Допустима одна из строк: "guard-state", "siren", "engine-block", "webasto" или "auto-ignition"
type string Тип значения. Нужные значения описаны в следующей таблице
value Требуемое значение состояния

Значение параметров type и value:

Имя состояния type value
"guard-state" "string" "enabled" для постановки на охрану, "disabled" для снятия с охраны
"auto-ignition" "auto-ignition" объект с полем state, равным: "enabled" для нормального включения автозапуска, "engine" для запуска только двигателя (без подогревателя), "webasto" для включения только подогревателя, "disabled" для выключения автозапуска, "delay" для продления автозапуска. При использовании state: "delay" также должно быть указано поле time с количеством секунд, до которых нужно продлить автозапуск.
прочие "bool" true для включения или false для выключения соответствующего состояния

Результат

Возвращается объект с единственным полем ok.

send_custom_command – Отправка пользовательской команды

curl 'https://zont-online.ru/api/send_custom_command' \
  -u 'demo:demo'                                      \
  -H 'X-ZONT-Client: your@email'                      \
  -H 'Content-Type: application/json'                 \
  -d '{"device_id": 18945, "command_id": 1}'
import requests

url = 'https://zont-online.ru/api/send_custom_command'
data = {
    'device_id': 18945,
    'command_id': 1
}

headers = {'X-ZONT-Client': 'your@email'}
result = requests.post(url, json=data, auth=('demo', 'demo'), headers=headers).json()
<?php
require_once 'Requests.php';
Requests::register_autoloader();

$url = 'https://zont-online.ru/api/send_custom_command';
$data = array(
    'device_id' => 18945,
    'command_id' => 1
);

$headers = array('X-ZONT-Client' => 'your@email', 'Content-Type' => 'application/json');
$options = array('auth' => array('demo', 'demo'));
$request = Requests::post($url, $headers, json_encode($data), $options);
$response = json_decode($request->body, true);

Результат:

{
  "ok": true
}

POST https://zont-online.ru/api/send_custom_command

Посылает устройству одну из пользовательских команд, которые задаются для ZTC-7xx и Mega SX в настроечной утилите.

Отправка команды возможна только тогда, когда устройство на связи. Метод всегда возвращает успешное значение, даже в случае, когда связи с устройством нет или если отправка команды не удалась.

Параметры

Имя Тип Описание
device_id int ID устройства
command_id int ID команды

Идентификтор команды соответствует полю commands[...].id одного из элементов массива в настройке custom_controls (см. Пользовательские команды и статусы).

Результат

Возвращается объект с одним лишь полем ok.

Типы устройств

В рамках системы ZONT выпускается множество устройств с различным назначением. Каждой модели соответствует свой идентификатор.

Идентификатор Модель Описание
T100 ZONT H-1/H-1V Домашний GSM-термостат
T102 ZONT H-2 Домашний Wi-Fi-термостат
L1000 ZONT L-1000 Многофункциональный программируемый GSM/Wi-Fi-термостат
ZTC-100 ZTC-100 Спутниковый поисковый модуль
ZTC-110 ZTC-110 Спутниковый охранно-поисковый модуль
ZTC-500 ZTC-500 Автомобильная сигнализация
ZTC-700 ZTC-700 Автомобильная сигнализация
ZTC-700M ZTC-700M Автомобильная сигнализация
ZTC-701M ZTC-701M Автомобильная сигнализация
ZTC-710 ZTC-710 Автомобильная сигнализация
ZTC-720 ZTC-720 Автомобильная сигнализация
tracker ZONT Трекер Приложение для Android
ZTA-110 ZTA-110 Объектовая сигнализация
SX250 Mega SX-LRW Объектовая сигнализация
SX170 Mega SX-170 Объектовая сигнализация
SX300 Mega SX-300 Объектовая сигнализация
SX350 Mega SX-350 Объектовая сигнализация

Параметры устройств

У каждого устройства есть Настройки и Состояния.

Настройками называют те параметры, значения которых обычно редко изменяются и которыми есть смысл управлять при отсутствии связи с устройством (например: список доверенных номеров, целевые температуры). Состояния – это параметры, описывающие устройство только в данный момент, значения которых могут меняться в зависимости от внешних воздействий (например: состояние охраны, уровень сигнала).

Получить текущие Настройки устройств можно с помощью метода devices. Если при запросе указать "load_io": true, то в каждом объекте, описывающем устройство, в поле "io" также будут возвращены Состояния устройств.

Изменить Настройки можно с помощью метода update_device. Управлять Состояниями – с помощью метода set_io_port.

Ниже приведены описания всех параметров устройств, сгруппированные по области применения. Обратите внимание, что одно и то же устройство может относиться к нескольким разделам.

Общие для всех типов устройств

Настройки

{
  "device_id": 1209,
  "serial": "973BF3309550",
  "name": "Сигнализация"

  ...
}
Название Тип Описание
device_id int Идентификатор устройства
serial string Серийный номер
name string Название

Состояние беспроводной сети

Настройки

{
  "balance": {
    "value": 56,
    "ussd": "*102#",
    "warning": true,
    "limit": 30
  },
  "trusted_phones": "+79082394312,+79102417612",
  "gsm_roaming": "same"

  ...
}
Название Тип Описание
balance object

Настройки отслеживания баланса SIM-карты

Поле Тип Описание
value int|null Текущее значение баланса
ussd string USSD-команда для запроса
warning bool Предупреждать ли при снижении ниже порога
limit int|null Порог, ниже которого происходит оповещение
trusted_phones string Доверенные номера телефонов, разделённые запятой
gsm_roaming string

Разрешение использования интернета в роуминге

  • "no" – запрет роуминга
  • "same" – разрешено во внутресетевом роуминге
  • "any" – разрешено в любом роуминге

Состояния

{
  "io": {
    "gsm-state": {
      "level": 29,
      "operator": "MTS",
      "state": "home-network"
    }
    ...
  }

  ...
}
Название Тип Описание
gsm-state object

Состояние GSM/Wi-Fi

Поле Тип Описание
level int Уровень сигнала [0..31]
operator string Название сети (имя оператора)
state string
  • not-registered – не зарегистрирован
  • home-network – в домашней сети
  • searching – поиск сети
  • rejected – сеть отказала в регистрации
  • roaming – в роуминге

Охрана (ZTC, Mega SX, ZONT H)

Состояния

{
  "io": {
    "guard-state": "enabled",
    "siren": false
    ...
  }

  ...
}
Название Тип Описание
guard-state string "enabled" если охрана активна, "disabled" если не активна или "enabling" если выполняется постановка на охрану
siren bool сирена активна в данный момент

Взаимодействие с автомобилем (ZTC)

Состояния

{
  "io": {
    "engine-block": false,
    "webasto": false,
    "auto-ignition": {
      "available": true,
      "state": "enabled",
      "configuration": {
        "engine": true,
        "webasto": false
      },
      "current_mode": {
        "engine": true,
        "webasto": false
      },
      "until": 1478811896
    },
    "ignition-state": true,
    "engine-state": true,
    "doors": false,
    "door-1": null,
    "door-2": null,
    "door-3": null,
    "door-4": null,
    "hood-trunk": null,
    "hood": false,
    "trunk": false,
    "ecu-diagnostics-enabled": true
    ...
  }

  ...
}
Название Тип Описание
engine-block bool активна ли блокировка двигателя
webasto bool включен ли предпусковой подогреватель (ZTC-1xx)
auto-ignition object

состояние автозапуска (ZTC-7xx, ZTC-5xx)

Поле Тип Описание
available bool Доступность автозапуска
state string

Состояние автозапуска

  • "disabled" – автозапуск выключен
  • "enabling" – запуск двигателя
  • "enabled" – двигатель заведён
  • "webasto" – включен предпусковой подогреватель
  • "webasto-confirmed" – включен предпусковой подогреватель и это подтверждено сигналом от подогревателя
configuration object Два булевых поля `“engine”` и `“webasto”` означают, настроен ли запуск соответственно двигателя и подогревателя
current_mode object Два булевых поля `“engine”` и `“webasto”` означают, используется ли запуск соответственно двигателя и подогревателя в текущей сессии автозапуска
until int|null Планируемое время отключения автозапуска
ignition-state bool Включено ли зажигание
engine-state bool Запущен ли двигатель
doors bool Открыта ли хотя бы одна дверь (при подключении дверей общим сигналом)
door-1, door-2, door-3, door-4 bool Открыта ли каждая из четырёх дверей
hood-trunk bool Открыт ли капот или багажник (при подключении их общим сигналом)
hood, trunk bool Открыты ли соответственно капот и багажник
ecu-diagnostics-active bool Активна ли диагностика двигателя

Управление отоплением (ZONT H, Mega SX)

Настройки

{
  "thermostat_mode": "comfort",

  "thermostat_mode_temps": {
    "econom": 15,
    "comfort": 21.5,
    "idle": 5,
    "full_off": false
  },

  "tempschedule": {
    "day": [23, 23, 23, ..., 23],
    "week": {
      "0": [16, 16, 16, ..., 16],
      ...
      "6": [21.5, 21.5, ..., 21.5]
    }
  },

  "thermometers": [
    {
      "uuid": "57d5c19005b605000bc4502b",
      "is_assigned_to_slot": true,
      "name": "Кухня",
      "color": "#a05be5",
      "function": "control",
      "limits": {
        "high": 30,
        "low": 16
      },
      "type": "wired",
      "last_value_time": 1478383975,
      "last_state": "ok",
      "last_value": 21.2
    }
    ...
  ],

  "ot_enabled": true,
  "ot_mode": "analog",
  "ot_max_setpoint": 80,
  "ot_min_setpoint": 5,
  "ot_max_ml": 100,
  "ot_dhw_setpoint": 46,
  "ot_min_wp": 0,
  "ot_config": ["ch", "dhw"],
  "ot_save_params": ["bt", "dt", "ot"]

  ...
}
Название Тип Описание
thermostat_mode string Режим термостата. Возможные значения:
  • "econom" – Эконом
  • "comfort" – Комфорт
  • "schedule" – Расписание
  • "idle" – Антизаморозка/выключен
thermostat_mode_temps object Целевая температура фиксированных режимов термостата. Объект имеет следующие поля:
  • econom (number) – целевая температура режима Эконом
  • comfort (number) – целевая температура режима Комфорт
  • idle (number) – целевая температура режима Антизаморозка
  • full_off (bool) – отключать регулирование в режиме Антизаморозка. Если равно true, то вместо режима Антизаморозка используется режим Выключен
tempschedule object Расписание температур. Применяется устройством когда выставлен режим «Расписание».
  • week (object) – недельное расписание. Имеет поля "0", "1", …, "6", соответствующие дням недели (0 – понедельник, 6 – воскресенье). Значениями являются массивы из 24 элементов с температурами для каждого.
  • day (array) – дневное расписание. В данный момент не используется устройствами.
thermometers array Данные о термодатчиках. Массив объектов, каждый из которых имеет следующие поля:
  • is_assigned_to_slot (bool) – если `true`, то этот термодатчик в данный момент зарегистрирован в термостате. Термодатчики с этим полем, равным `false` следует игнорировать при анализе. Они могут быть в массиве в том случае, если датчик был отключен от термостата, а затем был произведёт сброс датчиков.
  • serial (string) – серийный номер
  • name (string) – название
  • color (string) – цвет в веб-интерфейсе в html-нотации
  • function (string) – назначение. Возможные значения:
    • "control" – регулирование
    • "control-reserve" – резервное регулирование
    • "outside" – температура снаружи
    • "heat" – температура теплоносителя
    • null – не задано
  • limits (object) – пороги допустимых значений. Величины порогов указаны в дочерних полях low и high. Если порог не задан, то соответствующее поле равно null.
  • last_value_time (int) – время получения последней информации о показании датчика (полей `last_state` и `last_value`). Время в секундах с 1970-01-01 00:00:00 (UTC)
  • last_state (string) – состояние датчика. Возможные значения:
    • "ok" – датчик исправен
    • "malfunction" – датчик неисправен
  • last_value (number) – показание датчика, °C
ot_enabled bool OpenTherm включен
ot_mode string Режим работы OpenTherm: "analog" – обычный, "relay" – псевдорелейный
ot_max_setpoint float Максимальная установочная температура OpenTherm
ot_min_setpoint float Минимальная установочная температура OpenTherm
ot_max_ml float Максимальный уровень модуляции горелки в процентах (OpenTherm)
ot_dhw_setpoint float Установочная температура ГВС (OpenTherm)
ot_min_wp float Минимальное давление теплоносителя (OpenTherm)
ot_config array

Настройки функционала OpenTherm. Массив, содержащий строковые флаги:

  • "ch" – включение отопления
  • "dhw" – включение ГВС
  • "cl" – включение охлаждения
  • "ch2" – включение второго контура отопления
ot_save_params array

Параметры OpenTherm для ежеминутного сохранения. По выбранным параметрам можно будет увидеть графики в веб-интерфейсе и приложениях ZONT. Массив, содержащий строковые флаги:

  • "bt" – фактическая температура теплоносителя
  • "dt" – фактическая температура ГВС
  • "rwt" – температура обратного потока
  • "ot" – уличная температура
  • "rml" – уровень модуляции горелки
  • "wp" – давление теплоносителя
  • "fr" – скорость потока ГВС

Параметры "s" (статус), "cs" (установочная температура отопления) и "ff" (коды ошибок) сохраняются всегда, независимо от этого параметра.

Состояния

{
  "io": {
    "last-boiler-state": {
      "time": 1479881662,
      "boiler_work_time": 60,
      "thermostat_mode": "comfort",
      "target_temp": 22.0,
      "gate": false,
      "power": true,
      "fail": false,
      "pza_t": null,
      "ot": {
        "s": ["ch", "fl"],
        "cs": 37,
        "ff": {"f": [], "c": 0},
        "bt": 35,
        "dt": 32,
        "ot": -12.0
      }
    }
    ...
  }

  ...
}
Название Тип Описание
last-boiler-state object

Текущий статус термостата. Термостат присылает обновлённый статус раз в минуту. Имеет следующие поля:

  • time (int) – время получения статуса (в секундах с 1970-01-01 00:00:00 UTC)
  • boiler_work_time (int) – время работы котла в секундах за последнюю минуту. Неравенство нулю этого поля можно использовать как признак работы котла.
  • thermostat_mode (string) – режим термостата ("econom", "comfort", "schedule", "idle")
  • gate (bool) – включён ли режим шлюза для внешнего комнатного термостата
  • target_temp (float) – целевая температура
  • power (bool) – наличие внешнего питания
  • fail (bool) – присутствует ли авария котла
  • pza_t (float) – расчётная температура ПЗА
  • ot (object) – состояние OpenTherm
    • s (array) – массив флагов состояния
      • "f" – авария
      • "ch" – отопление включено
      • "dhw" – ГВС включено
      • "fl" – горелка работает
      • "cl" – охлаждение работает
      • "ch2" – второй контур отопления включен
      • "di" – диагностическая индикация
    • cs (float) – установочная температура отопления
    • ff (object) – состояние аварии
      • c (int) – OEM-код аварии
      • f (array) – флаги аварии
        • "sr" – требуется обслуживание
        • "lr" – требуется ручной сброс
        • "wp" – низкое давление воды
        • "gf" – сбой газа/горелки
        • "ap" – сбой давления воздуха
        • "wot" – превышение температуры
    • bt (float) – фактическая температура воды
    • dt (float) – фактическая температура ГВС
    • ot (float) – уличная температура
    • rwt (float) – температура обратного потока
    • rml (float) – относительный уровень модуляции в процентах
    • wp (float) – давление воды (бар)
    • fr (float) – скорость потока ГВС (литр/мин)

Пользовательские команды и статусы (ZTC-7xx, Mega SX)

{
  "custom_controls": [
    { // таких блоков может быть несколько
      "statuses": [
        {
          "id": 0,
          "type": "status",
          "name": "Насос"
        }
      ],
      "commands": [
        {
          "id": 0,
          "type": "command",
          "name": "Включить насос"
        },
        {
          "id": 1,
          "type": "command",
          "name": "Выключить насос"
        }
      ]
    }
  ],

  "io": {
    "custom_controls_state": {
      "0": 1,
      "1": 1
      ...
    }

    ...
  }

  ...
}

Настройки

Название Тип Описание
custom_controls array

Данные о пользовательских командах и статусах, задаваемых в настроечной утилите. Массив элементов, каждый из которых представляет собой ноль или более кнопок и не более одного статуса, сгруппированные в один графический элемент интерфейса (кнопку или индикатор).

Каждый объект имеет следующие поля:

  • commands – массив команд
  • statuses – массив статусов

Статус – это некоторое состояние устройства, которое может принимать значения 0 или 1 (например, 0 – свет не горит, 1 – свет горит). Команда – запрос устройству на выполнение какого-то действия (например, включить свет)

Каждая команда или статус имеют следующие поля:

  • id (int) – идентификатор
  • name (string) – название

Отправить устройству команду из списка можно с помощью метода send_custom_command.

Состояния

Название Тип Описание
custom_controls_state object Текущие значения пользовательских статусов (см. настройку custom_controls). Имеет форму {"0": 1, "1": 1, ...}. Каждому идентификатору статуса ставится в соответствие 0 или 1 в зависимости от текущего значения этого статуса в устройстве.