From b626fb4bb0fbed9b562c321f0b3ad8762c8c5e55 Mon Sep 17 00:00:00 2001 From: m038 Date: Thu, 28 May 2026 20:35:23 +0200 Subject: [PATCH] Update flow files --- flows.json | 850 ++++++++++++++++++++++++++++------------------------- 1 file changed, 457 insertions(+), 393 deletions(-) diff --git a/flows.json b/flows.json index aba37b3..a52b69a 100644 --- a/flows.json +++ b/flows.json @@ -1,11 +1,4 @@ [ - { - "id": "600f7a12.5ee66c", - "type": "tab", - "label": "Security", - "disabled": false, - "info": "" - }, { "id": "75c53969.aa5438", "type": "tab", @@ -1722,392 +1715,6 @@ "x": 520, "y": 100 }, - { - "id": "1319ea0f.4d86d6", - "type": "api-call-service", - "z": "600f7a12.5ee66c", - "name": "Notify via HA", - "wires": [ - [] - ], - "server": "657c7463.48e1e4", - "version": 7, - "debugenabled": true, - "action": "notify.gotify_ha", - "floorId": [], - "areaId": [], - "deviceId": [], - "entityId": [], - "labelId": [], - "data": "{{{payload}}}", - "dataType": "json", - "mergeContext": "", - "mustacheAltTags": false, - "outputProperties": [], - "queue": "none", - "blockInputOverrides": false, - "domain": "notify", - "service": "gotify_ha", - "output_location": "", - "output_location_type": "none", - "x": 1370, - "y": 80 - }, - { - "id": "96b02618.e84278", - "type": "server-state-changed", - "z": "600f7a12.5ee66c", - "name": "Front door", - "wires": [ - [ - "63ef802b.259ca" - ] - ], - "server": "657c7463.48e1e4", - "version": 6, - "outputs": 1, - "exposeAsEntityConfig": "", - "entities": { - "entity": [ - "binary_sensor.front_door_state" - ], - "substring": [], - "regex": [] - }, - "outputInitially": false, - "stateType": "str", - "ifState": "", - "ifStateType": "str", - "ifStateOperator": "is", - "outputOnlyOnStateChange": true, - "for": "", - "forType": "num", - "forUnits": "minutes", - "ignorePrevStateNull": false, - "ignorePrevStateUnknown": false, - "ignorePrevStateUnavailable": false, - "ignoreCurrentStateUnknown": false, - "ignoreCurrentStateUnavailable": false, - "outputProperties": [ - { - "property": "payload", - "propertyType": "msg", - "value": "", - "valueType": "entityState" - }, - { - "property": "data", - "propertyType": "msg", - "value": "", - "valueType": "eventData" - }, - { - "property": "topic", - "propertyType": "msg", - "value": "", - "valueType": "triggerId" - } - ], - "x": 120, - "y": 60 - }, - { - "id": "50b85b7a.092964", - "type": "template", - "z": "600f7a12.5ee66c", - "name": "Door template", - "wires": [ - [ - "1319ea0f.4d86d6", - "8ccf280b.4ba23" - ] - ], - "field": "payload", - "fieldType": "msg", - "format": "json", - "syntax": "mustache", - "template": "{\n \"title\":\"Info\",\n \"message\":\"{{door_type}} door is {{payload}}.\"\n}\n\n", - "output": "str", - "x": 1160, - "y": 100 - }, - { - "id": "6d21e8a.b9e5b18", - "type": "server-state-changed", - "z": "600f7a12.5ee66c", - "name": "Storage door", - "wires": [ - [ - "63ef802b.259ca" - ] - ], - "server": "657c7463.48e1e4", - "version": 6, - "outputs": 1, - "exposeAsEntityConfig": "", - "entities": { - "entity": [ - "binary_sensor.storage_room_door_state" - ], - "substring": [], - "regex": [] - }, - "outputInitially": false, - "stateType": "str", - "ifState": "", - "ifStateType": "str", - "ifStateOperator": "is", - "outputOnlyOnStateChange": true, - "for": "", - "forType": "num", - "forUnits": "minutes", - "ignorePrevStateNull": false, - "ignorePrevStateUnknown": false, - "ignorePrevStateUnavailable": false, - "ignoreCurrentStateUnknown": false, - "ignoreCurrentStateUnavailable": false, - "outputProperties": [ - { - "property": "payload", - "propertyType": "msg", - "value": "", - "valueType": "entityState" - }, - { - "property": "data", - "propertyType": "msg", - "value": "", - "valueType": "eventData" - }, - { - "property": "topic", - "propertyType": "msg", - "value": "", - "valueType": "triggerId" - } - ], - "x": 110, - "y": 140 - }, - { - "id": "63ef802b.259ca", - "type": "switch", - "z": "600f7a12.5ee66c", - "name": "Which door?", - "wires": [ - [ - "80b797a8.a574a8" - ], - [ - "a3bd4d81.d47768" - ] - ], - "property": "topic", - "propertyType": "msg", - "rules": [ - { - "t": "eq", - "v": "binary_sensor.front_door_state", - "vt": "str" - }, - { - "t": "eq", - "v": "binary_sensor.storage_room_door_state", - "vt": "str" - } - ], - "checkall": "true", - "repair": false, - "outputs": 2, - "x": 350, - "y": 100 - }, - { - "id": "80b797a8.a574a8", - "type": "change", - "z": "600f7a12.5ee66c", - "name": "Set Front door", - "wires": [ - [ - "8d30f50.0a8dd88" - ] - ], - "rules": [ - { - "t": "set", - "p": "door_type", - "pt": "msg", - "to": "Front", - "tot": "str" - } - ], - "action": "", - "property": "", - "from": "", - "to": "", - "reg": false, - "x": 580, - "y": 60 - }, - { - "id": "a3bd4d81.d47768", - "type": "change", - "z": "600f7a12.5ee66c", - "name": "Set Storage door", - "wires": [ - [ - "8d30f50.0a8dd88" - ] - ], - "rules": [ - { - "t": "set", - "p": "door_type", - "pt": "msg", - "to": "Storage", - "tot": "str" - } - ], - "action": "", - "property": "", - "from": "", - "to": "", - "reg": false, - "x": 590, - "y": 140 - }, - { - "id": "8d30f50.0a8dd88", - "type": "switch", - "z": "600f7a12.5ee66c", - "name": "open or closed?", - "wires": [ - [ - "d5d051a2.1ad7a" - ], - [ - "141cc3d2.c3ddf4" - ] - ], - "property": "payload", - "propertyType": "msg", - "rules": [ - { - "t": "eq", - "v": "on", - "vt": "str" - }, - { - "t": "eq", - "v": "off", - "vt": "str" - } - ], - "checkall": "false", - "repair": false, - "outputs": 2, - "x": 800, - "y": 100 - }, - { - "id": "d5d051a2.1ad7a", - "type": "change", - "z": "600f7a12.5ee66c", - "name": "open", - "wires": [ - [ - "50b85b7a.092964" - ] - ], - "rules": [ - { - "t": "set", - "p": "payload", - "pt": "msg", - "to": "open", - "tot": "str" - } - ], - "action": "", - "property": "", - "from": "", - "to": "", - "reg": false, - "x": 970, - "y": 60 - }, - { - "id": "141cc3d2.c3ddf4", - "type": "change", - "z": "600f7a12.5ee66c", - "name": "closed", - "wires": [ - [ - "50b85b7a.092964" - ] - ], - "rules": [ - { - "t": "set", - "p": "payload", - "pt": "msg", - "to": "closed", - "tot": "str" - } - ], - "action": "", - "property": "", - "from": "", - "to": "", - "reg": false, - "x": 970, - "y": 140 - }, - { - "id": "d75236f8.133cd8", - "type": "inject", - "z": "600f7a12.5ee66c", - "name": "", - "wires": [ - [ - "63ef802b.259ca" - ] - ], - "props": [ - { - "p": "payload" - }, - { - "p": "topic", - "vt": "str" - } - ], - "repeat": "", - "crontab": "", - "once": false, - "onceDelay": 0.1, - "topic": "binary_sensor.front_door_state", - "payload": "on", - "payloadType": "str", - "x": 190, - "y": 260 - }, - { - "id": "8ccf280b.4ba23", - "type": "debug", - "z": "600f7a12.5ee66c", - "name": "", - "wires": [], - "active": true, - "tosidebar": true, - "console": false, - "tostatus": false, - "complete": "false", - "statusVal": "", - "statusType": "auto", - "x": 1360, - "y": 180 - }, { "id": "ae332807.ef2fd8", "type": "schedex", @@ -22467,5 +22074,462 @@ ], "x": 120, "y": 1060 + }, + { + "type": "tab", + "label": "Security", + "id": "600f7a12.5ee66c" + }, + { + "id": "1319ea0f.4d86d6", + "type": "api-call-service", + "z": "600f7a12.5ee66c", + "name": "Notify via HA", + "wires": [ + [] + ], + "server": "657c7463.48e1e4", + "version": 7, + "debugenabled": true, + "action": "notify.gotify_ha", + "floorId": [], + "areaId": [], + "deviceId": [], + "entityId": [], + "labelId": [], + "data": "{{{payload}}}", + "dataType": "json", + "mergeContext": "", + "mustacheAltTags": false, + "outputProperties": [], + "queue": "none", + "blockInputOverrides": false, + "domain": "notify", + "service": "gotify_ha", + "output_location": "", + "output_location_type": "none", + "x": 1370, + "y": 80 + }, + { + "id": "96b02618.e84278", + "type": "server-state-changed", + "z": "600f7a12.5ee66c", + "name": "Front door", + "wires": [ + [ + "63ef802b.259ca" + ] + ], + "server": "657c7463.48e1e4", + "version": 6, + "outputs": 1, + "exposeAsEntityConfig": "", + "entities": { + "entity": [ + "binary_sensor.front_door_state" + ], + "substring": [], + "regex": [] + }, + "outputInitially": false, + "stateType": "str", + "ifState": "", + "ifStateType": "str", + "ifStateOperator": "is", + "outputOnlyOnStateChange": true, + "for": "", + "forType": "num", + "forUnits": "minutes", + "ignorePrevStateNull": false, + "ignorePrevStateUnknown": false, + "ignorePrevStateUnavailable": false, + "ignoreCurrentStateUnknown": false, + "ignoreCurrentStateUnavailable": false, + "outputProperties": [ + { + "property": "payload", + "propertyType": "msg", + "value": "", + "valueType": "entityState" + }, + { + "property": "data", + "propertyType": "msg", + "value": "", + "valueType": "eventData" + }, + { + "property": "topic", + "propertyType": "msg", + "value": "", + "valueType": "triggerId" + } + ], + "x": 120, + "y": 60 + }, + { + "id": "50b85b7a.092964", + "type": "template", + "z": "600f7a12.5ee66c", + "name": "Door template", + "wires": [ + [ + "1319ea0f.4d86d6", + "8ccf280b.4ba23" + ] + ], + "field": "payload", + "fieldType": "msg", + "format": "json", + "syntax": "mustache", + "template": "{\n \"title\":\"Info\",\n \"message\":\"{{door_type}} door is {{payload}}.\"\n}\n\n", + "output": "str", + "x": 1160, + "y": 100 + }, + { + "id": "6d21e8a.b9e5b18", + "type": "server-state-changed", + "z": "600f7a12.5ee66c", + "name": "Storage door", + "wires": [ + [ + "63ef802b.259ca" + ] + ], + "server": "657c7463.48e1e4", + "version": 6, + "outputs": 1, + "exposeAsEntityConfig": "", + "entities": { + "entity": [ + "binary_sensor.storage_room_door_state" + ], + "substring": [], + "regex": [] + }, + "outputInitially": false, + "stateType": "str", + "ifState": "", + "ifStateType": "str", + "ifStateOperator": "is", + "outputOnlyOnStateChange": true, + "for": "", + "forType": "num", + "forUnits": "minutes", + "ignorePrevStateNull": false, + "ignorePrevStateUnknown": false, + "ignorePrevStateUnavailable": false, + "ignoreCurrentStateUnknown": false, + "ignoreCurrentStateUnavailable": false, + "outputProperties": [ + { + "property": "payload", + "propertyType": "msg", + "value": "", + "valueType": "entityState" + }, + { + "property": "data", + "propertyType": "msg", + "value": "", + "valueType": "eventData" + }, + { + "property": "topic", + "propertyType": "msg", + "value": "", + "valueType": "triggerId" + } + ], + "x": 110, + "y": 140 + }, + { + "id": "63ef802b.259ca", + "type": "switch", + "z": "600f7a12.5ee66c", + "name": "Which door?", + "wires": [ + [ + "80b797a8.a574a8" + ], + [ + "a3bd4d81.d47768" + ] + ], + "property": "topic", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "binary_sensor.front_door_state", + "vt": "str" + }, + { + "t": "eq", + "v": "binary_sensor.storage_room_door_state", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 350, + "y": 100 + }, + { + "id": "80b797a8.a574a8", + "type": "change", + "z": "600f7a12.5ee66c", + "name": "Set Front door", + "wires": [ + [ + "8d30f50.0a8dd88" + ] + ], + "rules": [ + { + "t": "set", + "p": "door_type", + "pt": "msg", + "to": "Front", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 580, + "y": 60 + }, + { + "id": "a3bd4d81.d47768", + "type": "change", + "z": "600f7a12.5ee66c", + "name": "Set Storage door", + "wires": [ + [ + "8d30f50.0a8dd88" + ] + ], + "rules": [ + { + "t": "set", + "p": "door_type", + "pt": "msg", + "to": "Storage", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 590, + "y": 140 + }, + { + "id": "8d30f50.0a8dd88", + "type": "switch", + "z": "600f7a12.5ee66c", + "name": "open or closed?", + "wires": [ + [ + "d5d051a2.1ad7a" + ], + [ + "141cc3d2.c3ddf4" + ] + ], + "property": "payload", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "on", + "vt": "str" + }, + { + "t": "eq", + "v": "off", + "vt": "str" + } + ], + "checkall": "false", + "repair": false, + "outputs": 2, + "x": 800, + "y": 100 + }, + { + "id": "d5d051a2.1ad7a", + "type": "change", + "z": "600f7a12.5ee66c", + "name": "open", + "wires": [ + [ + "50b85b7a.092964" + ] + ], + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "open", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 970, + "y": 60 + }, + { + "id": "141cc3d2.c3ddf4", + "type": "change", + "z": "600f7a12.5ee66c", + "name": "closed", + "wires": [ + [ + "50b85b7a.092964" + ] + ], + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "closed", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 970, + "y": 140 + }, + { + "id": "d75236f8.133cd8", + "type": "inject", + "z": "600f7a12.5ee66c", + "name": "", + "wires": [ + [ + "63ef802b.259ca" + ] + ], + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "binary_sensor.front_door_state", + "payload": "on", + "payloadType": "str", + "x": 190, + "y": 260 + }, + { + "id": "8ccf280b.4ba23", + "type": "debug", + "z": "600f7a12.5ee66c", + "name": "", + "wires": [], + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1360, + "y": 180 + }, + { + "id": "p2catch_sec", + "type": "catch", + "z": "600f7a12.5ee66c", + "name": "Catch all errors", + "wires": [ + [ + "p2fmt_sec" + ] + ], + "scope": null, + "uncaught": false, + "x": 160, + "y": 460 + }, + { + "id": "p2fmt_sec", + "type": "function", + "z": "600f7a12.5ee66c", + "name": "Format error", + "wires": [ + [ + "p2ntfy_sec" + ] + ], + "func": "const err = (msg.error && msg.error.message) ? msg.error.message : String(msg.payload || 'Unknown error');\nconst src = (msg.error && msg.error.source) ? (msg.error.source.name || msg.error.source.id || '') : '';\nmsg.payload = JSON.stringify({\n title: 'Node-RED Error: Security',\n message: err + (src ? '\\n\\nNode: ' + src : '')\n});\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "timeout": "", + "x": 400, + "y": 460 + }, + { + "id": "p2ntfy_sec", + "type": "api-call-service", + "z": "600f7a12.5ee66c", + "name": "Notify error", + "wires": [ + [] + ], + "server": "657c7463.48e1e4", + "version": 7, + "debugenabled": false, + "action": "notify.gotify_ha", + "floorId": [], + "areaId": [], + "deviceId": [], + "entityId": [], + "labelId": [], + "data": "{{{payload}}}", + "dataType": "json", + "mergeContext": "", + "mustacheAltTags": false, + "outputProperties": [], + "queue": "none", + "blockInputOverrides": false, + "domain": "notify", + "service": "gotify_ha", + "output_location": "", + "output_location_type": "none", + "x": 660, + "y": 460 } ] \ No newline at end of file