Update flow files

This commit is contained in:
2026-05-28 21:13:58 +02:00
parent 11677dd4f5
commit 75e15c7bd1
+190 -190
View File
@@ -78,6 +78,11 @@
"type": "tab", "type": "tab",
"label": "Home Presence" "label": "Home Presence"
}, },
{
"id": "a320f821a7cb3f55",
"type": "tab",
"label": "Maintenance"
},
{ {
"id": "e52c44dc.71cb5", "id": "e52c44dc.71cb5",
"type": "subflow", "type": "subflow",
@@ -22200,21 +22205,11 @@
[] []
] ]
}, },
{
"type": "tab",
"label": "Maintenance",
"id": "a320f821a7cb3f55"
},
{ {
"id": "ecee1bee9953f98a", "id": "ecee1bee9953f98a",
"type": "ha-get-entities", "type": "ha-get-entities",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Low Bat Sensors", "name": "Low Bat Sensors",
"wires": [
[
"5f8552a4635072aa"
]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 1, "version": 1,
"rules": [ "rules": [
@@ -22236,19 +22231,19 @@
"outputLocationType": "msg", "outputLocationType": "msg",
"outputLocation": "payload", "outputLocation": "payload",
"outputResultsCount": 1, "outputResultsCount": 1,
"x": 540, "x": 530,
"y": 160 "y": 100,
"wires": [
[
"5f8552a4635072aa"
]
]
}, },
{ {
"id": "1b30535ba22c4655", "id": "1b30535ba22c4655",
"type": "inject", "type": "inject",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "", "name": "",
"wires": [
[
"293113adda48f9d0"
]
],
"props": [ "props": [
{ {
"p": "payload" "p": "payload"
@@ -22265,15 +22260,19 @@
"topic": "", "topic": "",
"payload": "", "payload": "",
"payloadType": "date", "payloadType": "date",
"x": 120, "x": 160,
"y": 160 "y": 260,
"wires": [
[
"293113adda48f9d0"
]
]
}, },
{ {
"id": "b9891a936c8fb9d0", "id": "b9891a936c8fb9d0",
"type": "debug", "type": "debug",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "debug 3", "name": "debug 3",
"wires": [],
"active": true, "active": true,
"tosidebar": true, "tosidebar": true,
"console": false, "console": false,
@@ -22281,19 +22280,15 @@
"complete": "false", "complete": "false",
"statusVal": "", "statusVal": "",
"statusType": "auto", "statusType": "auto",
"x": 360, "x": 460,
"y": 520 "y": 500,
"wires": []
}, },
{ {
"id": "556cc66d606c190e", "id": "556cc66d606c190e",
"type": "ha-get-entities", "type": "ha-get-entities",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Battery Sensors - Low", "name": "Battery Sensors - Low",
"wires": [
[
"5f8552a4635072aa"
]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 1, "version": 1,
"rules": [ "rules": [
@@ -22321,19 +22316,19 @@
"outputLocationType": "msg", "outputLocationType": "msg",
"outputLocation": "payload", "outputLocation": "payload",
"outputResultsCount": 1, "outputResultsCount": 1,
"x": 560, "x": 540,
"y": 240 "y": 220,
"wires": [
[
"5f8552a4635072aa"
]
]
}, },
{ {
"id": "1e34ff50a693e724", "id": "1e34ff50a693e724",
"type": "ha-get-entities", "type": "ha-get-entities",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Battery Sensors", "name": "Battery Sensors",
"wires": [
[
"b9891a936c8fb9d0"
]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 1, "version": 1,
"rules": [ "rules": [
@@ -22350,16 +22345,18 @@
"outputLocation": "payload", "outputLocation": "payload",
"outputResultsCount": 1, "outputResultsCount": 1,
"x": 140, "x": 140,
"y": 520 "y": 500,
"wires": [
[
"b9891a936c8fb9d0"
]
]
}, },
{ {
"id": "89a7c77a676b858b", "id": "89a7c77a676b858b",
"type": "ha-get-entities", "type": "ha-get-entities",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Battery Sensors - Unavailable", "name": "Battery Sensors - Unavailable",
"wires": [
[]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 1, "version": 1,
"rules": [ "rules": [
@@ -22387,76 +22384,76 @@
"outputLocationType": "msg", "outputLocationType": "msg",
"outputLocation": "payload", "outputLocation": "payload",
"outputResultsCount": 1, "outputResultsCount": 1,
"x": 600, "x": 570,
"y": 340 "y": 340,
"wires": [
[]
]
}, },
{ {
"id": "91f002d04003ce84", "id": "91f002d04003ce84",
"type": "comment", "type": "comment",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Filter for all *battery* entities", "name": "Filter for all *battery* entities",
"wires": [],
"info": "", "info": "",
"x": 200, "x": 180,
"y": 460 "y": 460,
"wires": []
}, },
{ {
"id": "ac0b28356c7eb45a", "id": "ac0b28356c7eb45a",
"type": "comment", "type": "comment",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "HomeMatic Devices", "name": "HomeMatic Devices",
"wires": [],
"info": "", "info": "",
"x": 540, "x": 530,
"y": 100 "y": 60,
"wires": []
}, },
{ {
"id": "a8192e1fcbdc41aa", "id": "a8192e1fcbdc41aa",
"type": "comment", "type": "comment",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Hue devices", "name": "Hue devices",
"wires": [],
"info": "", "info": "",
"x": 560, "x": 510,
"y": 200 "y": 180,
"wires": []
}, },
{ {
"id": "6beef06f4f0b788d", "id": "6beef06f4f0b788d",
"type": "comment", "type": "comment",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Any unavailable device", "name": "Any unavailable device",
"wires": [],
"info": "", "info": "",
"x": 600, "x": 540,
"y": 300 "y": 300,
"wires": []
}, },
{ {
"id": "5f8552a4635072aa", "id": "5f8552a4635072aa",
"type": "split", "type": "split",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "", "name": "",
"wires": [
[
"9dcd82782246d4e9"
]
],
"splt": "\\n", "splt": "\\n",
"spltType": "str", "spltType": "str",
"arraySplt": 1, "arraySplt": 1,
"arraySpltType": "len", "arraySpltType": "len",
"stream": false, "stream": false,
"addname": "", "addname": "",
"x": 840, "x": 830,
"y": 200 "y": 160,
"wires": [
[
"9dcd82782246d4e9"
]
]
}, },
{ {
"id": "cc33a58286775199", "id": "cc33a58286775199",
"type": "api-call-service", "type": "api-call-service",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Notify via HA", "name": "Notify via HA",
"wires": [
[]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 7, "version": 7,
"debugenabled": false, "debugenabled": false,
@@ -22478,39 +22475,35 @@
"output_location": "", "output_location": "",
"output_location_type": "none", "output_location_type": "none",
"x": 1260, "x": 1260,
"y": 200 "y": 200,
"wires": [
[]
]
}, },
{ {
"id": "9dcd82782246d4e9", "id": "9dcd82782246d4e9",
"type": "template", "type": "template",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "", "name": "",
"wires": [
[
"cc33a58286775199"
]
],
"field": "payload", "field": "payload",
"fieldType": "msg", "fieldType": "msg",
"format": "handlebars", "format": "handlebars",
"syntax": "mustache", "syntax": "mustache",
"template": "Battery level low for {{payload.attributes.friendly_name}} ({{payload.state}}%)", "template": "Battery level low for {{payload.attributes.friendly_name}} ({{payload.state}}%)",
"output": "str", "output": "str",
"x": 1060, "x": 1000,
"y": 200 "y": 160,
"wires": [
[
"cc33a58286775199"
]
]
}, },
{ {
"id": "293113adda48f9d0", "id": "293113adda48f9d0",
"type": "schedex", "type": "schedex",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Saturday at 11:00", "name": "Saturday at 11:00",
"wires": [
[
"ecee1bee9953f98a",
"556cc66d606c190e",
"89a7c77a676b858b"
]
],
"passthroughunhandled": true, "passthroughunhandled": true,
"suspended": false, "suspended": false,
"lat": "", "lat": "",
@@ -22532,41 +22525,42 @@
"fri": true, "fri": true,
"sat": true, "sat": true,
"sun": false, "sun": false,
"x": 320, "x": 170,
"y": 160 "y": 180,
"wires": [
[
"ecee1bee9953f98a",
"556cc66d606c190e",
"89a7c77a676b858b"
]
]
}, },
{ {
"id": "edaf40fcc105703a", "id": "edaf40fcc105703a",
"type": "comment", "type": "comment",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Battery state alerts for all devices", "name": "Battery state alerts for all devices",
"wires": [],
"info": "", "info": "",
"x": 220, "x": 210,
"y": 40 "y": 140,
"wires": []
}, },
{ {
"id": "e4eda627074a2cf3", "id": "e4eda627074a2cf3",
"type": "comment", "type": "comment",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Unavailable devices alert", "name": "Unavailable devices alert",
"wires": [],
"info": "Any devices that becomes unavailable in Home Assistant will be reported. This might indicate zigbee connecticity issues.", "info": "Any devices that becomes unavailable in Home Assistant will be reported. This might indicate zigbee connecticity issues.",
"x": 180, "x": 170,
"y": 600 "y": 560,
"wires": []
}, },
{ {
"id": "a2a4917908eed983", "id": "a2a4917908eed983",
"type": "trigger-state", "type": "trigger-state",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "",
"wires": [
[
"deb32f94b6f9aad7"
],
[]
],
"d": true, "d": true,
"name": "",
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 5, "version": 5,
"inputs": 0, "inputs": 0,
@@ -22595,15 +22589,20 @@
"outputInitially": false, "outputInitially": false,
"stateType": "str", "stateType": "str",
"enableInput": false, "enableInput": false,
"x": 120, "x": 140,
"y": 660 "y": 600,
"wires": [
[
"deb32f94b6f9aad7"
],
[]
]
}, },
{ {
"id": "deb32f94b6f9aad7", "id": "deb32f94b6f9aad7",
"type": "debug", "type": "debug",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "State changed debug", "name": "State changed debug",
"wires": [],
"active": false, "active": false,
"tosidebar": true, "tosidebar": true,
"console": false, "console": false,
@@ -22612,39 +22611,35 @@
"targetType": "msg", "targetType": "msg",
"statusVal": "", "statusVal": "",
"statusType": "auto", "statusType": "auto",
"x": 360, "x": 500,
"y": 660 "y": 600,
"wires": []
}, },
{ {
"id": "comment-heos-individual", "id": "comment-heos-individual",
"type": "comment", "type": "comment",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "HEOS individual speaker reset via TCP", "name": "HEOS individual speaker reset via TCP",
"wires": [],
"info": "", "info": "",
"x": 220, "x": 210,
"y": 760 "y": 720,
"wires": []
}, },
{ {
"id": "comment-heos-all", "id": "comment-heos-all",
"type": "comment", "type": "comment",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "HEOS reset all speakers sequentially", "name": "HEOS reset all speakers sequentially",
"wires": [],
"info": "", "info": "",
"x": 220, "x": 210,
"y": 1140 "y": 960,
"wires": []
}, },
{ {
"id": "heos-trigger-bedroom", "id": "heos-trigger-bedroom",
"type": "server-state-changed", "type": "server-state-changed",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Reset Speaker Bedroom", "name": "Reset Speaker Bedroom",
"wires": [
[
"heos-change-target"
]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 6, "version": 6,
"outputs": 1, "outputs": 1,
@@ -22674,7 +22669,7 @@
{ {
"property": "payload", "property": "payload",
"propertyType": "msg", "propertyType": "msg",
"value": "", "value": "string",
"valueType": "entityState" "valueType": "entityState"
}, },
{ {
@@ -22702,19 +22697,19 @@
"valueType": "str" "valueType": "str"
} }
], ],
"x": 160, "x": 170,
"y": 820 "y": 760,
"wires": [
[
"heos-change-target"
]
]
}, },
{ {
"id": "heos-trigger-kitchen", "id": "heos-trigger-kitchen",
"type": "server-state-changed", "type": "server-state-changed",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Reset Speaker Kitchen", "name": "Reset Speaker Kitchen",
"wires": [
[
"heos-change-target"
]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 6, "version": 6,
"outputs": 1, "outputs": 1,
@@ -22773,18 +22768,18 @@
} }
], ],
"x": 160, "x": 160,
"y": 900 "y": 800,
"wires": [
[
"heos-change-target"
]
]
}, },
{ {
"id": "heos-trigger-bathroom", "id": "heos-trigger-bathroom",
"type": "server-state-changed", "type": "server-state-changed",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Reset Speaker Bathroom", "name": "Reset Speaker Bathroom",
"wires": [
[
"heos-change-target"
]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 6, "version": 6,
"outputs": 1, "outputs": 1,
@@ -22842,19 +22837,19 @@
"valueType": "str" "valueType": "str"
} }
], ],
"x": 160, "x": 170,
"y": 980 "y": 840,
"wires": [
[
"heos-change-target"
]
]
}, },
{ {
"id": "heos-trigger-hometheater", "id": "heos-trigger-hometheater",
"type": "server-state-changed", "type": "server-state-changed",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Reset Speaker Home Theater", "name": "Reset Speaker Home Theater",
"wires": [
[
"heos-change-target"
]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 6, "version": 6,
"outputs": 1, "outputs": 1,
@@ -22913,19 +22908,18 @@
} }
], ],
"x": 180, "x": 180,
"y": 1060 "y": 880,
"wires": [
[
"heos-change-target"
]
]
}, },
{ {
"id": "heos-change-target", "id": "heos-change-target",
"type": "change", "type": "change",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Set speaker target", "name": "Set speaker target",
"wires": [
[
"heos-tcp",
"heos-debug"
]
],
"rules": [ "rules": [
{ {
"t": "set", "t": "set",
@@ -22945,7 +22939,7 @@
"t": "set", "t": "set",
"p": "payload", "p": "payload",
"pt": "msg", "pt": "msg",
"to": "heos://system/reboot\r\n", "to": "heos://system/reboot",
"tot": "str" "tot": "str"
}, },
{ {
@@ -22961,17 +22955,20 @@
"from": "", "from": "",
"to": "", "to": "",
"reg": false, "reg": false,
"x": 460, "x": 470,
"y": 940 "y": 820,
"wires": [
[
"heos-tcp",
"heos-debug"
]
]
}, },
{ {
"id": "heos-tcp", "id": "heos-tcp",
"type": "tcp request", "type": "tcp request",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Telnet HEOS", "name": "Telnet HEOS",
"wires": [
[]
],
"server": "", "server": "",
"port": "", "port": "",
"out": "immed", "out": "immed",
@@ -22980,15 +22977,17 @@
"newline": "", "newline": "",
"trim": false, "trim": false,
"tls": "", "tls": "",
"x": 700, "x": 730,
"y": 900 "y": 780,
"wires": [
[]
]
}, },
{ {
"id": "heos-debug", "id": "heos-debug",
"type": "debug", "type": "debug",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "HEOS command (debug)", "name": "HEOS command (debug)",
"wires": [],
"active": true, "active": true,
"tosidebar": true, "tosidebar": true,
"console": false, "console": false,
@@ -22997,19 +22996,15 @@
"targetType": "full", "targetType": "full",
"statusVal": "", "statusVal": "",
"statusType": "auto", "statusType": "auto",
"x": 700, "x": 770,
"y": 980 "y": 840,
"wires": []
}, },
{ {
"id": "heos-trigger-all", "id": "heos-trigger-all",
"type": "server-state-changed", "type": "server-state-changed",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Reset All Speakers", "name": "Reset All Speakers",
"wires": [
[
"heos-emit-all"
]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 6, "version": 6,
"outputs": 1, "outputs": 1,
@@ -23055,38 +23050,38 @@
"valueType": "triggerId" "valueType": "triggerId"
} }
], ],
"x": 160, "x": 150,
"y": 1200 "y": 1000,
"wires": [
[
"heos-emit-all"
]
]
}, },
{ {
"id": "heos-emit-all", "id": "heos-emit-all",
"type": "function", "type": "function",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Emit 4 button presses", "name": "Emit 4 button presses",
"wires": [
[
"heos-delay-all"
]
],
"func": "const buttons = [\n \"input_button.reset_speaker_bedroom\",\n \"input_button.reset_speaker_kitchen\",\n \"input_button.reset_speaker_bathroom\",\n \"input_button.reset_speaker_home_theater\"\n];\nreturn [buttons.map(b => ({ ...msg, payload: b }))];", "func": "const buttons = [\n \"input_button.reset_speaker_bedroom\",\n \"input_button.reset_speaker_kitchen\",\n \"input_button.reset_speaker_bathroom\",\n \"input_button.reset_speaker_home_theater\"\n];\nreturn [buttons.map(b => ({ ...msg, payload: b }))];",
"outputs": 1, "outputs": 1,
"noerr": 0, "noerr": 0,
"initialize": "", "initialize": "",
"finalize": "", "finalize": "",
"libs": [], "libs": [],
"x": 420, "x": 410,
"y": 1200 "y": 1000,
"wires": [
[
"heos-delay-all"
]
]
}, },
{ {
"id": "heos-delay-all", "id": "heos-delay-all",
"type": "delay", "type": "delay",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "5s between resets", "name": "5s between resets",
"wires": [
[
"heos-service-press"
]
],
"pauseType": "rate", "pauseType": "rate",
"timeout": "5", "timeout": "5",
"timeoutUnits": "seconds", "timeoutUnits": "seconds",
@@ -23099,17 +23094,19 @@
"drop": false, "drop": false,
"allowrate": false, "allowrate": false,
"outputs": 1, "outputs": 1,
"x": 660, "x": 650,
"y": 1200 "y": 1000,
"wires": [
[
"heos-service-press"
]
]
}, },
{ {
"id": "heos-service-press", "id": "heos-service-press",
"type": "api-call-service", "type": "api-call-service",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Press speaker reset button", "name": "Press speaker reset button",
"wires": [
[]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 7, "version": 7,
"debugenabled": false, "debugenabled": false,
@@ -23128,34 +23125,32 @@
"blockInputOverrides": false, "blockInputOverrides": false,
"domain": "input_button", "domain": "input_button",
"service": "press", "service": "press",
"x": 920, "x": 910,
"y": 1200 "y": 1000,
"wires": [
[]
]
}, },
{ {
"id": "p2catch_mnt", "id": "p2catch_mnt",
"type": "catch", "type": "catch",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Catch all errors", "name": "Catch all errors",
"scope": null,
"uncaught": false,
"x": 140,
"y": 1080,
"wires": [ "wires": [
[ [
"p2fmt_mnt" "p2fmt_mnt"
] ]
], ]
"scope": null,
"uncaught": false,
"x": 140,
"y": 1360
}, },
{ {
"id": "p2fmt_mnt", "id": "p2fmt_mnt",
"type": "function", "type": "function",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Format error", "name": "Format error",
"wires": [
[
"p2ntfy_mnt"
]
],
"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: Maintenance',\n message: err + (src ? '\\n\\nNode: ' + src : '')\n});\nreturn msg;", "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: Maintenance',\n message: err + (src ? '\\n\\nNode: ' + src : '')\n});\nreturn msg;",
"outputs": 1, "outputs": 1,
"timeout": "", "timeout": "",
@@ -23163,17 +23158,19 @@
"initialize": "", "initialize": "",
"finalize": "", "finalize": "",
"libs": [], "libs": [],
"x": 340, "x": 370,
"y": 1360 "y": 1080,
"wires": [
[
"p2ntfy_mnt"
]
]
}, },
{ {
"id": "p2ntfy_mnt", "id": "p2ntfy_mnt",
"type": "api-call-service", "type": "api-call-service",
"z": "a320f821a7cb3f55", "z": "a320f821a7cb3f55",
"name": "Notify error", "name": "Notify error",
"wires": [
[]
],
"server": "657c7463.48e1e4", "server": "657c7463.48e1e4",
"version": 7, "version": 7,
"debugenabled": false, "debugenabled": false,
@@ -23194,7 +23191,10 @@
"service": "gotify_ha", "service": "gotify_ha",
"output_location": "", "output_location": "",
"output_location_type": "none", "output_location_type": "none",
"x": 520, "x": 650,
"y": 1360 "y": 1080,
"wires": [
[]
]
} }
] ]