Complete configuration for openHAB using either the MQTT 1.x or Garadget 1.x bindings. If you had both transports set up in your Garadget, you could have both paths set up to control your Garadget, in case the Particle Cloud failed, for example.
Denis, please don’t incompatibly change the topics that the Garadget subscribes and publishes to!
Thanks,
John
items/garadget-binding.items
:
// Using the Garadget binding and Particle REST API:
// The only thing to change for your setup is 330048000XXXXXXXXXX13337
String name "Garage Door [%s]" <rollershutter> (MainDoor) { garadget="<[330048000XXXXXXXXXX13337#name]" }
String doorStatus_status "Status [%s]" <garagedoor> (MainDoor) { garadget="<[330048000XXXXXXXXXX13337#doorStatus_status]" }
String doorStatus_time "Last Change [%s ago]" <clock> (MainDoor) { garadget="<[330048000XXXXXXXXXX13337#doorStatus_time]" }
// Send the doorState item commands like ZERO, HUNDRED, UP, DOWN, ON, OFF, STOP, or "open", "close" or "stop".
Rollershutter doorState "Control" <rollershutter> (MainDoor) { garadget=">[330048000XXXXXXXXXX13337#setState],<[330048000147343
433313337#doorStatus_status]" }
Number doorStatus_sensor "Reflection [%d %%]" <sun> (MainDoor) { garadget="<[330048000XXXXXXXXXX13337#doorStatus_sensor]" }
Number doorConfig_srt "Threshold [%d %%]" <battery> (MainDoor) { garadget="<[330048000XXXXXXXXXX13337#doorConfig_srt]" }
Number doorStatus_signal "Signal [%d dB]" <battery> (MainDoor) { garadget="<[330048000XXXXXXXXXX13337#doorStatus_signal]" }
Switch connected "Connected [%s]" (MainDoor) { garadget="<[330048000XXXXXXXXXX13337#connected]" }
items/mqtt-1x-binding.items
:
// Using the MQTT 1.x binding:
// The only thing to change for your setup is Home
String doorStatus_status "Status [%s]" <garagedoor> (MainDoor) { mqtt="<[broker:garadget/Home/status:state:JSONPATH($.status)]" }
String doorStatus_time "Last Change [%s ago]" <clock> (MainDoor) { mqtt="<[broker:garadget/Home/status:state:JSONPATH($.time)]" }
Switch getConfig "Get Config" (MainDoor) { mqtt=">[broker:garadget/Home/command:command:*:get-config" }
Switch getStatus "Get Status" (MainDoor) { mqtt=">[broker:garadget/Home/command:command:*:get-status" }
// Send the doorState item commands like ZERO, HUNDRED, UP, DOWN, ON, OFF, STOP, or "open", "close" or "stop".
Rollershutter doorState "Control" <rollershutter> (MainDoor) { mqtt=">[broker:garadget/Home/command:command:*:MAP(garadget.map)],<[broker:garadget/Home/status:state:MAP(garadget.map)]" }
Number doorStatus_sensor "Reflection [%d %%]" <sun> (MainDoor) { mqtt="<[broker:garadget/Home/status:state:JSONPATH($.sensor)]" }
Number doorConfig_srt "Threshold [%d %%]" <battery> (MainDoor) { mqtt="<[broker:garadget/Home/config:state:JSONPATH($.srt)]" }
Number doorStatus_signal "Signal [%d dB]" <battery> (MainDoor) { mqtt="<[broker:garadget/Home/status:state:JSONPATH($.sensor)]" }
transform/garadget.map
:
open=UP
close=DOWN
stop=STOP
ON=open
UP=open
0=open
OFF=close
DOWN=close
100=close
STOP=stopped
services/mqtt.cfg
example (if using MQTT broker on standard port on mqttbroker.local machine):
broker.url=tcp://mqttbroker.local:1883
services/garadget.cfg
(if using the Garadget binding):
username=your@email.com
password=yourpassword