3516 lines
244 KiB
HTML
3516 lines
244 KiB
HTML
|
||
<!doctype html>
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||
<title>ZONT API</title>
|
||
|
||
<style>
|
||
.highlight table td { padding: 5px; }
|
||
.highlight table pre { margin: 0; }
|
||
.highlight .gh {
|
||
color: #999999;
|
||
}
|
||
.highlight .sr {
|
||
color: #f6aa11;
|
||
}
|
||
.highlight .go {
|
||
color: #888888;
|
||
}
|
||
.highlight .gp {
|
||
color: #555555;
|
||
}
|
||
.highlight .gs {
|
||
}
|
||
.highlight .gu {
|
||
color: #aaaaaa;
|
||
}
|
||
.highlight .nb {
|
||
color: #f6aa11;
|
||
}
|
||
.highlight .cm {
|
||
color: #75715e;
|
||
}
|
||
.highlight .cp {
|
||
color: #75715e;
|
||
}
|
||
.highlight .c1 {
|
||
color: #75715e;
|
||
}
|
||
.highlight .cs {
|
||
color: #75715e;
|
||
}
|
||
.highlight .c, .highlight .cd {
|
||
color: #75715e;
|
||
}
|
||
.highlight .err {
|
||
color: #960050;
|
||
}
|
||
.highlight .gr {
|
||
color: #960050;
|
||
}
|
||
.highlight .gt {
|
||
color: #960050;
|
||
}
|
||
.highlight .gd {
|
||
color: #49483e;
|
||
}
|
||
.highlight .gi {
|
||
color: #49483e;
|
||
}
|
||
.highlight .ge {
|
||
color: #49483e;
|
||
}
|
||
.highlight .kc {
|
||
color: #66d9ef;
|
||
}
|
||
.highlight .kd {
|
||
color: #66d9ef;
|
||
}
|
||
.highlight .kr {
|
||
color: #66d9ef;
|
||
}
|
||
.highlight .no {
|
||
color: #66d9ef;
|
||
}
|
||
.highlight .kt {
|
||
color: #66d9ef;
|
||
}
|
||
.highlight .mf {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .mh {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .il {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .mi {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .mo {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .m, .highlight .mb, .highlight .mx {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .sc {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .se {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .ss {
|
||
color: #ae81ff;
|
||
}
|
||
.highlight .sd {
|
||
color: #e6db74;
|
||
}
|
||
.highlight .s2 {
|
||
color: #e6db74;
|
||
}
|
||
.highlight .sb {
|
||
color: #e6db74;
|
||
}
|
||
.highlight .sh {
|
||
color: #e6db74;
|
||
}
|
||
.highlight .si {
|
||
color: #e6db74;
|
||
}
|
||
.highlight .sx {
|
||
color: #e6db74;
|
||
}
|
||
.highlight .s1 {
|
||
color: #e6db74;
|
||
}
|
||
.highlight .s {
|
||
color: #e6db74;
|
||
}
|
||
.highlight .na {
|
||
color: #a6e22e;
|
||
}
|
||
.highlight .nc {
|
||
color: #a6e22e;
|
||
}
|
||
.highlight .nd {
|
||
color: #a6e22e;
|
||
}
|
||
.highlight .ne {
|
||
color: #a6e22e;
|
||
}
|
||
.highlight .nf {
|
||
color: #a6e22e;
|
||
}
|
||
.highlight .vc {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .nn {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .nl {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .ni {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .bp {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .vg {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .vi {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .nv {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .w {
|
||
color: #ffffff;
|
||
}
|
||
.highlight {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .n, .highlight .py, .highlight .nx {
|
||
color: #ffffff;
|
||
}
|
||
.highlight .ow {
|
||
color: #f92672;
|
||
}
|
||
.highlight .nt {
|
||
color: #f92672;
|
||
}
|
||
.highlight .k, .highlight .kv {
|
||
color: #f92672;
|
||
}
|
||
.highlight .kn {
|
||
color: #f92672;
|
||
}
|
||
.highlight .kp {
|
||
color: #f92672;
|
||
}
|
||
.highlight .o {
|
||
color: #f92672;
|
||
}
|
||
</style>
|
||
<link href="stylesheets/screen-a1ce949a.css" rel="stylesheet" media="screen" />
|
||
<link href="stylesheets/print-bccf8c07.css" rel="stylesheet" media="print" />
|
||
<script src="javascripts/all_nosearch-c275c2f6.js"></script>
|
||
</head>
|
||
|
||
<body class="index" data-languages="["shell","python","php"]">
|
||
<a href="#" id="nav-button">
|
||
<span>
|
||
NAV
|
||
<img src="images/navbar-cad8cdcb.png" alt="Navbar" />
|
||
</span>
|
||
</a>
|
||
<div class="toc-wrapper">
|
||
<img src="images/logo-5b4d15c3.png" class="logo" alt="Logo" />
|
||
<div class="lang-selector">
|
||
<a href="#" data-language-name="shell">curl</a>
|
||
<a href="#" data-language-name="python">python</a>
|
||
<a href="#" data-language-name="php">php</a>
|
||
</div>
|
||
<ul id="toc" class="toc-list-h1">
|
||
<li>
|
||
<a href="#3394112aa9" class="toc-h1 toc-link" data-title="Введение">Введение</a>
|
||
<ul class="toc-list-h2">
|
||
<li>
|
||
<a href="#api" class="toc-h2 toc-link" data-title="Облегчённое API">Облегчённое API</a>
|
||
</li>
|
||
<li>
|
||
<a href="#59221eefb0" class="toc-h2 toc-link" data-title="Примеры">Примеры</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#8ff625527c" class="toc-h1 toc-link" data-title="Формат запросов">Формат запросов</a>
|
||
<ul class="toc-list-h2">
|
||
<li>
|
||
<a href="#54a7a7ceec" class="toc-h2 toc-link" data-title="Результат запроса">Результат запроса</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#a1ce3c1a83" class="toc-h1 toc-link" data-title="Аутентификация">Аутентификация</a>
|
||
<ul class="toc-list-h2">
|
||
<li>
|
||
<a href="#3e1d89448d" class="toc-h2 toc-link" data-title="Аутентификация паролем">Аутентификация паролем</a>
|
||
</li>
|
||
<li>
|
||
<a href="#2da6c128e5" class="toc-h2 toc-link" data-title="Аутентификация с помощью токена">Аутентификация с помощью токена</a>
|
||
</li>
|
||
<li>
|
||
<a href="#get_authtoken" class="toc-h2 toc-link" data-title="Метод get_authtoken — Получение аутентификационного токена">Метод get_authtoken — Получение аутентификационного токена</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#7ab03d602e" class="toc-h1 toc-link" data-title="Устройства">Устройства</a>
|
||
<ul class="toc-list-h2">
|
||
<li>
|
||
<a href="#devices" class="toc-h2 toc-link" data-title="devices — Запрос устройств">devices — Запрос устройств</a>
|
||
</li>
|
||
<li>
|
||
<a href="#add_device" class="toc-h2 toc-link" data-title="add_device — Добавить устройство">add_device — Добавить устройство</a>
|
||
</li>
|
||
<li>
|
||
<a href="#delete_device" class="toc-h2 toc-link" data-title="delete_device — Удалить устройство">delete_device — Удалить устройство</a>
|
||
</li>
|
||
<li>
|
||
<a href="#update_device" class="toc-h2 toc-link" data-title="update_device — Изменение настроек устройства">update_device — Изменение настроек устройства</a>
|
||
</li>
|
||
<li>
|
||
<a href="#set_io_port" class="toc-h2 toc-link" data-title="set_io_port — Управление состоянием устройства">set_io_port — Управление состоянием устройства</a>
|
||
</li>
|
||
<li>
|
||
<a href="#send_custom_command" class="toc-h2 toc-link" data-title="send_custom_command — Отправка пользовательской команды">send_custom_command — Отправка пользовательской команды</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#60aabf0ce3" class="toc-h1 toc-link" data-title="Загрузка данных">Загрузка данных</a>
|
||
<ul class="toc-list-h2">
|
||
<li>
|
||
<a href="#load_data" class="toc-h2 toc-link" data-title="load_data — Загрузка различных видов данных">load_data — Загрузка различных видов данных</a>
|
||
</li>
|
||
<li>
|
||
<a href="#raw_events" class="toc-h2 toc-link" data-title="raw_events — История событий">raw_events — История событий</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#d6a1387469" class="toc-h1 toc-link" data-title="Типы сохраняемых данных">Типы сохраняемых данных</a>
|
||
<ul class="toc-list-h2">
|
||
<li>
|
||
<a href="#delta-time-array" class="toc-h2 toc-link" data-title="Формат Delta-time Array">Формат Delta-time Array</a>
|
||
</li>
|
||
<li>
|
||
<a href="#temperature" class="toc-h2 toc-link" data-title="temperature — показания температурных датчиков">temperature — показания температурных датчиков</a>
|
||
</li>
|
||
<li>
|
||
<a href="#thermostat_work" class="toc-h2 toc-link" data-title="thermostat_work — данные о работе термостата">thermostat_work — данные о работе термостата</a>
|
||
</li>
|
||
<li>
|
||
<a href="#custom_controls" class="toc-h2 toc-link" data-title="custom_controls — история состояний пользовательских статусов">custom_controls — история состояний пользовательских статусов</a>
|
||
</li>
|
||
<li>
|
||
<a href="#z3k_temperature" class="toc-h2 toc-link" data-title="z3k_temperature — история состояний пользовательских статусов">z3k_temperature — история состояний пользовательских статусов</a>
|
||
</li>
|
||
<li>
|
||
<a href="#z3k_radio_sensor" class="toc-h2 toc-link" data-title="z3k_radio_sensor — история значений с радиодатчиков">z3k_radio_sensor — история значений с радиодатчиков</a>
|
||
</li>
|
||
<li>
|
||
<a href="#z3k_heating_circuit" class="toc-h2 toc-link" data-title="z3k_heating_circuit — история состояний контуров отопления">z3k_heating_circuit — история состояний контуров отопления</a>
|
||
</li>
|
||
<li>
|
||
<a href="#z3k_web_element" class="toc-h2 toc-link" data-title="z3k_web_element — история состояний пользовательских кнопок">z3k_web_element — история состояний пользовательских кнопок</a>
|
||
</li>
|
||
<li>
|
||
<a href="#z3k_boiler_adapter-opentherm-ems-bsb" class="toc-h2 toc-link" data-title="z3k_boiler_adapter — данные о работе котла по OpenTherm / EMS / BSB">z3k_boiler_adapter — данные о работе котла по OpenTherm / EMS / BSB</a>
|
||
</li>
|
||
<li>
|
||
<a href="#ztc_state-gsm-wi-fi" class="toc-h2 toc-link" data-title="ztc_state — состояние контроллера (питание, GSM, Wi-Fi)">ztc_state — состояние контроллера (питание, GSM, Wi-Fi)</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#140df53891" class="toc-h1 toc-link" data-title="Типы устройств">Типы устройств</a>
|
||
</li>
|
||
<li>
|
||
<a href="#d6d82d68e1" class="toc-h1 toc-link" data-title="Параметры устройств">Параметры устройств</a>
|
||
<ul class="toc-list-h2">
|
||
<li>
|
||
<a href="#2abb8ebaca" class="toc-h2 toc-link" data-title="Общие для всех типов устройств">Общие для всех типов устройств</a>
|
||
</li>
|
||
<li>
|
||
<a href="#34520a8155" class="toc-h2 toc-link" data-title="Состояние беспроводной сети">Состояние беспроводной сети</a>
|
||
</li>
|
||
<li>
|
||
<a href="#ztc-mega-sx-zont-h" class="toc-h2 toc-link" data-title="Охрана (ZTC, Mega SX, ZONT H)">Охрана (ZTC, Mega SX, ZONT H)</a>
|
||
</li>
|
||
<li>
|
||
<a href="#ztc" class="toc-h2 toc-link" data-title="Взаимодействие с автомобилем (ZTC)">Взаимодействие с автомобилем (ZTC)</a>
|
||
</li>
|
||
<li>
|
||
<a href="#zont-h" class="toc-h2 toc-link" data-title="Управление отоплением (ZONT H)">Управление отоплением (ZONT H)</a>
|
||
</li>
|
||
<li>
|
||
<a href="#ztc-7xx-mega-sx" class="toc-h2 toc-link" data-title="Пользовательские команды и статусы (ZTC-7xx, Mega SX)">Пользовательские команды и статусы (ZTC-7xx, Mega SX)</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<a href="#61b7f2ae17" class="toc-h1 toc-link" data-title="Получение архивов данных">Получение архивов данных</a>
|
||
<ul class="toc-list-h2">
|
||
<li>
|
||
<a href="#generate_archive" class="toc-h2 toc-link" data-title="generate_archive — создать архив">generate_archive — создать архив</a>
|
||
</li>
|
||
<li>
|
||
<a href="#download_generated_archive" class="toc-h2 toc-link" data-title="download_generated_archive — скачать файл архива">download_generated_archive — скачать файл архива</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<ul class="toc-footer">
|
||
<li><a href='https://zont.online/register'>Зарегистрироваться на zont.online</a></li>
|
||
<li><a href='https://github.com/lord/slate'>Оформлено с помощью Slate</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="page-wrapper">
|
||
<div class="dark-box"></div>
|
||
<div class="content">
|
||
<h1 id='3394112aa9'>Введение</h1>
|
||
<p>Система <a href="https://zont.online">ZONT</a> предоставляет API для получения информации
|
||
о состоянии устройств ZONT и Mega SX, а также для управления ими через внешние приложения и сайты.</p>
|
||
|
||
<p>Все функции, доступные в <a href="https://my.zont.online/">веб-интерфейсе личного кабинета</a>, доступны и
|
||
через API, что позволяет реализовать полноценную интеграцию с системой.</p>
|
||
|
||
<blockquote>
|
||
<p>Обратите внимание: документация API находится в процессе обновления.
|
||
Если вы не нашли необходимую функцию — <a href="mailto:admin@zont.online">свяжитесь с нами</a>,
|
||
и мы постараемся помочь или дополнить описание.</p>
|
||
</blockquote>
|
||
<h3 id='api'>Облегчённое API</h3>
|
||
<p>Если вам не требуется вся полнота возможностей, рекомендуем воспользоваться
|
||
<a href="https://my.zont.online/api/widget/v3">облегчённым API</a> — оно предназначено
|
||
для базового взаимодействия с приборами и может быть удобным решением для быстрых интеграций.</p>
|
||
<h2 id='59221eefb0'>Примеры</h2><pre class="highlight python tab-python"><code><span class="c"># $ pip install requests</span>
|
||
|
||
<span class="kn">import</span> <span class="nn">requests</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
</code></pre>
|
||
<p>В правой части страницы вы найдёте готовые работающие примеры кода на разных языках,
|
||
которые делают соответствующие запросы к API. Язык примеров можно переключить
|
||
с помощью кнопок справа вверху.</p>
|
||
|
||
<ul>
|
||
<li>Примеры на Python используют библиотеку <a href="http://docs.python-requests.org/">requests</a></li>
|
||
<li>Примеры на PHP используют библиотеку <a href="http://requests.ryanmccue.info/">Requests for PHP</a></li>
|
||
</ul>
|
||
<h1 id='8ff625527c'>Формат запросов</h1><pre class="highlight http tab-http"><code><span class="nf">POST</span> <span class="nn">https://my.zont.online/api/set_io_port</span> <span class="k">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
||
<span class="na">Host</span><span class="p">:</span> <span class="s">zont-online.ru</span>
|
||
<span class="na">Content-Type</span><span class="p">:</span> <span class="s">application/json</span>
|
||
<span class="na">Content-Length</span><span class="p">:</span> <span class="s">88</span>
|
||
<span class="na">Authorization</span><span class="p">:</span> <span class="s">Basic ZWxvbjptYXJzNGV2ZXI=</span>
|
||
<span class="na">X-ZONT-Client</span><span class="p">:</span> <span class="s">elon@tesla.com</span>
|
||
|
||
<span class="p">{</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1209</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"portname"</span><span class="p">:</span><span class="w"> </span><span class="s2">"siren"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bool"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"value"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p>Обращения к API производятся с помощью POST-запросов на адрес <code>https://my.zont.online/api/method</code>, где <em>method</em> — названия метода API. Некоторые методы вызываются с помощью метода GET, это оговаривается отдельно в описании этих методов.</p>
|
||
|
||
<p>В каждом запросе должен быть указан заголовок <code>X-ZONT-Client</code>. Укажите в этом заголовке ваш e-mail или иной контакт, по которому мы сможем связаться с вами в случае планируемых изменений в API.</p>
|
||
|
||
<p>Параметры запроса передаются одним из способов:</p>
|
||
|
||
<ul>
|
||
<li>В теле запроса в формате <a href="https://ru.wikipedia.org/wiki/JSON">JSON</a>. Заголовок <code>Content-Type</code> при этом должен быть равен <code>application/json</code>. Этот способ является предпочтительным.</li>
|
||
<li>В теле запроса в формате <code>имя1=значение1&имя2=значение2</code>. Это стандартный формат передачи параметров в POST-запросах. Заголовок <code>Content-Type</code> при этом должен быть равен <code>application/x-www-form-urlencoded</code>. Такой способ передачи параметров может использоваться только в тех случаях, когда параметры простые, без вложенности.</li>
|
||
<li>В случае GET-запроса параметры передаются в URL, например: <code>https://my.zont.online/api/method?arg1=value1&arg2=value2</code>.</li>
|
||
</ul>
|
||
<h2 id='54a7a7ceec'>Результат запроса</h2><pre class="highlight json tab-json"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"error"</span><span class="p">:</span><span class="w"> </span><span class="s2">"no_such_device"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"error_ui"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Устройство не найдено"</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p>Если не оговорено иное, сервер отвечает на запрос результатом в формате <a href="https://ru.wikipedia.org/wiki/JSON">JSON</a>.
|
||
В возвращаемом объекте всегда присутствует поле <code>"ok"</code>, которое равно <code>true</code> в случае успеха или <code>false</code> в случае
|
||
ошибки. Если поле <code>"ok"</code> равно <code>false</code>, то в ответе также будут присутствовать поля <code>"error"</code> с кодом ошибки
|
||
и <code>"error_ui"</code> с её описанием на русском языке. <code>"error_ui"</code> может содержать либо строку, либо массив строк если
|
||
возникло несколько ошибок.</p>
|
||
<h1 id='a1ce3c1a83'>Аутентификация</h1>
|
||
<p>Большинство запросов к API требуют аутентификации. В данный момент поддерживается два метода аутентификации:
|
||
с помощью пароля, и с помощью аутентификационного токена.</p>
|
||
|
||
<p>Предпочтительная схема взаимодействия с API выглядит так:</p>
|
||
|
||
<ol>
|
||
<li>Получить аутентификационный токен с помощью метода <a href="#get_authtoken"><code>get_authtoken</code></a>. Этот запрос подтвердить
|
||
логином и паролем пользователя.</li>
|
||
<li>Дальнейшие запросы аутентифицировать полученным токеном, а пароль пользователя больше не использовать и не хранить.</li>
|
||
<li>Если запрос к API провалился с кодом 403, то возможно токен был отозван пользователем. В этом случае
|
||
нужно предложить пользователю снова ввести логин и пароль, получить новый токен с помощью <code>get_authtoken</code>
|
||
и в дальнешем использовать его.</li>
|
||
</ol>
|
||
|
||
<p><a name="password_auth"></a> </p>
|
||
<h2 id='3e1d89448d'>Аутентификация паролем</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/get_authtoken'</span> <span class="se">\</span>
|
||
-u <span class="s1">'login:password'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"client_name": "My cool app"}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
|
||
<span class="s">'https://my.zont.online/api/get_authtoken'</span><span class="p">,</span>
|
||
<span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'login'</span><span class="p">,</span> <span class="s">'password'</span><span class="p">),</span>
|
||
<span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">},</span>
|
||
<span class="n">json</span><span class="o">=</span><span class="p">{</span><span class="s">"client_name"</span><span class="p">:</span> <span class="s">"My cool app"</span><span class="p">}</span>
|
||
<span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span>
|
||
<span class="s1">'https://my.zont.online/api/get_authtoken'</span><span class="p">,</span>
|
||
<span class="p">[</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">],</span>
|
||
<span class="nb">json_encode</span><span class="p">([</span><span class="s1">'client_name'</span> <span class="o">=></span> <span class="s1">'My cool app'</span><span class="p">]),</span>
|
||
<span class="p">[</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="p">[</span><span class="s1">'login'</span><span class="p">,</span> <span class="s1">'password'</span><span class="p">]]</span>
|
||
<span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Не забудьте заменить login, password на логин и пароль пользователя, your@email.com на email разработчика, а "My cool app" — на название вашего приложения</p>
|
||
</blockquote>
|
||
|
||
<p>Просто укажите логин и пароль пользователя с помощью HTTP Basic Authentication. Это можно сделать либо встроенными средствами вашей http-библиотеки, либо указав заголовок:</p>
|
||
|
||
<p><code>Authorization: Basic XXX</code></p>
|
||
|
||
<p>где <code>XXX</code> — это строка <code>логин:пароль</code>, закодированная в <a href="https://ru.wikipedia.org/wiki/Base64">Base64</a>.</p>
|
||
|
||
<aside class="notice">
|
||
Хотя пароль пользователя указывается в открытом виде, тем не менее это безопасно, так как API доступно только по зашифрованному протоколу HTTPS.
|
||
</aside>
|
||
<h2 id='2da6c128e5'>Аутентификация с помощью токена</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/some_method'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Token: xxxxxxxxxxxxxxxxxx'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
|
||
<span class="s">'https://my.zont.online/api/some_method'</span><span class="p">,</span>
|
||
<span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">,</span>
|
||
<span class="s">'X-ZONT-Token'</span><span class="p">:</span> <span class="s">'xxxxxxxxx'</span><span class="p">}</span>
|
||
<span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span>
|
||
<span class="s1">'https://my.zont.online/api/some_method'</span><span class="p">,</span>
|
||
<span class="p">[</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'X-ZONT-Token'</span><span class="o">:</span> <span class="s1">'xxxxxxxx'</span><span class="p">]</span>
|
||
<span class="p">);</span>
|
||
</code></pre>
|
||
<p>Укажите аутентификационный токен в заголовке <code>X-ZONT-Token</code>.</p>
|
||
|
||
<p><a name="get_authtoken"></a></p>
|
||
<h2 id='get_authtoken'>Метод get_authtoken — Получение аутентификационного токена</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/get_authtoken'</span> <span class="se">\</span>
|
||
-u <span class="s1">'login:password'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"client_name": "My cool app"}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
|
||
<span class="s">'https://my.zont.online/api/get_authtoken'</span><span class="p">,</span>
|
||
<span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'login'</span><span class="p">,</span> <span class="s">'password'</span><span class="p">),</span>
|
||
<span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">},</span>
|
||
<span class="n">json</span><span class="o">=</span><span class="p">{</span><span class="s">"client_name"</span><span class="p">:</span> <span class="s">"My cool app"</span><span class="p">}</span>
|
||
<span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
|
||
<span class="n">token</span> <span class="o">=</span> <span class="n">result</span><span class="p">[</span><span class="s">'token'</span><span class="p">]</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span>
|
||
<span class="s1">'https://my.zont.online/api/get_authtoken'</span><span class="p">,</span>
|
||
<span class="p">[</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">],</span>
|
||
<span class="nb">json_encode</span><span class="p">([</span><span class="s1">'client_name'</span> <span class="o">=></span> <span class="s1">'My cool app'</span><span class="p">]),</span>
|
||
<span class="p">[</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="p">[</span><span class="s1">'login'</span><span class="p">,</span> <span class="s1">'password'</span><span class="p">]]</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="nv">$token</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">)</span><span class="o">-></span><span class="na">token</span><span class="p">;</span>
|
||
</code></pre>
|
||
<p><code>POST https://my.zont.online/api/get_authtoken</code></p>
|
||
|
||
<p>Возвращает аутентификационный токен для использования в дальнейшем для запросов от имени указанного пользователя.</p>
|
||
|
||
<p>Этот метод должен отправляться с <a href="#password_auth">аутентификацией по паролю</a>.</p>
|
||
<h3 id='6744ad4c7a'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>client_name</code></td>
|
||
<td>string</td>
|
||
<td>человекопонятное название вашего приложения</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h3 id='9fa227c53f'>Результат</h3>
|
||
<p>В поле <code>token</code> будет строка — аутентификационный токен, который нужно указывать в заголовке <code>X-ZONT-Token</code>
|
||
в последующих запросах.</p>
|
||
<h1 id='7ab03d602e'>Устройства</h1>
|
||
<p><a name="devices"></a></p>
|
||
<h2 id='devices'>devices — Запрос устройств</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/devices'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"load_io": true}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/devices'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span><span class="s">'load_io'</span><span class="p">:</span> <span class="bp">True</span><span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/devices'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'load_io'</span> <span class="o">=></span> <span class="kc">true</span><span class="p">);</span>
|
||
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"devices"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1209</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/devices</code></p>
|
||
|
||
<p>Возвращает список всех устройств пользователя, а также их параметров.</p>
|
||
<h3 id='6744ad4c7a'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>load_io</code></td>
|
||
<td>bool</td>
|
||
<td>возвращать ли в поле <code>io</code> <em>Состояния</em> устройства (см. <a href="#device-settings">Параметры устройств</a>)</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h3 id='9fa227c53f'>Результат</h3>
|
||
<p>В поле <code>devices</code> возвращается массив объектов, описывающих устройства. Порядок элементво в массиве соответствует порядку устройств в личном кабинете пользователя.</p>
|
||
|
||
<p>Каждый объект, описывающий устройство, может иметь поля, описанные в разделе <a href="#device-settings">Параметры устройств</a>.</p>
|
||
|
||
<p><a name="add_device"></a></p>
|
||
<h2 id='add_device'>add_device — Добавить устройство</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/add_device'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"devtype": "ZTC-700", "name": "my car", "serial": "012345678915", "timezone": 3}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/add_device'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s">'devtype'</span><span class="p">:</span> <span class="s">'ZTC-700'</span><span class="p">,</span>
|
||
<span class="s">'name'</span><span class="p">:</span> <span class="s">'my car'</span><span class="p">,</span>
|
||
<span class="s">'serial'</span><span class="p">:</span> <span class="s">'012345678915'</span><span class="p">,</span>
|
||
<span class="s">'timezone'</span><span class="p">:</span> <span class="mi">3</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/add_device'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'devtype'</span> <span class="o">=></span> <span class="s2">"ZTC-700"</span><span class="p">,</span>
|
||
<span class="s1">'name'</span> <span class="o">=></span> <span class="s2">"my car"</span><span class="p">,</span>
|
||
<span class="s1">'serial'</span> <span class="o">=></span> <span class="s2">"012345678915"</span><span class="p">,</span>
|
||
<span class="s1">'timezone'</span> <span class="o">=></span> <span class="mi">3</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1209</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/add_device</code></p>
|
||
|
||
<p>Добавить устройство в аккаунт пользователя.</p>
|
||
<h3 id='6744ad4c7a-2'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Обязательный</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>devtype</code></td>
|
||
<td><code>string</code></td>
|
||
<td>да</td>
|
||
<td>Тип устройства. Один из идентификаторов, описанных в разделе <a href="#device-types">Типы устройств</a>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>name</code></td>
|
||
<td><code>string</code></td>
|
||
<td>да</td>
|
||
<td>Название устройства для пользователя.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>serial</code></td>
|
||
<td><code>string</code></td>
|
||
<td>да</td>
|
||
<td>Серийный номер</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>timezone</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>Часовой пояс</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>tel_password</code></td>
|
||
<td><code>string</code></td>
|
||
<td>нет</td>
|
||
<td>Телефонный пароль (для GSM-устройств). Телефонный пароль запрашивается устройством при дозвоне на него с номера, не являющегося доверенным. Строка должна состоять только из цифр.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>notes</code></td>
|
||
<td><code>string</code></td>
|
||
<td>нет</td>
|
||
<td>Произвольные заметки об устройстве (например, номер его SIM-карты, чтобы не забыть)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>wifi_credentials</code></td>
|
||
<td><code>array</code></td>
|
||
<td>нет</td>
|
||
<td>Параметры Wi-Fi-сети (только для устройств с Wi-Fi). Массив объектов вида <code>{"ssid": "имя_сети", "password": "пароль_сети"}</code>. ZONT H-2 поддерживает не более одной сети.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>boiler_vendor</code></td>
|
||
<td><code>string</code></td>
|
||
<td>нет</td>
|
||
<td>Производитель котла (для отопительных устройств)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>boiler_model</code></td>
|
||
<td><code>string</code></td>
|
||
<td>нет</td>
|
||
<td>Модель котла (для отопительных устройств)</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h3 id='9fa227c53f-2'>Результат</h3>
|
||
<p>Возвращается объект с полем <code>device_id</code> равным ID нового устройства.</p>
|
||
|
||
<p><a name="delete_device"></a></p>
|
||
<h2 id='delete_device'>delete_device — Удалить устройство</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/delete_device'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"device_id": 1209, "clear_data": true}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/delete_device'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s">'device_id'</span><span class="p">:</span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s">'clear_data'</span><span class="p">:</span> <span class="bp">True</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/delete_device'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'device_id'</span> <span class="o">=></span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s1">'clear_data'</span> <span class="o">=></span> <span class="kc">true</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/delete_device</code></p>
|
||
|
||
<p>Удалить устройство из аккаунта пользователя.</p>
|
||
<h3 id='6744ad4c7a-3'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Обязательный</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>device_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>ID устройства</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>transfer</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>нет</td>
|
||
<td>Передать устройство другому пользователю вместо удаления</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>transfer_username</code></td>
|
||
<td><code>string</code></td>
|
||
<td>нет</td>
|
||
<td>Логин пользователя, которому передать устройство. Применяется только если параметр <code>transfer</code> равен <code>true</code>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>clear_access</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>нет</td>
|
||
<td>Отозвать доступ других пользователей к этому устройству. Если поле <code>transfer</code> не равно <code>true</code>, то доступ других пользователей к устройству отзывается независимо от значения этого параметра.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>clear_data</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>нет</td>
|
||
<td>Удалить все накопленные данные по этому устройству</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h3 id='9fa227c53f-3'>Результат</h3>
|
||
<p><code>{"ok": true}</code></p>
|
||
|
||
<p><a name="update_device"></a></p>
|
||
<h2 id='update_device'>update_device — Изменение настроек устройства</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/update_device'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"device_id": 1580, "thermostat_mode_temps": {"comfort": 21}}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/update_device'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s">'device_id'</span><span class="p">:</span> <span class="mi">1580</span><span class="p">,</span>
|
||
<span class="s">'thermostat_mode_temps'</span><span class="p">:</span> <span class="p">{</span>
|
||
<span class="s">'comfort'</span><span class="p">:</span> <span class="mi">21</span>
|
||
<span class="p">}</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/update_device'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'device_id'</span> <span class="o">=></span> <span class="mi">1580</span><span class="p">,</span>
|
||
<span class="s1">'thermostat_mode_temps'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'comfort'</span> <span class="o">=></span> <span class="mi">21</span>
|
||
<span class="p">)</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"thermostat_mode_temps"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"comfort"</span><span class="p">:</span><span class="w"> </span><span class="mi">21</span><span class="p">,</span><span class="w"> </span><span class="c1">// только это поле было изменено</span><span class="w">
|
||
</span><span class="s2">"econom"</span><span class="p">:</span><span class="w"> </span><span class="mi">16</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"idle"</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"full_off"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/update_device</code></p>
|
||
|
||
<p>Изменяет параметры устройства. Если устройство на связи, обновлённые параметры будут сразу же отправлены ему. Если связи с устройством в данные момент нет, то настройки будут отправлены при следующем выходе на связь.</p>
|
||
<h3 id='6744ad4c7a-4'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>device_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>ID устройства</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Все остальные параметры в запросе обозначают настройки устройства, которым нужно установить соответствующие значения. Возможные имена, значения и форматы настроек описаны в разделе <a href="#device-settings">Параметры устройств</a>.</p>
|
||
|
||
<p>В случае составного параметра, имеющего внутренние поля, в запросе могут быть указаны только некоторые поля этого параметра. Остальные поля сохранят своё прежнее значение. Так, в примере справа была изменена только целевая температура режима Комфорт, а температуры других режимов остались прежними.</p>
|
||
<h3 id='9fa227c53f-4'>Результат</h3>
|
||
<p>В возвращаемом объекте указываются все параметры, которые были изменены по запросу, и их новые значения.</p>
|
||
|
||
<p><a name="set_io_port"></a></p>
|
||
<h2 id='set_io_port'>set_io_port — Управление состоянием устройства</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/set_io_port'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"device_id": 1209, "portname": "guard-state",
|
||
"type": "string", "value": "enabled"}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/set_io_port'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s">'device_id'</span><span class="p">:</span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s">'portname'</span><span class="p">:</span> <span class="s">'guard-state'</span><span class="p">,</span>
|
||
<span class="s">'type'</span><span class="p">:</span> <span class="s">'string'</span><span class="p">,</span>
|
||
<span class="s">'value'</span><span class="p">:</span> <span class="s">'enabled'</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/set_io_port'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'device_id'</span> <span class="o">=></span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s1">'portname'</span> <span class="o">=></span> <span class="s1">'guard-state'</span><span class="p">,</span>
|
||
<span class="s1">'type'</span> <span class="o">=></span> <span class="s1">'string'</span><span class="p">,</span>
|
||
<span class="s1">'value'</span> <span class="o">=></span> <span class="s1">'enabled'</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/set_io_port</code></p>
|
||
|
||
<p>Посылает устройству команду на изменение одного из следующих <a href="#device-settings"><em>Состояний</em></a>:</p>
|
||
|
||
<ul>
|
||
<li><code>guard-state</code> — состояние охраны</li>
|
||
<li><code>siren</code> — состояние сирены</li>
|
||
<li><code>engine-block</code> — состояние блокировки двигателя</li>
|
||
<li><code>webasto</code> — состояние подогревателя двигателя</li>
|
||
<li><code>auto-ignition</code> — состояние автозапуска</li>
|
||
</ul>
|
||
|
||
<p>Отправка команды возможна только тогда, когда устройство на связи. Метод всегда возвращает успешное значение, даже в случае, когда связи с устройством нет или если отправка команды не удалась.</p>
|
||
<h3 id='6744ad4c7a-5'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>device_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>ID устройства</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>portname</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Имя состояния. Допустима одна из строк: <code>"guard-state"</code>, <code>"siren"</code>, <code>"engine-block"</code>, <code>"webasto"</code> или <code>"auto-ignition"</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>type</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Тип значения. Нужные значения описаны в следующей таблице</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>value</code></td>
|
||
<td></td>
|
||
<td>Требуемое значение состояния</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Значение параметров <code>type</code> и <code>value</code>:</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя состояния</th>
|
||
<th><code>type</code></th>
|
||
<th><code>value</code></th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>"guard-state"</code></td>
|
||
<td><code>"string"</code></td>
|
||
<td><code>"enabled"</code> для постановки на охрану, <code>"disabled"</code> для снятия с охраны</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"auto-ignition"</code></td>
|
||
<td><code>"auto-ignition"</code></td>
|
||
<td>объект с полем <code>state</code>, равным: <code>"enabled"</code> для нормального включения автозапуска, <code>"engine"</code> для запуска только двигателя (без подогревателя), <code>"webasto"</code> для включения только подогревателя, <code>"disabled"</code> для выключения автозапуска, <code>"delay"</code> для продления автозапуска. При использовании <code>state: "delay"</code> также должно быть указано поле <code>time</code> с количеством секунд, до которых нужно продлить автозапуск.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em>прочие</em></td>
|
||
<td><code>"bool"</code></td>
|
||
<td><code>true</code> для включения или <code>false</code> для выключения соответствующего состояния</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h3 id='9fa227c53f-5'>Результат</h3>
|
||
<p>Возвращается объект с единственным полем <code>ok</code>.</p>
|
||
|
||
<p><a name="#send_custom_command"></a></p>
|
||
<h2 id='send_custom_command'>send_custom_command — Отправка пользовательской команды</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/send_custom_command'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"device_id": 18945, "command_id": 1}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/send_custom_command'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s">'device_id'</span><span class="p">:</span> <span class="mi">18945</span><span class="p">,</span>
|
||
<span class="s">'command_id'</span><span class="p">:</span> <span class="mi">1</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/send_custom_command'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'device_id'</span> <span class="o">=></span> <span class="mi">18945</span><span class="p">,</span>
|
||
<span class="s1">'command_id'</span> <span class="o">=></span> <span class="mi">1</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/send_custom_command</code></p>
|
||
|
||
<p>Посылает устройству одну из пользовательских команд, которые задаются для ZTC-7xx и Mega SX в настроечной утилите.</p>
|
||
|
||
<p>Отправка команды возможна только тогда, когда устройство на связи. Метод всегда возвращает успешное значение, даже в случае, когда связи с устройством нет или если отправка команды не удалась.</p>
|
||
<h3 id='6744ad4c7a-6'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>device_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>ID устройства</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>command_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>ID команды</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Идентификтор команды соответствует полю <code>commands[...].id</code> одного из элементов массива в настройке <code>custom_controls</code> (см. <a href="#ztc-7xx-mega-sx">Пользовательские команды и статусы</a>).</p>
|
||
<h3 id='9fa227c53f-6'>Результат</h3>
|
||
<p>Возвращается объект с одним лишь полем <code>ok</code>.</p>
|
||
<p><a name="data-loading"></a></p>
|
||
<h1 id='60aabf0ce3'>Загрузка данных</h1>
|
||
<p>Устройства ZONT накапливают и отправляют на сервер различные виды данных, которые могут быть получены с сервера
|
||
через API.</p>
|
||
<h2 id='load_data'>load_data — Загрузка различных видов данных</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/load_data'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"requests": [
|
||
{"device_id": 1580,
|
||
"data_types": ["temperature", "events"],
|
||
"mintime": 1495011600,
|
||
"maxtime": 1495022400},
|
||
{"device_id": 1209,
|
||
"data_types": ["gps", "events"],
|
||
"mintime": 1495011600,
|
||
"maxtime": 1495022400}
|
||
]}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/load_data'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s">'requests'</span><span class="p">:</span> <span class="p">[</span>
|
||
<span class="p">{</span>
|
||
<span class="s">'device_id'</span><span class="p">:</span> <span class="mi">1580</span><span class="p">,</span>
|
||
<span class="s">'data_types'</span><span class="p">:</span> <span class="p">[</span><span class="s">'temperature'</span><span class="p">,</span> <span class="s">'events'</span><span class="p">],</span>
|
||
<span class="s">'mintime'</span><span class="p">:</span> <span class="mi">1495011600</span><span class="p">,</span>
|
||
<span class="s">'maxtime'</span><span class="p">:</span> <span class="mi">1495022400</span>
|
||
<span class="p">},</span>
|
||
<span class="p">{</span>
|
||
<span class="s">'device_id'</span><span class="p">:</span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s">'data_types'</span><span class="p">:</span> <span class="p">[</span><span class="s">'gps'</span><span class="p">,</span> <span class="s">'events'</span><span class="p">],</span>
|
||
<span class="s">'mintime'</span><span class="p">:</span> <span class="mi">1495011600</span><span class="p">,</span>
|
||
<span class="s">'maxtime'</span><span class="p">:</span> <span class="mi">1495022400</span>
|
||
<span class="p">}</span>
|
||
<span class="p">]</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/load_data'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'requests'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'device_id'</span> <span class="o">=></span> <span class="mi">1580</span><span class="p">,</span>
|
||
<span class="s1">'data_types'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'temperature'</span><span class="p">,</span> <span class="s1">'events'</span><span class="p">),</span>
|
||
<span class="s1">'mintime'</span> <span class="o">=></span> <span class="mi">1495011600</span><span class="p">,</span>
|
||
<span class="s1">'maxtime'</span> <span class="o">=></span> <span class="mi">1495022400</span>
|
||
<span class="p">),</span>
|
||
<span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'device_id'</span> <span class="o">=></span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s1">'data_types'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'gps'</span><span class="p">,</span> <span class="s1">'events'</span><span class="p">),</span>
|
||
<span class="s1">'mintime'</span> <span class="o">=></span> <span class="mi">1495011600</span><span class="p">,</span>
|
||
<span class="s1">'maxtime'</span> <span class="o">=></span> <span class="mi">1495022400</span>
|
||
<span class="p">)</span>
|
||
<span class="p">)</span>
|
||
<span class="p">);</span>
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"responses"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1580</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"temperature"</span><span class="p">:</span><span class="w"> </span><span class="c1">...</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"events"</span><span class="p">:</span><span class="w"> </span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1209</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"gps"</span><span class="p">:</span><span class="w"> </span><span class="c1">...</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"events"</span><span class="p">:</span><span class="w"> </span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/load_data</code></p>
|
||
|
||
<p>Получить историю показаний датчиков, историю перемещений, событий или любых других данных, которые устройство
|
||
передало на сервер.</p>
|
||
<h3 id='6744ad4c7a'>Параметры</h3>
|
||
<aside class="notice">
|
||
Так как этот запрос принимает вложенные параметры, то он может быть вызван только с заголовком
|
||
<code>Content-Type: application/json</code> и JSON-объектом в теле запроса.
|
||
</aside>
|
||
|
||
<p>Один HTTP-запрос к методу <code>load_data</code> может одновременно загрузить данные разных типов и сразу по нескольким устройствам.
|
||
Для этого метод принимает параметр <code>requests</code>, который должен быть массивом из объектов-запросов, имеющих следующие поля:</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Обязательный</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>device_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>ID устройства</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>data_types</code></td>
|
||
<td><code>array</code></td>
|
||
<td>да</td>
|
||
<td>Список названий типов данных, которые нужно загрузить. Каждый элемент — строка, обозначающая тип данных, например <code>"gps"</code> или <code>"temperature"</code>. Список доступных типов данных приведён в разделе <a href="#data-types">Типы сохраняемых данных</a>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>mintime</code></td>
|
||
<td><code>int</code></td>
|
||
<td>нет</td>
|
||
<td>Начало временного диапазона (включительно)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>maxtime</code></td>
|
||
<td><code>int</code></td>
|
||
<td>нет</td>
|
||
<td>Конец временного диапазона (включительно)</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Временные метки указываются в формате unix time, то есть в виде целого числа секунд, прошедших с 1970-01-01 00:00:00 (UTC).</p>
|
||
<h3 id='9fa227c53f'>Результат</h3>
|
||
<p>Ответ будет содержать поле <code>responses</code> с массивом ответов, соответствующих запросам, переданным в параметре <code>requests</code>
|
||
в том же порядке.</p>
|
||
|
||
<p>Каждый ответ содержит поля:</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>ok</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Успешно ли обработан запрос</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>device_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>ID устройства</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Кроме того ответ будет содержать поля, совпадающие по названиям с типами данных, указанными в поле <code>data_types</code>
|
||
запроса. Каждое такое поле в значении будет содержать сами запрошенные данные. Формат этих данных описан
|
||
в разделе <a href="#data-types">Типы сохраняемых данных</a>.</p>
|
||
<h2 id='raw_events'>raw_events — История событий</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/raw_events'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"device_id": 1209, "only": ["GuardOn", "GuardOff"],
|
||
"mintime": 1486252800, "maxtime": 1486339200}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/raw_events'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s">'device_id'</span><span class="p">:</span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s">'mintime'</span><span class="p">:</span> <span class="mi">1486252800</span><span class="p">,</span>
|
||
<span class="s">'maxtime'</span><span class="p">:</span> <span class="mi">1486339200</span><span class="p">,</span>
|
||
<span class="s">'only'</span><span class="p">:</span> <span class="p">[</span><span class="s">'GuardOn'</span><span class="p">,</span> <span class="s">'GuardOff'</span><span class="p">]</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/raw_events'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'device_id'</span> <span class="o">=></span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s1">'mintime'</span> <span class="o">=></span> <span class="mi">1486252800</span><span class="p">,</span>
|
||
<span class="s1">'maxtime'</span> <span class="o">=></span> <span class="mi">1486339200</span><span class="p">,</span>
|
||
<span class="s1">'only'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'GuardOn'</span><span class="p">,</span> <span class="s1">'GuardOff'</span><span class="p">)</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"events"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">[</span><span class="w">
|
||
</span><span class="s2">"GuardOn-1486253766"</span><span class="p">,</span><span class="w"> </span><span class="c1">// id</span><span class="w">
|
||
</span><span class="mi">1486253766</span><span class="p">,</span><span class="w"> </span><span class="c1">// время</span><span class="w">
|
||
</span><span class="s2">"GuardOn"</span><span class="p">,</span><span class="w"> </span><span class="c1">// тип</span><span class="w">
|
||
</span><span class="mf">43.871066</span><span class="p">,</span><span class="w"> </span><span class="c1">// долгота</span><span class="w">
|
||
</span><span class="mf">56.166916</span><span class="p">,</span><span class="w"> </span><span class="c1">// широта</span><span class="w">
|
||
</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="c1">// продолжительность</span><span class="w">
|
||
</span><span class="p">{</span><span class="w"> </span><span class="c1">// данные</span><span class="w">
|
||
</span><span class="s2">"reason"</span><span class="p">:</span><span class="w"> </span><span class="s2">"fob"</span><span class="p">,</span><span class="w"> </span><span class="c1">// причина постановки на охрану</span><span class="w">
|
||
</span><span class="s2">"fob_number"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// номер брелока</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="kc">false</span><span class="w"> </span><span class="c1">// тревожное?</span><span class="w">
|
||
</span><span class="p">],</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/raw_events</code></p>
|
||
|
||
<p>Получить список событий, зарегистрированных устройством в заданном промежутке времени.</p>
|
||
<h3 id='6744ad4c7a-2'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Обязательный</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>device_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>ID устройства</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>mintime</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>Начало временного диапазона (включительно)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>maxtime</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>Конец временного диапазона (включительно)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>only</code></td>
|
||
<td><code>array</code></td>
|
||
<td>нет</td>
|
||
<td>Интересующие типы событий</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>except</code></td>
|
||
<td><code>array</code></td>
|
||
<td>нет</td>
|
||
<td>Не интересующие типы событий</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Время указывается в целых секундах, прошедших с 1970-01-01 00:00:00 (UTC). Не забудьте сделать поправку на нужный часовой пояс!</p>
|
||
|
||
<p>С помощью параметров <code>only</code> и <code>except</code> можно отфильтровать возвращаемый список событий. Каждый из этих
|
||
необязательных параметров может содержать массив типов событий (строк). Если указан параметр <code>only</code>, то возвращаются
|
||
только события типов, указанных в нём. Если указан <code>except</code>, то события типов, указанных в нём, не возвращаются. Если
|
||
оба парамтера не указаны, возвращаются все события.</p>
|
||
<h3 id='9fa227c53f-2'>Результат</h3>
|
||
<p>Ответ будет содержать поле <code>events</code>, содержащее массив событий, отсортированных по времени. Каждое событие — это массив, содержащий
|
||
следующие элементы:</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Индекс</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td>0</td>
|
||
<td><code>string</code></td>
|
||
<td>Идентификатор события. Мы решили отказаться от уникальных идентификаторов событий, поэтому это поле существует только для совместимости со старыми версиями клиентов и не является в действительности уникальным. Не рекомендуем использовать это поле, оно будет удалено в будущих версиях API.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>1</td>
|
||
<td><code>int</code></td>
|
||
<td>Время события (в секундах с 1970-01-01 00:00:00 UTC)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>2</td>
|
||
<td><code>string</code></td>
|
||
<td><a href="#event-types">Тип события</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td>3</td>
|
||
<td><code>float</code></td>
|
||
<td>Долгота местоположения события в градусах (<code>null</code> если неизвестно)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>4</td>
|
||
<td><code>float</code></td>
|
||
<td>Широта местоположения события в градусах (<code>null</code> если неизвестно)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>5</td>
|
||
<td><code>int</code></td>
|
||
<td>Длительность события в секундах (<code>null</code> если неизвестно). Указывается только для некоторых типов событий, например <code>"Stop"</code> (остановка).</td>
|
||
</tr>
|
||
<tr>
|
||
<td>6</td>
|
||
<td><code>object</code></td>
|
||
<td>Дополнительная информация о событии (<code>null</code> если отсутствует). Формат этого поля определяется типом события.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>7</td>
|
||
<td><code>bool</code></td>
|
||
<td>Является ли событие тревожным («важным»)</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p><a name="event-types"></a></p>
|
||
<h3 id='cfcdc14b91'>Типы событий</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Тип</th>
|
||
<th>Тревожное</th>
|
||
<th>Описание</th>
|
||
<th>Доп. данные</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>"Stop"</code></td>
|
||
<td>нет</td>
|
||
<td>Остановка устройства с GPS. Продолжительность остановки в секундах передаётся не в поле дополнительных данных, а в поле длительности.</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"PowerOn"</code></td>
|
||
<td>нет</td>
|
||
<td>Включение устройства. В поле длительности — время в секундах, в течение которого устройство было выключено.</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"PowerOff"</code></td>
|
||
<td>нет</td>
|
||
<td>Выключение устройства</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"MainPowerLost"</code></td>
|
||
<td>да</td>
|
||
<td>Пропадание основного питания</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"MainPowerFound"</code></td>
|
||
<td>да</td>
|
||
<td>Появление основного питания</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"GPSLost"</code></td>
|
||
<td>нет</td>
|
||
<td>Потеря сигнала GPS</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"GPSFound"</code></td>
|
||
<td>нет</td>
|
||
<td>Нахождение сигнала GPS</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"GSMLost"</code></td>
|
||
<td>нет</td>
|
||
<td>Потеря сигнала GSM</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"GSMFound"</code></td>
|
||
<td>нет</td>
|
||
<td>Регистрация в сети GSM</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"connected"</code></td>
|
||
<td>нет</td>
|
||
<td>Соединение с сервером</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"disconnected"</code></td>
|
||
<td>нет</td>
|
||
<td>Отключение от сервера</td>
|
||
<td><code>"reason"</code> — причина отключения (строка)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"reconnected"</code></td>
|
||
<td>нет</td>
|
||
<td>Переподключение к серверу</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"GuardOn"</code></td>
|
||
<td>нет</td>
|
||
<td>Постановка на охрану</td>
|
||
<td><code>"reason"</code> — причина постановки: <ul><li><code>"fob"</code> — брелок</li><li><code>"call"</code> — голосовое меню</li><li><code>"sms"</code> — СМС</li><li><code>"app"</code> — веб-интерфейс или приложение</li><li><code>"autoguard"</code> — автопостановка</li><li><code>"centrallock"</code> — центральный замок</li><li><code>"handsfree"</code> — радиометка</li><li><code>"pin"</code> — ПИН-код</li></ul> <br/> <code>"fob_number"</code> — номер брелока <br/> <code>"phonenumber"</code> — номер телефона.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"GuardOff"</code></td>
|
||
<td>нет</td>
|
||
<td>Снятие с охраны</td>
|
||
<td>(см. <code>"GuardOn"</code>)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"AlarmButton"</code></td>
|
||
<td>да</td>
|
||
<td>Нажатие тревожной кнопки</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Shock1"</code></td>
|
||
<td>нет</td>
|
||
<td>Слабый удар</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Shock2"</code></td>
|
||
<td>да</td>
|
||
<td>Сильный удар</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Door"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по открытию двери</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Door1"</code>, <code>"Door2"</code>, <code>"Door3"</code>, <code>"Door4"</code>, <code>"Door5"</code>, <code>"Door6"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по открытию соответствующей двери</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"HoodTrunk"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по открытию капота/багажника</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Hood"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по открытию капота</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Trunk"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по открытию багажника</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"AutoIgnition"</code></td>
|
||
<td>нет</td>
|
||
<td>Автозапуск двигателя</td>
|
||
<td><code>"reason"</code> — причина (<code>"manual"</code> — по команде, <code>"temperature"</code> — по температуре, <code>"timer"</code> — по таймеру, <code>"schedule"</code> — по расписанию) <br/> <code>"result"</code> — результат (<code>"success"</code> — успешно, <code>"fail"</code> — неуспешно, <code>"breakdown"</code> — двигатель заглох)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"EngineBreakdown"</code></td>
|
||
<td>да</td>
|
||
<td>Аварийная остановка двигателя</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"SoftwareUpgrade"</code></td>
|
||
<td>нет</td>
|
||
<td>Обновление ПО</td>
|
||
<td><code>"firmware_version"</code> — версия прошивки, <code>"profile_version"</code> — версия профиля</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Alarm"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"AlarmIgnition"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по зажиганию</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"AlarmTilt"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по датчику наклона</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"AlarmBrake"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по педали тормоза</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"EngineBlock"</code></td>
|
||
<td>да</td>
|
||
<td>Сработала блокировка двигателя</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Moving"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по движению</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Blackout"</code></td>
|
||
<td>да</td>
|
||
<td>Глушение сигнала GSM</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"GSMLostAlarm"</code></td>
|
||
<td>да</td>
|
||
<td>Тревога по пропаданию сигнала GSM</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"EngineStarted"</code></td>
|
||
<td>нет</td>
|
||
<td>Двигатель заведён</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"EngineStopped"</code></td>
|
||
<td>нет</td>
|
||
<td>Двигатель остановлен</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"DriverCallButton"</code></td>
|
||
<td>да</td>
|
||
<td>Кнопка вызова водителя</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"OutCallTone"</code></td>
|
||
<td>нет</td>
|
||
<td>Дозвон: гудок</td>
|
||
<td><code>"number"</code> — номер телефона</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"OutCallConnection"</code></td>
|
||
<td>нет</td>
|
||
<td>Дозвон: соединение</td>
|
||
<td><code>"number"</code> — номер телефона</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"OutCallEnd"</code></td>
|
||
<td>нет</td>
|
||
<td>Дозвон: завершение</td>
|
||
<td><code>"number"</code> — номер телефона</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"OutSMS"</code></td>
|
||
<td>нет</td>
|
||
<td>Исходящее SMS</td>
|
||
<td><code>"number"</code> — номер телефона, <code>"text"</code> — текст</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"InCall"</code></td>
|
||
<td>нет</td>
|
||
<td>Входящий вызов</td>
|
||
<td><code>"number"</code> — номер телефона</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"InCallConnection"</code></td>
|
||
<td>нет</td>
|
||
<td>Входящий вызов: соединение</td>
|
||
<td><code>"number"</code> — номер телефона</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"InCallEnd"</code></td>
|
||
<td>нет</td>
|
||
<td>Входящий вызов: завершение</td>
|
||
<td><code>"number"</code> — номер телефона</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"InSMS"</code></td>
|
||
<td>нет</td>
|
||
<td>Входящее SMS</td>
|
||
<td><code>"number"</code> — номер телефона, <code>"text"</code> — текст</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"ThermometerUpdate"</code></td>
|
||
<td>нет</td>
|
||
<td>Найден термодатчик</td>
|
||
<td><code>"slot"</code> — номер слота (с нуля), <code>"type"</code> — тип (<code>"wired"</code> — проводной, <code>"radio"</code> — радио), <code>"serial"</code> — серийный номер</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"TemperatureHigh"</code></td>
|
||
<td>да</td>
|
||
<td>Температура выше порога</td>
|
||
<td><code>"message"</code> — текстовое сообщение (название датчика)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"TemperatureLow"</code></td>
|
||
<td>да</td>
|
||
<td>Температура ниже порога</td>
|
||
<td><code>"message"</code> — текстовое сообщение (название датчика)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"ThermometerMalfunction"</code></td>
|
||
<td>да</td>
|
||
<td>Термодатчик недоступен</td>
|
||
<td><code>"message"</code> — текстовое сообщение (название датчика)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"BatteryLow"</code></td>
|
||
<td>да</td>
|
||
<td>Разряд аккумулятора</td>
|
||
<td><code>"voltage"</code> — напряжение в вольтах</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"RadioFOBAdded"</code></td>
|
||
<td>нет</td>
|
||
<td>Добавлен брелок или радиореле</td>
|
||
<td><code>"slot"</code> — номер слота</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"BoilerFail"</code></td>
|
||
<td>да</td>
|
||
<td>Авария котла</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"BoilerFailCancel"</code></td>
|
||
<td>да</td>
|
||
<td>Авария котла устранена</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"Landmark"</code></td>
|
||
<td>нет</td>
|
||
<td>Метка (ZONT Трекер)</td>
|
||
<td><code>"label"</code> — имя метки</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"ZoneAlarm"</code></td>
|
||
<td>да</td>
|
||
<td>Срабатывание охранной зоны</td>
|
||
<td><code>"message"</code> — сообщение, <code>"zone"</code> — номер зоны</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"ZoneAlarmCancel"</code></td>
|
||
<td>нет</td>
|
||
<td>Восстановление охранной зоны</td>
|
||
<td><code>"message"</code> — сообщение, <code>"zone"</code> — номер зоны</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"OTFail"</code></td>
|
||
<td>да</td>
|
||
<td>Авария котла или её устранение (OpenTherm). Аварии нет если поле <code>"c"</code> равно нулю, а массив <code>"f"</code> пуст</td>
|
||
<td><code>"c"</code> — код ошибки OEM <br/> <code>"f"</code> — массив флагов сбоя: <ul><li><code>"sr"</code> — необходимо обслуживание</li><li><code>"lr"</code> — требуется ручной сброс</li><li><code>"wp"</code> — низкое давление воды</li><li><code>"gf"</code> — сбой газа/горелки</li><li><code>"ap"</code> — сбой давления воздуха</li><li><code>"wot"</code> — перегрев воды</ul></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"OTLost"</code></td>
|
||
<td>да</td>
|
||
<td>Потеря связи по OpenTherm</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"OTFound"</code></td>
|
||
<td>да</td>
|
||
<td>Восстановление связи по OpenTherm</td>
|
||
<td><code>null</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"UploadSuccess"</code></td>
|
||
<td>нет</td>
|
||
<td>Файлы успешно загружены</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"UploadFailed"</code></td>
|
||
<td>да</td>
|
||
<td>Не удалось загрузить файлы</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"UserEvent"</code></td>
|
||
<td>нет</td>
|
||
<td>Пользовательское событие</td>
|
||
<td><code>"message"</code> — сообщение</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"UserAlarm"</code></td>
|
||
<td>да</td>
|
||
<td>Пользовательское тревожное событие</td>
|
||
<td><code>"message"</code> — сообщение</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"ExtSensorWarning"</code></td>
|
||
<td>да</td>
|
||
<td>Предупредительная зона доп. датчика</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"ExtSensorAlarm"</code></td>
|
||
<td>да</td>
|
||
<td>Тревожная зона доп. датчика</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"CurrentECUErrors"</code></td>
|
||
<td>да</td>
|
||
<td>Текущие ошибки ЭБУ (диагностика двигателя автомобиля)</td>
|
||
<td><code>"errors"</code> — коды ошибок OBD-II (массив чисел)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>"SavedECUErrors"</code></td>
|
||
<td>да</td>
|
||
<td>Сохранённые ошибки ЭБУ (диагностика двигателя автомобиля)</td>
|
||
<td><code>"errors"</code> — коды ошибок OBD-II (массив чисел)</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p><a name="data-types"></a></p>
|
||
<h1 id='d6a1387469'>Типы сохраняемых данных</h1>
|
||
<p>В этом разделе перечислены различные типы данных, которые устройства передают на сервер ZONT, и которые вы можете
|
||
загрузить с сервера с помощью метода <code>load_data</code>.</p>
|
||
|
||
<p>Для каждого вида данных указано его строковое название, которое нужно передавать в параметре <code>"data_types"</code> запроса,
|
||
и которое используется в качестве ключа в возвращаемом ответе. Также описан формат, в котором эти данные возвращаются.</p>
|
||
|
||
<p><a name="delta-time-array"></a></p>
|
||
<h2 id='delta-time-array'>Формат Delta-time Array</h2>
|
||
<blockquote>
|
||
<p>Пример кодирования температурных показаний:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">[</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">1495098587</span><span class="p">,</span><span class="w"> </span><span class="mf">21.4</span><span class="p">],</span><span class="w"> </span><span class="c1">// 18.05.2017 12:09:47 — 21.4 °C</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">21.5</span><span class="p">],</span><span class="w"> </span><span class="c1">// 18.05.2017 12:10:47 — 21.5 °C</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">21.7</span><span class="p">],</span><span class="w"> </span><span class="c1">// 18.05.2017 12:11:47 — 21.7 °C</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">21.4</span><span class="p">]</span><span class="w"> </span><span class="c1">// 18.05.2017 12:12:47 — 21.4 °C</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span></code></pre>
|
||
<p>При передаче сохранённых данных как правило нужно закодировать набор значений, каждое из которых привязано к моменту времени.
|
||
Например это могут быть GPS-координаты, значения температуры, события. Если при передаче таких данных в формате JSON каждую
|
||
метку времени передавать в виде полного значения времени, то эти временные метки будут занимать значительный объём данных,
|
||
иногда превышающий объём самих значений. Для экономии трафика мы используем простой способ дельта-кодирования временных меток,
|
||
который в дальнейшем называем Delta-time Array.</p>
|
||
|
||
<p>Delta-time Array — это массив массивов следующей структуры:</p>
|
||
|
||
<p><code>[ [time1, ...], [time2, ...], ... [timeN, ...] ]</code></p>
|
||
|
||
<p>Первым элементом каждого массива является метка времени. Остальные элементы зависят от характера кодируемых данных.</p>
|
||
|
||
<p>Метки времени являются целыми числами подчинаются следующему правилу:</p>
|
||
|
||
<ul>
|
||
<li>Если метка времени — положительное число, то она обозначает время в формате unix time, то есть в целых секундах
|
||
с 1970-01-01 00:00:00 (UTC). Например, <code>1495098587</code> обозначает 18.05.2017 12:09:47 (UTC+03) (московское время).</li>
|
||
<li>Если метка времени — отрицательное число, то её абсолютное значение означает разницу в секундах от предыдущей
|
||
метки. Например, <code>-60</code> означает предыдущую метку времени плюс одна минута. Отрицательные значения
|
||
меток могут идти друг за другом, и тогда каждая кодирует время, прошедшее от предыдущей.</li>
|
||
</ul>
|
||
|
||
<p>Первая метка времени в массиве — всегда положительная. Последующие могут быть как положительными, так и отрицательными.</p>
|
||
<h2 id='temperature'>temperature — показания температурных датчиков</h2>
|
||
<blockquote>
|
||
<p>Пример ответа на <code>load_data</code>:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"responses"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1580</span><span class="p">,</span><span class="w">
|
||
|
||
</span><span class="s2">"temperature"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"41da3643-47b6-4f97-afc9-d9faf9a569de"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Датчик"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"color"</span><span class="p">:</span><span class="w"> </span><span class="s2">"#c4443b"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"sort"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"temperature"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="mf">20.2</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">20.1</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">20.2</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">20.2</span><span class="p">],</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p>Этот вид сохраняемых данных используется для устройств ZONT H, Mega SX и H-1000. В него попадают показания
|
||
проводных и беспроводных температурных датчиков, подключенных к устройству. Их показания сохраняются раз в минуту.</p>
|
||
|
||
<p>При запросе данных методом <code>load_data</code> температурные показания возвращаются в виде объекта. Полям этого объекта
|
||
соответствуют уникальные строковые идентификаторы термодатчиков, а значения — объекты со следующей структурой:</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Поле</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>name</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Название датчика</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>color</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Цвет датчика, задаваемый пользователем в веб-интерфейсе, в виде hex-строки (#rrggbb)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>sort</code></td>
|
||
<td><code>int</code></td>
|
||
<td>Задаёт порядок отображения датчиков. При показе пользователю списка датчиков, их следует отсортировать по возрастанию этого поля.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>temperature</code></td>
|
||
<td><code>array</code></td>
|
||
<td>Массив показаний датчика за запрошенный период в <a href="#delta-time-array">формате Delta-time Array</a></td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h2 id='thermostat_work'>thermostat_work — данные о работе термостата</h2><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"responses"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1580</span><span class="p">,</span><span class="w">
|
||
|
||
</span><span class="s2">"thermostat_work"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"thermostat_mode"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-3600</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"boiler_work_time"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="mi">60</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">60</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"target_temp"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-3600</span><span class="p">,</span><span class="w"> </span><span class="mi">18</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"power"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="kc">true</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-86400</span><span class="p">,</span><span class="w"> </span><span class="kc">true</span><span class="p">]],</span><span class="w">
|
||
</span><span class="s2">"fail"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="kc">false</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-86400</span><span class="p">,</span><span class="w"> </span><span class="kc">false</span><span class="p">]],</span><span class="w">
|
||
</span><span class="s2">"zones"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"1"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"target_temp"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-3600</span><span class="p">,</span><span class="w"> </span><span class="mi">18</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"worktime"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="mi">60</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">60</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"ot"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"s"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="s2">"ch"</span><span class="p">,</span><span class="w"> </span><span class="s2">"fl"</span><span class="p">]],</span><span class="w"> </span><span class="p">[</span><span class="mi">-120</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="s2">"ch"</span><span class="p">]],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"cs"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="mi">57</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">58</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"ff"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1495011630</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="s2">"c"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="s2">"f"</span><span class="p">:</span><span class="w"> </span><span class="p">[]}],</span><span class="w"> </span><span class="p">[</span><span class="mi">-86400</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="s2">"c"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="s2">"f"</span><span class="p">:</span><span class="w"> </span><span class="p">[]}]],</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p>Устройства ZONT H ежеминутно сохраняют информацию о работе термостата и значения различных параметров.</p>
|
||
|
||
<p>При запросе этого типа данных с помощью метода <a href="#load_data"><code>load_data</code></a> будет возвращён объект со следующими полями:</p>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Поле</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>thermostat_mode</mode></td>
|
||
<td><a href="#delta-time-array">DTA</a><int></td>
|
||
<td>
|
||
<p>Режим термостата. Кодируется числом.</p>
|
||
<p>Для H-1/H-2 с прошивками ниже xx:82 и H-1000/Mega SX с прошивками ниже xx:172 число означает:</p>
|
||
<ul>
|
||
<li>0 — антизаморозка/выключен</li>
|
||
<li>1 — комфорт</li>
|
||
<li>2 — эконом</li>
|
||
<li>3 — расписание</li>
|
||
</ul>
|
||
|
||
<p>Для более новых прошивок число означает номер задаваемого пользователем режима. Если вам необходима
|
||
описание как получить настройки режимов — <a href="mailto:admin@zont.online">напишите нам</a>.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>boiler_work_time</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><int></td>
|
||
<td>
|
||
<p>(для однозонного термостата) Количество секунд, в течение которых котёл работал за последнюю минуту.</p>
|
||
<p>Под работой котла здесь понимается состояние выхода термостата. То есть при отсутствии основного питания,
|
||
значение этого параметра не будет соответствовать действительности, так как реле не будет на самом
|
||
деле переключаться.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>target_temp</code</td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Целевая температура (для однозонного термостата)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>pza_t</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Расчётная температура ПЗА</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>dhw_t</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Заданная температура ГВС</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>power</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><bool></td>
|
||
<td>
|
||
<p>Наличие основного питания: <code>true</code> — питание есть, <code>false</code> — питания нет.</p>
|
||
<p>Термостаты ZONT H при отсутствии питания не управляют термостатом, реле переходит в нормальное состояние (см. документацию).</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>fail</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><bool></td>
|
||
<td>
|
||
Признак аварии котла: <code>true</code> — авария есть, <code>false</code> — аварии нет.
|
||
При наличии OpenTherm больше информации об аварии можно получить в поле <code>ot</code>.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>gate</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><bool></td>
|
||
<td>Активность режима Комнатного термостата: <code>true</code> — режим включен, термостат
|
||
управляется внешним комнатным термостатом; <code>false</code> — режим выключен, термостат
|
||
управляет по обычному алгоритму.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ot</code></td>
|
||
<td><code>object</code></td>
|
||
<td>Состояние OpenTherm. Поля объекта соответствуют аналогичным полям состояния
|
||
<a href="#last-boiler-state"><code>last-boiler-state.ot</code></a>, а значениями
|
||
полея являются массивы <a href="#delta-time-array">Delta-time array</a> из соответствующих
|
||
величин.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>zones</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
<p>(для многозонного термостата) Информация о работе отдельных зон. Полями объекта являются
|
||
номера зон, а значениями — объекты со следующими полями:</p>
|
||
<ul>
|
||
<li><code>target_temp</code> (<a href="#delta-time-array">DTA</a><float>) — целевая температура зоны</li>
|
||
<li><code>worktime</code> (<a href="#delta-time-array">DTA</a><int>) — время активности зоны в секундах за последнюю минуту</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id='custom_controls'>custom_controls — история состояний пользовательских статусов</h2>
|
||
<blockquote>
|
||
<p>Пример ответа на <code>custom_controls</code></p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"responses"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">18945</span><span class="p">,</span><span class="w">
|
||
|
||
</span><span class="s2">"custom_controls"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">1498710530</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-8</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-6277</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-15</span><span class="p">,</span><span class="mi">1</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-4961</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p>Сохраняемые данные типа <code>custom_controls</code> используются для устройств Mega SX, H-1000 и ZTC. Запросив этот
|
||
тип данных можно получить историю переключений <a href="#ztc-7xx-mega-sx">пользовательских статусов</a>.</p>
|
||
|
||
<p>При запросе данных с помощью метода <a href="#load_data"><code>load_data</code></a> данные возвращаются в виде массива в
|
||
<a href="#delta-time-array">формате Delta-time Array</a>. В качестве значений в этом массиве передаются целые числа.
|
||
Каждый бит в двоичном представлении числа обозначает состояние статуса с соответствующим идентификатором.</p>
|
||
|
||
<p>Например, от сервера получен такой ответ:</p>
|
||
|
||
<p><code>[[1498710120, 0], [-86, 6], [-5, 2]]</code></p>
|
||
|
||
<p>Этот ответ обозначает:</p>
|
||
|
||
<ul>
|
||
<li>2017-06-29 04:22:00 UTC — все статусы неактивны (<code>0</code> не содержит битов, равных 1)</li>
|
||
<li>через 86 секунд включились статусы с идентификаторами 1 и 2 (<code>6</code> это <code>110₂</code>, биты считаются с нуля от младшего с старшему)</li>
|
||
<li>ещё через 5 секунд статус с идентификатором 2 выключился (<code>4</code> это <code>100₂</code>, бит номер 2 обнулился)</li>
|
||
</ul>
|
||
<h2 id='z3k_temperature'>z3k_temperature — история состояний пользовательских статусов</h2>
|
||
<blockquote>
|
||
<p>Пример ответа на <code>z3k_temperature</code></p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"responses"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">18945</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"z3k_temperature"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="mi">4104</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">1498710530</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-8</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-6277</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-15</span><span class="p">,</span><span class="mi">1</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[</span><span class="mi">-4961</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p>Сохраняемые данные типа <code>z3k_temperature</code> используются для устройств H-2000+, H-2000 PRO H-2000 PRO.V2, Climatic, H1V.02, SMART NEW и им подобных. Запросив этот
|
||
тип данных можно получить историю значений с датчиков температуры.</p>
|
||
|
||
<p>При запросе данных с помощью метода <a href="#load_data"><code>load_data</code></a> данные возвращаются в виде массива в
|
||
<a href="#delta-time-array">формате Delta-time Array</a>. В качестве значений в этом массиве передаются целые числа.
|
||
Ключом является ID объекта из z3k_config.</p>
|
||
<h2 id='z3k_radio_sensor'>z3k_radio_sensor — история значений с радиодатчиков</h2>
|
||
<p>По аналогии с <a href="#z3k_temperature"><code>z3k_temperature</code></a> </p>
|
||
<h2 id='z3k_heating_circuit'>z3k_heating_circuit — история состояний контуров отопления</h2>
|
||
<p>По аналогии с <a href="#z3k_temperature"><code>z3k_temperature</code></a></p>
|
||
<h2 id='z3k_web_element'>z3k_web_element — история состояний пользовательских кнопок</h2>
|
||
<p>По аналогии с <a href="#z3k_temperature"><code>z3k_temperature</code></a></p>
|
||
<h2 id='z3k_boiler_adapter-opentherm-ems-bsb'>z3k_boiler_adapter — данные о работе котла по OpenTherm / EMS / BSB</h2>
|
||
<blockquote>
|
||
<p>Пример ответа на <code>z3k_boiler_adapter</code></p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"responses"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">457157</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"z3k_boiler_adapter"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"4097"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"s"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="s2">"ch"</span><span class="p">,</span><span class="w"> </span><span class="s2">"fl"</span><span class="p">]],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="s2">"ch"</span><span class="p">]],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"cs"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mf">57.0</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">58.0</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"rml"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mf">35.0</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">28.0</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"bt"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mf">56.5</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">57.0</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"wp"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mf">1.4</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">1.4</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"ff"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="s2">"c"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="s2">"f"</span><span class="p">:</span><span class="w"> </span><span class="p">[]}],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"4098"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">...</span><span class="w"> </span><span class="p">}</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p>Сохраняемые данные типа <code>z3k_boiler_adapter</code> используются для устройств H-2000+, H-2000+ PRO, H-2000+ PRO.V2, Climatic, H1V.02, SMART NEW и им подобных, у которых к z3k подключены адаптеры котлов (OpenTherm, EMS+, BSB, BridgeNet и т.п.). Запросив этот тип данных, можно получить историю значений всех регистров котлового адаптера с шагом до одной минуты — это те же ряды, что отображаются на графиках в личном кабинете (модуляция горелки, расчётная температура теплоносителя, давление и т.д.).</p>
|
||
|
||
<p>Ключом первого уровня является ID адаптера из <code>z3k_config</code> (например <code>4097</code>, <code>4098</code>). Значением — объект, в котором имена полей совпадают с одноимёнными полями состояния <a href="#last-boiler-state"><code>last-boiler-state.ot</code></a>, а сами значения представляют собой <a href="#delta-time-array">Delta-time Array</a> из соответствующих величин. Полный список полей:</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Поле</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>s</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><array<string>></td>
|
||
<td>Массив флагов состояния (<code>"ch"</code>, <code>"dhw"</code>, <code>"fl"</code>, <code>"cl"</code>, <code>"ch2"</code>, <code>"di"</code>, <code>"f"</code>). См. <a href="#last-boiler-state"><code>last-boiler-state.ot.s</code></a>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>cs</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Расчётная температура теплоносителя отопления, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>cs2</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Расчётная температура теплоносителя второго контура отопления, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>bt</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Фактическая температура теплоносителя, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rwt</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Температура обратного потока, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>dt</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Фактическая температура ГВС, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ot</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Уличная температура, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rml</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Относительный уровень модуляции горелки, %.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>mrml</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Максимальный уровень модуляции, %.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>wp</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Давление теплоносителя, бар.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>fr</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Скорость потока ГВС, л/мин.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rp</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Заданная мощность котла, %.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rt</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Заданная комнатная температура, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rors</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Уставка ПЗА, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rbp</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Заданное давление в котле, бар.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ds</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Заданная температура ГВС, °C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>db</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><array<int>></td>
|
||
<td>Допустимые границы заданной температуры ГВС, <code>[min, max]</code>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>b</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><array<int>></td>
|
||
<td>Допустимые границы заданной температуры котла, <code>[min, max]</code>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ff</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><object></td>
|
||
<td>Состояние аварии. Структура объекта — как в <a href="#last-boiler-state"><code>last-boiler-state.ot.ff</code></a>: <code>{ "c": <OEM-код>, "f": [<флаги>] }</code>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>sc</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><object></td>
|
||
<td>Конфигурация slave-устройства.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>mv</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><array<int>></td>
|
||
<td>Версия мастера, <code>[major, minor]</code>.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>sv</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><array<int>></td>
|
||
<td>Версия slave, <code>[major, minor]</code>.</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Набор полей зависит от протокола адаптера и модели котла: если адаптер не передаёт регистр, соответствующее поле в ответе будет отсутствовать.</p>
|
||
<h2 id='ztc_state-gsm-wi-fi'>ztc_state — состояние контроллера (питание, GSM, Wi-Fi)</h2>
|
||
<blockquote>
|
||
<p>Пример ответа на <code>ztc_state</code></p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"responses"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"device_id"</span><span class="p">:</span><span class="w"> </span><span class="mi">457157</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ztc_state"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"gsm_level"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mi">24</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"gsm_state"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"gsm_balance"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mi">150</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"voltage"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mf">12.1</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">12.1</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"wifi_rssi"</span><span class="p">:</span><span class="w"> </span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mi">62</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"status_flags"</span><span class="p">:[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mi">81</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mi">81</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"temperature"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">[[</span><span class="mi">1735603200</span><span class="p">,</span><span class="w"> </span><span class="mf">22.4</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">-60</span><span class="p">,</span><span class="w"> </span><span class="mf">22.5</span><span class="p">],</span><span class="w"> </span><span class="c1">...</span><span class="p">],</span><span class="w">
|
||
</span><span class="p">[],</span><span class="w">
|
||
</span><span class="p">[],</span><span class="w">
|
||
</span><span class="p">[],</span><span class="w">
|
||
</span><span class="p">[]</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p>Сохраняемые данные типа <code>ztc_state</code> — это история служебного состояния контроллера, которое присылается раз в минуту. Доступно для устройств H-2000+, H-2000+ PRO, Climatic, SMART NEW и других z3k-устройств, а также для ZTC-7xx / Mega SX. Запросив этот тип данных, можно получить историю уровня сигнала GSM, состояния регистрации в сети, баланса SIM-карты, напряжения питания, уровня сигнала Wi-Fi и встроенных температурных входов.</p>
|
||
|
||
<p>При запросе данных методом <code>load_data</code> возвращается объект со следующими полями:</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Поле</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>gsm_level</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><int></td>
|
||
<td>Уровень сигнала GSM, целое число в диапазоне <code>0..31</code> (<code>null</code> — данные не передавались).</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>gsm_state</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><int></td>
|
||
<td>Состояние регистрации в GSM-сети: <code>0</code> — не зарегистрирован, <code>1</code> — домашняя сеть, <code>2</code> — поиск сети, <code>3</code> — отказ в регистрации, <code>5</code> — роуминг, <code>255</code> — неизвестно.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>gsm_balance</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><int></td>
|
||
<td>Баланс SIM-карты, в копейках/центах (<code>null</code> — данные не передавались).</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>voltage</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Напряжение основного питания, В.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>wifi_rssi</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><int></td>
|
||
<td>Уровень сигнала Wi-Fi (RSSI). Применимо только для устройств с Wi-Fi.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>status_flags</code></td>
|
||
<td><a href="#delta-time-array">DTA</a><int></td>
|
||
<td>Битовая маска состояния. Биты: <code>0</code> — наличие основного питания, <code>1</code> — наличие питания по USB, <code>2</code> — связь по GSM, <code>3</code> — связь по Wi-Fi, <code>4</code> — связь по Ethernet, <code>5</code> — питание от аккумулятора, <code>6</code> — установлено соединение с сервером. Например, значение <code>81</code> (<code>0b1010001</code>) означает «есть основное питание, связь по Ethernet, соединение с сервером установлено».</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>temperature</code></td>
|
||
<td>array of <a href="#delta-time-array">DTA</a><float></td>
|
||
<td>Показания пяти встроенных температурных входов контроллера. Массив всегда содержит 5 элементов (по индексу = номеру входа); для входов, на которых датчик не подключён, элемент будет пустым массивом.</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Поля <code>gsm_*</code> и <code>wifi_rssi</code> присутствуют в ответе только если контроллер передавал соответствующие данные за запрошенный период.</p>
|
||
<p><a name="device-types"></a> </p>
|
||
<h1 id='140df53891'>Типы устройств</h1>
|
||
<p>В рамках системы ZONT выпускается множество устройств с различным назначением. Каждой модели соответствует свой идентификатор.</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Идентификатор</th>
|
||
<th>Модель</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>T100</code></td>
|
||
<td>ZONT H-1/H-1V</td>
|
||
<td>Домашний GSM-термостат</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>T102</code></td>
|
||
<td>ZONT H-2</td>
|
||
<td>Домашний Wi-Fi-термостат</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>L1000</code></td>
|
||
<td>ZONT L-1000</td>
|
||
<td>Многофункциональный программируемый GSM/Wi-Fi-термостат</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTC-100</code></td>
|
||
<td>ZTC-100</td>
|
||
<td>Спутниковый поисковый модуль</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTC-110</code></td>
|
||
<td>ZTC-110</td>
|
||
<td>Спутниковый охранно-поисковый модуль</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTC-500</code></td>
|
||
<td>ZTC-500</td>
|
||
<td>Автомобильная сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTC-700</code></td>
|
||
<td>ZTC-700</td>
|
||
<td>Автомобильная сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTC-700M</code></td>
|
||
<td>ZTC-700M</td>
|
||
<td>Автомобильная сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTC-701M</code></td>
|
||
<td>ZTC-701M</td>
|
||
<td>Автомобильная сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTC-710</code></td>
|
||
<td>ZTC-710</td>
|
||
<td>Автомобильная сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTC-720</code></td>
|
||
<td>ZTC-720</td>
|
||
<td>Автомобильная сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>tracker</code></td>
|
||
<td>ZONT Трекер</td>
|
||
<td>Приложение для Android</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ZTA-110</code></td>
|
||
<td>ZTA-110</td>
|
||
<td>Объектовая сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>SX250</code></td>
|
||
<td>Mega SX-LRW</td>
|
||
<td>Объектовая сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>SX170</code></td>
|
||
<td>Mega SX-170</td>
|
||
<td>Объектовая сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>SX300</code></td>
|
||
<td>Mega SX-300</td>
|
||
<td>Объектовая сигнализация</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>SX350</code></td>
|
||
<td>Mega SX-350</td>
|
||
<td>Объектовая сигнализация</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<p><a name="device-settings"></a></p>
|
||
<h1 id='d6d82d68e1'>Параметры устройств</h1>
|
||
<p>У каждого устройства есть <em>Настройки</em> и <em>Состояния</em>.</p>
|
||
|
||
<p><em>Настройками</em> называют те параметры, значения которых обычно редко изменяются и которыми есть смысл управлять при отсутствии связи с устройством (например: список доверенных номеров, целевые температуры). <em>Состояния</em> — это параметры, описывающие устройство только в данный момент, значения которых могут меняться в зависимости от внешних воздействий (например: состояние охраны, уровень сигнала).</p>
|
||
|
||
<p>Получить текущие Настройки устройств можно с помощью метода <a href="#devices"><code>devices</code></a>. Если при запросе указать <code>"load_io": true</code>, то в каждом объекте, описывающем устройство, в поле <code>"io"</code> также будут возвращены Состояния устройств.</p>
|
||
|
||
<p>Изменить Настройки можно с помощью метода <a href="#update_device"><code>update_device</code></a>. Управлять Состояниями — с помощью метода <a href="#set_io_port"><code>set_io_port</code></a>.</p>
|
||
|
||
<p>Ниже приведены описания всех параметров устройств, сгруппированные по области применения. Обратите внимание, что одно и то же устройство может относиться к нескольким разделам.</p>
|
||
<h2 id='2abb8ebaca'>Общие для всех типов устройств</h2><h3 id='7f17c7c62a'>Настройки</h3><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1209</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"serial"</span><span class="p">:</span><span class="w"> </span><span class="s2">"973BF3309550"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Сигнализация"</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>Идентификатор устройства</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>serial</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Серийный номер</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>name</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Название</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h2 id='34520a8155'>Состояние беспроводной сети</h2><h3 id='7f17c7c62a-2'>Настройки</h3><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"balance"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ussd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"*102#"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"warning"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"trusted_phones"</span><span class="p">:</span><span class="w"> </span><span class="s2">"+79082394312,+79102417612"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"gsm_roaming"</span><span class="p">:</span><span class="w"> </span><span class="s2">"same"</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>balance</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
<p>Настройки отслеживания баланса SIM-карты</p>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Поле</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>ussd</code></td>
|
||
<td><code>string</code></td>
|
||
<td>USSD-команда для запроса</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>warning</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Предупреждать ли при снижении ниже порога</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>limit</code></td>
|
||
<td><code>int|null</code></td>
|
||
<td>Порог, ниже которого происходит оповещение</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>trusted_phones</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Доверенные номера телефонов, разделённые запятой</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>gsm_roaming</code></td>
|
||
<td><code>string</code></td>
|
||
<td>
|
||
<p>Разрешение использования интернета в роуминге</p>
|
||
<ul>
|
||
<li><code>"no"</code> — запрет роуминга</li>
|
||
<li><code>"same"</code> — разрешено во внутресетевом роуминге</li>
|
||
<li><code>"any"</code> — разрешено в любом роуминге</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id='c248a6163b'>Состояния</h3><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"io"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"balance-value"</span><span class="p">:</span><span class="w"> </span><span class="s2">"56"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"gsm-state"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"level"</span><span class="p">:</span><span class="w"> </span><span class="mi">29</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"operator"</span><span class="p">:</span><span class="w"> </span><span class="s2">"MTS"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"home-network"</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>balance-value</code></td>
|
||
<td><code>string|null</code></td>
|
||
<td>Текущее значение баланса SIM-карты</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>gsm-state</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
<p>Состояние GSM/Wi-Fi</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Поле</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>level</code></td>
|
||
<td><code>int</code></td>
|
||
<td>Уровень сигнала [0..31]</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>operator</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Название сети (имя оператора)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>state</code></td>
|
||
<td><code>string</code></td>
|
||
<td>
|
||
<ul>
|
||
<li><code>not-registered</code> — не зарегистрирован</li>
|
||
<li><code>home-network</code> — в домашней сети</li>
|
||
<li><code>searching</code> — поиск сети</li>
|
||
<li><code>rejected</code> — сеть отказала в регистрации</li>
|
||
<li><code>roaming</code> — в роуминге</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id='ztc-mega-sx-zont-h'>Охрана (ZTC, Mega SX, ZONT H)</h2><h3 id='c248a6163b-2'>Состояния</h3><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"io"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"guard-state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"enabled"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"siren"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>guard-state</code></td>
|
||
<td><code>string</code></td>
|
||
<td><code>"enabled"</code> если охрана активна, <code>"disabled"</code> если не активна или <code>"enabling"</code> если выполняется постановка на охрану</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>siren</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>сирена активна в данный момент</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h2 id='ztc'>Взаимодействие с автомобилем (ZTC)</h2><h3 id='7f17c7c62a-3'>Настройки</h3><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"temperature_conf"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"assignments"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="s2">"cabin"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"engine"</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>temperature_conf</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
Настройка термодатчиков. Объект со следующими полями:
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<td><code>assignments</code></td>
|
||
<td><code>array</code></td>
|
||
<td>
|
||
<p>Массив строк, описывающих назначение термодатчиков. Каждый элемент определяет назначение соответствующего по номеру датчика из
|
||
<a href="#ztc-temperature">состояния <code>"temperature"</code></a>.</p>
|
||
<p>Возможные назначения:</p>
|
||
<ul>
|
||
<li><code>"engine"</code> — температура двигателя</li>
|
||
<li><code>"cabin"</code> — температура салона</li>
|
||
<li><code>"outside"</code> — температура снаружи</li>
|
||
<li><code>"none"</code> — назначение не задано</li>
|
||
</ul>
|
||
</td>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id='c248a6163b-3'>Состояния</h3><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"io"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"engine-block"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"webasto"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"auto-ignition"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"available"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"enabled"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"configuration"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"engine"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"webasto"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"current_mode"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"engine"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"webasto"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"until"</span><span class="p">:</span><span class="w"> </span><span class="mi">1478811896</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"ignition-state"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"engine-state"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"doors"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"door-1"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"door-2"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"door-3"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"door-4"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"hood-trunk"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"hood"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"trunk"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ecu-diagnostics-enabled"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"temperature"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="s2">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ok"</span><span class="p">,</span><span class="w"> </span><span class="s2">"value"</span><span class="p">:</span><span class="w"> </span><span class="mi">21</span><span class="p">},</span><span class="w">
|
||
</span><span class="p">{</span><span class="s2">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ok"</span><span class="p">,</span><span class="w"> </span><span class="s2">"value"</span><span class="p">:</span><span class="w"> </span><span class="mi">73</span><span class="p">},</span><span class="w">
|
||
</span><span class="p">{</span><span class="s2">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"disconnected"</span><span class="p">,</span><span class="w"> </span><span class="s2">"value"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>engine-block</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>активна ли блокировка двигателя</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>webasto</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>включен ли предпусковой подогреватель (ZTC-1xx)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>auto-ignition</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
<p>состояние автозапуска (ZTC-7xx, ZTC-5xx)</p>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Поле</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>available</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Доступность автозапуска</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>state</code></td>
|
||
<td><code>string</code></td>
|
||
<td>
|
||
<p>Состояние автозапуска</p>
|
||
<ul>
|
||
<li><code>"disabled"</code> — автозапуск выключен</li>
|
||
<li><code>"enabling"</code> — запуск двигателя</li>
|
||
<li><code>"enabled"</code> — двигатель заведён</li>
|
||
<li><code>"webasto"</code> — включен предпусковой подогреватель</li>
|
||
<li><code>"webasto-confirmed"</code> — включен предпусковой подогреватель и это подтверждено сигналом от подогревателя</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>configuration</code></td>
|
||
<td><code>object</code></td>
|
||
<td>Два булевых поля `"engine"` и `"webasto"` означают, настроен ли запуск соответственно двигателя и подогревателя</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>current_mode</code></td>
|
||
<td><code>object</code></td>
|
||
<td>Два булевых поля `"engine"` и `"webasto"` означают, используется ли запуск соответственно двигателя и подогревателя в текущей сессии автозапуска</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>until</code></td>
|
||
<td><code>int|null</code></td>
|
||
<td>Планируемое время отключения автозапуска</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ignition-state</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Включено ли зажигание</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>engine-state</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Запущен ли двигатель</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>doors</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Открыта ли хотя бы одна дверь (при подключении дверей общим сигналом)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>door-1</code>, <code>door-2</code>, <code>door-3</code>, <code>door-4</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Открыта ли каждая из четырёх дверей</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>hood-trunk</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Открыт ли капот или багажник (при подключении их общим сигналом)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>hood</code>, <code>trunk</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Открыты ли соответственно капот и багажник</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ecu-diagnostics-active</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>Активна ли диагностика двигателя</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a name="ztc-temperature"/><code>temperature</code></td>
|
||
<td><code>array</code></td>
|
||
<td>
|
||
Показния термодатчиков. Массив, состоящий из объектов с полями:
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Поле</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>state</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Состояние датчика: <code>"ok"</code> — датчик исправен, <code>"malfunction"</code> — неисправен, <code>"disconnected"</code> — не подключен</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>value</code></td>
|
||
<td><code>int</code></td>
|
||
<td>Температура в градусах Цельсия (если <code>state</code> равен <code>"ok"</code>)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id='zont-h'>Управление отоплением (ZONT H)</h2><h3 id='1bc650e3ff'>Старый и новый формат режимов отопления</h3>
|
||
<p>Ранние весии прошивок ZONT H-1, H-1V, H-2 поддерживали ровно 4 режима отопления: «Эконом», «Комфорт»,
|
||
«Расписание» и «Антизаморозка/Выключен». В новых версиях появились более гибкие настраиваемые режимы, а также
|
||
появилась отдельная концепция «целевых температур», которые имеют приоритет над текущим режимом отопления,
|
||
в случае если целевая температура отредактирована пользователем вручную.</p>
|
||
|
||
<p>Это изменение отразилось и на API. В описании настроек ниже те поля, которые относятся только к старому
|
||
или только к новому формату режимов, будут отмечены комментарием.</p>
|
||
|
||
<p>В устройстве всегда работает либо старая, либо новая схема режимов, они не совмещаются. Тем не менее для
|
||
новой схемы API всё равно выдаёт для устройства и старые поля тоже для ограниченной обратной совместимости.
|
||
Поля, соответствующие новому формату, имеют приоритет.</p>
|
||
|
||
<p>Версии прошивок, поддерживающих новый формат:</p>
|
||
|
||
<table><thead>
|
||
<tr>
|
||
<th>Модель</th>
|
||
<th>Версия прошивки</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td>ZONT H-1, H-1V, H-1B, H-2</td>
|
||
<td>≥ xx:82</td>
|
||
</tr>
|
||
<tr>
|
||
<td>ZONT H-1000, H-2000</td>
|
||
<td>любая</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h3 id='7f17c7c62a-4'>Настройки</h3><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="c1">// старый формат режимов</span><span class="w">
|
||
</span><span class="s2">"thermostat_mode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"comfort"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"thermostat_mode_temps"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"econom"</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"comfort"</span><span class="p">:</span><span class="w"> </span><span class="mf">21.5</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"idle"</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"full_off"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
|
||
</span><span class="c1">// новый формат режимов</span><span class="w">
|
||
</span><span class="s2">"thermostat_ext_mode"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"thermostat_ext_modes_config"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"0"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"active"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Эконом"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"zone_sensors"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="s2">"0"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="s2">"1"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"zone_temp"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="s2">"0"</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="s2">"1"</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"1"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"active"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Расписание"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"schedule_number"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"zone_sensors"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
|
||
</span><span class="s2">"zone_temp"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"2"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"active"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Выключен"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"zone_temp"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="s2">"0"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="s2">"1"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">},</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"3"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="s2">"active"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="c1">...</span><span class="p">},</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
|
||
</span><span class="s2">"tempschedule"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"day"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="c1">...</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"week"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"0"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">16</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="p">,</span><span class="w"> </span><span class="c1">...</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="p">],</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="s2">"6"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mf">21.5</span><span class="p">,</span><span class="w"> </span><span class="mf">21.5</span><span class="p">,</span><span class="w"> </span><span class="c1">...</span><span class="p">,</span><span class="w"> </span><span class="mf">21.5</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
|
||
</span><span class="s2">"thermometers"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"uuid"</span><span class="p">:</span><span class="w"> </span><span class="s2">"57d5c19005b605000bc4502b"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"is_assigned_to_slot"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Кухня"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"color"</span><span class="p">:</span><span class="w"> </span><span class="s2">"#a05be5"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"functions"</span><span class="p">:</span><span class="w"> </span><span class="p">[{</span><span class="s2">"f"</span><span class="p">:</span><span class="w"> </span><span class="s2">"control"</span><span class="p">,</span><span class="w"> </span><span class="s2">"zone"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">}],</span><span class="w">
|
||
</span><span class="s2">"limits"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"high"</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"low"</span><span class="p">:</span><span class="w"> </span><span class="mi">16</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wired"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"last_value_time"</span><span class="p">:</span><span class="w"> </span><span class="mi">1478383975</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"last_state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ok"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"last_value"</span><span class="p">:</span><span class="w"> </span><span class="mf">21.2</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">],</span><span class="w">
|
||
|
||
</span><span class="s2">"ot_enabled"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot_mode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"analog"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot_max_setpoint"</span><span class="p">:</span><span class="w"> </span><span class="mi">80</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot_min_setpoint"</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot_max_ml"</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot_dhw_setpoint"</span><span class="p">:</span><span class="w"> </span><span class="mi">46</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot_min_wp"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot_config"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"ch"</span><span class="p">,</span><span class="w"> </span><span class="s2">"dhw"</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"ot_save_params"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"bt"</span><span class="p">,</span><span class="w"> </span><span class="s2">"dt"</span><span class="p">,</span><span class="w"> </span><span class="s2">"ot"</span><span class="p">]</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>thermostat_mode</code></td>
|
||
<td><code>string</code></td>
|
||
<td>
|
||
<i>(Только для старого формата режимов)</i><br/>
|
||
Режим термостата. Возможные значения:
|
||
<ul>
|
||
<li><code>"econom"</code> — Эконом</li>
|
||
<li><code>"comfort"</code> — Комфорт</li>
|
||
<li><code>"schedule"</code> — Расписание</li>
|
||
<li><code>"idle"</code> — Антизаморозка/выключен</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>thermostat_mode_temps</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
<i>(Только для старого формата режимов)</i><br/>
|
||
Целевая температура фиксированных режимов термостата. Объект имеет следующие поля:
|
||
<ul>
|
||
<li><code>econom</code> (number) — целевая температура режима Эконом</li>
|
||
<li><code>comfort</code> (number) — целевая температура режима Комфорт</li>
|
||
<li><code>idle</code> (number) — целевая температура режима Антизаморозка</li>
|
||
<li><code>full_off</code> (bool) — отключать регулирование в режиме Антизаморозка. Если равно <code>true</code>, то вместо режима Антизаморозка используется режим Выключен</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>thermostat_ext_mode</code></td>
|
||
<td><code>int</code></td>
|
||
<td>
|
||
<i>(Только для нового формата режимов)</i><br/>
|
||
Номер текущего режима отопления. Соответствует индексу в объекте <code>thermostat_ext_modes_config</code>.
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>thermostat_ext_modes_config</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
<i>(Только для нового формата режимов)</i><br/>
|
||
Конфигурация режимо отопления. Объект (не массив!), ключами которого являются номера режимов (начиная с нуля),
|
||
а значениями — объекты конфигурации режима. Эти объекты имеют следующие поля:
|
||
<ul>
|
||
<li><code>active</code> (bool) — Настроен ли этот режим (существует ли он)</li>
|
||
<li><code>hidden</code> (bool) — Скрыт ли режим (отображается ли его кнопка на странице управления устройством)</li>
|
||
<li><code>name</code> (string) — Название режима</li>
|
||
<li><code>schedule_number</code> (int|null) — Заданное для режима расписание.<br/>
|
||
<code>null</code> — расписание не используется.<br/>
|
||
<code>1</code> — используется недельное расписание.<br/>
|
||
<code>2</code>...<code>8</code> — на каждый день используется расписание понедельника...воскресенья.
|
||
</li>
|
||
<li><code>zone_temp</code> (object) — Фиксированные целевые температуры отопительных зон, заданные для этого режима.
|
||
Объект, ключами которого являются номера отопительных зон (нулевая зона — ГВС), а значения могут быть:
|
||
<ul>
|
||
<li><code>null</code> — целевая температура для этой зоны не задана (например, если режим использует расписание)</li>
|
||
<li><code>false</code> — зона отключена в этом режиме.</li>
|
||
<li>число — целевая температура этой зоны, °C</li>
|
||
</ul>
|
||
</li>
|
||
<li><code>zone_sensors</code> (object) — Переназначение целевых датчиков для отопительных зон.
|
||
Объект, ключами которого являются номера отопительных зон (нулевая зона — ГВС), а значениями --
|
||
номера слотов целевых датчиков (соответствующие полю <code>thermometers[...].slot</code>),
|
||
либо <code>null</code> если используется датчик по умолчанию.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>tempstep</code></td>
|
||
<td><code>float</code></td>
|
||
<td>Шаг изменения температуры кнопками – и + в веб-интерфейсе и мобильном приложении.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>tempschedule</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
Расписание температур. Применяется устройством когда выставлен режим «Расписание».
|
||
<ul>
|
||
<li><code>week</code> (object) — недельное расписание. Имеет поля <code>"0"</code>, <code>"1"</code>, ..., <code>"6"</code>, соответствующие дням недели (0 — понедельник, 6 — воскресенье). Значениями являются массивы из 24 элементов с температурами для каждого.</li>
|
||
<li><code>day</code> (array) — дневное расписание. <i>В данный момент не используется устройствами</i>.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>thermometers</code></td>
|
||
<td><code>array</code></td>
|
||
<td>
|
||
Данные о термодатчиках. Массив объектов, каждый из которых имеет следующие поля:
|
||
<ul>
|
||
<li><code>uuid</code> (string) — уникальный строковый идентификатор датчика.</li>
|
||
<li><code>is_assigned_to_slot</code> (bool) — если <code>true</code>, то этот термодатчик в данный момент зарегистрирован в термостате. Термодатчики с этим полем, равным <code>false</code> следует игнорировать при анализе. Они могут быть в массиве в том случае, если датчик был отключен от термостата, а затем был произведёт сброс датчиков.</li>
|
||
<li><code>slot</code> (int|null) — номер датчика если он в данный момент зарегистрирован в термостате, либо <code>null</code> если не зарегистрирован</li>
|
||
<li><code>serial</code> (string) — серийный номер</li>
|
||
<li><code>name</code> (string) — название</li>
|
||
<li><code>color</code> (string) — цвет в веб-интерфейсе в html-нотации</li>
|
||
<li><code>functions</code> (array) — назначения датчика. Массив объектов со следующими полями:
|
||
<ul>
|
||
<li><code>"f"</code> (string) — функция. Возможные значения:
|
||
<ul>
|
||
<li><code>"control"</code> — регулирование</li>
|
||
<li><code>"control-reserve"</code> — резервное регулирование</li>
|
||
<li><code>"heat"</code> — температура теплоносителя</li>
|
||
<li><code>"outside"</code> — температура снаружи</li>
|
||
</ul>
|
||
</li>
|
||
<li><code>"zone"</code> (int) — номер отопительной зоны. Указывается для функций регулирования и t° теплоносителя. Основная отопительная зона имеет номер <code>1</code>, дополнительные — <code>2</code> и выше.
|
||
</ul>
|
||
</li>
|
||
<li><code>limits</code> (object) — пороги допустимых значений. Величины порогов указаны в дочерних полях <code>low</code> и <code>high</code>. Если порог не задан, то соответствующее поле равно <code>null</code>.</li>
|
||
<li><code>last_value_time</code> (int) — время получения последней информации о показании датчика (полей `last_state` и `last_value`). Время в секундах с 1970-01-01 00:00:00 (UTC)</li>
|
||
<li><code>last_state</code> (string) — состояние датчика. Возможные значения:
|
||
<ul>
|
||
<li><code>"ok"</code> — датчик исправен</li>
|
||
<li><code>"malfunction"</code> — датчик неисправен</li>
|
||
</ul>
|
||
</li>
|
||
<li><code>last_value</code> (number) — показание датчика, °C</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_enabled</code></td>
|
||
<td><code>bool</code></td>
|
||
<td>OpenTherm включен</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_mode</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Режим работы OpenTherm: <code>"analog"</code> — обычный, <code>"relay"</code> — псевдорелейный</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_max_setpoint</code></td>
|
||
<td><code>float</code></td>
|
||
<td>Максимальная заданная температура теплоносителя (OpenTherm)</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_min_setpoint</code></td>
|
||
<td><code>float</code></td>
|
||
<td>Минимальная заданная температура теплоносителя (OpenTherm)</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_max_ml</code></td>
|
||
<td><code>float</code></td>
|
||
<td>Максимальный уровень модуляции горелки в процентах (OpenTherm)</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_dhw_setpoint</code></td>
|
||
<td><code>float</code></td>
|
||
<td>Заданная температура ГВС (OpenTherm)</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_min_wp</code></td>
|
||
<td><code>float</code></td>
|
||
<td>Минимальное давление теплоносителя (OpenTherm)</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_config</code></td>
|
||
<td><code>array</code></td>
|
||
<td>
|
||
<p>Настройки функционала OpenTherm. Массив, содержащий строковые флаги:</p>
|
||
<ul>
|
||
<li><code>"ch"</code> — включение отопления</li>
|
||
<li><code>"dhw"</code> — включение ГВС</li>
|
||
<li><code>"cl"</code> — включение охлаждения</li>
|
||
<li><code>"ch2"</code> — включение второго контура отопления</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><code>ot_save_params</code></td>
|
||
<td><code>array</code></td>
|
||
<td>
|
||
<p>Параметры OpenTherm для ежеминутного сохранения. По выбранным параметрам можно будет увидеть графики в веб-интерфейсе и приложениях ZONT. Массив, содержащий строковые флаги:</p>
|
||
<ul>
|
||
<li><code>"bt"</code> — фактическая температура теплоносителя</li>
|
||
<li><code>"dt"</code> — фактическая температура ГВС</li>
|
||
<li><code>"rwt"</code> — температура обратного потока</li>
|
||
<li><code>"ot"</code> — уличная температура</li>
|
||
<li><code>"rml"</code> — уровень модуляции горелки</li>
|
||
<li><code>"wp"</code> — давление теплоносителя</li>
|
||
<li><code>"fr"</code> — скорость потока ГВС</li>
|
||
</ul>
|
||
<p>Параметры <code>"s"</code> (статус), <code>"cs"</code> (расчётная температура теплоносителя отопления) и <code>"ff"</code> (коды ошибок) сохраняются всегда, независимо от этого параметра.</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id='c248a6163b-4'>Состояния</h3><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"io"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"last-boiler-state"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"time"</span><span class="p">:</span><span class="w"> </span><span class="mi">1479881662</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"boiler_work_time"</span><span class="p">:</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"thermostat_mode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"comfort"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"target_temp"</span><span class="p">:</span><span class="w"> </span><span class="mf">22.0</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"gate"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"power"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"fail"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"pza_t"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"s"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"ch"</span><span class="p">,</span><span class="w"> </span><span class="s2">"fl"</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"cs"</span><span class="p">:</span><span class="w"> </span><span class="mi">37</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ff"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="s2">"f"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w"> </span><span class="s2">"c"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span><span class="w">
|
||
</span><span class="s2">"bt"</span><span class="p">:</span><span class="w"> </span><span class="mi">35</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"dt"</span><span class="p">:</span><span class="w"> </span><span class="mi">32</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"ot"</span><span class="p">:</span><span class="w"> </span><span class="mf">-12.0</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><a name="last-boiler-state"></a><code>last-boiler-state</code></td>
|
||
<td><code>object</code></td>
|
||
<td>
|
||
<p>Текущий статус термостата. Термостат присылает обновлённый статус раз в минуту. Имеет следующие поля:</p>
|
||
<ul>
|
||
<li><code>time</code> (int) — время получения статуса (в секундах с 1970-01-01 00:00:00 UTC)</li>
|
||
<li><code>boiler_work_time</code> (int) — время работы котла в секундах за последнюю минуту. Неравенство нулю этого поля можно использовать как признак работы котла.</li>
|
||
<li><code>thermostat_mode</code> (string) — режим термостата (<code>"econom"</code>, <code>"comfort"</code>, <code>"schedule"</code>, <code>"idle"</code>)</li>
|
||
<li><code>gate</code> (bool) — включён ли режим шлюза для внешнего комнатного термостата</li>
|
||
<li><code>target_temp</code> (float) — целевая температура</li>
|
||
<li><code>power</code> (bool) — наличие внешнего питания</li>
|
||
<li><code>fail</code> (bool) — присутствует ли авария котла</li>
|
||
<li><code>pza_t</code> (float) — расчётная температура ПЗА</li>
|
||
<li><code>ot</code> (object) — состояние OpenTherm
|
||
<ul>
|
||
<li><code>s</code> (array) — массив флагов состояния
|
||
<ul>
|
||
<li><code>"f"</code> — авария</li>
|
||
<li><code>"ch"</code> — отопление включено</li>
|
||
<li><code>"dhw"</code> — ГВС включено</li>
|
||
<li><code>"fl"</code> — горелка работает</li>
|
||
<li><code>"cl"</code> — охлаждение работает</li>
|
||
<li><code>"ch2"</code> — второй контур отопления включен</li>
|
||
<li><code>"di"</code> — диагностическая индикация</li>
|
||
</ul>
|
||
</li>
|
||
<li><code>cs</code> (float) — расчётная температура теплоносителя отопления</li>
|
||
<li><code>ff</code> (object) — состояние аварии
|
||
<ul>
|
||
<li><code>c</code> (int) — OEM-код аварии</li>
|
||
<li><code>f</code> (array) — флаги аварии
|
||
<ul>
|
||
<li><code>"sr"</code> — требуется обслуживание</li>
|
||
<li><code>"lr"</code> — требуется ручной сброс</li>
|
||
<li><code>"wp"</code> — низкое давление теплоносителя</li>
|
||
<li><code>"gf"</code> — сбой газа/горелки</li>
|
||
<li><code>"ap"</code> — сбой давления воздуха</li>
|
||
<li><code>"wot"</code> — превышение температуры</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><code>bt</code> (float) — фактическая температура теплоносителя</li>
|
||
<li><code>dt</code> (float) — фактическая температура ГВС</li>
|
||
<li><code>ot</code> (float) — уличная температура</li>
|
||
<li><code>rwt</code> (float) — температура обратного потока</li>
|
||
<li><code>rml</code> (float) — относительный уровень модуляции в процентах</li>
|
||
<li><code>wp</code> (float) — давление теплоносителя (бар)</li>
|
||
<li><code>fr</code> (float) — скорость потока ГВС (литр/мин)</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id='ztc-7xx-mega-sx'>Пользовательские команды и статусы (ZTC-7xx, Mega SX)</h2><pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"custom_controls"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w"> </span><span class="c1">// таких блоков может быть несколько</span><span class="w">
|
||
</span><span class="s2">"statuses"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"id"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"status"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Насос"</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">],</span><span class="w">
|
||
</span><span class="s2">"commands"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"id"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"command"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Включить насос"</span><span class="w">
|
||
</span><span class="p">},</span><span class="w">
|
||
</span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"id"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"command"</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Выключить насос"</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">]</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span><span class="p">],</span><span class="w">
|
||
|
||
</span><span class="s2">"io"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"custom_controls_state"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"0"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"1"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w">
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
|
||
</span><span class="c1">...</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre><h3 id='7f17c7c62a-5'>Настройки</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>custom_controls</code></td>
|
||
<td><code>array</code></td>
|
||
<td>
|
||
<p>Данные о пользовательских командах и статусах, задаваемых в настроечной утилите. Массив элементов, каждый из которых представляет собой ноль или более кнопок и не более одного статуса, сгруппированные в один графический элемент интерфейса (кнопку или индикатор).</p>
|
||
|
||
<p>Каждый объект имеет следующие поля:</p>
|
||
|
||
<ul>
|
||
<li><code>commands</code> — массив команд</li>
|
||
<li><code>statuses</code> — массив статусов</li>
|
||
</ul>
|
||
|
||
<p><b>Статус</b> — это некоторое состояние устройства, которое может принимать значения 0 или 1 (например, 0 — <i>свет не горит</i>, 1 — <i>свет горит</i>). <b>Команда</b> — запрос устройству на выполнение какого-то действия (например, <i>включить свет</i>)</p>
|
||
|
||
<p>Каждая команда или статус имеют следующие поля:</p>
|
||
|
||
<ul>
|
||
<li><code>id</code> (int) — идентификатор</li>
|
||
<li><code>name</code> (string) — название</li>
|
||
</ul>
|
||
|
||
<p>Отправить устройству команду из списка можно с помощью метода <a href="#send_custom_command">send_custom_command</a>.</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id='c248a6163b-5'>Состояния</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>custom_controls_state</code></td>
|
||
<td><code>object</code></td>
|
||
<td>Текущие значения пользовательских статусов (см. настройку custom_controls). Имеет форму <code>{"0": 1, "1": 1, ...}</code>. Каждому идентификатору статуса ставится в соответствие <code>0</code> или <code>1</code> в зависимости от текущего значения этого статуса в устройстве.</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h1 id='61b7f2ae17'>Получение архивов данных</h1>
|
||
<p>С помощью API вы можете запросить выгрузку архива со всеми данными по устройству за нужный период времени.</p>
|
||
|
||
<p>Чтобы получить архив, нужно сначала запросить его создание методом <a href="#generate_archive"><code>generate_archive</code></a>,
|
||
а затем скачать полученный файл с помощью метода <a href="#download_generated_archive"><code>download_generated_archive</code></a>.</p>
|
||
<h2 id='generate_archive'>generate_archive — создать архив</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/generate_archive'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> <span class="se">\</span>
|
||
-H <span class="s1">'X-ZONT-Client: your@email.com'</span> <span class="se">\</span>
|
||
-H <span class="s1">'Content-Type: application/json'</span> <span class="se">\</span>
|
||
-d <span class="s1">'{"device_id": 1209, "split_by": "days",
|
||
"mintime": 1486252800, "maxtime": 1486339200}'</span>
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/generate_archive'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s">'device_id'</span><span class="p">:</span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s">'mintime'</span><span class="p">:</span> <span class="mi">1486252800</span><span class="p">,</span>
|
||
<span class="s">'maxtime'</span><span class="p">:</span> <span class="mi">1486339200</span><span class="p">,</span>
|
||
<span class="s">'split_by'</span><span class="p">:</span> <span class="s">'days'</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'X-ZONT-Client'</span><span class="p">:</span> <span class="s">'your@email.com'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/generate_archive'</span><span class="p">;</span>
|
||
<span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
|
||
<span class="s1">'device_id'</span> <span class="o">=></span> <span class="mi">1209</span><span class="p">,</span>
|
||
<span class="s1">'mintime'</span> <span class="o">=></span> <span class="mi">1486252800</span><span class="p">,</span>
|
||
<span class="s1">'maxtime'</span> <span class="o">=></span> <span class="mi">1486339200</span><span class="p">,</span>
|
||
<span class="s1">'split_by'</span> <span class="o">=></span> <span class="s1">'days'</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="nv">$headers</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'X-ZONT-Client'</span> <span class="o">=></span> <span class="s1">'your@email.com'</span><span class="p">,</span> <span class="s1">'Content-Type'</span> <span class="o">=></span> <span class="s1">'application/json'</span><span class="p">);</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$request</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">post</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="nv">$headers</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$request</span><span class="o">-></span><span class="na">body</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат:</p>
|
||
</blockquote>
|
||
<pre class="highlight json-doc tab-json-doc"><code><span class="p">{</span><span class="w">
|
||
</span><span class="s2">"ok"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
|
||
</span><span class="s2">"archive_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"58f4b58205b605000733f5c6"</span><span class="w">
|
||
</span><span class="p">}</span><span class="w">
|
||
</span></code></pre>
|
||
<p><code>POST https://my.zont.online/api/generate_archive</code></p>
|
||
|
||
<p>Запросить создание файла с архивом данных.</p>
|
||
<h3 id='6744ad4c7a'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Тип</th>
|
||
<th>Обязательный</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td><code>device_id</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>ID устройства</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>mintime</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>Начало временного диапазона (включительно)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>maxtime</code></td>
|
||
<td><code>int</code></td>
|
||
<td>да</td>
|
||
<td>Конец временного диапазона (включительно)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>split_by</code></td>
|
||
<td><code>string</code></td>
|
||
<td>да</td>
|
||
<td>Интервал разбиения данных по файлам в архиве. <code>"days"</code> — отдельные файлы на каждый день, <code>"months"</code> — отдельные файлы на каждый месяц.</td>
|
||
</tr>
|
||
</tbody></table>
|
||
|
||
<p>Время указывается в целых секундах, прошедших с 1970-01-01 00:00:00 (UTC). Не забудьте сделать поправку на нужный часовой пояс!</p>
|
||
<h3 id='9fa227c53f'>Результат</h3>
|
||
<p>Ответ будет содержать поле <code>archive_id</code>, содержащее уникальный строковый идентификатор созданного архива.
|
||
Этот идентификатор нужно указать в методе <a href="#download_generated_archive"><code>download_generated_archive</code></a> чтобы скачать
|
||
файл архива.</p>
|
||
<h2 id='download_generated_archive'>download_generated_archive — скачать файл архива</h2><pre class="highlight shell tab-shell"><code>curl <span class="s1">'https://my.zont.online/api/download_generated_archive?archive_id=58f4b58205b605000733f5c6'</span> <span class="se">\</span>
|
||
-u <span class="s1">'demo:demo'</span> >archive.zip
|
||
</code></pre><pre class="highlight python tab-python"><code><span class="kn">import</span> <span class="nn">requests</span>
|
||
|
||
<span class="n">url</span> <span class="o">=</span> <span class="s">'https://my.zont.online/api/download_generated_archive'</span>
|
||
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span><span class="s">'archive_id'</span><span class="p">:</span> <span class="s">'58f4b58205b605000733f5c6'</span><span class="p">}</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">auth</span><span class="o">=</span><span class="p">(</span><span class="s">'demo'</span><span class="p">,</span> <span class="s">'demo'</span><span class="p">))</span>
|
||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s">'archive.zip'</span><span class="p">,</span> <span class="s">'wb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">content</span><span class="p">)</span>
|
||
</code></pre><pre class="highlight php tab-php"><code><span class="cp"><?php</span>
|
||
<span class="k">require_once</span> <span class="s1">'Requests.php'</span><span class="p">;</span>
|
||
<span class="nx">Requests</span><span class="o">::</span><span class="na">register_autoloader</span><span class="p">();</span>
|
||
|
||
<span class="nv">$archive_id</span> <span class="o">=</span> <span class="s1">'58f4b58205b605000733f5c6'</span><span class="p">;</span>
|
||
<span class="nv">$url</span> <span class="o">=</span> <span class="s1">'https://my.zont.online/api/download_generated_archive?archive_id='</span> <span class="o">.</span> <span class="nv">$archive_id</span><span class="p">;</span>
|
||
<span class="nv">$options</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">'auth'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span><span class="s1">'demo'</span><span class="p">,</span> <span class="s1">'demo'</span><span class="p">));</span>
|
||
<span class="nv">$response</span> <span class="o">=</span> <span class="nx">Requests</span><span class="o">::</span><span class="na">get</span><span class="p">(</span><span class="nv">$url</span><span class="p">,</span> <span class="k">array</span><span class="p">(),</span> <span class="nv">$options</span><span class="p">);</span>
|
||
<span class="nb">file_put_contents</span><span class="p">(</span><span class="s1">'archive.zip'</span><span class="p">,</span> <span class="nv">$response</span><span class="o">-></span><span class="na">body</span><span class="p">);</span>
|
||
</code></pre>
|
||
<blockquote>
|
||
<p>Результат будет записан в файл <code>archive.zip</code></p>
|
||
</blockquote>
|
||
|
||
<p><code>GET https://my.zont.online/api/download_generated_archive</code></p>
|
||
|
||
<p>Скачать файл, созданный методом <a href="#generate_archive"><code>generate_archive</code></a>. Обратите внимание, этот метод
|
||
работает по запросу GET.</p>
|
||
<h3 id='6744ad4c7a-2'>Параметры</h3>
|
||
<table><thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Обязательный</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead><tbody>
|
||
<tr>
|
||
<td>archive_id</td>
|
||
<td>да</td>
|
||
<td>идентификатор архива</td>
|
||
</tr>
|
||
</tbody></table>
|
||
<h3 id='9fa227c53f-2'>Результат</h3>
|
||
<p>В ответ сервер отправит zip-архив с данными.</p>
|
||
|
||
</div>
|
||
<div class="dark-box">
|
||
<div class="lang-selector">
|
||
<a href="#" data-language-name="shell">curl</a>
|
||
<a href="#" data-language-name="python">python</a>
|
||
<a href="#" data-language-name="php">php</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|