Описание
Модуль для интеграции устройств Zigbee или BLE для систем автоматизации на базе MajorDoMo. Для интеграции могут быть использованы программный продукт zigbee2mqtt совместно с различными вариантами zigbee-донглов, либо готовый аппаратный шлюз Smart Logic System (SLS) Zigbee BLE gateway. Модуль позволяет одновременно работать с неограниченным количеством шлюзов или приложений zigbee2mqtt, представляя собой клиента mqtt и готовый набор базы данных поддерживаемых устройств. Использование модуля избавляет пользователя от необходимости прописывания и запоминания метрик устройств.
Подготовительные мероприятия
Модуль работает через MQTT. Установка mosquitto на raspberry или linux:
Mosquitto для windows можно скачать тут
Для корректной работы с MajorDoMo необходимо через маркет дополнений установить модуль zigbee2mqtt.
После установки mqtt брокера и дополнения для MajorDomo, необходимо на вкладке Сервис прописать нужные настройки:
адрес mqtt сервера
порт mqtt
если необходимо, то логин и пароль mqtt
Subscription path - путь для подписки модуля. Если вы используете несколько шлюзов, то каждый из шлюзов необходимо указать через запятую, например так:
ZigBeeCA20/#,zigbee2mqtt/#
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
В панели администратора можно выбрать режим отображения "только группы".
TouchLink
Протоколом zigbee предусмотрено управление устройствами без координатора. Технология TouchLink позволяет создать отдельную сеть zigbee между двумя устройствами. Для связи поддерживающих технологию устройств, необходимо ознакомиться с документацией. В магазинах Ikea продаются комплекты ламп и пультов Tradfri, которые поддерживают такое сопряжение. Обычно для сопряжения лампы и пульта, необходимо поднести пульт к включенной лампочке и нажать кнопку сопряжения. Через какое-то время лампа начнет моргать с нарастающей частотой. Через какое-то время моргание остановится, устройства должны будут создать свою сеть и прописаться на события устройств.
Binding
Протоколом zigbee также предусмотрена настройки связей устройств с координатора. Такая технология называется Binding. Он позволяет аналогичным образом подписать одни устройства (лампы) на другие (пульты, датчики), только настройка осуществляется через координатор. Это дает возможности более тонкой настройки связей без создания отдельной сети zigbee.
Просмотр логов zigbee2mqtt или SLS ZGW
В дополнении для MajorDoMo предусмотрен просмотр log файла программного шлюза. Если zigbee2mqtt установлен на одном сервере, где установлен MajorDoMo, необходимо на вкладке Настройка в поле Folder path указать путь, куда установлен zigbee2mqtt. Инструкции по-умолчанию устанавливают в папку /opt/zigbee2mqtt. В результате становится доступен просмотр файл журнала zigbee2mqtt.
Для аппаратного шлюза SLS в режиме проксирования доступен просмотр журнала работы. Необходимо на вкладке Настройка в поле SLS ZGW IP address указать ip-адрес шлюза. Просмотр доступен на вкладке SLS log.
Пример сценария 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