MQTT в Zont документация от разработчика
Подключение
Поддерживается в устройствах: H2000 PRO V2, H1000 PRO V2.
С версии прошивки 420.
MQTT в Zont работает через интерфейсы WIFI и Ethernet. Через мобильную сеть не работает.
Пример настройки адреса MQTT сервера:
mqtt://username:password@mqtt.eclipseprojects.io:1883
Адрес : mqtt.eclipseprojects.io
Порт: 1883
Имя пользователя: username
Пароль: password
Если имя пользователя и пароль не используются, то их можно не указывать:
mqtt://mqtt.eclipseprojects.io:1883
Вид интерфейса настройки адреса сервера:
Публикация данных.
Имя топика формируется из имени настройки топика/имя объекта.
Формат передаваемых данных
Датчик
{
“v”:12.3,
“A”:1
“u”:0
“trig”:0
}
v - значение (значение float)
a - доступность датчика (0-не доступен, 1-доступен)
u - единицы измерения (0-вольт 1-ком 2-бар 3-км/ч 4-об/мин 5-литр 6-литр/час 7-% 8-без единиц)
trig - признак срабатывания датчика (0 - норма, 1 - сработка)
Термодатчик
{
“t”:23.5,
“a”:1
}
t - температура по цельсию (значение float)
a - доступность датчика (0-не доступен, 1-доступен)
Радио термодатчик
{
“t”:23.5,
“a”:1,
“h”:85,
“b” - 100,
“r” - 78
“trig”:0
}
t - температура по цельсию (значение float)
a - доступность датчика (0-не доступен, 1-доступен)
h - влажность
b - напряжение батареи (вольты - значение float)
r - rssi уровень сигнала
trig - признак срабатывания датчика (0 - норма, 1 - сработка)
Отопительный контур
{
“s”:23.5,
“c”:1
“f”:0
“m”:”heat”
“m_id”: 4983
}
s - целевая температура
с - текущая температура
f - состоянии неисправности контура
m - режим работы контура (варианты: “heat” “cool” “off”)
m_id - id режима текущего отопления (если ==0 значит режим не применён, используется ручное управление)
Режим отопления
{
}
Реле
{
“s”:1
}
s - текущее состояние (0 - выкл, 1 - вкл)
Насос
{
“s”:1
}
s - текущее состояние (0 - выкл, 1 - вкл)
Смеситель
{
“s”:1
}
s - текущее состояние (0 - не активен, 1 - открытие, 2 - закрытие)
Пользовательские элементы управления
{
“s”:1,
“t”:”Включено”
}
s - текущее состояние (0 - не активен, 1 - активен, > 0 - значения для аналогового регулятора)
t - текстовое представление статуса (название из настроек для активного или неактивного состояния)
Для аналогового регулятора дополнительно передаются поля:
max - максимум
min - минимум
step - шаг
mul - множитель значения (если например 10 то все min max step s умноженные на 10)
Адаптер цифровой шины котла
{
“water”:45.6,
“dhw”:34.5,
“return”:30.4,
“modul”:99,
press:2.4,
state:1,
err:0
}
water - температура теплоносителя
dhw - температура ГВС
return - температура обратки
modul - уровень модуляции %
press - давление теплоносителя
state - состояние котла (0-выкл 1-работает 2-ошибка)
err - код ошибки
Охранная зона
{
“s:”0
“trig”:0
}
s - состояние охраны (0- выкл, 1 - вкл)
trig - признак срабатывания датчика (0 - норма, 1 - сработка)
Подписка
Для управления устройством в получаемом сообщении должен быть выбран объект которому предназначена команда.
Выбрать объект можно одним из трёх способов:
- Заданием id объекта в поле данных сообщения.
{
“Id”:12345,
“cmd”: command
}
- Заданием имени объекта в поле данных сообщения.
{
“name”: “Кнопка”,
“cmd”: command
}
- Заданием имени объекта в поле имени topic.
Пример имени топика: ZONT/Дом/Управление/Кнопка
В настройках можно указать для подписки все подтопики топика обычным способом:
ZONT/Дом/Управление/#
Формат поля cmd для разных типов объектов
|
Код |
Команда |
Описание |
|
Аналоговый вход |
||
|
0 N T |
Установка значения N |
Для аналогового входа можно установить значение, для использования этой возможности в настройках входа не следует назначать привязку к реальному входу. (N - значение х 0,1 вольт) T - время в течение которого считается что связь с датчиком есть после получения сообщения. |
|
1 N T |
Установка значения N |
Для аналогового входа можно установить значение, для использования этой возможности в настройках входа не следует назначать привязку к реальному входу. (N - значение float) T - время в течение которого считается что связь с датчиком есть после получения сообщения. |
|
Аналоговый термодатчик |
||
|
N |
Установка температуры N |
N - значение в деци кельвинах (пример: 21.5 гр -> 2730 + 215 = 2945) |
|
0 N |
Установка температуры N |
N - значение в деци кельвинах (пример: 21.5 гр -> 2730 + 215 = 2945) |
|
1 N |
Установка температуры N |
N - значение в градусах цельсия float |
|
Цифровой термодатчик (предпочтительнее использовать чем аналоговый) |
||
|
N |
Установка температуры N |
N - значение в деци кельвинах (пример: 21.5 гр -> 2730 + 215 = 2945) |
|
0 N |
Установка температуры N |
N - значение в деци кельвинах (пример: 21.5 гр -> 2730 + 215 = 2945) |
|
1 N |
Установка температуры N |
N - значение в градусах цельсия float |
|
Охранная зона |
||
|
0 |
Снятие с охраны |
|
|
1 |
Постановка на охрану |
|
|
2 |
Инверсия охраны |
|
|
Оповещение |
||
|
0 |
Выполнить |
Производится настроенное оповещение |
|
Действие с выходом |
||
|
0 |
Выполнить |
Выполняется действие с выходом |
|
Трёхходовой кран |
||
|
1 |
Полностью открыть |
|
|
2 |
Полностью закрыть |
|
|
3 |
Открыть на шаг |
|
|
4 |
Закрыть на шаг |
|
|
Контур отопления |
||
|
T |
Установка температуры |
команда это значение температуры в кельвинах Пример: {“cmd”:3000} |
|
Режим терморегулирования |
||
|
1 |
Установка режима |
|
|
Веб элемент (кнопки) |
||
|
0 |
Действия по выключению |
Выполнение действий веб элемента |
|
1 |
Действия по включению |
Выполнение действий веб элемента |
|
2,N |
Установка значения аналогового регулятора |
|
|
Сирена / Индикатор / Реле / Насос |
||
|
0 |
Выключение |
|
|
1 |
Включние |
|
|
|
|
|
Автосоздание объектов (с версии проошивки 500)
Для этого используется в запросе опциональное поле type
{
“name”: “Кнопка”,
“cmd”: command,
“type”: 10
}
Обращение должно быть по имени (не по Id)
Если при этом такой объект отсутствует, то будет создан объект с таким типом и именем, с настройками по умолчанию.
|
0 |
Аналоговый вход |
|
1 |
Датчик температуры цифровой DS18… |
|
2 |
Охранная зона |
|
|
|
|
|
|
|
10 |
Элемент управления пользовательский |
|
14 |
Реле |
|
15 |
Смеситель |
|
16 |
Контур отопления |
|
17 |
Насос |
|
27 |
NTC термодатчик |
|
53 |
Аналоговый выход |
|
|
|
Вид интерфейса настройки топиков
Интеграция с Home Assistant
В настройках топика галочка - формат Home Assistant.
При использовании этой опции соответствующие элементы из ZONT автоматически отобразятся и синхронизируются с интерфейсом Home Assistant.
Список поддерживаемых типов объектов
|
Объект ZONT |
Компонент HA |
|
Датчик |
Sensor |
|
Датчик температуры |
Sensor |
|
Контур отопления |
Climate |
|
Элемент пользователя - статус |
Binary_sensor |
|
Элемент пользователя - простая кнопка |
Button |
|
Элемент пользователя - сложная кнопка |
Switch |
|
Элемент пользователя - аналоговый регулятор |
Valve |
|
Насос |
Switch |
|
Реле |
Switch |
Примечания
В именах топиков допускается использование русских и английских букв, цифр, пробелов и других стандартных ASCII символов.
Не допускается использование нестандартных символов (например символа градусов ° ), в этом случае соединение с брокером может быть разорвано.
Решения для Home Assistant (примеры)
Пример трансляции значения датчика из HA в ZONT
Создается автоматизация - Настройки - Автоматизация и сцены - Создать-
Условие на которое будет срабатывать отправка в топик
Шаблон значения:
"cmd": {{ 1 (states('sensor.datchik_temperatury_spalnia_temperature')) | string }}
Пример трансляции датчика движения из HA в ZONT
service: mqtt.publish
metadata: {}
data:
qos: "2"
retain: false
topic: zont/sensors/motion/Ванная движение
payload: >
"cmd":"0 {{ 20 if is_state('binary_sensor.0xa4c138765e7844e5_occupancy',
'on') else 0 }} 180"
В ZONT настраивается виртуальный датчик - дискретный вход НЗ
И топик для подписки
Пример трансляции датчика открытия двери из HA в ZONT
service: mqtt.publish
metadata: {}
data:
qos: "2"
retain: false
topic: zont/sensors/door/Ванная дверь
payload: >
"cmd":"0 {{ 20 if is_state('binary_sensor.0xa4c1385efdec5de0_contact', 'on')
else 0 }} 180"
В ZONT настраивается виртуальный датчик - дискретный вход НЗ
Пример трансляции датчика влажности из HA в ZONT
service: mqtt.publish
metadata: {}
data:
qos: "2"
retain: false
topic: zont/sensors/h/Влажность зал
payload: "\"cmd\":\"0 {{states('sensor.0xa4c138d3c114d1eb_humidity')|string}}\""
В ZONT настраивается виртуальный датчик - аналоговый вход
Пример трансляции датчика температуры из HA в ZONT
service: mqtt.publish
metadata: {}
data:
qos: "2"
retain: false
topic: zont/sensors/t/Температура зал
payload: "\"cmd\":\"1 {{states('sensor.0xa4c138d3c114d1eb_temperature')|string}}\""
В ZONT настраивается цифровой датчик температуры
Пример организации синхронизации кнопок ZONT и switch (например выключателей) HA
Например, чтобы можно было управлять ZigBee выключателями как из HA так и из ZONT.
Использовался BluePrint
path: haade-administrator/2-way-ha.yaml
В качестве параметров указываются - реальный выключатель и выключатель публикуемый из ZONT.
В ZONT настраивается элемент управления, который может управлять, например, виртуальным реле (с не назначенным выходом ), настраивается его публикация в MQTT в формате Home Assistant.
- Комментарии
