Auch in ioBroker nutze ich den KLF-200 Adapter, der ist stabiler als Node-Velux, zumindest in meinem Setup. Da ich in ioBroker kein KNX will, triggere ich den ioBroker Adapter via Node Red. Hier der Flow:
Code:
[
{
"id": "8a07888acf6370da",
"type": "tab",
"label": "KLF <=> KNX",
"disabled": false,
"info": ""
},
{
"id": "ef51f2227bd3c208",
"type": "knxUltimate",
"z": "8a07888acf6370da",
"server": "dc752cccac3f63b9",
"topic": "24/4/5",
"outputtopic": "velux:write",
"dpt": "5.001",
"initialread": false,
"notifyreadrequest": false,
"notifyresponse": false,
"notifywrite": true,
"notifyreadrequestalsorespondtobus": false,
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
"listenallga": false,
"name": "DFF Store",
"outputtype": "write",
"outputRBE": true,
"inputRBE": false,
"formatmultiplyvalue": 1,
"formatnegativevalue": "leave",
"formatdecimalsvalue": 999,
"passthrough": "no",
"x": 120,
"y": 260,
"wires": [
[
"3d37e7045538bc78"
]
]
},
{
"id": "7530f80ac8b5febf",
"type": "knxUltimate",
"z": "8a07888acf6370da",
"server": "dc752cccac3f63b9",
"topic": "24/4/0",
"outputtopic": "velux:write",
"dpt": "5.001",
"initialread": false,
"notifyreadrequest": false,
"notifyresponse": false,
"notifywrite": true,
"notifyreadrequestalsorespondtobus": false,
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
"listenallga": false,
"name": "DFF",
"outputtype": "write",
"outputRBE": true,
"inputRBE": false,
"formatmultiplyvalue": 1,
"formatnegativevalue": "leave",
"formatdecimalsvalue": 999,
"passthrough": "no",
"x": 100,
"y": 80,
"wires": [
[
"8a75fe8e0fb59db5"
]
]
},
{
"id": "9983c5aec95fb266",
"type": "knxUltimate",
"z": "8a07888acf6370da",
"server": "dc752cccac3f63b9",
"topic": "24/4/1",
"outputtopic": "",
"dpt": "5.001",
"initialread": false,
"notifyreadrequest": false,
"notifyresponse": false,
"notifywrite": true,
"notifyreadrequestalsorespondtobus": false,
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
"listenallga": false,
"name": "",
"outputtype": "write",
"outputRBE": true,
"inputRBE": false,
"formatmultiplyvalue": 1,
"formatnegativevalue": "leave",
"formatdecimalsvalue": 999,
"passthrough": "no",
"x": 890,
"y": 140,
"wires": [
[
"4af4f946b397c275"
]
]
},
{
"id": "46f6222c52c7d362",
"type": "knxUltimate",
"z": "8a07888acf6370da",
"server": "dc752cccac3f63b9",
"topic": "24/4/6",
"outputtopic": "",
"dpt": "5.001",
"initialread": false,
"notifyreadrequest": false,
"notifyresponse": false,
"notifywrite": true,
"notifyreadrequestalsorespondtobus": false,
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
"listenallga": false,
"name": "",
"outputtype": "write",
"outputRBE": true,
"inputRBE": false,
"formatmultiplyvalue": 1,
"formatnegativevalue": "leave",
"formatdecimalsvalue": 999,
"passthrough": "no",
"x": 890,
"y": 320,
"wires": [
[
"83081e16b7b40aed"
]
]
},
{
"id": "656c40cdce23267d",
"type": "link out",
"z": "8a07888acf6370da",
"name": "DFF Status",
"mode": "link",
"links": [
"6a99db0759b6211f"
],
"x": 835,
"y": 100,
"wires": []
},
{
"id": "1b82f87537412fb4",
"type": "function",
"z": "8a07888acf6370da",
"name": "Fenster auf/zu",
"func": "if (msg.payload == true) msg.payload = 0;\nif (msg.payload == false) msg.payload = 100;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 660,
"y": 380,
"wires": [
[
"685882a81e3d9119"
]
]
},
{
"id": "685882a81e3d9119",
"type": "knxUltimate",
"z": "8a07888acf6370da",
"server": "dc752cccac3f63b9",
"topic": "24/4/0",
"outputtopic": "velux:write",
"dpt": "5.001",
"initialread": false,
"notifyreadrequest": false,
"notifyresponse": false,
"notifywrite": true,
"notifyreadrequestalsorespondtobus": false,
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
"listenallga": false,
"name": "DFF",
"outputtype": "write",
"outputRBE": true,
"inputRBE": false,
"formatmultiplyvalue": 1,
"formatnegativevalue": "leave",
"formatdecimalsvalue": 999,
"passthrough": "no",
"x": 880,
"y": 380,
"wires": [
[]
]
},
{
"id": "b559c9c33f0a9c76",
"type": "knxUltimate",
"z": "8a07888acf6370da",
"server": "dc752cccac3f63b9",
"topic": "24/4/3",
"outputtopic": "",
"dpt": "1.001",
"initialread": 0,
"notifyreadrequest": false,
"notifyresponse": false,
"notifywrite": true,
"notifyreadrequestalsorespondtobus": false,
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
"listenallga": false,
"name": "O01 Dachflächenfenster Auf Zu",
"outputtype": "write",
"outputRBE": false,
"inputRBE": false,
"formatmultiplyvalue": 1,
"formatnegativevalue": "leave",
"formatdecimalsvalue": 999,
"passthrough": "no",
"x": 170,
"y": 380,
"wires": [
[
"1b82f87537412fb4"
]
]
},
{
"id": "86a8ef989058c302",
"type": "inject",
"z": "8a07888acf6370da",
"name": "Store unten",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "100",
"payloadType": "num",
"x": 970,
"y": 680,
"wires": [
[
"3d37e7045538bc78"
]
]
},
{
"id": "b6044f246830bf28",
"type": "inject",
"z": "8a07888acf6370da",
"name": "Store oben",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "0",
"payloadType": "num",
"x": 960,
"y": 620,
"wires": [
[
"3d37e7045538bc78"
]
]
},
{
"id": "149767199d672d7e",
"type": "inject",
"z": "8a07888acf6370da",
"name": "DFF zu",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "0",
"payloadType": "num",
"x": 750,
"y": 620,
"wires": [
[
"8a75fe8e0fb59db5"
]
]
},
{
"id": "e5d6cd880201a16c",
"type": "inject",
"z": "8a07888acf6370da",
"name": "DFF auf",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "100",
"payloadType": "num",
"x": 760,
"y": 680,
"wires": [
[
"8a75fe8e0fb59db5"
]
]
},
{
"id": "3d37e7045538bc78",
"type": "gate",
"z": "8a07888acf6370da",
"name": "",
"controlTopic": "control",
"defaultState": "closed",
"openCmd": "open",
"closeCmd": "close",
"toggleCmd": "toggle",
"defaultCmd": "default",
"statusCmd": "status",
"persist": true,
"storeName": "memory",
"x": 370,
"y": 260,
"wires": [
[
"e2a4255eb1a9fe5a"
]
]
},
{
"id": "ee94c1c52636e09a",
"type": "inject",
"z": "8a07888acf6370da",
"name": "DFF 5% auf",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "5",
"payloadType": "num",
"x": 770,
"y": 740,
"wires": [
[
"8a75fe8e0fb59db5"
]
]
},
{
"id": "4af4f946b397c275",
"type": "function",
"z": "8a07888acf6370da",
"name": "Gate Control",
"func": "if (msg.payload != 0) {\n msg.topic = \"control\";\n msg.payload =\"close\";\n}\nelse {\n msg.topic = \"control\";\n msg.payload =\"open\";\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1070,
"y": 140,
"wires": [
[
"3d37e7045538bc78"
]
]
},
{
"id": "83081e16b7b40aed",
"type": "function",
"z": "8a07888acf6370da",
"name": "Gate Control",
"func": "if (msg.payload > 0) {\n msg.topic = \"control\";\n msg.payload =\"close\";\n}\nelse {\n msg.topic = \"control\";\n msg.payload =\"open\";\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1070,
"y": 320,
"wires": [
[
"8a75fe8e0fb59db5"
]
]
},
{
"id": "8a75fe8e0fb59db5",
"type": "gate",
"z": "8a07888acf6370da",
"name": "",
"controlTopic": "control",
"defaultState": "closed",
"openCmd": "open",
"closeCmd": "close",
"toggleCmd": "toggle",
"defaultCmd": "default",
"statusCmd": "status",
"persist": true,
"storeName": "memory",
"x": 370,
"y": 80,
"wires": [
[
"4ad04d964735b645"
]
]
},
{
"id": "a35f367ca8058e99",
"type": "inject",
"z": "8a07888acf6370da",
"name": "Store 5% unten",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "5",
"payloadType": "num",
"x": 980,
"y": 740,
"wires": [
[
"3d37e7045538bc78"
]
]
},
{
"id": "e7dcb3c99b5cfcf3",
"type": "ioBroker get",
"z": "8a07888acf6370da",
"name": "DFF currentPosition",
"topic": "klf200.0.products.1.currentPosition",
"attrname": "payload",
"payloadType": "value",
"errOnInvalidState": "true",
"x": 680,
"y": 140,
"wires": [
[
"9983c5aec95fb266",
"656c40cdce23267d"
]
]
},
{
"id": "fba97474f204f1dc",
"type": "ioBroker get",
"z": "8a07888acf6370da",
"name": "Store currentPosition",
"topic": "klf200.0.products.0.currentPosition",
"attrname": "payload",
"payloadType": "value",
"errOnInvalidState": "true",
"x": 680,
"y": 320,
"wires": [
[
"46f6222c52c7d362"
]
]
},
{
"id": "4ad04d964735b645",
"type": "ioBroker out",
"z": "8a07888acf6370da",
"name": "DFF targetPosition",
"topic": "klf200.0.products.1.targetPosition",
"ack": "false",
"autoCreate": "false",
"stateName": "",
"role": "",
"payloadType": "",
"readonly": "",
"stateUnit": "",
"stateMin": "",
"stateMax": "",
"x": 670,
"y": 80,
"wires": []
},
{
"id": "e2a4255eb1a9fe5a",
"type": "ioBroker out",
"z": "8a07888acf6370da",
"name": "Store targetPosition",
"topic": "klf200.0.products.0.targetPosition",
"ack": "false",
"autoCreate": "false",
"stateName": "",
"role": "",
"payloadType": "",
"readonly": "",
"stateUnit": "",
"stateMin": "",
"stateMax": "",
"x": 670,
"y": 260,
"wires": []
},
{
"id": "777bf06d9c7f2eda",
"type": "inject",
"z": "8a07888acf6370da",
"name": "3s",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "3",
"crontab": "",
"once": true,
"onceDelay": "0.1",
"topic": "",
"payload": "",
"payloadType": "date",
"x": 90,
"y": 140,
"wires": [
[
"e7dcb3c99b5cfcf3"
]
]
},
{
"id": "45e7164270bfb432",
"type": "inject",
"z": "8a07888acf6370da",
"name": "3s",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "3",
"crontab": "",
"once": true,
"onceDelay": "0.1",
"topic": "",
"payload": "",
"payloadType": "date",
"x": 90,
"y": 320,
"wires": [
[
"fba97474f204f1dc"
]
]
},
{
"id": "dc752cccac3f63b9",
"type": "knxUltimate-config",
"host": "224.0.23.12",
"port": "3671",
"physAddr": "1.0.11",
"hostProtocol": "Multicast",
"suppressACKRequest": false,
"csv": "",
"KNXEthInterface": "Auto",
"KNXEthInterfaceManuallyInput": "",
"statusDisplayLastUpdate": true,
"statusDisplayDeviceNameWhenALL": true,
"statusDisplayDataPoint": false,
"stopETSImportIfNoDatapoint": "skip",
"loglevel": "error",
"name": "Multicast Router",
"localEchoInTunneling": true,
"delaybetweentelegrams": "1",
"delaybetweentelegramsfurtherdelayREAD": "",
"ignoreTelegramsWithRepeatedFlag": false,
"keyringFileXML": ""
}
]





Kommentar