Skip to content

Описание

Модуль для интеграции устройств Zigbee или BLE для систем автоматизации на базе MajorDoMo. Для интеграции могут быть использованы программный продукт zigbee2mqtt совместно с различными вариантами zigbee-донглов, либо готовый аппаратный шлюз Smart Logic System (SLS) Zigbee BLE gateway. Модуль позволяет одновременно работать с неограниченным количеством шлюзов или приложений zigbee2mqtt, представляя собой клиента mqtt и готовый набор базы данных поддерживаемых устройств. Использование модуля избавляет пользователя от необходимости прописывания и запоминания метрик устройств.

home

Подготовительные мероприятия

Модуль работает через MQTT. Установка mosquitto на raspberry или linux:

ссылка 1

ссылка 2

Mosquitto для windows можно скачать тут

Для корректной работы с MajorDoMo необходимо через маркет дополнений установить модуль zigbee2mqtt.

После установки mqtt брокера и дополнения для MajorDomo, необходимо на вкладке Сервис прописать нужные настройки:

  1. адрес mqtt сервера

  2. порт mqtt

  3. если необходимо, то логин и пароль mqtt

  4. Subscription path - путь для подписки модуля. Если вы используете несколько шлюзов, то каждый из шлюзов необходимо указать через запятую, например так:

ZigBeeCA20/#,zigbee2mqtt/#
ZigBeeCA20/#,zigbee2mqtt/#
  1. Если zigbee2mqtt установлен на этой же машине нативно, или через docker, можно настроить просмотр лога zigbee2mqtt, указав путь до приложения, например /opt/zigbee2mqtt

  2. Для просмотра лога SLS шлюза, необходимо указать его ip адрес в формате 192.168.1.93.

Остальные настройки по желанию.

settings

После нажатия кнопки сохранить, происходит перезапуск цикла zigbee2mqtt. Его статус можно посмотреть в XRAY на вкладке Services. При необходимости, там же его можно перезапустить или остановить.

Для корректной работы модуля, необходимо на вкладке Сервис нажать кнопку Disable strict mode - это выключит строгий режим MySQL сервера.

settingss

Добавление (сопряжение) устройств

Для добавления устройств Zigbee, необходимо на шлюзе включить режим сопряжения. Сделать это можно через Web-интерфейс шлюза SLS, или из модуля MajorDomo. Режим переключается на вкладке Сервис, либо нажатием на "Сопряжение [имя_шлюза]". Когда индикатор сопряжения горит зеленым, шлюз готов к сопряжению. Для шлюзов на базе Zigbee 3 максимально разрешенное время режима сопряжения составляет 5 минут.

permit

После включения режима сопряжения, необходимо на устройстве нажать кнопку сброса в соответствии с инструкцией. Узнать, каким образом устройство можно перевести в режим сопряжения можно в каталоге zigbee2mqtt.

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

Управляемым устройствам можно давать команды в панели администратора модуля для MajorDoMo. У таких устройств в верхней полоске находятся кнопки управления в соответствии с типом устройства. Нажатие на соответствующие пиктограммы изменяет режим.

remote

При нажатии на картинку устройства - отправляется команда "toggle", которая изменяет режим на противоположный.

Управление устройствами через приложения

Интерфейс управления модулем доступен из приложений. Так, установив приложение для телефонов Majordroid, через приложения будет доступен режим просмотра и управления устройствами.

majordroid1majordroid2

Также постоянную страницу дополнения http:/ipaddr/module/zigbee2mqtt.html можно прописать в избранном или домашней страницей браузера.

app

Отсюда также можно управлять устройствами. Ссылку на эту страницу можно установить домашней страницей на настенном планшете или аналогичном устройстве в домашней сети.

app2

Привязка устройств к объектам

Дополнение zigbee2mqtt адаптировано для интеграции с "Простыми устройствами" MajorDoMo. Через вкладку "Простые устройства" панели администратора необходимо выбрать и добавить в систему подходящее по смыслу устройство(например "Датчик движения" или "Управляемое реле")

sd1sd2 После его добавления, необходимо узнать и запомнить название связанного объекта: sd2

Теперь в панели администратора модуля zigbee2mqtt необходимо найти нужное устройство и зайти на вкладку "Данные": sd2

Выбрать подходящую метрику устройства: sd2 И привязать ранее созданный объект как на картинке: sd2sd2

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

** Обратите внимание, что получаемые от пультов метрики click, command и тд. реверсятся. Это позволяет использовать разные настройки для поддерживаемых команд (двойной тап, двойное нажатие, долгое нажатие и тд). Привязывать нужно необходимую команду, например single (double, long) вместо метрики click. Если привязать click к нужному действию, событие будет выполняться на каждое действие (нажатие, отпускание и тд). sd8

** Также стоит отметить, что для "Простых устройств" типа реле, диммер и т.д. лучше привязывать метод switch, тогда логика управления будет соблюдена. Для датчиков нужно привязывать соотстветсвующие метрики. **

** Внимание!!! Одновременная привязка метода и свойства для кнопок будет вызывать двойную сработку.

Группы

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

Добавление устройств в группы производится со вкладки Edit Device. Можно создать новую группу или выбрать из имеющихся.

gr

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

Протоколом zigbee предусмотрена поддержка устройствами нахождение в нескольких группах. Перечитать список групп, куда входит устройство можно со вкладки Parameters

gr2

В панели администратора можно выбрать режим отображения "только группы". gr2

Протоколом zigbee предусмотрено управление устройствами без координатора. Технология TouchLink позволяет создать отдельную сеть zigbee между двумя устройствами. Для связи поддерживающих технологию устройств, необходимо ознакомиться с документацией. В магазинах Ikea продаются комплекты ламп и пультов Tradfri, которые поддерживают такое сопряжение. Обычно для сопряжения лампы и пульта, необходимо поднести пульт к включенной лампочке и нажать кнопку сопряжения. Через какое-то время лампа начнет моргать с нарастающей частотой. Через какое-то время моргание остановится, устройства должны будут создать свою сеть и прописаться на события устройств.

Binding

Протоколом zigbee также предусмотрена настройки связей устройств с координатора. Такая технология называется Binding. Он позволяет аналогичным образом подписать одни устройства (лампы) на другие (пульты, датчики), только настройка осуществляется через координатор. Это дает возможности более тонкой настройки связей без создания отдельной сети zigbee.

Просмотр логов zigbee2mqtt или SLS ZGW

В дополнении для MajorDoMo предусмотрен просмотр log файла программного шлюза. Если zigbee2mqtt установлен на одном сервере, где установлен MajorDoMo, необходимо на вкладке Настройка в поле Folder path указать путь, куда установлен zigbee2mqtt. Инструкции по-умолчанию устанавливают в папку /opt/zigbee2mqtt. В результате становится доступен просмотр файл журнала zigbee2mqtt.

z2mlog

Для аппаратного шлюза SLS в режиме проксирования доступен просмотр журнала работы. Необходимо на вкладке Настройка в поле SLS ZGW IP address указать ip-адрес шлюза. Просмотр доступен на вкладке SLS log.

slslog

Пример сценария Majoromo для перезагрузки шлюза

include_once(DIR_MODULES . 'zigbee2mqtt/zigbee2mqtt.class.php');
$z2m = new zigbee2mqtt();
$z2m->sendcommand('ZigBeeXXXX/reboot', '');
include_once(DIR_MODULES . 'zigbee2mqtt/zigbee2mqtt.class.php');
$z2m = new zigbee2mqtt();
$z2m->sendcommand('ZigBeeXXXX/reboot', '');

Пример сценария Majoromo для установки подстветки модернизированного шлюза Aqara

include_once(DIR_MODULES . 'zigbee2mqtt/zigbee2mqtt.class.php');
$z2m = new zigbee2mqtt();
$z2m->sendcommand('ZigBeeXXXX/led', '{“mode”:”manual”,”hex”:”#FF0000”}');
include_once(DIR_MODULES . 'zigbee2mqtt/zigbee2mqtt.class.php');
$z2m = new zigbee2mqtt();
$z2m->sendcommand('ZigBeeXXXX/led', '{“mode”:”manual”,”hex”:”#FF0000”}');

Пример сценария Majoromo для открытия/закрытия привода для штор Aqara

include_once(DIR_MODULES . 'zigbee2mqtt/zigbee2mqtt.class.php');
$z2m = new zigbee2mqtt();
$z2m->sendcommand('ZigBeeXXXX/0x00158D0002EE1285/set', '{"state":"open"}');
include_once(DIR_MODULES . 'zigbee2mqtt/zigbee2mqtt.class.php');
$z2m = new zigbee2mqtt();
$z2m->sendcommand('ZigBeeXXXX/0x00158D0002EE1285/set', '{"state":"open"}');

где 0x00158D0002EE1285 - IEEE адрес вашего привода.

Полезные ссылки

Ссылка на интересный тематический канал в телеграм: https://t.me/zigbeer

Ссылка на репозиторий модуля zigbee2mqtt: http://github.com/directman66/majordomo-zigbee2mqtt/

Топики для управления устройствами через mqtt https://www.zigbee2mqtt.io/integration/home_assistant.html

Топики для управления шлюзом через mqtt https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html#zigbee2mqttbridgelog