Привязка устройств, подключенных с помощью MQTT к OpenHAB 3

Следующим логичным шагом является интеграция устройств, которые обмениваются данными по протоколу MQTT, в одну систему умного дома. Для этой цели OpenHAB 3 является мощной платформой для автоматизации.

Процесс «привязки» таких устройств к OpenHAB может показаться техническим, но в действительности он заключается в настройки связи. Вы должны сообщить OpenHAB, какие темы слушать, куда подключаться (ваш MQTT-брокер) и как интерпретировать полученные сообщения. Это позволяет получить доступ ко всем функциям OpenHAB, включая разработку стандартов автоматизации и создание единого интерфейса управления.

Главной задачей является создание «Вещей» и «Каналов» в OpenHAB, которые будут отражать ваши MQTT-устройства и их функции. Вы должны знать структуру тем MQTT, которые ваши устройства публикуют, и формат данных, которые используются в этих сообщениях, например, ON/OFF или числа.

Чтобы подключить устройства через MQTT к OpenHAB 3, сначала необходимо настроить брокера MQTT, такого как Mosquitto. Затем необходимо убедиться, что устройства отправляют данные на соответствующие топики. После этого OpenHAB включает MQTT-биндинг и создает вещание (thing), которое связывается с топиками для получения и отправки команд. К этому вещанию также привязаны элементы управления, такие как каналы, которые позволяют создавать автоматизацию, управлять техникой и использовать данные интерфейса. Главное, что нужно сделать, это правильно указать адрес брокера, темы для чтения и записи, а также убедиться, что имена топиков в MQTT совпадают с настройками OpenHAB.

Предыстория

Все домашние датчики Xiaomi подключены к MQTT серверу через ZigBee2MQTT. Затем HomeAssistant подключается к серверу. Эта конфигурация работает хорошо уже более года. Были проблемы, когда в сети присутствовали дополнительно настроенные розетки Xiaomi, которые уходили в глубокий сон, и сеть начинала отваливаться, потому что розетки работали как ретрансляторы. Однако, исключив эти розетки, все работает хорошо. Установка и настройка CC2531 + ZigBee2MQTT без использования шлюзов производителей описана в статье.

На прошивке Tasmota добавлены несколько реле Sonoff к MQTT серверу.

Привязка текущей конфигурации к OpenHAB 3 была необходимостью.

Подготовка

Первоначальным шагом является установка необходимых компонентов: MQTT Binding, Jinja Transformation и JSONPath Transformation.

Добавляем новый завязывание через меню «Настройки» — «Завязывания».

В правом нижнем yглу нажимаем +. Затем вводим MQTT в строку поиска, нажимаем на найденный компонент MQTT Binding и нажимаем кнопку Install в сплывающем окне.

Мы должны установить дополнения Jinja и JSONPath Transformation в меню Settings -> Transformation.

Нажимаем «+» в правом нижнем углу и выбираем в списке необходимые дополнения.

Добавление MQTT брокера в OpenHAB

Перейдите в Настройки, затем в Что-то, затем в +. MQTT соединение

Мы выбрали, чтобы добавить MQTT шлюз вручную.

Заполняем поля:

  • Unique ID — Уникальный идентификатор в системе, генерируется автоматически, но для понимания лучше заполнить руками.
  • Label — Понятное наименование для пользователей.
  • Location — Место расположения устройства, заполняется произвольно для удобства сортировки и поиска.

Кнопка Show advanced позволяет просмотреть полный доступный список настроек.

Продолжаем заполнять поля, содержащие настройки:

  • Broker Hostname/IP — Адрес MQTT брокера.
  • Broker Port — Порт, на котором работает сервис. Заполняется если отличается от стандартного.
  • Username — Имя пользователя, если установлен.
  • Password — Пароль, если установлен.

Остальные настройки зависят от настроек MQTT брокера. В самом низу нажимаем кнопку «Создать вещь».

Чтобы настроить брокера MQTT в OpenHAB, можно добавить его в файл конфигурации.things.

Создайте файл myhomemqtt.things для сборки openhabian в кaталоге /etc/openhab/things/. (Чтобы получить доступ к каталогу настроек, используйте сочетание клавиш Win+R и следующую команду: \\openhabian_IP_addr\openHAB-conf, Пользователь/Пароль по умолчанию openhabian/openhabian).

Вводим настройки MQTT брокера в созданный файл:

Bridge mqtt:broker:MyMQTTBroker "Home MQTT Broker" @ "ServerRoom" [ host="172.16.18.251", secure=false, username="mqttuser", password="mqttpassword"]

Созданный MQTT брокер появится после того, как файл будет сохранан в разделе Things.

Добавление в OpenHAB устройств подключенных к MQTT брокеру

Реле Sonoff Basic, прошитое программным обеспечением Tasmota и подключенное к MQTT брокеру, необходимо подключить к OpenHAB. В статье: Прошивка Tasmota в реле Sonoff Basic и интеграция в Home Assistant подробно описано, как подключить реле Sonoff Basic к MQTT Broker.

В OpenHAB переходим Settings -> Things -> + -> MQTT Binding, внизу в разделе Add Manually выбираем Generic MQTT Thing.

Мы должны заполнить поля Unique ID, Label и Location или оставить их незаполненными по умолчанию. Выбираем добавленный ранее MQTT Broker в поле Parent Bridge.

Кнопка Show advanced позволяет просмотреть полный доступный список настроек. Мы должны заполнить поля:

  • Availability Topic — Топик отображающий доступность устройства. Для устройств на прошивке Tasmota обычно выглядит как tele/tasmota_XXXXXX/LWT, где XXXXXX последние шесть символов ID устройства.
  • Device Available Payload — Значение топика, когда устройство доступно. В данном случае значение будет равно Online.
  • Device Unavailable Payload — Значение топика, когда устройство не доступно. В данном случае значение будет равно Offline.

MQTT Explorer может быть использован для просмотра топиков и параметров MQTT сервера.

Нажимаем кнопку «Создать вещь». При успешном добавлении добавленное реле появится со статусом ONLINE в разделе Settings -> Things.

Мы переходим в добавленное устройство, вкладка Каналы. Чтобы добавить новый канал для управления реле, нажмите кнопку «Добавить канал». Мы настроим канал:

  • Channel Identifier — Уникальный идентификатор канала в системе, заполняется без пробелов.
  • Label — Понятное наименование канала для пользователей.
  • Channel type — Тип канала, в данном случае On/Off Switch.
  • MQTT State Topic — Топик текущего состояния канала. В данном случае stat/tasmota_XXXXXX/POWER.
  • MQTT Command Topic — Топик в который отправляются команды управления — cmnd/tasmota_XXXXXX/POWER.
  • Custom On/Open Value — Значение присваиваемое в командном топике для включения реле — ON.
  • Custom Off/Closed Value — Значение присваиваемое в командном топике для отключения реле — OFF.

Кнопка Create используется для добавления нового канала устройства.

Добавляем устройство в Semantic Model кнопкой Add Equipment to Model, там же создадим Items для управления созданным каналом.

В разделе оборудования заполните поля:

  • Name — Уникальный идентификатор в системе.
  • Label — Понятное наименование для пользователей.
  • Category — Категория.
  • Semantic Class — Класс семантической модели устройств, в OpenHAB все устройства поделены по таким классам.

В разделе Channels выделяем созданный ранее канал и заполняем поля аналогично разделу Equipment. Добавляем устройство нажав кнопку Add to Model.

Проверьте работоспособность реле. Выберите Параметры, Предметы, Устройство, Каналы. Откройте канал и найдите созданный предмет.

Чтобы проверить работу реле, нажимайте один переключатель. В логе появится следующее:

Как выглядит вариант добавления устройства в конфигурационный файл?

Открываем файл.thing, в котором указана конфигурация MQTT брокера. Затем добавляем устройство, а также топик, показывающий доступность устройства и канал управления с соответствующими топиками. MQTT Explorer также используется для получения данных.

Bridge mqtt:broker:MyMQTTBroker "Home MQTT Broker" @ "ServerRoom" [ host="172.16.18.251", secure=false, username="mqttuser", password="mqttpassword"] { Thing mqtt:topic:D8F15BB29XXX "sonoff_relay" @ "Room" [ availabilityTopic="tele/tasmota_B29XXX/LWT", payloadAvailable="Online", payloadNotAvailable="Offline" ] { Channels: Type switch : PowerSwitch [ stateTopic="stat/tasmota_B29XXX/POWER", commandTopic="cmnd/tasmota_B29XXX/POWER", on="ON", off="OFF" ] } }

Осталось добавить компонент. Открываем каталог items и создаем файл mqtt.items. Добавляем следующее:

Group sonoffrelay "Реле Sonoff" (Room) ["LightStripe"] Switch sonoffrelay_OnOffSwitch "On/Off Switch" (sonoffrelay) ["Point"] { channel="mqtt:topic:D8F15BB29XXX:PowerSwitch" }

Восстановление и проверка работоспособности

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

Если с первого раза что-то не работает, не расстраивайтесь; обычно проблемы связаны с небольшими ошибками в названиях топиков или настройках подключения к брокеру, и эти ошибки обычно решаются быстро.

Когда вы настроите базовую привязку, вы получите огромные возможности, такие как возможность объединять несколько устройств в одном сценарии, создавать сложную автоматизацию и управлять всем домом с одной удобной панели. Это тот фундамент, который превращает набор умных устройств в по-настоящему слаженную и умную систему.

Поделиться с друзьями
Алексей Волков

Инженер систем автоматизации. Более 8 лет проектирую и внедряю системы умного дома для жилых и коммерческих объектов.

Оцените автора
Добавить комментарий