Модуль для интеграции устройств Zigbee или BLE для систем автоматизации на базе MajorDoMo. Для интеграции могут быть использованы программный продукт zigbee2mqtt совместно с разлиными вариантами zigbee-донглов, либо готовый апаратный шлюз Smart Logic System (SLS) Zigbee BLE gateway. Модуль позволяет одновременно работать с неограниченным количеством шлюзов или приложений zigbee2mqtt, представляя собой клиента mqtt и готовый набор базы данных поддерживаемых устройств. Использование модуля избавляет пользователя от необходимости прописывания и запоминания метрик устройств.
Модуль работает через MQTT. Установка mosqutto на raspberry или linux:
Mosqutto для windows можно скачать тут
Для корректной работы с MajorDoMo необходимо через маркет дополнений установить модуль zigbee2mqtt.
После установки mqtt брокера и дополнения для MajorDomo, необходимо на вкладке Сервис прописать нужные настройки:
-
адрес mqtt сервера
-
порт mqtt
-
если необходимо, то логин и пароль mqtt
-
Subscription path - путь для подписки модуля. Если вы используте несколько шлюзов, то каждый из шлюзов необходимо указать через запятую, например так:
ZigBeeCA20/#,zigbee2mqtt/#
-
Если zigbee2mqtt установлен на этой же машине нативно, или через docker, можно настроить просмотр лога zigbee2mqtt, указав путь до приложения, например /opt/zigbee2mqtt
-
Для просмотра лога SLS шлюза, необходимо указать его ip адрес в формате 192.168.1.93.
Остальные настройки по желанию.
После нажатия кнопки сохранить, происходит перезапуск цикла zigbee2mqtt. Его статус можно посмотреть в XRAY на вкладке Services. При необходимости, там же его можно перезапустить или остановить.
Для корректной работы модуля, необходимо на вкладке Сервис нажать кнопку Disable strict mode - это выключит строгий режим MySQL сервера.
Для добавления устройств Zigbee, необходимо на шлюзе включить режим сопряжения. Сделать это можно через Web-интерфейс шлюза SLS, или из модуля MajorDomo. Режим переключается на вкладке Сервис, либо нажатием на "Сопряжение [имя_шлюза]". Когда индикатор сопряжения горит зеленым, шлюз готов к сопряжению. Для шлюзов на базе Zigbee 3 максимально разрешенное время режима сопряжения составляет 5 минут.
После включения режима сопряжения, необходимо на устройстве нажать кнопку сброса в соответствии с инструкцией. Узнать, каким образом устройство можно перевести в режим сопряжения можно в каталоге zigbee2mqtt.
Управляемым устройствам можно давать команды в панели администратора модуля для MajorDoMo. У таких устройств в верхней полоске находятся кнопки управления в соответсвии с типом устройства. Нажатие на соответсвующие пиктограммы изменяет режим.
При нажатии на картинку устройства - отправляется команда "toggle", которая изменяет режим на противоположный.
Интерфейс управления модулем доступен из приложений. Так, установив приложение для телефонов Majordroid, через приложения будет доступен режим простотра и управления устройстами.
Также постоянную странциу дополнения http:/ipaddr/module/zigbee2mqtt.html можно прописать в ибзранном или домашней странций браузера.
Отсюда также можно управлять устройствами. Ссылку на эту страницу можно установить домашней страницей на настенном планшете или анлогичном устройстве в домашней сети.
Дополнение zigbee2mqtt адамтировано для интеграции с "Простыми устройствами" MajorDoMo. Через вкадку "Простые устройства" панели администратора необходимо выбрать и добавить в систему подходящее по смыслу устройство(например "Датчик движения" или "Управляемое реле")
После его добавления, необходимо узнать и запомнить название связанного объекта:
Теперь в панели администратора модуля zigbee2mqtt небходимо найти нужное устройство и зайти на вкладку "Данные":
Выбрать подходящую метрику устройства: И привязать ранее созданный объект как на картинке:
Теперь метрики вашего устройства связаны с логикой работы MajorDoMo. Вы можете получать соответсвующие уведомления, настраивать реакции, управлять устройствами с помощью имеющихся инструментов, в точ числе с помощью голосовых команд.
** Обратите внимание, что получаемые от пультов метрики click, command и тд. реверсятся. Это возволяет использовать разные настройки для поддерживаемых команд (двойной тап, двойное нажатие, долгое нажатие и тд). Привязывать нужно необходимую команду, например single (double, long) вместо метрики click. Если привязать click к нужному действию, событие будет выполняться на каждоей действие (нажати, отпускание и тд).
** Также стоит отметить, что для "Простых устройств" типа реле, диммер и т.д. лучше привязывать метод switch, тогда логика управления будет соблюдена. Для датчиков нужно привязывать соотстветсвующие метрики. **
** Внимание!!! Одновременная привязка метода и свойства для кнопок будет вызывать двойную сработку.
Объединение устройств в группы позволяет устройствам подписываться на групповые команлы, тем самым избавляя пользователя или систему домашней автоматизации в необходимости отправки команд каждому устройству. Также намного ускоряется время реакции устройств по сравнению с циклической отправкой.
Добавление устройств в группы производится со вкладки Edit Device. Можно создать новую группу или выбрать из имеющихся.
Далее согласно протоколу zigbee2mqtt создается новое устройство с именем группы. Отправляя одну команду в группу можно изменить режим работы всех включенных в нее устройств.
Протоколом zigbee предусмотена поддержка устройствами нахождение в нескольких группах. Перечитать список групп, куда входит устройство можно со вкладки Parameters
В панели администратора можно выбрать режим отображения "только группы".
Протоколом zigbee предусмотрено управление устройствами без координатора. Технология TouchLink позволяет создать отдельную сеть zigbee между двумя устройствами. Для связи поддерживающих технологию устройств, необхолимо ознакомиться с документацией. В магазинах Ikea продаются комплекты ламп и пультов Tradfri, которые поддерживают такое сопряжение. Обычно для сопряжения лампы и пульта, необходимо поднести пульт к включенной лампочке и нажать кнопку сопряжения. Через какое-то время лампа начнет моргать с нарастающей частотой. Через какое-то время моргание остановится, устройства должны будут создать свою сеть и прописаться на события устройств.
Протоколом zigbee также предусмотрена настройки связей устройств с координатора. Такая технология называется Binding. Он позволяет аналогичным образом подписать одни устройства (лампы) на другие (пульты, датчики), только настройка осуществляется через координатор. Это дает возможности более тонкой настройки связей без создания отдельной сети zigbee.
В дополнении для MajorDoMo предусмотрен просмотр log файла программного шлюза. Если zigbee2mqtt установлен на одном сервере, где установлен MajorDoMo, необходимо на вкладке Настройка в поле Folder path указать путь, куда установлен zigbee2mqtt. Инструкции по-умполчанию устанавливают в папку /opt/zigbee2mqtt. В результате становится доступен просмотр файл журнала zigbee2mqtt.
Для аппаратного шлюза SLS в режиме проксирования доступен просмотр журнала работы. Необходимо на вкладке Настройка в поле SLS ZGW IP adress указать ip-адресс шлюза. Просмотр доступен на вкладке SLS log.
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/led', '{“mode”:”manual”,”hex”:”#FF0000”}');
Ссылка на интересный тематический канал в телеграм: 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