node-red-contrib-knx-ultimate
Version:
Control your KNX and KNX Secure intallation via Node-Red! A bunch of KNX nodes, with integrated Philips HUE control, ETS group address importer, and KNX routing between interfaces. Easy to use and highly configurable.
158 lines (156 loc) • 3.58 kB
JSON
[
{
"id": "tab_knx_rf_sample",
"type": "tab",
"label": "KNX Router Filter sample",
"disabled": false,
"info": ""
},
{
"id": "cmt_knx_rf_1",
"type": "comment",
"z": "tab_knx_rf_sample",
"name": "This flow simulates RAW telegram objects and shows filtering + rewrite without needing a KNX bus.",
"info": "",
"x": 390,
"y": 40,
"wires": []
},
{
"id": "inj_knx_rf_allowed",
"type": "inject",
"z": "tab_knx_rf_sample",
"name": "Allowed GA 0/0/7",
"props": [
{
"p": "topic",
"vt": "str"
}
],
"topic": "",
"once": false,
"onceDelay": 0.1,
"x": 160,
"y": 140,
"wires": [
[
"fn_knx_rf_build_allowed"
]
]
},
{
"id": "fn_knx_rf_build_allowed",
"type": "function",
"z": "tab_knx_rf_sample",
"name": "Build RAW telegram (allowed)",
"func": "return {\n payload: {\n knx: {\n event: 'GroupValue_Write',\n source: '1.1.10',\n destination: '0/0/7',\n apdu: { data: { type: 'Buffer', data: [1] }, bitlength: 1, hex: '01' },\n cemi: { hex: '' },\n echoed: false\n }\n }\n};",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 390,
"y": 140,
"wires": [
[
"node_knx_router_filter"
]
]
},
{
"id": "inj_knx_rf_blocked",
"type": "inject",
"z": "tab_knx_rf_sample",
"name": "Blocked GA 3/3/3",
"props": [
{
"p": "topic",
"vt": "str"
}
],
"topic": "",
"once": false,
"onceDelay": 0.1,
"x": 160,
"y": 200,
"wires": [
[
"fn_knx_rf_build_blocked"
]
]
},
{
"id": "fn_knx_rf_build_blocked",
"type": "function",
"z": "tab_knx_rf_sample",
"name": "Build RAW telegram (blocked)",
"func": "return {\n payload: {\n knx: {\n event: 'GroupValue_Write',\n source: '1.1.10',\n destination: '3/3/3',\n apdu: { data: { type: 'Buffer', data: [1] }, bitlength: 1, hex: '01' },\n cemi: { hex: '' },\n echoed: false\n }\n }\n};",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 390,
"y": 200,
"wires": [
[
"node_knx_router_filter"
]
]
},
{
"id": "node_knx_router_filter",
"type": "knxUltimateRouterFilter",
"z": "tab_knx_rf_sample",
"name": "Filter + rewrite",
"allowWrite": true,
"allowResponse": true,
"allowRead": true,
"gaMode": "allow",
"gaPatterns": "0/0/*",
"srcMode": "off",
"srcPatterns": "",
"rewriteGA": true,
"gaRewriteRules": "0/0/* => 2/0/*",
"rewriteSource": true,
"srcRewriteRules": "1.1.* => 1.2.*",
"x": 590,
"y": 170,
"wires": [
[
"dbg_knx_rf_passed"
],
[
"dbg_knx_rf_dropped"
]
]
},
{
"id": "dbg_knx_rf_passed",
"type": "debug",
"z": "tab_knx_rf_sample",
"name": "Passed (check payload.knx + payload.knxRouterFilter)",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 880,
"y": 140,
"wires": []
},
{
"id": "dbg_knx_rf_dropped",
"type": "debug",
"z": "tab_knx_rf_sample",
"name": "Dropped (reason in payload.knxRouterFilter)",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 880,
"y": 200,
"wires": []
}
]