openHab, mqtt 2.4 and JSON

#1

Hi everybody!
I was testing new JSON publish functionality but it looks much more complex to get things out of OMG to openHAB …
I.E. for BLE detection now i have only one topic that publish information about all devices, how did you manage to update different items from the same topic, looking at payload? I think it can be done with combination of JS and JSON transformation but that’s really not “out of the box” and much more complex than before…
Any hint?

#2

Hi,

It seems that OpenHAB 2.4 implement auto discovery following home assistant “way”, did you try to activate Zmqttdiscovery in user_config.h and see if OpenHAB2.4 discover the devices?

#3

Hi, no i didn’t try because i prefer coding in OH rather than using UI for the definition of things… flexibility of files is sooo much better! :slight_smile:

#4

And did you succeeded by coding?
If yes it would be nice to share your codes

#5

That’s my aim for tomorrow… I’ll try and if I succeed I will share :slight_smile:

#6

Maybe it’s not the most elegant, but this way it works for my purpose to detect presence.

in thing file:

Thing mqtt:topic:omgentrance (mqtt:broker:localBroker) {
Channels:
    Type string : blepresence "People Presence"  [ stateTopic="home/home_presence/OpenMQTTGatewayEntrance"]
}

in item file

String OMG_BLE_Entrance "BLE Entrance Detector" { channel="mqtt:topic:omgentrance:blepresence" }
Switch   Presence_Keys_Rick      "Rick's Keys"       <keyring>      (People, gKeys)        {expire="240s,OFF"}

and in rule file:

rule "BLE Presence Detector"
when
Item OMG_BLE_Entrance received update
then
val String msg = (OMG_BLE_Entrance.state as StringType).toString
val String id  = transform("JSONPATH", "$.id", msg).toString
if(id == "xx:xx:xx:xx:xx:xx")
    Presence_Keys_Rick.postUpdate(ON)
end

This way, when i get mqtt update i turn on the Presence_Keys_Rick switch.
The item has an expire at 240s, that means if no udpate coming from OMG for 4 minutes i turn off presence.
Let me know if i can improve :wink:

#7

Would it be possible to use the code syntax “preformatted text” to get a better visibility of your rules please?

#8

sorry, i hope is more clear and useful now :wink:

1 Like
#9

perfect, thanks for this I will add it to the wiki as an example

#10

thanks to you for the effort!
i am sure it will be much better when it will be possible to add filters and publish just some mac and avoid lots of messages :slight_smile:

#11

For info the wiki has been updated with new examples of sensors and switch.