Следующим логичным шагом является интеграция устройств, которые обмениваются данными по протоколу 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. Важно правильно настроить брокера, внести элементы в систему и создать каналы для них. Все остальное основано на этом.
Если с первого раза что-то не работает, не расстраивайтесь; обычно проблемы связаны с небольшими ошибками в названиях топиков или настройках подключения к брокеру, и эти ошибки обычно решаются быстро.
Когда вы настроите базовую привязку, вы получите огромные возможности, такие как возможность объединять несколько устройств в одном сценарии, создавать сложную автоматизацию и управлять всем домом с одной удобной панели. Это тот фундамент, который превращает набор умных устройств в по-настоящему слаженную и умную систему.








