# Integrate OPENHAB2 ## MQTT 2 manual setup >=Openhab2.4 You should have a mqtt broker installed (either mosquitto or the OpenHAB2 embedded one) In paper UI * In bindings add the MQTT Things binding * Inbox > MQTT Things binding > Add manualy >MQTT Broker : configure your borker * Inbox > MQTT Things binding > Add manualy >Generic MQTT Thing : select your previously configured broker as a bridge and enter your thing definition (example RF plug, weather station, PIR sensor) * Configuration > Things > "Your thing" : click on + and add one channel for each thing parameter (example for a weather station, you will have one channel for the temperature, one channel for the humidity etc..) * For a state channel define the MQTT topic like this: ## For a mi flora or mi jia temperature : `home/+/BTtoMQTT/C47C9999D1B8` * Click on show more * And add in "Incoming values transformation" `JSONPATH:$.tem` * Click on Save * Repeat for each channels and each things * Configuration > Things > "Your thing" : click on a channel and add 1 or several items per channel defining what you want to display in the sitemap or * Define your items in an item file like this by refering to your mqtt things channels: For a mi flora and mi jia ```java // MI JIA Number humidity "Humidité air[%.1f %%]" {channel="mqtt:topic:dc2222e6:humidite-mijia"} Number temperature "Température[%.1f °C]" {channel="mqtt:topic:dc2222e6:temperature-mijia"} Number battery "Batterie capteur[%.1f %]" {channel="mqtt:topic:dc2222e6:batterie-mijia"} // MI FLORA Number humidity_P "Hygrométrie plante[%.1f %%]" {channel="mqtt:topic:1fb33334:humidite-miflora"} Number temperature_P "Température plante[%.1f °C]" {channel="mqtt:topic:1fb33334:temperature-miflora"} Number fertility_P "Fertilité plante[%.1f uS/cm]" {channel="mqtt:topic:1fb33334:fertilite-miflora"} Number lux_P "Luminiosité plante[%.1f lux]" {channel="mqtt:topic:1fb33334:lux-miflora"} ``` ## For a switch channel, add a channel by choosing the type "On/Off switch" define the MQTT state topic like this: `home/+/433toMQTT` * Click on show more * add in "Incoming values transformation" `JSONPATH:$.value` * define the command topic like this: `home/+/commands/MQTTto433` * add the value corresponding to ON state and to OFF state 1312081 1312084 * Click on Save * Repeat for each channels and each things * Configuration > Things > "Your thing" : click on a channel and add 1 or several switch per channel or * Define your items in an item file like this by refering to your mqtt thing channel: `Switch OMGSwitch "Prise 1" {channel="mqtt:topic:08998877:Power1"}` # Presence detection (from @rickitaly) in thing file: ```java Thing mqtt:topic:omgentrance (mqtt:broker:localBroker) { Channels: Type string : blepresence "People Presence" [ stateTopic="home/home_presence/OpenMQTTGatewayEntrance"] } ``` in item file ```java String OMG_BLE_Entrance "BLE Entrance Detector" { channel="mqtt:topic:omgentrance:blepresence" } Switch Presence_Keys_Rick "Rick's Keys" (People, gKeys) {expire="240s,OFF"} ``` In rule file: ```java 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 ```