Hi
I’ve found a way to record actual device usage (for any given time period) and store it as a sequence for playback as Virtual Occupancy.
Is anyone interested?
Thanks for the interest. @KidSquid @opus @glhopital
I’m using a Sequence recorder in NodeRed, monitoring all the events I want to capture from openHAB2, for 4000 events or 18 hours (whichever occurs first)
The capture is saved to a text file for archiving and so that I can edit it and paste the file into an Inject or Change Node. (the later being if I want an openHAB2 Item to load a sequence)
As well as being injected into the player node.
(remove the Wire between the recorder and the player, if you don’t want to inject the newly recorded sequence straight away and keep the two processes isolated)
The Player node can be started at a similar time on another day to imitate occupancy.
There’s no reason why multiple days could not be captured and each sequence be injected into the player node at will.
(with the same sequence name or different, just remember to adjust the Play, Stop & Remove nodes accordingly)
(Or capture one day and edit the resulting file’s delay times)
So far…
I have captured
- OnOff
- HSL
- Numbers (Percentages, Target Temperatures, Scene Choices, Volumes etc)
- Strings (Heating Modes, URLs etc)
According to the sequencer how to, there is no limit as to what each Step (Sequencer Topic) state can be, so URLs, Radio station, Sound Files paths etc etc could be played back through the course of the sequence.
There is a very cunning way to get the sequence to loop, or retriggered.
I am going to be using this to create animated scenes. - (I’ll post another How-To for that)
Here are the details…
I’m using NodeRed, with this sequencer node set. -
node-red-contrib-sequencer
You will see from the following that I needed to create an openHAB IN node for each Item I wanted to capture the value from, with it’s “Item name” moved to the NodeRed Topic and the State remaining in the main Payload.
Once a record session is completed, the sequence is automatically loaded into the player node.
The output of the Player node is then filtered so that the Payload of each “Topic” (Item name) is send out to a corresponding openHAB OUT node.
The hardest part of this is painstakingly creating the IN Nodes, Topic Filter & OUT nodes correctly.
My example sequencer looks like this -
Here is the formatted Flow if you want to simply paste it in and play around with it.
Record_House_Events.nodered_flow.txt (28.2 KB)
[
{
"id": "f8c32e2f.83358",
"type": "debug",
"z": "c937c2f9.a66fc",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 990,
"y": 680,
"wires": []
},
{
"id": "26975a3.ca968a6",
"type": "recorder",
"z": "c937c2f9.a66fc",
"name": "Recorder node",
"maxElements": "4000",
"maxDuration": "1080",
"startImmediately": false,
"x": 800,
"y": 640,
"wires": [
[
"f8c32e2f.83358",
"a8455fd3.b132c",
"73afea67.eebac4"
]
]
},
{
"id": "e47bc23d.bf4e",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "payload -> start",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "start",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 740,
"y": 260,
"wires": [
[
"26975a3.ca968a6"
]
]
},
{
"id": "25273c9.7f1c4c4",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "payload -> stop",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "stop",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 740,
"y": 360,
"wires": [
[
"26975a3.ca968a6"
]
]
},
{
"id": "41e4a750.58e6a8",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Stop Recording MyRecord1",
"topic": "",
"payload": "MyRecord1",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": "",
"x": 500,
"y": 360,
"wires": [
[
"25273c9.7f1c4c4"
]
]
},
{
"id": "76e9606b.4840e",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Start Recording MyRecord1",
"topic": "",
"payload": "MyRecord1",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": "",
"x": 500,
"y": 260,
"wires": [
[
"e47bc23d.bf4e"
]
]
},
{
"id": "6cc3d13c.2d976",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Dining Room Light",
"controller": "deaa963.282a968",
"itemname": "DiningRoom",
"x": 110,
"y": 560,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "87687cf8.9fd63",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "Filter unwanted properties",
"rules": [
{
"t": "delete",
"p": "topic",
"pt": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 490,
"y": 620,
"wires": [
[
"f86484f7.3d09e8"
]
]
},
{
"id": "f86484f7.3d09e8",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "",
"rules": [
{
"t": "move",
"p": "item",
"pt": "msg",
"to": "topic",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 520,
"y": 680,
"wires": [
[
"26975a3.ca968a6"
]
]
},
{
"id": "eab74a39.2a9548",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "TV Room Light",
"controller": "deaa963.282a968",
"itemname": "TVRoomMainLight",
"x": 100,
"y": 500,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "a8455fd3.b132c",
"type": "player",
"z": "c937c2f9.a66fc",
"name": "Player node",
"runOnLoad": false,
"x": 1310,
"y": 1540,
"wires": [
[
"49e10b4b.20a654",
"82e12cc7.073"
]
]
},
{
"id": "49e10b4b.20a654",
"type": "debug",
"z": "c937c2f9.a66fc",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 1490,
"y": 1540,
"wires": []
},
{
"id": "82e12cc7.073",
"type": "switch",
"z": "c937c2f9.a66fc",
"name": "Divide up Topics",
"property": "topic",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "DiningRoom",
"vt": "str"
},
{
"t": "eq",
"v": "KitchenMainLX",
"vt": "str"
},
{
"t": "eq",
"v": "TVRoomMainLight",
"vt": "str"
},
{
"t": "eq",
"v": "HallwayLight",
"vt": "str"
},
{
"t": "eq",
"v": "LoungeMainLight",
"vt": "str"
},
{
"t": "eq",
"v": "KitchenMainLX",
"vt": "str"
},
{
"t": "eq",
"v": "ConservatoryLX",
"vt": "str"
},
{
"t": "eq",
"v": "DSToilet",
"vt": "str"
},
{
"t": "eq",
"v": "ToiletUP",
"vt": "str"
},
{
"t": "eq",
"v": "LandingLX",
"vt": "str"
},
{
"t": "eq",
"v": "MasterBedroomLight",
"vt": "str"
},
{
"t": "eq",
"v": "bathroomcolour",
"vt": "str"
},
{
"t": "eq",
"v": "bath_WHT",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 13,
"x": 1200,
"y": 660,
"wires": [
[
"54421636.46f6f8"
],
[
"ff182d87.f547f"
],
[
"b5d924a8.73a588"
],
[
"e1773030.75a3"
],
[
"b044f185.3ba4c"
],
[
"4e5249c6.cfb658"
],
[
"b4f5cbeb.f12878"
],
[
"cb4f5099.a289c"
],
[
"96ee0f10.8a961"
],
[
"5a6ab80e.04eb68"
],
[
"e366b6b.e515a48"
],
[
"f7bbcd8f.7dd74"
],
[
"6d6c9795.4a2438"
]
]
},
{
"id": "6abbd877.646e18",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "payload -> remove",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "remove",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 930,
"y": 1600,
"wires": [
[
"a8455fd3.b132c"
]
]
},
{
"id": "f2d25053.6daab",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "payload -> stop",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "stop",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 920,
"y": 1560,
"wires": [
[
"a8455fd3.b132c"
]
]
},
{
"id": "84c6f21.4309a1",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "payload -> pause",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "pause",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 930,
"y": 1520,
"wires": [
[
"a8455fd3.b132c"
]
]
},
{
"id": "128255d1.25ad7a",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "payload -> play",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "play",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 920,
"y": 1480,
"wires": [
[
"a8455fd3.b132c"
]
]
},
{
"id": "86e4e538.cec068",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "payload -> sequence",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "sequence",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 940,
"y": 1220,
"wires": [
[
"a8455fd3.b132c"
]
]
},
{
"id": "4d50ddb3.1efdb4",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Enumerate",
"topic": "",
"payload": "",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"x": 680,
"y": 1720,
"wires": [
[
"28f0a3c7.610c5c"
]
]
},
{
"id": "28f0a3c7.610c5c",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "payload -> enumerate",
"rules": [
{
"t": "move",
"p": "payload",
"pt": "msg",
"to": "enumerate",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 940,
"y": 1720,
"wires": [
[
"a8455fd3.b132c"
]
]
},
{
"id": "37c92aa5.9b02e6",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Play - A",
"topic": "",
"payload": "MyRecord1",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": "",
"x": 670,
"y": 1480,
"wires": [
[
"128255d1.25ad7a"
]
]
},
{
"id": "e67207f2.b08ff8",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Pause - A",
"topic": "",
"payload": "MyRecord1",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": "",
"x": 680,
"y": 1520,
"wires": [
[
"84c6f21.4309a1"
]
]
},
{
"id": "bd350ed9.5f61c",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Stop - A",
"topic": "",
"payload": "MyRecord1",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": "",
"x": 680,
"y": 1560,
"wires": [
[
"f2d25053.6daab"
]
]
},
{
"id": "3aa126c4.91639a",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Remove - A",
"topic": "",
"payload": "MyRecord1",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": "",
"x": 690,
"y": 1600,
"wires": [
[
"6abbd877.646e18"
]
]
},
{
"id": "54421636.46f6f8",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Dining Room",
"controller": "deaa963.282a968",
"itemname": "DiningRoom",
"topic": "ItemCommand",
"payload": "",
"x": 1570,
"y": 360,
"wires": [
[]
]
},
{
"id": "ff182d87.f547f",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Kitchen Main Light",
"controller": "deaa963.282a968",
"itemname": "KitchenMainLX",
"topic": "ItemCommand",
"payload": "",
"x": 1590,
"y": 420,
"wires": [
[]
]
},
{
"id": "b5d924a8.73a588",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "TVRoomMainLight",
"controller": "deaa963.282a968",
"itemname": "TVRoomMainLight",
"topic": "ItemCommand",
"payload": "",
"x": 1590,
"y": 480,
"wires": [
[]
]
},
{
"id": "d9bc945d.3a5ce8",
"type": "file",
"z": "c937c2f9.a66fc",
"name": "",
"filename": "/etc/openhab2/recorded_sequences.nodered",
"appendNewline": true,
"createDir": true,
"overwriteFile": "false",
"encoding": "none",
"x": 490,
"y": 1020,
"wires": [
[
"7e1adfb2.2cbd8"
]
]
},
{
"id": "3b00dad9.7b2d36",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "",
"topic": "Test",
"payload": "",
"payloadType": "date",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 480,
"y": 960,
"wires": [
[
"d9bc945d.3a5ce8"
]
]
},
{
"id": "7e1adfb2.2cbd8",
"type": "debug",
"z": "c937c2f9.a66fc",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": true,
"complete": "true",
"targetType": "full",
"x": 450,
"y": 1080,
"wires": []
},
{
"id": "73afea67.eebac4",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "sequence -> Payload",
"rules": [
{
"t": "move",
"p": "sequence",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 480,
"y": 920,
"wires": [
[
"d9bc945d.3a5ce8"
]
]
},
{
"id": "aac54e88.dd824",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Hallway Light",
"controller": "deaa963.282a968",
"itemname": "HallwayLight",
"x": 92,
"y": 400,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "7f3ce66c.032a58",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Front Room Light",
"controller": "deaa963.282a968",
"itemname": "LoungeMainLight",
"x": 100,
"y": 449,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "af427210.05056",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Kitchen Light",
"controller": "deaa963.282a968",
"itemname": "KitchenMainLX",
"x": 90,
"y": 620,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "582aaa49.ddbb94",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Conservatory Light",
"controller": "deaa963.282a968",
"itemname": "ConservatoryLX",
"x": 110,
"y": 680,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "5aee8cce.2fdb64",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Downstairs Toilet Light",
"controller": "deaa963.282a968",
"itemname": "DSToilet",
"x": 120,
"y": 740,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "dff66dd4.0b5b6",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Upstairs Toilet Light",
"controller": "deaa963.282a968",
"itemname": "ToiletUP",
"x": 110,
"y": 820,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "45ea10eb.d38ff",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Master Bedroom Light",
"controller": "deaa963.282a968",
"itemname": "MasterBedroomLight",
"x": 120,
"y": 940,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "c12d87df.b33ce8",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Landing Light",
"controller": "deaa963.282a968",
"itemname": "LandingLX",
"x": 90,
"y": 880,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "8b8b9b72.93f798",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Bathroom RGB",
"controller": "deaa963.282a968",
"itemname": "bathroomcolour",
"x": 100,
"y": 1000,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "1f323839.c64248",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "Bathroom Wht Light",
"controller": "deaa963.282a968",
"itemname": "Bath_WHT",
"x": 110,
"y": 1060,
"wires": [
[
"87687cf8.9fd63"
],
[]
]
},
{
"id": "e1773030.75a3",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Hallway Light",
"controller": "deaa963.282a968",
"itemname": "HallwayLight",
"topic": "ItemCommand",
"payload": "",
"x": 1570,
"y": 540,
"wires": [
[]
]
},
{
"id": "b044f185.3ba4c",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Front Room Main Light",
"controller": "deaa963.282a968",
"itemname": "LoungeMainLight",
"topic": "ItemCommand",
"payload": "",
"x": 1600,
"y": 580,
"wires": [
[]
]
},
{
"id": "4e5249c6.cfb658",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Kitchen Light",
"controller": "deaa963.282a968",
"itemname": "KitchenMainLX",
"topic": "ItemCommand",
"payload": "",
"x": 1570,
"y": 640,
"wires": [
[]
]
},
{
"id": "b4f5cbeb.f12878",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Conservatory Light",
"controller": "deaa963.282a968",
"itemname": "ConservatoryLX",
"topic": "ItemCommand",
"payload": "",
"x": 1590,
"y": 680,
"wires": [
[]
]
},
{
"id": "cb4f5099.a289c",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Downstairs Toilet Light",
"controller": "deaa963.282a968",
"itemname": "DSToilet",
"topic": "ItemCommand",
"payload": "",
"x": 1600,
"y": 740,
"wires": [
[]
]
},
{
"id": "96ee0f10.8a961",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Upstairs Toilet",
"controller": "deaa963.282a968",
"itemname": "ToiletUP",
"topic": "ItemCommand",
"payload": "",
"x": 1580,
"y": 800,
"wires": [
[]
]
},
{
"id": "5a6ab80e.04eb68",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Landing Light",
"controller": "deaa963.282a968",
"itemname": "LandingLX",
"topic": "ItemCommand",
"payload": "",
"x": 1580,
"y": 860,
"wires": [
[]
]
},
{
"id": "e366b6b.e515a48",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Master Bedroom Light",
"controller": "deaa963.282a968",
"itemname": "MasterBedroomLight",
"topic": "ItemCommand",
"payload": "",
"x": 1600,
"y": 920,
"wires": [
[]
]
},
{
"id": "f7bbcd8f.7dd74",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Bathroom RGB",
"controller": "deaa963.282a968",
"itemname": "bathroomcolour",
"topic": "ItemCommand",
"payload": "",
"x": 1580,
"y": 980,
"wires": [
[]
]
},
{
"id": "6d6c9795.4a2438",
"type": "openhab2-out",
"z": "c937c2f9.a66fc",
"name": "Bathroom White",
"controller": "deaa963.282a968",
"itemname": "Bath_WHT",
"topic": "ItemCommand",
"payload": "",
"x": 1580,
"y": 1040,
"wires": [
[]
]
},
{
"id": "9b298287.ec4f6",
"type": "comment",
"z": "c937c2f9.a66fc",
"name": "Record 4000 steps or 18 hours",
"info": "Adjust the settings of the record node",
"x": 850,
"y": 600,
"wires": []
},
{
"id": "d4056dd9.1f90d",
"type": "comment",
"z": "c937c2f9.a66fc",
"name": "Save the Sequence to a File",
"info": "",
"x": 500,
"y": 860,
"wires": []
},
{
"id": "f9e3002.f878e",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Load Sequence A",
"topic": "",
"payload": "{Sequence String}",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 690,
"y": 1220,
"wires": [
[
"86e4e538.cec068"
]
]
},
{
"id": "bbfecbd5.997748",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Load Sequence B",
"topic": "",
"payload": "{Sequence String}",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 690,
"y": 1260,
"wires": [
[
"86e4e538.cec068"
]
]
},
{
"id": "eddf34df.347748",
"type": "inject",
"z": "c937c2f9.a66fc",
"name": "Load Sequence C",
"topic": "",
"payload": "{Sequence String}",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 690,
"y": 1300,
"wires": [
[]
]
},
{
"id": "dc5ee449.b7c598",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "Play A",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "MyRecord1",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 490,
"y": 1480,
"wires": [
[
"128255d1.25ad7a"
]
]
},
{
"id": "6c998b27.51e494",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "openHAB2 Play A Trigger",
"controller": "",
"itemname": "",
"x": 230,
"y": 1480,
"wires": [
[
"dc5ee449.b7c598"
],
[]
]
},
{
"id": "4bbfc6bd.47bb38",
"type": "change",
"z": "c937c2f9.a66fc",
"name": "Stop A",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "MyRecord1",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 490,
"y": 1560,
"wires": [
[
"f2d25053.6daab"
]
]
},
{
"id": "e7d86249.26b56",
"type": "openhab2-in",
"z": "c937c2f9.a66fc",
"name": "openHAB2 Stop A Trigger",
"controller": "",
"itemname": "",
"x": 230,
"y": 1560,
"wires": [
[
"4bbfc6bd.47bb38"
],
[]
]
},
{
"id": "deaa963.282a968",
"type": "openhab2-controller",
"z": "",
"name": "OpenHAB2 Home",
"protocol": "http",
"host": "127.0.0.1",
"port": "8080",
"path": "",
"username": "",
"password": ""
}
]