mqtt 2.4 binding (openhab)

openHAB - a vendor and technology agnostic open source automation software for your home.
Если вы так же как и я страдаете от нехватки нормальной документации в openhab (та что есть в комплетке идет с ошибками), но при этом преисполнены оптимизма переехать на новую архитектуру mqtt биндинга в openhab (до релиза 2.4 там использовался legacy binding от версии 1.x), то вот вам небольшой пример конфигурации на примере температурных датчиков. Мне его очень не хватало (также как и опыта в openhab в целом), чтобы подсмотреть и использовать в качестве шпаргалки. По-хорошему, дождаться бы версии 2.5, там исправлены какие то баги, но я был слишком нетерпелив чтобы ждать. Надеюсь окажется полезным.

P.$.: картинка для привлечения внимания.


Было (версия 2.3):

mqtt.cfg:
mqtt:broker.url=tcp://XXX:1883
mqtt:broker.clientId=openhab
mqtt:broker.retain=true

items:
Number GF_LivingRoom_Temperature "Температура [%.1f °C]" <temperature> (GF_LivingRoom, gTemperature) {mqtt="<[broker:house/temp/0e82240a0000:state:default]"}


Стало (версия 2.4)


things (mqtt.conf в том виде, в котором он применялся раньше больше не нужен):
Bridge mqtt:broker:myUnsecureBroker [ host="XXX",secure=false ]
{
Thing topic mything {
Channels:
Type number : GF_LivingRoom_Temperature "LivingRoom temperature" [ stateTopic="house/temp/0e82240a0000" ]
}
}


items, соответственно:
Number GF_LivingRoom_Temperature "Температура [%.1f °C]" <temperature> (GF_LivingRoom, gTemperature) {channel="mqtt:topic:myUnsecureBroker:mything:GF_LivingRoom_Temperature"}


И для проверки в логах /var/log/openhab2/events.log:

2018-12-24 20:58:13.791 [GroupItemStateChangedEvent] - gTemperature changed from 25.56 to 25.26 through GF_LivingRoom_Temperature

Так как управлять датчиками температуры бессмысленно,  то commandTopic в things опущен. Иначе пришлось бы и его тащить, а возможно еще и js или jsonpath преобразования. В моем случае я сам шлю данные в mqtt, поэтому ничего этого не требуется.

Comments