Compare commits
No commits in common. "main" and "20250720_ZUHUS-23-Wasserkocher-Node-Red-auto-aus" have entirely different histories.
main
...
20250720_Z
File diff suppressed because it is too large
Load Diff
@ -1,182 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
]
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1,223 +0,0 @@
|
|||||||
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 }}"
|
|
||||||
Loading…
x
Reference in New Issue
Block a user