Hallo liebe Community,
da ich schon vieles aus Simons Videos gelernt habe und auch aus der Community das eine oder andere “abgesaugt” habe, ist es für mich an der Zeit, auch einmal etwas zu teilen.
Ich habe einen Blueprint einer Automation erstellt, welcher eine Markise vor Schäden durch Wind und Wetter schützen soll.
Kurze Beschreibung:
Automatisches ein- und ausfahren einer Markise basierend auf Wetterdaten und anderen Sensorwerten.
Die Automation fährt die Markise automatisch ein, wenn starker Wind, Regenschauer oder ein Sensor-Timeout erkannt wird.
Die Markise wird wieder automatisch ausgefahren, wenn der Wind für die konfigurierte Dauer unter den unteren Schwellenwert für die Windgeschwindigkeit fällt und die Markise nicht häufiger alsx-mal innerhalb vonyStunden eingefahren wurde.
Eine Sperre verhindert das automatische Ausfahren, wenn die Markise x-mal innerhalb der definierten Zeitspanne eingefahren wurde; der Zähler wird entweder zu einem konfigurierbaren Zeitpunkt oder nach manuellem Ausfahren zurückgesetzt.
Die Automation unterscheidet zwischen automatischer und manueller Bedienung, setzt entsprechende Hilfs-Entitäten und versendet Benachrichtigungen bei allen relevanten Ereignissen, Sensor-Fehlern oder Steuerfehlern.
Da ich als neuer Nutzer den YAML Code nicht als Datei hochladen darf, findet ihr den Code hier im Post. Einfach per File-Editor unter /homeassistant/blueprints/*/*.yaml ablegen und sich der Funktion erfreuen.
Der Code ist bestimmt noch nicht perfekt und ein Schlüsselelement das noch fehlt, ist das automatische Ausfahren der Markise bei Sonnenschein.
Primärer Fokus lag in einem ersten Schritt auf dem Einfahren der Markise.
Sprungmarke:
YAML-Code v1.0:
blueprint:
name: "Markisenwächter"
description: >
Automatisches ein- und ausfahren einer Markise basierend auf Wetterdaten und anderen Sensorwerten.
<br><br>
Die Automation fährt die Markise automatisch ein, wenn starker Wind, Regenschauer oder ein Sensor-Timeout erkannt wird.
Die Markise wird wieder automatisch ausgefahren, wenn der Wind für die konfigurierte Dauer unter den unteren Schwellenwert für die Windgeschwindigkeit fällt und die Markise nicht häufiger als x-mal innerhalb von y Stunden eingefahren wurde.
Eine Sperre verhindert das automatische Ausfahren, wenn die Markise x-mal innerhalb der definierten Zeitspanne eingefahren wurde; der Zähler wird entweder zu einem konfigurierbaren Zeitpunkt oder nach manuellem Ausfahren zurückgesetzt.
<br><br>
Die Automation unterscheidet zwischen automatischer und manueller Bedienung, setzt entsprechende Hilfs-Entitäten und versendet Benachrichtigungen bei allen relevanten Ereignissen, Sensor-Fehlern oder Steuerfehlern.
domain: automation
input:
wind_sensor:
name: "Windgeschwindigkeits-Sensor"
description: "Der Sensor für die aktuelle Windgeschwindigkeit (km/h)"
selector:
entity:
domain: sensor
wind_sensor_timeout:
name: "Windgeschwindigkeits-Sensor - Timeout"
description: "Dauer (in Minuten) ohne gültigen Wert des Windsensors, ab der die Markise aus Sicherheitsgründen eingefahren wird"
default: 60
selector:
number:
min: 1
max: 240
step: 1
unit_of_measurement: "min"
rain_sensor:
name: "Regensensor (Statistik)"
description: >
Statistik-Sensor für Regenmenge (in mm) der letzten x Minuten.<br>
Ein entsprechender Helfer-Sensor muss ggf. angelegt werden.
selector:
entity:
domain: sensor
rain_interval:
name: "Regensensor (Statistik) - Intervall"
description: >
Zeitraum der Regenstatistik in Minuten<br>
(ACHTUNG: Wert muss zum Statistik-Sensor passen!)
default: 5
selector:
number:
min: 1
max: 60
step: 1
unit_of_measurement: "min"
markise_status_sensor:
name: "Markisenstatus (eingefahren/ausgefahren)"
description: "Sensor, der den Status der Markise darstellt<br>(on = ausgefahren / off = eingefahren)"
selector:
entity:
domain: binary_sensor
switch_ausfahren:
name: "Schalter zum Ausfahren der Markise"
description: "Switch-Entität zum Ausfahren der Markise"
selector:
entity:
domain: switch
switch_einfahren:
name: "Schalter zum Einfahren der Markise"
description: "Switch-Entität zum Einfahren der Markise"
selector:
entity:
domain: switch
input_boolean_auto_eingefahren:
name: "Hilfs-Entität: Markise wurde automatisch eingefahren"
description: "input_boolean ('Schalter') zur Markierung, ob die Markise automatisch eingefahren wurde"
selector:
entity:
domain: input_boolean
input_boolean_auto_ausgefahren:
name: "Hilfs-Entität: Markise wurde automatisch ausgefahren"
description: "input_boolean ('Schalter') zur Markierung, ob die Markise automatisch ausgefahren wurde"
selector:
entity:
domain: input_boolean
counter_einfahr_count:
name: "Hilfs-Entität: Einfahrzähler"
description: "Zähler der automatischen Einfahrvorgänge"
selector:
entity:
domain: counter
counter_max:
name: "Maximal erlaubte automatische Einfahrvorgänge"
description: "Wie oft darf die Markise innerhalb des Zählerzeitraums automatisch eingefahren werden, bevor das automatische Ausfahren gesperrt wird?"
default: 3
selector:
number:
min: 1
max: 10
step: 1
counter_period:
name: "Zeitraum maximal erlaubter Einfahrvorgänge"
description: "Wie viele Stunden werden für die Zählung der automatischen Einfahrvorgänge berücksichtigt?"
default: 2
selector:
number:
min: 1
max: 12
step: 1
wind_max_threshold:
name: "Oberer Schwellenwert Windgeschwindigkeit (Einfahren)"
description: "Windgeschwindigkeit (km/h), ab der die Markise automatisch eingefahren wird"
default: 27
selector:
number:
min: 10
max: 40
step: 1
unit_of_measurement: "km/h"
wind_min_threshold:
name: "Unterer Schwellenwert Windgeschwindigkeit (Ausfahren)"
description: "Windgeschwindigkeit (km/h), unter der die Markise nach abgeflautem Wind wieder ausgefahren wird"
default: 20
selector:
number:
min: 0
max: 30
step: 1
unit_of_measurement: "km/h"
wind_min_duration:
name: "Dauer für Wind unter Schwellenwert (Ausfahren)"
description: "Zeitspanne (in Minuten), die der Wind unter dem unteren Schwellenwert liegen muss, damit die Markise wieder automatisch ausgefahren wird"
default: 12
selector:
number:
min: 1
max: 120
step: 1
unit_of_measurement: "min"
rain_threshold:
name: "Schwellenwert Regenmenge in Zeitraum (Einfahren)"
description: "Regenmenge (mm) lt. Statisik-Sensor, ab welcher die Markise eingefahren wird"
default: 2
selector:
number:
min: 0
max: 20
step: 0.1
unit_of_measurement: "mm"
reset_time:
name: "Zeitpunkt für Zähler-Reset"
description: "Uhrzeit (im Format HH:MM:SS), zu welcher der Einfahrzähler täglich zurückgesetzt wird"
default: "00:00:00"
selector:
time:
trigger:
- platform: numeric_state
entity_id: !input wind_sensor
above: !input wind_max_threshold
- platform: state
entity_id: !input markise_status_sensor
from: "off"
to: "on"
- platform: numeric_state
entity_id: !input wind_sensor
below: !input wind_min_threshold
for:
minutes: !input wind_min_duration
id: Wind für x min unter min_Schwelle
- platform: time
at: !input reset_time
id: Reset-Zeitpunkt für Ausfahrzähler
- platform: numeric_state
entity_id: !input rain_sensor
above: !input rain_threshold
- platform: state
entity_id: !input wind_sensor
to:
- unavailable
- unknown
for:
minutes: !input wind_sensor_timeout
- platform: state
entity_id:
- !input wind_sensor
- !input markise_status_sensor
- !input switch_ausfahren
- !input switch_einfahren
to:
- unavailable
- unknown
for: "00:15:00"
- platform: numeric_state
entity_id: !input counter_einfahr_count
above: !input counter_max
condition: []
action:
- choose:
# EINFAHREN: Starkwind, aber nur wenn Markise offen!
- conditions:
- condition: and
conditions:
- condition: state
entity_id: !input markise_status_sensor
state: "on"
- condition: numeric_state
entity_id: !input wind_sensor
above: !input wind_max_threshold
sequence:
- service: switch.turn_on
target:
entity_id: !input switch_einfahren
- service: input_boolean.turn_on
target:
entity_id: !input input_boolean_auto_eingefahren
- service: counter.increment
target:
entity_id: !input counter_einfahr_count
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_ausgefahren
- service: notify.notify
data:
message: "Markise automatisch eingefahren wegen Wind (!input wind_sensor km/h)."
# WIND > max threshold, Markise aber geschlossen → FEHLERMELDUNG UNTERBINDEN
- conditions:
- condition: and
conditions:
- condition: state
entity_id: !input markise_status_sensor
state:
- "off"
- "unavailable"
- "unknown"
- condition: numeric_state
entity_id: !input wind_sensor
above: !input wind_max_threshold
sequence: []
# AUSFAHREN: Nachlassender Wind & Markise vorher automatisch eingefahren & Counter < counter_max (Automatisch)
- conditions:
- condition: trigger
id: Wind für x min unter min_Schwelle
- condition: state
entity_id: !input input_boolean_auto_eingefahren
state: "on"
- condition: state
entity_id: !input markise_status_sensor
state: "off"
- condition: numeric_state
entity_id: !input counter_einfahr_count
below: !input counter_max
sequence:
- service: switch.turn_on
target:
entity_id: !input switch_ausfahren
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_eingefahren
- service: input_boolean.turn_on
target:
entity_id: !input input_boolean_auto_ausgefahren
- service: notify.notify
data:
message: "Markise automatisch ausgefahren, Wind unter !input wind_min_threshold km/h für !input wind_min_duration Minuten."
# COUNTER-RESET: zum konfigurierten Zeitpunkt
- conditions:
- condition: trigger
id: Reset-Zeitpunkt für Ausfahrzähler
sequence:
- service: counter.reset
target:
entity_id: !input counter_einfahr_count
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_ausgefahren
# COUNTER-RESET: Manuelles Ausfahren
- conditions:
- condition: state
entity_id: !input markise_status_sensor
state: "on"
- condition: state
entity_id: !input input_boolean_auto_ausgefahren
state:
- "off"
- "unavailable"
- "unknown"
sequence:
- service: counter.reset
target:
entity_id: !input counter_einfahr_count
- service: notify.notify
data:
message: "Markisen-Counter wurde durch manuelles Ausfahren zurückgesetzt."
# EINFAHREN: Regenschauer
- conditions:
- condition: numeric_state
entity_id: !input rain_sensor
above: !input rain_threshold
sequence:
- service: switch.turn_on
target:
entity_id: !input switch_einfahren
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_ausgefahren
- service: notify.notify
data:
message: "Markise eingefahren wegen Regenschauer (> !input rain_threshold mm/!input rain_interval min)."
# EINFAHREN: Windsensor-Timeout
- conditions:
- condition: state
entity_id: !input wind_sensor
state:
- "unavailable"
- "unknown"
sequence:
- service: switch.turn_on
target:
entity_id: !input switch_einfahren
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_ausgefahren
- service: notify.notify
data:
message: "Windsensor liefert !input wind_sensor_timeout Minuten keine Werte - Markise eingefahren!"
# BENACHRICHTIGUNG: Sensor-Fehler
- conditions:
- condition: template
value_template: >
{{ (
is_state('!input wind_sensor', 'unavailable') or
is_state('!input wind_sensor', 'unknown') or
is_state('!input markise_status_sensor', 'unavailable') or
is_state('!input markise_status_sensor', 'unknown') or
is_state('!input switch_ausfahren', 'unavailable') or
is_state('!input switch_ausfahren', 'unknown') or
is_state('!input switch_einfahren', 'unavailable') or
is_state('!input switch_einfahren', 'unknown')
) }}
sequence:
- service: notify.notify
data:
message: "Ein oder mehrere Sensoren/Steuerungen sind nicht erreichbar!"
# BENACHRICHTIGUNG: Ausfahr-Sperre nach X Einfahrvorgängen
- conditions:
- condition: numeric_state
entity_id: !input counter_einfahr_count
above: !input counter_max
sequence:
- service: notify.notify
data:
message: "Markise wurde !input counter_max x automatisch eingefahren (!input counter_period h). Automatisches Ausfahren ist gesperrt!"
default:
- service: notify.notify
data:
message: "Fehler in der Markisen-Automation aufgetreten! Prüfe bitte das Log und die Sensoren/Steuerungen."
mode: parallel
YAML-Code v1.1
(2025-07-22)
Änderungen:
- Notification im Default geändert - es wird nicht nur auf einen möglichen Fehler hingewiesen, sondern, dass es sich auch um eine unbehandelte Situation (= Sensor-Kombination) handeln kann
- Lässt der Wind nach (Windstärke
xMinuten unterykm/h) hat bislang bei eingefahrener Markise unter bestimmten Bedingungen die Meldung aus dem Default getriggert. Wird nun abgefangen - Bei Starkwind und bereits eingefahrener Markise wurde unter bestimmten Bedingungen die Meldung aus dem Default getriggert. Wird nun abgefangen
- Warnung wird ausgegeben und Schließen der Markise wird initiiert, falls Starkwind registriert wird, der Status der Markise jedoch unbekannt ist.
To-Do:
- Messwerte werden nicht an Notifications übergeben - Code prüfen. Sollte mit entsprechender Jinja-Formatierung (zB
{{ counter_max }}statt!input counter_max) dermessage:-Felder lösbar sein - muss ich noch testen)
blueprint:
name: "Markisenwächter"
description: >
Automatisches ein- und ausfahren einer Markise basierend auf Wetterdaten und anderen Sensorwerten.
<br><br>
Die Automation fährt die Markise automatisch ein, wenn starker Wind, Regenschauer oder ein Sensor-Timeout erkannt wird.
Die Markise wird wieder automatisch ausgefahren, wenn der Wind für die konfigurierte Dauer unter den unteren Schwellenwert für die Windgeschwindigkeit fällt und die Markise nicht häufiger als x-mal innerhalb von y Stunden eingefahren wurde.
Eine Sperre verhindert das automatische Ausfahren, wenn die Markise x-mal innerhalb der definierten Zeitspanne eingefahren wurde; der Zähler wird entweder zu einem konfigurierbaren Zeitpunkt oder nach manuellem Ausfahren zurückgesetzt.
<br><br>
Die Automation unterscheidet zwischen automatischer und manueller Bedienung, setzt entsprechende Hilfs-Entitäten und versendet Benachrichtigungen bei allen relevanten Ereignissen, Sensor-Fehlern oder Steuerfehlern.
domain: automation
input:
wind_sensor:
name: "Windgeschwindigkeits-Sensor"
description: "Der Sensor für die aktuelle Windgeschwindigkeit (km/h)"
selector:
entity:
domain: sensor
wind_sensor_timeout:
name: "Windgeschwindigkeits-Sensor - Timeout"
description: "Dauer (in Minuten) ohne gültigen Wert des Windsensors, ab der die Markise aus Sicherheitsgründen eingefahren wird"
default: 60
selector:
number:
min: 1
max: 240
step: 1
unit_of_measurement: "min"
rain_sensor:
name: "Regensensor (Statistik)"
description: >
Statistik-Sensor für Regenmenge (in mm) der letzten x Minuten.<br>
Ein entsprechender Helfer-Sensor muss ggf. angelegt werden.
selector:
entity:
domain: sensor
rain_interval:
name: "Regensensor (Statistik) - Intervall"
description: >
Zeitraum der Regenstatistik in Minuten<br>
(ACHTUNG: Wert muss zum Statistik-Sensor passen!)
default: 5
selector:
number:
min: 1
max: 60
step: 1
unit_of_measurement: "min"
markise_status_sensor:
name: "Markisenstatus (eingefahren/ausgefahren)"
description: "Sensor, der den Status der Markise darstellt<br>(on = ausgefahren / off = eingefahren)"
selector:
entity:
domain: binary_sensor
switch_ausfahren:
name: "Schalter zum Ausfahren der Markise"
description: "Switch-Entität zum Ausfahren der Markise"
selector:
entity:
domain: switch
switch_einfahren:
name: "Schalter zum Einfahren der Markise"
description: "Switch-Entität zum Einfahren der Markise"
selector:
entity:
domain: switch
input_boolean_auto_eingefahren:
name: "Hilfs-Entität: Markise wurde automatisch eingefahren"
description: "input_boolean ('Schalter') zur Markierung, ob die Markise automatisch eingefahren wurde"
selector:
entity:
domain: input_boolean
input_boolean_auto_ausgefahren:
name: "Hilfs-Entität: Markise wurde automatisch ausgefahren"
description: "input_boolean ('Schalter') zur Markierung, ob die Markise automatisch ausgefahren wurde"
selector:
entity:
domain: input_boolean
counter_einfahr_count:
name: "Hilfs-Entität: Einfahrzähler"
description: "Zähler der automatischen Einfahrvorgänge"
selector:
entity:
domain: counter
counter_max:
name: "Maximal erlaubte automatische Einfahrvorgänge"
description: "Wie oft darf die Markise innerhalb des Zählerzeitraums automatisch eingefahren werden, bevor das automatische Ausfahren gesperrt wird?"
default: 3
selector:
number:
min: 1
max: 10
step: 1
counter_period:
name: "Zeitraum maximal erlaubter Einfahrvorgänge"
description: "Wie viele Stunden werden für die Zählung der automatischen Einfahrvorgänge berücksichtigt?"
default: 2
selector:
number:
min: 1
max: 12
step: 1
wind_max_threshold:
name: "Oberer Schwellenwert Windgeschwindigkeit (Einfahren)"
description: "Windgeschwindigkeit (km/h), ab der die Markise automatisch eingefahren wird"
default: 27
selector:
number:
min: 10
max: 40
step: 1
unit_of_measurement: "km/h"
wind_min_threshold:
name: "Unterer Schwellenwert Windgeschwindigkeit (Ausfahren)"
description: "Windgeschwindigkeit (km/h), unter der die Markise nach abgeflautem Wind wieder ausgefahren wird"
default: 20
selector:
number:
min: 0
max: 30
step: 1
unit_of_measurement: "km/h"
wind_min_duration:
name: "Dauer für Wind unter Schwellenwert (Ausfahren)"
description: "Zeitspanne (in Minuten), die der Wind unter dem unteren Schwellenwert liegen muss, damit die Markise wieder automatisch ausgefahren wird"
default: 12
selector:
number:
min: 1
max: 120
step: 1
unit_of_measurement: "min"
rain_threshold:
name: "Schwellenwert Regenmenge in Zeitraum (Einfahren)"
description: "Regenmenge (mm) lt. Statisik-Sensor, ab welcher die Markise eingefahren wird"
default: 2
selector:
number:
min: 0
max: 20
step: 0.1
unit_of_measurement: "mm"
reset_time:
name: "Zeitpunkt für Zähler-Reset"
description: "Uhrzeit (im Format HH:MM:SS), zu welcher der Einfahrzähler täglich zurückgesetzt wird"
default: "00:00:00"
selector:
time:
trigger:
- platform: numeric_state
entity_id: !input wind_sensor
above: !input wind_max_threshold
- platform: state
entity_id: !input markise_status_sensor
from: "off"
to: "on"
- platform: numeric_state
entity_id: !input wind_sensor
below: !input wind_min_threshold
for:
minutes: !input wind_min_duration
id: Wind für x min unter min_Schwelle
- platform: time
at: !input reset_time
id: Reset-Zeitpunkt für Ausfahrzähler
- platform: numeric_state
entity_id: !input rain_sensor
above: !input rain_threshold
- platform: state
entity_id: !input wind_sensor
to:
- unavailable
- unknown
for:
minutes: !input wind_sensor_timeout
- platform: state
entity_id:
- !input wind_sensor
- !input markise_status_sensor
- !input switch_ausfahren
- !input switch_einfahren
to:
- unavailable
- unknown
for: "00:15:00"
- platform: numeric_state
entity_id: !input counter_einfahr_count
above: !input counter_max
condition: []
action:
- choose:
# EINFAHREN: Starkwind, aber nur wenn Markise offen!
- conditions:
- condition: and
conditions:
- condition: state
entity_id: !input markise_status_sensor
state: "on"
- condition: numeric_state
entity_id: !input wind_sensor
above: !input wind_max_threshold
sequence:
- service: switch.turn_on
target:
entity_id: !input switch_einfahren
- service: input_boolean.turn_on
target:
entity_id: !input input_boolean_auto_eingefahren
- service: counter.increment
target:
entity_id: !input counter_einfahr_count
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_ausgefahren
- service: notify.notify
data:
message: "Markise automatisch eingefahren wegen Wind (!input wind_sensor km/h)."
# WIND > max threshold, Markise aber geschlossen → FEHLERMELDUNG UNTERBINDEN
- conditions:
- condition: and
conditions:
- condition: state
entity_id: !input markise_status_sensor
state:
- "off"
- "unavailable"
- "unknown"
- condition: numeric_state
entity_id: !input wind_sensor
above: !input wind_max_threshold
sequence: []
# AUSFAHREN: Nachlassender Wind & Markise vorher automatisch eingefahren & Counter < counter_max (Automatisch)
- conditions:
- condition: trigger
id: Wind für x min unter min_Schwelle
- condition: state
entity_id: !input input_boolean_auto_eingefahren
state: "on"
- condition: state
entity_id: !input markise_status_sensor
state: "off"
- condition: numeric_state
entity_id: !input counter_einfahr_count
below: !input counter_max
sequence:
- service: switch.turn_on
target:
entity_id: !input switch_ausfahren
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_eingefahren
- service: input_boolean.turn_on
target:
entity_id: !input input_boolean_auto_ausgefahren
- service: notify.notify
data:
message: "Markise automatisch ausgefahren, Wind unter !input wind_min_threshold km/h für !input wind_min_duration Minuten."
# COUNTER-RESET: zum konfigurierten Zeitpunkt
- conditions:
- condition: trigger
id: Reset-Zeitpunkt für Ausfahrzähler
sequence:
- service: counter.reset
target:
entity_id: !input counter_einfahr_count
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_ausgefahren
# COUNTER-RESET: Manuelles Ausfahren
- conditions:
- condition: state
entity_id: !input markise_status_sensor
state: "on"
- condition: state
entity_id: !input input_boolean_auto_ausgefahren
state:
- "off"
- "unavailable"
- "unknown"
sequence:
- service: counter.reset
target:
entity_id: !input counter_einfahr_count
- service: notify.notify
data:
message: "Markisen-Counter wurde durch manuelles Ausfahren zurückgesetzt."
# EINFAHREN: Regenschauer
- conditions:
- condition: numeric_state
entity_id: !input rain_sensor
above: !input rain_threshold
sequence:
- service: switch.turn_on
target:
entity_id: !input switch_einfahren
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_ausgefahren
- service: notify.notify
data:
message: "Markise eingefahren wegen Regenschauer (> !input rain_threshold mm/!input rain_interval min)."
# EINFAHREN: Windsensor-Timeout
- conditions:
- condition: state
entity_id: !input wind_sensor
state:
- "unavailable"
- "unknown"
sequence:
- service: switch.turn_on
target:
entity_id: !input switch_einfahren
- service: input_boolean.turn_off
target:
entity_id: !input input_boolean_auto_ausgefahren
- service: notify.notify
data:
message: "Windsensor liefert !input wind_sensor_timeout Minuten keine Werte - Markise eingefahren!"
# BENACHRICHTIGUNG: Sensor-Fehler
- conditions:
- condition: template
value_template: >
{{ (
is_state('!input wind_sensor', 'unavailable') or
is_state('!input wind_sensor', 'unknown') or
is_state('!input markise_status_sensor', 'unavailable') or
is_state('!input markise_status_sensor', 'unknown') or
is_state('!input switch_ausfahren', 'unavailable') or
is_state('!input switch_ausfahren', 'unknown') or
is_state('!input switch_einfahren', 'unavailable') or
is_state('!input switch_einfahren', 'unknown')
) }}
sequence:
- service: notify.notify
data:
message: "Ein oder mehrere Sensoren/Steuerungen sind nicht erreichbar!"
# BENACHRICHTIGUNG: Ausfahr-Sperre nach X Einfahrvorgängen
- conditions:
- condition: numeric_state
entity_id: !input counter_einfahr_count
above: !input counter_max
sequence:
- service: notify.notify
data:
message: "Markise wurde !input counter_max x automatisch eingefahren (!input counter_period h). Automatisches Ausfahren ist gesperrt!"
# EINFAHREN & BENACHRICHTIGUNG: Starkwind, aber Markisenstatus unbekannt
- conditions:
- condition: and
conditions:
- condition: state
entity_id: !input markise_status_sensor
state: "off"
- condition: template
value_template: >
{{ (
is_state('!input wind_sensor', 'unavailable') or
is_state('!input wind_sensor', 'unknown')
) }}
sequence:
- service: notify.notify
data:
message: "ACHTUNG!!! Starkwind erkannt - Markisenstatus unbekannt! Versuche Markise zu schließen!"
- service: switch.turn_on
target:
entity_id: !input switch_einfahren
# FEHLER ABFANGEN: Nachlassender Wind, Markise aber bereits geschlossen - tue nichts
- conditions:
- condition: trigger
id: Wind für x min unter min_Schwelle
- condition: state
entity_id: !input markise_status_sensor
state: "off"
sequence: []
# FEHLER ABFANGEN: Starkwind, aber Markise ist gechlossen
- conditions:
- condition: and
conditions:
- condition: state
entity_id: !input markise_status_sensor
state: "off"
- condition: numeric_state
entity_id: !input wind_sensor
above: !input wind_max_threshold
sequence: []
default:
- service: notify.notify
data:
message: "Fehler oder unbehandelte Situation in der Markisen-Automation aufgetreten! Prüfe bitte das Log und die Sensoren/Steuerungen."
mode: parallel
Screenshots
So sieht das ganze bei mir dann im Konfigurierten Zustand aus:
Bitte gerne Verbesserungsvorschläge posten - für konstruktive Kritik bin ich immer offen.
Beste Grüße,
Mat



