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