Compare commits

..

13 Commits

Author SHA1 Message Date
Housemann
c19759abbd Floor Status Display Wake Up Movement Sensor 2025-07-31 18:58:42 +02:00
Housemann
d3f1da8d14 Script create Floor statusdisplay 2025-07-31 18:31:10 +02:00
Housemann
46f34e18c1 Script Send Chantal to Dining Area 2025-07-31 17:16:08 +02:00
Housemann
de06842daf script angepasst um delay und suche nach _echo_ raus 2025-07-26 10:49:29 +02:00
Housemann
4666a62741 Create script and add alexa and critical notifications 2025-07-25 09:39:56 +02:00
Housemann
68d6fc4cbf Script erstellt für Pause bei Klingel 2025-07-20 19:21:13 +02:00
Housemann
4f4a70a861 Script erstellt 2025-07-20 19:07:32 +02:00
Housemann
ab6877352c Scritp erstellt 2025-07-20 18:42:50 +02:00
Housemann
319f50db76 gitignore 2025-05-16 06:54:37 +02:00
Housemann
2e4aa55cf3 gitignore hinzugefügt 2025-05-16 06:54:09 +02:00
Housemann
6685394869 Küche Arbeitsbeleuchtung eingebaut bei Diele Bewegung 2025-05-16 06:37:38 +02:00
Housemann
73c92fbb34 time range durch current state Node getauscht 2025-04-25 16:01:54 +02:00
Housemann
bf5fe154ef Werte auf Minuten umgebaut 2025-04-25 15:31:49 +02:00
8 changed files with 3357 additions and 16 deletions

37
.gitignore vendored Normal file
View File

@ -0,0 +1,37 @@
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

View File

@ -17,12 +17,18 @@
"43d024d394d94663",
"00b3ef7322366374",
"87806c641c86c3d9",
"14c3a212afc4cd78"
"14c3a212afc4cd78",
"7e7074a18d177e16",
"38767c1f739f3c8d",
"4f22d1a57648e607",
"2b525828bc96835e",
"c730df6b04bdaf41",
"fa8d1668235782d3"
],
"x": 14,
"y": 419,
"y": 399,
"w": 1412,
"h": 142
"h": 282
},
{
"id": "ec44baea08cc2923",
@ -76,11 +82,12 @@
}
],
"x": 150,
"y": 500,
"y": 520,
"wires": [
[
"c51f9311d8d05015",
"00b3ef7322366374"
"00b3ef7322366374",
"38767c1f739f3c8d"
],
[]
]
@ -126,7 +133,8 @@
"y": 460,
"wires": [
[
"c8a63c6fa6d37a51"
"c8a63c6fa6d37a51",
"7e7074a18d177e16"
],
[]
]
@ -135,6 +143,7 @@
"id": "c8a63c6fa6d37a51",
"type": "time-range-switch",
"z": "a1055886e0cbd337",
"d": true,
"g": "23b8f90b282ac8a2",
"name": "Nur Nachts 20-8",
"lat": "51.2115333",
@ -144,7 +153,7 @@
"startOffset": 0,
"endOffset": 0,
"x": 800,
"y": 460,
"y": 480,
"wires": [
[
"5b5ec57984037a5c"
@ -180,7 +189,7 @@
"domain": "light",
"service": "turn_on",
"x": 1270,
"y": 460,
"y": 440,
"wires": [
[]
]
@ -213,7 +222,7 @@
"domain": "light",
"service": "turn_off",
"x": 1270,
"y": 520,
"y": 580,
"wires": [
[]
]
@ -237,10 +246,10 @@
"allowrate": false,
"outputs": 1,
"x": 1020,
"y": 520,
"y": 580,
"wires": [
[
"f0c5e4339b494c3a"
"fa8d1668235782d3"
]
]
},
@ -248,6 +257,7 @@
"id": "00b3ef7322366374",
"type": "time-range-switch",
"z": "a1055886e0cbd337",
"d": true,
"g": "23b8f90b282ac8a2",
"name": "Nur Nachts 20-8",
"lat": "51.2115333",
@ -257,7 +267,7 @@
"startOffset": 0,
"endOffset": 0,
"x": 380,
"y": 520,
"y": 540,
"wires": [
[
"87806c641c86c3d9"
@ -277,7 +287,7 @@
"halt_if": "0",
"halt_if_type": "num",
"halt_if_compare": "gt",
"entity_id": "input_number.diele_timer_nachtlicht",
"entity_id": "input_number.diele_nachtlicht_timer",
"state_type": "num",
"blockInputOverrides": true,
"outputProperties": [
@ -303,7 +313,7 @@
"entity_location": "data",
"override_data": "msg",
"x": 600,
"y": 520,
"y": 580,
"wires": [
[
"14c3a212afc4cd78"
@ -317,7 +327,7 @@
"z": "a1055886e0cbd337",
"g": "23b8f90b282ac8a2",
"name": "Min2Millisekunden",
"func": "// Annahme: msg.payload enthält den Wert in Sekunden\nlet sekunden = msg.payload;\nmsg.delay = sekunden * 1000; // Sekdunen → Millisekunden\nreturn msg;",
"func": "// Annahme: msg.payload enthält den Wert in Minuten\nlet minuten = msg.payload;\nmsg.delay = minuten * 60 * 1000; // Minuten → Millisekunden\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
@ -325,13 +335,197 @@
"finalize": "",
"libs": [],
"x": 810,
"y": 520,
"y": 580,
"wires": [
[
"43d024d394d94663"
]
]
},
{
"id": "7e7074a18d177e16",
"type": "api-current-state",
"z": "a1055886e0cbd337",
"g": "23b8f90b282ac8a2",
"name": "Nachtlich Zeitplan",
"server": "387b3091.65c5",
"version": 3,
"outputs": 2,
"halt_if": "on",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "schedule.diele_nachtlicht_zeitplan",
"state_type": "str",
"blockInputOverrides": true,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "entity"
}
],
"for": "0",
"forType": "num",
"forUnits": "minutes",
"override_topic": false,
"state_location": "payload",
"override_payload": "msg",
"entity_location": "data",
"override_data": "msg",
"x": 790,
"y": 440,
"wires": [
[
"2b525828bc96835e"
],
[]
]
},
{
"id": "38767c1f739f3c8d",
"type": "api-current-state",
"z": "a1055886e0cbd337",
"g": "23b8f90b282ac8a2",
"name": "Nachtlich Zeitplan",
"server": "387b3091.65c5",
"version": 3,
"outputs": 2,
"halt_if": "on",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "schedule.diele_nachtlicht_zeitplan",
"state_type": "str",
"blockInputOverrides": true,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "entity"
}
],
"for": "0",
"forType": "num",
"forUnits": "minutes",
"override_topic": false,
"state_location": "payload",
"override_payload": "msg",
"entity_location": "data",
"override_data": "msg",
"x": 390,
"y": 580,
"wires": [
[
"87806c641c86c3d9"
],
[]
]
},
{
"id": "4f22d1a57648e607",
"type": "api-call-service",
"z": "a1055886e0cbd337",
"g": "23b8f90b282ac8a2",
"name": "Küche LED Streifen AN",
"server": "387b3091.65c5",
"version": 7,
"debugenabled": false,
"action": "light.turn_on",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"light.arbeitsplatte"
],
"labelId": [],
"data": "{\"brightness\":\"40\"\t,\"profile\":\"relax\"}",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": false,
"domain": "light",
"service": "turn_on",
"x": 1250,
"y": 500,
"wires": [
[]
]
},
{
"id": "2b525828bc96835e",
"type": "junction",
"z": "a1055886e0cbd337",
"g": "23b8f90b282ac8a2",
"x": 1080,
"y": 440,
"wires": [
[
"5b5ec57984037a5c",
"4f22d1a57648e607"
]
]
},
{
"id": "c730df6b04bdaf41",
"type": "api-call-service",
"z": "a1055886e0cbd337",
"g": "23b8f90b282ac8a2",
"name": "Küche LED Streifen AUS",
"server": "387b3091.65c5",
"version": 7,
"debugenabled": false,
"action": "light.turn_off",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"light.arbeitsplatte"
],
"labelId": [],
"data": "",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": false,
"domain": "light",
"service": "turn_off",
"x": 1250,
"y": 640,
"wires": [
[]
]
},
{
"id": "fa8d1668235782d3",
"type": "junction",
"z": "a1055886e0cbd337",
"g": "23b8f90b282ac8a2",
"x": 1100,
"y": 580,
"wires": [
[
"f0c5e4339b494c3a",
"c730df6b04bdaf41"
]
]
},
{
"id": "387b3091.65c5",
"type": "server",

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,182 @@
[
{
"id": "ec8c530269d9809c",
"type": "group",
"z": "74eab2802feb3cf4",
"name": "Heimkino Pause bei Klingel",
"style": {
"fill": "#dbcbe7",
"label": true
},
"nodes": [
"bbe2bd314f9ccfdd",
"a53fb4f4f48cc404",
"3bdb09facf75d941"
],
"x": 14,
"y": 319,
"w": 1172,
"h": 82
},
{
"id": "bbe2bd314f9ccfdd",
"type": "server-state-changed",
"z": "74eab2802feb3cf4",
"g": "ec8c530269d9809c",
"name": "Klingel",
"server": "162e4f7136cd343a",
"version": 6,
"outputs": 2,
"exposeAsEntityConfig": "",
"entities": {
"entity": [
"binary_sensor.diele_klingelsensor"
],
"substring": [],
"regex": []
},
"outputInitially": false,
"stateType": "str",
"ifState": "on",
"ifStateType": "str",
"ifStateOperator": "is",
"outputOnlyOnStateChange": true,
"for": "0",
"forType": "num",
"forUnits": "minutes",
"ignorePrevStateNull": false,
"ignorePrevStateUnknown": false,
"ignorePrevStateUnavailable": false,
"ignoreCurrentStateUnknown": false,
"ignoreCurrentStateUnavailable": false,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "Jemand hat an der Haustüre geschellt",
"valueType": "str"
},
{
"property": "topic",
"propertyType": "msg",
"value": "Klingel",
"valueType": "str"
},
{
"property": "sound",
"propertyType": "msg",
"value": "bike",
"valueType": "str"
}
],
"x": 90,
"y": 360,
"wires": [
[
"a53fb4f4f48cc404"
],
[]
]
},
{
"id": "a53fb4f4f48cc404",
"type": "api-current-state",
"z": "74eab2802feb3cf4",
"g": "ec8c530269d9809c",
"name": "State Apple TV",
"server": "162e4f7136cd343a",
"version": 3,
"outputs": 2,
"halt_if": "playing",
"halt_if_type": "str",
"halt_if_compare": "is",
"entity_id": "media_player.multimedia",
"state_type": "str",
"blockInputOverrides": true,
"outputProperties": [
{
"property": "payload",
"propertyType": "msg",
"value": "",
"valueType": "entityState"
},
{
"property": "data",
"propertyType": "msg",
"value": "",
"valueType": "entity"
}
],
"for": "0",
"forType": "num",
"forUnits": "minutes",
"override_topic": false,
"state_location": "payload",
"override_payload": "msg",
"entity_location": "data",
"override_data": "msg",
"x": 420,
"y": 360,
"wires": [
[
"3bdb09facf75d941"
],
[]
]
},
{
"id": "3bdb09facf75d941",
"type": "api-call-service",
"z": "74eab2802feb3cf4",
"g": "ec8c530269d9809c",
"name": "Apple TV Pause",
"server": "162e4f7136cd343a",
"version": 7,
"debugenabled": false,
"action": "media_player.media_pause",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"media_player.multimedia"
],
"labelId": [],
"data": "",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": true,
"domain": "media_player",
"service": "media_pause",
"x": 1080,
"y": 360,
"wires": [
[]
]
},
{
"id": "162e4f7136cd343a",
"type": "server",
"name": "Home Assistant",
"version": 5,
"addon": false,
"rejectUnauthorizedCerts": true,
"ha_boolean": "y|yes|true|on|home|open",
"connectionDelay": true,
"cacheJson": true,
"heartbeat": true,
"heartbeatInterval": "10",
"areaSelector": "friendlyName",
"deviceSelector": "friendlyName",
"entitySelector": "friendlyName",
"statusSeparator": ": ",
"statusYear": "hidden",
"statusMonth": "short",
"statusDay": "numeric",
"statusHourCycle": "default",
"statusTimeFormat": "h:m",
"enableGlobalContextStore": false
}
]

View File

@ -0,0 +1,162 @@
[
{
"id": "a0b2588596805a6b",
"type": "group",
"z": "97ac338125ef7574",
"name": "Küche Milch Auto Aus",
"style": {
"fill": "#e3f3d3",
"label": true
},
"nodes": [
"9098a3b94fafb8d1",
"b1fad812fd4fcba0",
"581fb8dd7042b734"
],
"x": 34,
"y": 359,
"w": 1132,
"h": 82
},
{
"id": "9098a3b94fafb8d1",
"type": "server-state-changed",
"z": "97ac338125ef7574",
"g": "a0b2588596805a6b",
"name": "Küche Milch",
"server": "162e4f7136cd343a",
"version": 6,
"outputs": 2,
"exposeAsEntityConfig": "",
"entities": {
"entity": [
"switch.kuche_baby_breezer"
],
"substring": [],
"regex": []
},
"outputInitially": false,
"stateType": "str",
"ifState": "on",
"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": 130,
"y": 400,
"wires": [
[
"581fb8dd7042b734"
],
[]
]
},
{
"id": "b1fad812fd4fcba0",
"type": "api-call-service",
"z": "97ac338125ef7574",
"g": "a0b2588596805a6b",
"name": "Küche Milch Aus",
"server": "162e4f7136cd343a",
"version": 7,
"debugenabled": false,
"action": "switch.turn_off",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"switch.kuche_baby_breezer"
],
"labelId": [],
"data": "",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": true,
"domain": "switch",
"service": "turn_off",
"x": 1050,
"y": 400,
"wires": [
[]
]
},
{
"id": "581fb8dd7042b734",
"type": "delay",
"z": "97ac338125ef7574",
"g": "a0b2588596805a6b",
"name": "",
"pauseType": "delay",
"timeout": "5",
"timeoutUnits": "minutes",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 480,
"y": 400,
"wires": [
[
"b1fad812fd4fcba0"
]
]
},
{
"id": "162e4f7136cd343a",
"type": "server",
"name": "Home Assistant",
"version": 5,
"addon": false,
"rejectUnauthorizedCerts": true,
"ha_boolean": "y|yes|true|on|home|open",
"connectionDelay": true,
"cacheJson": true,
"heartbeat": true,
"heartbeatInterval": "10",
"areaSelector": "friendlyName",
"deviceSelector": "friendlyName",
"entitySelector": "friendlyName",
"statusSeparator": ": ",
"statusYear": "hidden",
"statusMonth": "short",
"statusDay": "numeric",
"statusHourCycle": "default",
"statusTimeFormat": "h:m",
"enableGlobalContextStore": false
}
]

View File

@ -0,0 +1,162 @@
[
{
"id": "70de134cfdc04e0d",
"type": "group",
"z": "97ac338125ef7574",
"name": "Küche Wasserkocher Auto Aus",
"style": {
"fill": "#e3f3d3",
"label": true
},
"nodes": [
"83515f35bc98956a",
"0c50f796b7692d83",
"6b1696f0efaa58a4"
],
"x": 34,
"y": 459,
"w": 1132,
"h": 82
},
{
"id": "83515f35bc98956a",
"type": "server-state-changed",
"z": "97ac338125ef7574",
"g": "70de134cfdc04e0d",
"name": "Küche Wasserkocher",
"server": "162e4f7136cd343a",
"version": 6,
"outputs": 2,
"exposeAsEntityConfig": "",
"entities": {
"entity": [
"switch.kuche_wasserkocher"
],
"substring": [],
"regex": []
},
"outputInitially": false,
"stateType": "str",
"ifState": "on",
"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": 160,
"y": 500,
"wires": [
[
"6b1696f0efaa58a4"
],
[]
]
},
{
"id": "0c50f796b7692d83",
"type": "api-call-service",
"z": "97ac338125ef7574",
"g": "70de134cfdc04e0d",
"name": "Küche Wasserkocher Aus",
"server": "162e4f7136cd343a",
"version": 7,
"debugenabled": false,
"action": "switch.turn_off",
"floorId": [],
"areaId": [],
"deviceId": [],
"entityId": [
"switch.kuche_wasserkocher"
],
"labelId": [],
"data": "",
"dataType": "jsonata",
"mergeContext": "",
"mustacheAltTags": false,
"outputProperties": [],
"queue": "none",
"blockInputOverrides": true,
"domain": "switch",
"service": "turn_off",
"x": 1030,
"y": 500,
"wires": [
[]
]
},
{
"id": "6b1696f0efaa58a4",
"type": "delay",
"z": "97ac338125ef7574",
"g": "70de134cfdc04e0d",
"name": "",
"pauseType": "delay",
"timeout": "7",
"timeoutUnits": "minutes",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 480,
"y": 500,
"wires": [
[
"0c50f796b7692d83"
]
]
},
{
"id": "162e4f7136cd343a",
"type": "server",
"name": "Home Assistant",
"version": 5,
"addon": false,
"rejectUnauthorizedCerts": true,
"ha_boolean": "y|yes|true|on|home|open",
"connectionDelay": true,
"cacheJson": true,
"heartbeat": true,
"heartbeatInterval": "10",
"areaSelector": "friendlyName",
"deviceSelector": "friendlyName",
"entitySelector": "friendlyName",
"statusSeparator": ": ",
"statusYear": "hidden",
"statusMonth": "short",
"statusDay": "numeric",
"statusHourCycle": "default",
"statusTimeFormat": "h:m",
"enableGlobalContextStore": false
}
]

File diff suppressed because it is too large Load Diff

223
notification_board.yaml Normal file
View File

@ -0,0 +1,223 @@
alias: Notification Board
mode: queued
max: 10
description: ""
fields:
message:
name: Message
description: Nachricht
selector:
text:
multiline: true
title:
name: Title
description: Titel
selector:
text: null
critical:
name: Critical
description: iPhone Kritische Hinweise
selector:
boolean: {}
required: true
notify_alexa_durchsagen:
name: Notify Alexa (Durchsagen)
description: Sprachausgabe über Amazon-Geräte mit "_durchsagen"
selector:
boolean: {}
required: true
notify_alexa_sprechen:
name: Notify Alexa (Sprechen)
description: Sprachausgabe über Amazon-Geräte mit "_sprechen"
selector:
boolean: {}
required: true
notify_tv:
name: Notify TV
description: Benachrichtigung auf TV Geräten
selector:
boolean: {}
required: true
pushover_oliver:
name: Pushover Oliver
description: Benachrichtigung über Pushover (Oliver)
selector:
boolean: {}
required: true
pushover_lisa:
name: Pushover Lisa
description: Benachrichtigung über Pushover (Lisa)
selector:
boolean: {}
required: true
notify_persistent:
name: Notify Persistent (Nur App)
description: Dauerhafte Benachrichtigung in Home Assistant
selector:
boolean: {}
required: true
notify_oliver:
name: Notify Oliver
description: Benachrichtigung über Mobile App (Oliver)
selector:
boolean: {}
required: true
notify_lisa:
name: Notify Lisa
description: Benachrichtigung über Mobile App (Lisa)
selector:
boolean: {}
required: true
notify_familie:
name: Notify Familie
description: Benachrichtigung über beide Mobile Apps
selector:
boolean: {}
required: true
sequence:
- variables:
persistent_data: >-
{% if notify_persistent %}
{"notification_id": "{{ title | default("benachrichtigung") | lower | replace(" ", "_") }}"}
{% else %} {} {% endif %}
- variables:
tv_on: "{{ is_state('media_player.lg_webos_tv_nano769qa', 'on') }}"
- variables:
notify_targets: >-
{% set t = [] %}
{% if notify_persistent %}
{% set t = t + ['notify.persistent_notification'] %}
{% endif %}
{% if notify_alexa_durchsagen %}
{% set alexas_durchsagen = states.notify
| selectattr('entity_id', 'match', 'notify\\..*_durchsagen')
| rejectattr('entity_id', 'search', 'multiroom_durchsagen')
| rejectattr('entity_id', 'search', 'uberall_durchsagen')
| map(attribute='entity_id')
| list %}
{% set t = t + alexas_durchsagen %}
{% endif %}
{% if notify_alexa_sprechen %}
{% set alexas_sprechen = states.notify
| selectattr('entity_id', 'match', 'notify\\..*_sprechen')
| map(attribute='entity_id')
| list %}
{% set t = t + alexas_sprechen %}
{% endif %}
{% if notify_tv and tv_on %}
{% set t = t + ['notify.lg_webos_tv_nano769qa'] %}
{% endif %}
{% if pushover_oliver %}
{% set t = t + ['notify.pushover_oliver'] %}
{% endif %}
{% if pushover_lisa %}
{% set t = t + ['notify.pushover_lisa'] %}
{% endif %}
{% if notify_oliver %}
{% set t = t + ['notify.mobile_app_finger_weg_du_spasst'] %}
{% endif %}
{% if notify_lisa %}
{% set t = t + ['notify.mobile_app_meins'] %}
{% endif %}
{% if notify_familie %}
{% set t = t + ['notify.mobile_app_finger_weg_du_spasst', 'notify.mobile_app_meins'] %}
{% endif %}
{{ t | map('lower') | map('trim') | unique | list }}
- repeat:
for_each: "{{ notify_targets }}"
sequence:
- choose:
# PERSISTENT NOTIFICATION
- conditions:
- condition: template
value_template: "{{ repeat.item == 'notify.persistent_notification' }}"
sequence:
- data:
message: "{{ message }}"
title: "{{ title | default('Benachrichtigung') }}"
data: "{{ persistent_data | from_json(default={}) }}"
action: notify.persistent_notification
# PUSHOVER
- conditions:
- condition: template
value_template: "{{ repeat.item.startswith('notify.pushover') }}"
sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ critical }}"
sequence:
- data:
message: "{{ message }}"
title: "{{ title | default('Benachrichtigung') }}"
data:
priority: 2
sound: siren
retry: 30
expire: 300
action: "{{ repeat.item }}"
- conditions:
- condition: template
value_template: "{{ not critical }}"
sequence:
- data:
message: "{{ message }}"
title: "{{ title | default('Benachrichtigung') }}"
action: "{{ repeat.item }}"
# ALEXA / SONOS (mit Verzögerung)
- conditions:
- condition: template
value_template: >
{{ repeat.item.endswith('_durchsagen') or repeat.item.endswith('_sprechen') }}
sequence:
- data:
message: "{{ message }}"
title: "{{ title | default('Benachrichtigung') }}"
target:
entity_id: "{{ repeat.item }}"
action: notify.send_message
- delay: "00:00:02"
# MOBILE APP (iOS/Android)
- conditions:
- condition: template
value_template: "{{ repeat.item.startswith('notify.mobile_app') }}"
sequence:
- choose:
- conditions:
- condition: template
value_template: "{{ critical }}"
sequence:
- data:
message: "{{ message }}"
title: "{{ title | default('Benachrichtigung') }}"
data:
push:
sound:
name: default
critical: 1
volume: 1.0
action: "{{ repeat.item }}"
- conditions:
- condition: template
value_template: "{{ not critical }}"
sequence:
- data:
message: "{{ message }}"
title: "{{ title | default('Benachrichtigung') }}"
action: "{{ repeat.item }}"
# FALLBACK (TV, andere)
- conditions:
- condition: template
value_template: "{{ True }}"
sequence:
- data:
message: "{{ message }}"
title: "{{ title | default('Benachrichtigung') }}"
action: "{{ repeat.item }}"