Compare commits

...

2 Commits

Author SHA1 Message Date
e200814de6 use friendly name 2025-12-21 13:30:19 +01:00
9cb8b30fca check if schedule exists in selector 2025-12-21 13:28:25 +01:00

View File

@@ -94,14 +94,14 @@ blueprint:
Die input_select Helper-Entity, in die der aktive Scheduler geschrieben wird. Die input_select Helper-Entity, in die der aktive Scheduler geschrieben wird.
**WICHTIG**: Die Options der input_select müssen vorbereitet werden! **WICHTIG**: Die Options der input_select müssen vorbereitet werden!
Sie müssen folgende Entity-IDs enthalten: Sie müssen die Friendly Names folgender Entities enthalten:
- Alle Scheduler aus der Scheduler-Liste - Alle Scheduler aus der Scheduler-Liste
- Den Standard-Scheduler - Den Standard-Scheduler
Beispiel Options: Beispiel Options:
["schedule.urlaub_heizplan", "schedule.homeoffice_heizplan", "schedule.normal_heizplan", "schedule.standard_heizplan"] ["Urlaub Heizplan", "Home Office Heizplan", "Normal Heizplan", "Standard Heizplan"]
Die Blueprint schreibt die Entity-ID (nicht den Friendly Name) in die Helper-Entity. Die Blueprint schreibt den Friendly Name (nicht die Entity-ID) in die Helper-Entity.
selector: selector:
entity: entity:
filter: filter:
@@ -183,11 +183,53 @@ actions:
- condition: template - condition: template
value_template: "{{ matched_scheduler is not none and matched_scheduler != '' }}" value_template: "{{ matched_scheduler is not none and matched_scheduler != '' }}"
sequence: sequence:
- if:
- condition: template
value_template: >
{{ state_attr(matched_scheduler, 'friendly_name') in state_attr(helper, 'options') }}
then:
# Matched Scheduler ist in Options vorhanden
- service: input_select.select_option - service: input_select.select_option
target: target:
entity_id: !input helper_entity entity_id: !input helper_entity
data: data:
option: "{{ matched_scheduler }}" option: "{{ state_attr(matched_scheduler, 'friendly_name') }}"
else:
# Matched Scheduler nicht vorhanden - Fallback auf Default
- if:
- condition: template
value_template: >
{{ state_attr(default_scheduler, 'friendly_name') in state_attr(helper, 'options') }}
then:
- service: input_select.select_option
target:
entity_id: !input helper_entity
data:
option: "{{ state_attr(default_scheduler, 'friendly_name') }}"
- service: persistent_notification.create
data:
title: "⚠️ Heizplan Selector - Konfigurationsfehler"
message: >
Der gematchte Scheduler '{{ state_attr(matched_scheduler, 'friendly_name') }}' ({{ matched_scheduler }}) ist nicht in den Options der input_select '{{ helper }}' vorhanden.
Fallback auf Standard-Scheduler '{{ state_attr(default_scheduler, 'friendly_name') }}' ({{ default_scheduler }}).
Event: {{ trigger.calendar_event.summary }}
notification_id: "schedule_selector_config_error"
else:
# Auch Default-Scheduler nicht vorhanden
- service: persistent_notification.create
data:
title: "❌ Heizplan Selector - Kritischer Konfigurationsfehler"
message: >
Weder der gematchte Scheduler '{{ state_attr(matched_scheduler, 'friendly_name') }}' ({{ matched_scheduler }}) noch der Standard-Scheduler '{{ state_attr(default_scheduler, 'friendly_name') }}' ({{ default_scheduler }}) sind in den Options der input_select '{{ helper }}' vorhanden.
Kein Scheduler wurde aktiviert!
Bitte input_select Options korrigieren.
Event: {{ trigger.calendar_event.summary }}
notification_id: "schedule_selector_critical_error"
alias: Event-Start - Scheduler aktivieren alias: Event-Start - Scheduler aktivieren
# Event-Ende: Zu Standard zurückkehren (nur wenn kein anderes Event aktiv) # Event-Ende: Zu Standard zurückkehren (nur wenn kein anderes Event aktiv)
@@ -197,11 +239,29 @@ actions:
- condition: template - condition: template
value_template: "{{ not other_event_active }}" value_template: "{{ not other_event_active }}"
sequence: sequence:
- if:
- condition: template
value_template: >
{{ state_attr(default_scheduler, 'friendly_name') in state_attr(helper, 'options') }}
then:
- service: input_select.select_option - service: input_select.select_option
target: target:
entity_id: !input helper_entity entity_id: !input helper_entity
data: data:
option: "{{ default_scheduler }}" option: "{{ state_attr(default_scheduler, 'friendly_name') }}"
else:
- service: persistent_notification.create
data:
title: "❌ Heizplan Selector - Konfigurationsfehler"
message: >
Der Standard-Scheduler '{{ state_attr(default_scheduler, 'friendly_name') }}' ({{ default_scheduler }}) ist nicht in den Options der input_select '{{ helper }}' vorhanden.
Kein Scheduler wurde aktiviert!
Bitte input_select Options korrigieren.
Event: {{ trigger.calendar_event.summary }}
notification_id: "schedule_selector_default_error"
alias: Event-Ende - Standard-Scheduler aktivieren alias: Event-Ende - Standard-Scheduler aktivieren
default: [] default: []