[{"id":"5ebe538b.d0566c","type":"tab","label":"ZWave Admin","disabled":false,"info":""},{"id":"1432937f.5cac0d","type":"inject","z":"5ebe538b.d0566c","name":"Init","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":true,"onceDelay":"10","x":210,"y":1140,"wires":[["1091574d.8671a9"]]},{"id":"1091574d.8671a9","type":"change","z":"5ebe538b.d0566c","name":"refresh","rules":[{"t":"set","p":"selectedDeviceId","pt":"flow","to":"-1","tot":"num"},{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":1140,"wires":[["3d1885b.87c237a","76664195.1b278","2277631f.c9915c","c9bd1554.77d5f8","708d5ca2.ba2ef4"]]},{"id":"31094507.afa1ba","type":"ui_dropdown","z":"5ebe538b.d0566c","name":"ZWaveDevices","label":"Gerät:","tooltip":"Liste der anzubinden Geräte","place":"Bitte auswählen","group":"ec008e31.b8c6a","order":9,"width":"5","height":"1","passthru":true,"options":[],"payload":"","topic":"","x":600,"y":1200,"wires":[["9ab245e8.3728f8"]]},{"id":"708d5ca2.ba2ef4","type":"function","z":"5ebe538b.d0566c","name":"setOptions","func":"var dev = flow.get(\"devices\");\nmsg.options = [];\nfor (let i=0; i= 0) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n msg.payload = {};\n msg.payload.args = [];\n msg.payload.args.push(nodeId);\n return msg;\n}","outputs":1,"noerr":0,"x":870,"y":1620,"wires":[["5882180c.421098"]]},{"id":"5882180c.421098","type":"zwave-out","z":"5ebe538b.d0566c","name":"zwave out","controller":"5e58fc47.9d45f4","x":1440,"y":1500,"wires":[[]]},{"id":"4b9a31ab.3543d","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveHealNetwork","group":"ec008e31.b8c6a","order":4,"width":"0","height":"0","passthru":false,"label":"Netzwerk heilen","tooltip":"Netzwerk: Heilt das Netzwerk durch Aufforderungen, die Nachbargeräte neu zu entdecken. Dieser Prozess dauert einige Minuten und sollte abgewartet werden!","color":"","bgcolor":"","icon":"healing","payload":"{}","payloadType":"json","topic":"healNetwork","x":260,"y":960,"wires":[["5882180c.421098"]]},{"id":"99ac1a89.e838c8","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveRequestNodeState","group":"ec008e31.b8c6a","order":32,"width":"3","height":"1","passthru":false,"label":"Status","tooltip":"Knoten: Fordert die dynamischen Werte eines Knotens neu an.","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"requestNodeState","x":270,"y":1620,"wires":[["edfe2287.67d7a"]]},{"id":"4720b545.2f68cc","type":"ui_button","z":"5ebe538b.d0566c","d":true,"name":"ZWaveRequestNodeDynamic","group":"ec008e31.b8c6a","order":33,"width":"3","height":"1","passthru":false,"label":"Dynamisch","tooltip":"Knoten: Fordert nur die dynamischen Werte eines Knotens neu an.","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"requestNodeDynamic ","x":290,"y":1660,"wires":[["edfe2287.67d7a"]]},{"id":"9536db5f.074548","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveGetAssociations","group":"ec008e31.b8c6a","order":23,"width":"4","height":"1","passthru":false,"label":"Assoziationen?","tooltip":"Knoten: Zeigt die in einer Associationsgruppe zugeordneten Knoten an.","color":"","bgcolor":"","icon":"compare_arrows","payload":"","payloadType":"str","topic":"getAssociations","x":270,"y":1900,"wires":[["56eda664.703748"]]},{"id":"ef7e4b52.bd2608","type":"ui_toast","z":"5ebe538b.d0566c","position":"prompt","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"GetGroup","x":620,"y":1900,"wires":[["6854bdd5.ec0a44"]]},{"id":"56eda664.703748","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"Gruppe (siehe Geräteanleitung):","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":1900,"wires":[["ef7e4b52.bd2608"]]},{"id":"6854bdd5.ec0a44","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let selDev = flow.get(\"selectedDeviceId\");\nlet group = (msg.payload===\"OK\")?1:parseInt(msg.payload);\nif (selDev >= 0 && !isNaN(group)) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n msg.payload = {};\n msg.payload.args = [];\n msg.payload.args.push(nodeId);\n msg.payload.args.push(group);\n return msg;\n}","outputs":1,"noerr":0,"x":770,"y":1900,"wires":[["e8d004f7.669c58"]]},{"id":"e8d004f7.669c58","type":"zwave-out","z":"5ebe538b.d0566c","name":"zwave out","controller":"5e58fc47.9d45f4","x":920,"y":1900,"wires":[["140b4aee.938d25"]]},{"id":"140b4aee.938d25","type":"function","z":"5ebe538b.d0566c","name":"getRes","func":"let res = \"\";\nfor (let i=0; i0) res+= \", \";\n res+= msg.payload.result[i];\n}\nmsg.payload = \"Knoten \" + msg.payload.args[0] + \" Gruppe \" + msg.payload.args[1] + \": \"\nmsg.payload+= (res===\"\")?\"Kein Knoten\":\"Knoten \" + res;\nreturn msg;","outputs":1,"noerr":0,"x":1080,"y":1900,"wires":[["939dc708.b474f8"]]},{"id":"939dc708.b474f8","type":"ui_toast","z":"5ebe538b.d0566c","position":"dialog","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"","raw":false,"topic":"","name":"ResultGetAssociations","x":1280,"y":1900,"wires":[[]]},{"id":"1ae6fb60.5190c5","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveHasNodeFailed","group":"ec008e31.b8c6a","order":26,"width":"4","height":"1","passthru":false,"label":"Fehlerhaft?","tooltip":"Knoten: Prüft, ob der Controller einen Fehler beim Knoten vermutet.","color":"","bgcolor":"","icon":"bug_report","payload":"","payloadType":"str","topic":"hasNodeFailed","x":260,"y":1700,"wires":[["edfe2287.67d7a"]]},{"id":"f9ca93c8.caea2","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveRemoveNode","group":"ec008e31.b8c6a","order":2,"width":"3","height":"1","passthru":false,"label":"Knoten","tooltip":"Netzwerk: Startet den Entfernungsprozess für einen Knoten. Anschließend muss das betroffene Gerät entsprechend betätigt werden!","color":"","bgcolor":"","icon":"remove","payload":"{\"prependHomeId\": true}","payloadType":"json","topic":"removeNode","x":260,"y":1040,"wires":[["5882180c.421098","47abd8f1.5f0fe8"]]},{"id":"c2e75a58.f0c7c8","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveRemoveFailedNode","group":"ec008e31.b8c6a","order":28,"width":"1","height":"1","passthru":false,"label":"","tooltip":"Knoten: Entfernt einen fehlerhaften Knoten aus dem Netzwerk. Vorher sollte geprüft werden, ob der Knoten wirklich fehlerhaft ist!","color":"","bgcolor":"","icon":"remove","payload":"","payloadType":"str","topic":"removeFailedNode","x":280,"y":1740,"wires":[["dfae3fa2.ac21e"]]},{"id":"e96575db.de3a98","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveAddNode","group":"ec008e31.b8c6a","order":1,"width":"3","height":"1","passthru":false,"label":"Knoten","tooltip":"Netzwerk: Startet den Hinzufügungsprozess für einen Knoten. Anschließend muss das betroffene Gerät entsprechend betätigt werden!","color":"","bgcolor":"","icon":"add","payload":"{\"prependHomeId\": true}","payloadType":"json","topic":"addNode","x":240,"y":1000,"wires":[["5882180c.421098","47abd8f1.5f0fe8"]]},{"id":"80deb4c5.dfeaa8","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveCancelControllerCommand","group":"ec008e31.b8c6a","order":3,"width":"0","height":"0","passthru":false,"label":"Befehl abbrechen","tooltip":"Netzwerk: Beendet jeden laufenden Befehl, der auf dem Controller läuft.","color":"","bgcolor":"","icon":"cancel","payload":"{}","payloadType":"json","topic":"cancelControllerCommand","x":300,"y":1080,"wires":[["5882180c.421098"]]},{"id":"48a41e78.74c85","type":"ui_button","z":"5ebe538b.d0566c","name":"Refresh","group":"ec008e31.b8c6a","order":10,"width":"1","height":"1","passthru":false,"label":"","tooltip":"Aktualisiert die Geräteliste in der Auswahlliste.","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"","x":220,"y":1180,"wires":[["1091574d.8671a9"]]},{"id":"47abd8f1.5f0fe8","type":"delay","z":"5ebe538b.d0566c","name":"Timer 30s","pauseType":"delay","timeout":"30","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":780,"y":1020,"wires":[["a9e6de5f.cfaa6"]]},{"id":"a9e6de5f.cfaa6","type":"change","z":"5ebe538b.d0566c","name":"ZWaveCancelControllerCommand","rules":[{"t":"set","p":"topic","pt":"msg","to":"cancelControllerCommand","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":1020,"y":1020,"wires":[["5882180c.421098"]]},{"id":"45c77826.b3ba28","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveAddAssociation","group":"ec008e31.b8c6a","order":24,"width":"1","height":"1","passthru":false,"label":"","tooltip":"Knoten: Fügt einen Knoten einer Assoziationsgruppe hinzu.","color":"","bgcolor":"","icon":"add","payload":"","payloadType":"str","topic":"addAssociation","x":260,"y":1940,"wires":[["be0c8425.30beb8"]]},{"id":"be0c8425.30beb8","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"Gruppe (siehe Geräteanleitung):","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":1940,"wires":[["2c3f9a19.e64e06"]]},{"id":"2c3f9a19.e64e06","type":"ui_toast","z":"5ebe538b.d0566c","position":"prompt","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"GetGroup","x":600,"y":1940,"wires":[["3a343a65.51b1c6"]]},{"id":"3a343a65.51b1c6","type":"function","z":"5ebe538b.d0566c","name":"setGroup","func":"let selDev = flow.get(\"selectedDeviceId\");\nlet group = (msg.payload===\"OK\")?1:parseInt(msg.payload);\nif (selDev >= 0 && !isNaN(group)) {\n msg.group = group;\n return msg;\n}","outputs":1,"noerr":0,"x":760,"y":1940,"wires":[["e665e049.16418"]]},{"id":"e665e049.16418","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"ID des aufzunehmenden Knotens:","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":910,"y":1940,"wires":[["d3ce7aec.998d98"]]},{"id":"d3ce7aec.998d98","type":"ui_toast","z":"5ebe538b.d0566c","position":"prompt","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"GetNodeId","x":1070,"y":1940,"wires":[["bd44fff7.ab572"]]},{"id":"bd44fff7.ab572","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let selDev = flow.get(\"selectedDeviceId\");\nlet newNodeId = (msg.payload===\"OK\")?1:parseInt(msg.payload);\nif (selDev !== \"\" && !isNaN(newNodeId)) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n msg.payload = {};\n msg.payload.args = [];\n msg.payload.args.push(nodeId);\n msg.payload.args.push(msg.group);\n msg.payload.args.push(newNodeId);\n return msg;\n}","outputs":1,"noerr":0,"x":1230,"y":1940,"wires":[["5882180c.421098"]]},{"id":"36dab243.4d7b6e","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveRemoveAssociation","group":"ec008e31.b8c6a","order":25,"width":"1","height":"1","passthru":false,"label":"","tooltip":"Knoten: Entfernt einen Knoten aus einer Assoziationsgruppe.","color":"","bgcolor":"","icon":"remove","payload":"","payloadType":"str","topic":"removeAssociation","x":280,"y":1980,"wires":[["42bf8877.30be68"]]},{"id":"42bf8877.30be68","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"Gruppe (siehe Geräteanleitung):","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":1980,"wires":[["31e10875.9376d8"]]},{"id":"31e10875.9376d8","type":"ui_toast","z":"5ebe538b.d0566c","position":"prompt","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"GetGroup","x":640,"y":1980,"wires":[["90d965c7.7edf58"]]},{"id":"90d965c7.7edf58","type":"function","z":"5ebe538b.d0566c","name":"setGroup","func":"let selDev = flow.get(\"selectedDeviceId\");\nlet group = (msg.payload===\"OK\")?1:parseInt(msg.payload);\nif (selDev >= 0 && !isNaN(group)) {\n msg.group = group;\n return msg;\n}","outputs":1,"noerr":0,"x":800,"y":1980,"wires":[["ce2364de.689038"]]},{"id":"ce2364de.689038","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"ID des zu entfernenden Knotens:","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":950,"y":1980,"wires":[["15b1d297.8247ad"]]},{"id":"15b1d297.8247ad","type":"ui_toast","z":"5ebe538b.d0566c","position":"prompt","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"GetNodeId","x":1110,"y":1980,"wires":[["2ec6a5eb.7a362a"]]},{"id":"2ec6a5eb.7a362a","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let selDev = flow.get(\"selectedDeviceId\");\nlet newNodeId = (msg.payload===\"OK\")?1:parseInt(msg.payload);\nif (selDev !== \"\" && !isNaN(newNodeId)) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n msg.payload = {};\n msg.payload.args = [];\n msg.payload.args.push(nodeId);\n msg.payload.args.push(msg.group);\n msg.payload.args.push(newNodeId);\n return msg;\n}","outputs":1,"noerr":0,"x":1270,"y":1980,"wires":[["5882180c.421098"]]},{"id":"56cd4f7e.42a0f","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveGetPollInterval ","group":"ec008e31.b8c6a","order":5,"width":"4","height":"1","passthru":false,"label":"Intervall?","tooltip":"Netzwerk: Liefert die Zeit zwischen den Lieferungen der Status in ms (Poll).","color":"","bgcolor":"","icon":"access_time","payload":"{}","payloadType":"json","topic":"getPollInterval","x":260,"y":920,"wires":[["f322da5b.bf4268"]]},{"id":"f322da5b.bf4268","type":"zwave-out","z":"5ebe538b.d0566c","name":"zwave out","controller":"5e58fc47.9d45f4","x":460,"y":920,"wires":[["f6632ce2.da48a"]]},{"id":"a1b0cd0f.69266","type":"ui_toast","z":"5ebe538b.d0566c","position":"dialog","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"","raw":false,"topic":"","name":"PollInterval","x":770,"y":920,"wires":[[]]},{"id":"f6632ce2.da48a","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"\"Zeitintervall: \" & payload.result & \" ms\"","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":610,"y":920,"wires":[["a1b0cd0f.69266"]]},{"id":"69a0129f.01cc3c","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveIsPolled","group":"ec008e31.b8c6a","order":29,"width":"4","height":"1","passthru":false,"label":"Statuslieferungen?","tooltip":"Instanz: Liefert zurück, ob die regelmäßigen Statuslieferungen (Poll) aktiviert sind (aktuell nur Schalter und Dimmer).","color":"","bgcolor":"","icon":"poll","payload":"","payloadType":"str","topic":"isPolled","x":240,"y":1780,"wires":[["ad7f92a.af3a77"]]},{"id":"2d5cc281.a73e5e","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveEnablePoll ","group":"ec008e31.b8c6a","order":30,"width":"1","height":"1","passthru":false,"label":"","tooltip":"Instanz: Aktiviert regelmäßige Statusmeldungen (Poll) (aktuell nur Schalter und Dimmer).","color":"","bgcolor":"","icon":"add","payload":"","payloadType":"str","topic":"enablePoll","x":250,"y":1820,"wires":[["573ddb3.e0a4024"]]},{"id":"72159766.d9c6d8","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveDisablePoll ","group":"ec008e31.b8c6a","order":31,"width":"1","height":"1","passthru":false,"label":"","tooltip":"Instanz: Deaktiviert regelmäßige Statusmeldungen (Poll) (aktuell nur Schalter und Dimmer).","color":"","bgcolor":"","icon":"remove","payload":"","payloadType":"str","topic":"disablePoll","x":250,"y":1860,"wires":[["573ddb3.e0a4024"]]},{"id":"a3a65208.34e4a","type":"zwave-out","z":"5ebe538b.d0566c","name":"zwave out","controller":"5e58fc47.9d45f4","x":680,"y":1780,"wires":[["1717b678.9ebefa"]]},{"id":"ad7f92a.af3a77","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let selDev = flow.get(\"selectedDeviceId\");\nif (selDev >= 0) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n let instance = flow.get(\"devices\")[selDev].instance;\n let type = flow.get(\"devices\")[selDev].type;\n msg.payload = {};\n msg.payload.args = []; // {node_id, class_id, instance, index}\n msg.payload.args.push(nodeId);\n msg.payload.args.push((type === \"Dimmer\")?38:37); // Todo Typ abfragen!\n msg.payload.args.push(instance);\n msg.payload.args.push(0);\n return msg;\n}\n","outputs":1,"noerr":0,"x":530,"y":1780,"wires":[["a3a65208.34e4a"]]},{"id":"1717b678.9ebefa","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"change","p":"payload.result","pt":"msg","from":"true","fromt":"bool","to":"Aktiviert","tot":"str"},{"t":"change","p":"payload.result","pt":"msg","from":"false","fromt":"bool","to":"Deaktiviert","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"\"Regelmäßige Statuslieferungen: \" & payload.result","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":830,"y":1780,"wires":[["cf5e47c6.801f48"]]},{"id":"cf5e47c6.801f48","type":"ui_toast","z":"5ebe538b.d0566c","position":"dialog","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"","raw":false,"topic":"","name":"IsPolled","x":980,"y":1780,"wires":[[]]},{"id":"573ddb3.e0a4024","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let selDev = flow.get(\"selectedDeviceId\");\nif (selDev >= 0) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n let instance = flow.get(\"devices\")[selDev].instance;\n let type = flow.get(\"devices\")[selDev].type;\n msg.payload = {};\n msg.payload.args = []; // {node_id, class_id, instance, index} Bsp.: {\"args\": [31, 50, 1, 0]}\n msg.payload.args.push(nodeId); \n msg.payload.args.push((type === \"Dimmer\")?38:37); // Todo Typ abfragen!\n msg.payload.args.push(instance);\n msg.payload.args.push(0);\n return msg;\n}\n","outputs":1,"noerr":0,"x":530,"y":1840,"wires":[["5882180c.421098"]]},{"id":"61fe83f9.9263dc","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveSetValueSwitchOn","group":"ec008e31.b8c6a","order":18,"width":"3","height":"1","passthru":false,"label":"Test An","tooltip":"Instanz: Schaltet einen Schalter oder Dimmer an.","color":"","bgcolor":"","icon":"lightbulb_outline","payload":"","payloadType":"str","topic":"setValue","x":270,"y":1500,"wires":[["7f2bbd39.022cd4"]]},{"id":"7f2bbd39.022cd4","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let selDev = flow.get(\"selectedDeviceId\");\nif (selDev >= 0) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n let instance = flow.get(\"devices\")[selDev].instance;\n let type = flow.get(\"devices\")[selDev].type;\n msg.payload = {};\n msg.payload.nodeid = flow.get(\"devices\")[selDev].nodeid;\n msg.payload.cmdclass = (type === \"Dimmer\")?38:37;\n msg.payload.cmdidx = 0;\n msg.payload.value = (type === \"Dimmer\")?99:1;\n return msg;\n}\n","outputs":1,"noerr":0,"x":470,"y":1500,"wires":[["5882180c.421098"]]},{"id":"bf7c4eaf.8b9af","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveSetValueSwitchOff","group":"ec008e31.b8c6a","order":19,"width":"3","height":"1","passthru":false,"label":"Test Aus","tooltip":"Instanz: Schaltet einen Schalter oder Dimmer aus.","color":"","bgcolor":"","icon":"lightbulb_outline","payload":"","payloadType":"str","topic":"setValue","x":270,"y":1540,"wires":[["66b69352.6db5cc"]]},{"id":"66b69352.6db5cc","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let selDev = flow.get(\"selectedDeviceId\");\nif (selDev >= 0) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n let instance = flow.get(\"devices\")[selDev].instance;\n let type = flow.get(\"devices\")[selDev].type;\n msg.payload = {};\n msg.payload.nodeid = flow.get(\"devices\")[selDev].nodeid;\n msg.payload.cmdclass = (type === \"Dimmer\")?38:37;\n msg.payload.cmdidx = 0;\n msg.payload.value = 0;\n return msg;\n}\n","outputs":1,"noerr":0,"x":470,"y":1540,"wires":[["5882180c.421098"]]},{"id":"cc54a73a.7fb938","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveSetPollInterval ","group":"ec008e31.b8c6a","order":6,"width":"1","height":"1","passthru":false,"label":"","tooltip":"Netzwerk: Setzt die Zeit zwischen den Lieferungen der Status in ms (Poll).","color":"","bgcolor":"","icon":"fibre_new","payload":"{}","payloadType":"json","topic":"setPollInterval","x":260,"y":880,"wires":[["f731b589.e4b2a8"]]},{"id":"f731b589.e4b2a8","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"Zeitintervall (ms):","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":880,"wires":[["7ec75cdf.a0b0a4"]]},{"id":"7ec75cdf.a0b0a4","type":"ui_toast","z":"5ebe538b.d0566c","position":"prompt","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"PollTime","x":600,"y":880,"wires":[["b642fa43.b39cc8"]]},{"id":"b642fa43.b39cc8","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let pollTime = (msg.payload===\"OK\")?1:parseInt(msg.payload);\nif (!isNaN(pollTime)) {\n msg.payload = {};\n msg.payload.args = [];\n msg.payload.args.push(pollTime);\n return msg;\n}","outputs":1,"noerr":0,"x":750,"y":880,"wires":[["5882180c.421098"]]},{"id":"dfae3fa2.ac21e","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"Wirklich einen fehlerhaften Knoten entfernen?","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":1740,"wires":[["7fbb2488.04539c"]]},{"id":"7fbb2488.04539c","type":"ui_toast","z":"5ebe538b.d0566c","position":"dialog","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"Confirm","x":640,"y":1740,"wires":[["795f5c51.c8d6f4"]]},{"id":"795f5c51.c8d6f4","type":"function","z":"5ebe538b.d0566c","name":"OK?","func":"if (msg.payload===\"OK\")\n return msg;","outputs":1,"noerr":0,"x":790,"y":1740,"wires":[["edfe2287.67d7a"]]},{"id":"3d1885b.87c237a","type":"ui_dropdown","z":"5ebe538b.d0566c","name":"ZWaveDeviceType","label":"","tooltip":"","place":" Geräte-Typ","group":"ec008e31.b8c6a","order":17,"width":"3","height":"1","passthru":false,"options":[{"label":"Schalter","value":"Switch","type":"str"},{"label":"Dimmer","value":"Dimmer","type":"str"},{"label":"Melder","value":"Detector","type":"str"},{"label":"Fernbedienung","value":"Remote","type":"str"},{"label":"Kontakt Schalter","value":"SensorSwitch","type":"str"},{"label":"Kontakt Melder","value":"SensorDetector","type":"str"},{"label":"Verstärker","value":"Extender","type":"str"}],"payload":"","topic":"","x":430,"y":1240,"wires":[["35434149.864dfe"]]},{"id":"45d3fd4a.2af6e4","type":"function","z":"5ebe538b.d0566c","name":"Msg","func":"let devId = msg.payload;\nmsg.payload = flow.get(\"devices\")[devId].type;\nreturn msg;","outputs":1,"noerr":0,"x":230,"y":1240,"wires":[["3d1885b.87c237a"]]},{"id":"76664195.1b278","type":"ui_text_input","z":"5ebe538b.d0566c","name":"ZWaveNodeId","label":"Knoten-ID","tooltip":"Knoten-ID","group":"ec008e31.b8c6a","order":14,"width":"3","height":"1","passthru":true,"mode":"number","delay":300,"topic":"","x":420,"y":1280,"wires":[["1c662bea.d8acf4"]]},{"id":"2277631f.c9915c","type":"ui_text_input","z":"5ebe538b.d0566c","name":"ZWaveInstance","label":"Instanz","tooltip":"Instanz","group":"ec008e31.b8c6a","order":15,"width":"3","height":"1","passthru":true,"mode":"number","delay":300,"topic":"","x":420,"y":1320,"wires":[["7dbfd4f7.305fec"]]},{"id":"c9bd1554.77d5f8","type":"ui_text_input","z":"5ebe538b.d0566c","name":"ZWaveDeviceId","label":"Geräte-ID","tooltip":"Geräte-ID","group":"ec008e31.b8c6a","order":16,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":420,"y":1360,"wires":[["7b5c0835.9033a8"]]},{"id":"73e23631.73e1e8","type":"function","z":"5ebe538b.d0566c","name":"Msg","func":"let devId = msg.payload;\nmsg.payload = flow.get(\"devices\")[devId].nodeid;\nreturn msg;","outputs":1,"noerr":0,"x":230,"y":1280,"wires":[["76664195.1b278"]]},{"id":"dc8742cb.654bf","type":"function","z":"5ebe538b.d0566c","name":"Msg","func":"let devId = msg.payload;\nmsg.payload = flow.get(\"devices\")[devId].instance;\nreturn msg;","outputs":1,"noerr":0,"x":230,"y":1320,"wires":[["2277631f.c9915c"]]},{"id":"39a05f2e.51584","type":"function","z":"5ebe538b.d0566c","name":"Msg","func":"let devId = msg.payload;\nmsg.payload = flow.get(\"devices\")[devId].name;\nreturn msg;","outputs":1,"noerr":0,"x":230,"y":1360,"wires":[["c9bd1554.77d5f8"]]},{"id":"481b29a8.2f1dc8","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveDeviceNew","group":"ec008e31.b8c6a","order":11,"width":"3","height":"1","passthru":false,"label":"Gerät","tooltip":"Fügt ein Gerät hinzu.","color":"","bgcolor":"","icon":"add","payload":"","payloadType":"str","topic":"","x":250,"y":1400,"wires":[["95d3a2ed.71ad8"]]},{"id":"43716c44.1e9554","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveDeviceDel","group":"ec008e31.b8c6a","order":12,"width":"3","height":"1","passthru":false,"label":"Gerät","tooltip":"Entfernt das ausgewählte Gerät.","color":"","bgcolor":"","icon":"remove","payload":"","payloadType":"str","topic":"","x":250,"y":1440,"wires":[["b1b72eb3.387fc"]]},{"id":"95d3a2ed.71ad8","type":"function","z":"5ebe538b.d0566c","name":"NewDev","func":"let dev = flow.get(\"devices\");\nlet newDev = {};\nnewDev.nodeid = flow.get(\"lastNewNodeId\") || -1;\nnewDev.instance = 1;\nfor (let i=0; i\";\ndev.push(newDev);\nmsg.nodeid = newDev.nodeid;\nmsg.instance = newDev.instance;\nreturn msg;","outputs":1,"noerr":0,"x":440,"y":1400,"wires":[["e171cccf.95487","1091574d.8671a9"]]},{"id":"ffe042bc.63ee9","type":"file","z":"5ebe538b.d0566c","name":"Save","filename":"/data/zwavedevices","appendNewline":false,"createDir":true,"overwriteFile":"true","encoding":"utf8","x":930,"y":1320,"wires":[[]]},{"id":"e171cccf.95487","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"devices","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":1320,"wires":[["ffe042bc.63ee9"]]},{"id":"e083cb70.3ac668","type":"function","z":"5ebe538b.d0566c","name":"DelDev","func":"let dev = flow.get(\"devices\");\nlet devNew = [];\nlet selId = flow.get(\"selectedDeviceId\");\nif (selId >= 0) {\n for (let i=0; i= 0) {\n dev[selId].type = msg.payload;\n return msg;\n}","outputs":1,"noerr":0,"x":620,"y":1240,"wires":[["e171cccf.95487"]]},{"id":"1c662bea.d8acf4","type":"function","z":"5ebe538b.d0566c","name":"Change","func":"let dev = flow.get(\"devices\");\nlet selId = flow.get(\"selectedDeviceId\");\nif (selId >= 0) {\n dev[selId].nodeid = msg.payload;\n return msg;\n}","outputs":1,"noerr":0,"x":620,"y":1280,"wires":[["e171cccf.95487"]]},{"id":"7dbfd4f7.305fec","type":"function","z":"5ebe538b.d0566c","name":"Change","func":"let dev = flow.get(\"devices\");\nlet selId = flow.get(\"selectedDeviceId\");\nif (selId >= 0) {\n dev[selId].instance = msg.payload;\n return msg;\n}","outputs":1,"noerr":0,"x":620,"y":1320,"wires":[["e171cccf.95487"]]},{"id":"7b5c0835.9033a8","type":"function","z":"5ebe538b.d0566c","name":"Change","func":"let dev = flow.get(\"devices\");\nlet selId = flow.get(\"selectedDeviceId\");\nif (selId >= 0) {\n dev[selId].name = msg.payload;\n return msg;\n}","outputs":1,"noerr":0,"x":620,"y":1360,"wires":[["e171cccf.95487"]]},{"id":"4cd0434a.5cf82c","type":"ui_toast","z":"5ebe538b.d0566c","position":"dialog","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"Ja","cancel":"Nein","raw":false,"topic":"","name":"Confirm","x":580,"y":1440,"wires":[["705f43bc.8ca75c"]]},{"id":"b1b72eb3.387fc","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"Gerät wirklich löschen? (Dieser Vorgang entfernt nicht den Knoten.)","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":430,"y":1440,"wires":[["4cd0434a.5cf82c"]]},{"id":"705f43bc.8ca75c","type":"switch","z":"5ebe538b.d0566c","name":"Yes?","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"Ja","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":730,"y":1440,"wires":[["e083cb70.3ac668"]]},{"id":"a0949c58.5e6b4","type":"catch","z":"5ebe538b.d0566c","name":"CatchErrors","scope":null,"uncaught":false,"x":230,"y":140,"wires":[["64a0cba8.4735b4","7b0d485.40c42b8"]]},{"id":"64a0cba8.4735b4","type":"debug","z":"5ebe538b.d0566c","name":"Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":390,"y":180,"wires":[]},{"id":"aeb721cc.c4a85","type":"ui_toast","z":"5ebe538b.d0566c","position":"top right","displayTime":"10","highlight":"","sendall":false,"outputs":0,"ok":"OK","cancel":"","raw":false,"topic":"","name":"ErrorMessage","x":560,"y":140,"wires":[]},{"id":"7b0d485.40c42b8","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"topic","pt":"msg","to":"error.source.name","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"error.message","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":140,"wires":[["aeb721cc.c4a85"]]},{"id":"9fa0cc7e.89a04","type":"file in","z":"5ebe538b.d0566c","name":"Read","filename":"/data/zwavedevices","format":"utf8","chunk":false,"sendError":false,"encoding":"none","x":590,"y":280,"wires":[["733fed49.5c3df4"]]},{"id":"48f8f47c.af630c","type":"inject","z":"5ebe538b.d0566c","name":"Init: read devices","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":"0.1","x":250,"y":280,"wires":[["61c1816.dbb758"]]},{"id":"733fed49.5c3df4","type":"json","z":"5ebe538b.d0566c","name":"Obj","property":"payload","action":"obj","pretty":false,"x":730,"y":280,"wires":[["7fd31a88.a86964"]]},{"id":"7fd31a88.a86964","type":"change","z":"5ebe538b.d0566c","name":"SetFlowV","rules":[{"t":"set","p":"devices","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":880,"y":280,"wires":[[]]},{"id":"61c1816.dbb758","type":"change","z":"5ebe538b.d0566c","name":"InitFlowV","rules":[{"t":"set","p":"devices","pt":"flow","to":"[]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":280,"wires":[["9fa0cc7e.89a04"]]},{"id":"50e2d7d4.8ab898","type":"zwave-in","z":"5ebe538b.d0566c","name":"zwave in","controller":"5e58fc47.9d45f4","x":220,"y":560,"wires":[["1d9d6cc4.69fdf3"]]},{"id":"4c77a9f1.4be128","type":"change","z":"5ebe538b.d0566c","name":"Payload","rules":[{"t":"set","p":"nodeid","pt":"msg","to":"payload.nodeid","tot":"msg"},{"t":"set","p":"cmdclass","pt":"msg","to":"payload.cmdclass","tot":"msg"},{"t":"set","p":"cmdidx","pt":"msg","to":"payload.cmdidx","tot":"msg"},{"t":"set","p":"instance","pt":"msg","to":"payload.instance","tot":"msg"},{"t":"set","p":"units","pt":"msg","to":"payload.units","tot":"msg"},{"t":"set","p":"label","pt":"msg","to":"payload.label","tot":"msg"},{"t":"set","p":"changed","pt":"msg","to":"(payload.oldState != payload.currState)","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"payload.currState","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":600,"wires":[["9628705f.ac6a2","213e53e9.67f8ec"]]},{"id":"9628705f.ac6a2","type":"function","z":"5ebe538b.d0566c","name":"Device","func":"let devices = flow.get(\"devices\") || [];\nfor (let i=0; i= 0 && !isNaN(param)) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n msg.payload = {};\n msg.payload.args = [];\n msg.payload.args.push(nodeId);\n msg.payload.args.push(param);\n return msg;\n}","outputs":1,"noerr":0,"x":830,"y":2020,"wires":[["5882180c.421098"]]},{"id":"c6df921a.194e5","type":"ui_button","z":"5ebe538b.d0566c","name":"ZWaveSetConfigParam","group":"ec008e31.b8c6a","order":21,"width":"1","height":"1","passthru":false,"label":"","tooltip":"Knoten: Setzt einen Paramter der Konfiguration (siehe Anleitung des Gerätes).","color":"","bgcolor":"","icon":"fibre_new","payload":"","payloadType":"str","topic":"setConfigParam","x":270,"y":2060,"wires":[["c770e583.b84a98"]]},{"id":"c770e583.b84a98","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"Parameter (siehe Geräteanleitung):","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":2060,"wires":[["e1847fc0.748cf"]]},{"id":"e1847fc0.748cf","type":"ui_toast","z":"5ebe538b.d0566c","position":"prompt","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"GetParameter","x":640,"y":2060,"wires":[["cab91eeb.eaf0d"]]},{"id":"c75953c3.945c3","type":"function","z":"5ebe538b.d0566c","name":"setArg","func":"let selDev = flow.get(\"selectedDeviceId\");\nlet paramVal = (msg.payload===\"OK\")?1:parseInt(msg.payload);\nif (selDev >= 0 && !isNaN(paramVal)) {\n let nodeId = flow.get(\"devices\")[selDev].nodeid;\n msg.payload = {};\n msg.payload.args = [];\n msg.payload.args.push(nodeId);\n msg.payload.args.push(msg.param);\n msg.payload.args.push(paramVal);\n return msg;\n}","outputs":1,"noerr":0,"x":1270,"y":2060,"wires":[["5882180c.421098"]]},{"id":"7c0c24cc.58e69c","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"Neuer Wert:","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":970,"y":2060,"wires":[["68758c3e.0ef844"]]},{"id":"68758c3e.0ef844","type":"ui_toast","z":"5ebe538b.d0566c","position":"prompt","displayTime":"3","highlight":"","sendall":false,"outputs":1,"ok":"OK","cancel":"Abbruch","raw":false,"topic":"","name":"GetValue","x":1120,"y":2060,"wires":[["c75953c3.945c3"]]},{"id":"cab91eeb.eaf0d","type":"function","z":"5ebe538b.d0566c","name":"setParam","func":"let selDev = flow.get(\"selectedDeviceId\");\nlet param = (msg.payload===\"OK\")?1:parseInt(msg.payload);\nif (selDev >= 0 && !isNaN(param)) {\n msg.param = param;\n return msg;\n}","outputs":1,"noerr":0,"x":820,"y":2060,"wires":[["7c0c24cc.58e69c"]]},{"id":"e79f86e6.b18248","type":"switch","z":"5ebe538b.d0566c","name":"ParameterInfo","property":"payload.cmdclass","propertyType":"msg","rules":[{"t":"eq","v":"112","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":720,"y":560,"wires":[["a5148a38.c72408"]]},{"id":"a5148a38.c72408","type":"change","z":"5ebe538b.d0566c","name":"Msg","rules":[{"t":"set","p":"payload","pt":"msg","to":"\"Knoten \" & payload.nodeid & \" Parameter \" & payload.cmdidx & \": \" & payload.currState","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":890,"y":560,"wires":[["c8cc3aaa.23cfb8"]]},{"id":"c8cc3aaa.23cfb8","type":"ui_toast","z":"5ebe538b.d0566c","position":"top right","displayTime":"30","highlight":"","sendall":false,"outputs":0,"ok":"OK","cancel":"","raw":false,"topic":"","name":"Info","x":1030,"y":560,"wires":[]},{"id":"1d9d6cc4.69fdf3","type":"delay","z":"5ebe538b.d0566c","name":"1s","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"4","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":370,"y":560,"wires":[["ca21c296.59f4b"]]},{"id":"ec008e31.b8c6a","type":"ui_group","z":"","name":"Administration Z-Wave","tab":"82340d9c.c5d61","order":2,"disp":true,"width":"6","collapse":true},{"id":"5e58fc47.9d45f4","type":"zwave-controller","z":"","port":"/dev/ttyACM0","driverattempts":"3","pollinterval":"10000","allowunreadyupdates":false,"networkkey":"","logging":"minimal"},{"id":"82340d9c.c5d61","type":"ui_tab","z":"","name":"Wartung","icon":"build","order":7,"disabled":false,"hidden":false}]