Für mehrere Lichtautomationen nutze ich den unten stehenden Blueprint (Quelle steht im Code). Ich möchte mit dem Blueprint das Flurlicht nach Sonnenuntergang bzw. vor Sonnenaufgang auslösen.
Die Automation auf Basis des Blueprints hat folgenden YAML-Code:
Ich frage mich wie und an welcher Stelle ich die Bedingung nach Sonnenuntergang und vor Sonnenaufgang ergänzen kann? Funktioniert das irgendwie mit Condtions im Code der Automation oder muss ich dann im Blueprint-Code rummachen?
conditions:
- condition: sun
after: sunset
before: sunrise
VG
Christian
blueprint:
name: Motion-activated Light
description: Turn on a light when motion is detected.
domain: automation
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
author: Home Assistant
input:
motion_entity:
name: Motion Sensor
selector:
entity:
filter:
- device_class: occupancy
domain: binary_sensor
- device_class: motion
domain: binary_sensor
light_target:
name: Light
selector:
target:
entity:
domain: light
no_motion_wait:
name: Wait time
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
# If motion is detected within the delay,
# we restart the script.
mode: restart
max_exceeded: silent
triggers:
trigger: state
entity_id: !input motion_entity
from: "off"
to: "on"
actions:
- alias: "Turn on the light"
action: light.turn_on
target: !input light_target
- alias: "Wait until there is no motion from device"
wait_for_trigger:
trigger: state
entity_id: !input motion_entity
from: "on"
to: "off"
- alias: "Wait the number of seconds that has been set"
delay: !input no_motion_wait
- alias: "Turn off the light"
action: light.turn_off
target: !input light_target
Selbstverständlich kann man diesen nach seinen wünschen anpassen, nur muss man wissen was man tut.
Wenn man schon bei der Erstellung von Automationen seine Schwierigkeiten hat, dann ist es natürlich auch nicht einfacher einen Blueprint zu erstellen oder anzupassen.
Ein Blueprint ist nichts anders als eine Automation, wo der Ablauf bereits vor definiert ist und man nur doch die Entitäten einsetzen muss. Für wiederkehrende Aufgaben, hat ein Blueprint also den Vorteil, das man die Logik nur einmal erstellen muss und in beliebig vielen Automationen nutzen kann. Ändert man den Blueprint, ist die Änderung auf alle bereits erstellten Automation mit diesem Blueprint wirksam. Was einen weiterer Vorteil hat, dass man nur das Blueprint und nicht die einzelnen Automationen anpassen muss, falls man die Logik / Ablauf ändert.
Es gibt auch die Möglichkeit aus dem Blueprint eine Automation zu machen mit dem Menüpunkt kontrolle übernehmen. Dann lässt sich die Bedingung ganz leicht einfügen. Allerdings muss einem dann bewusst sein das sich Änderungen am Blueprint nicht mehr auf diese Automation auswirken.
Ich probiere Deine Anleitung heute aus, zunächst scheint alles zu funktionieren. Ich gebe Feedback, wenn ich ausgiebig getestet habe.
Charmant an dem Blueprint fand ich, dass das Skript erneut gestartet wird, sobald wieder Bewegung erkannt wird. Andere Lösungen wären die mit einem Timer, welcher jeweils von vorne beginnt, nachdem erneute Bewegung gemeldet wird.