Guten Morgen.
Ich bin dabei meine erste Automatisierung mit der Wiederholungsfunktion zu erstellen.
Ich weiß nicht ob das richtig mache bzw verstehe und wollte euch mal fragen ob das vom grundsatz so richtig ist…
Kurz zur Erklärung.
Ich habe eine Insektenlampe auf meiner Überdachten Terrasse und auch einen Präsenzmelder mit Helligkeitssensor.
Wenn ich abends Draußen sitze (länger als 15min) und es auch dunkel ist, soll die Insektenlampe angehen. Wenn ich dann weg bin soll die wieder aus.
Jetzt geht es darum, das wenn es draußen unter 100Lx ist und ich gehe raus und sitzte dann über 15 min dort, dann geht die lampe an. Das ist ja jetzt nicht so schwer.
Was ist aber wenn ich rausgehe, es aber 300 Lx sind und ich sitze 3 Stunden draußen… Dann würde ja wenn 100Lx erreicht sind die lampe nicht angehen da ich als auslöser (Belegt 15min) eingestellt habe und zu der zeit der Belegt status schon 3 stunden ist…
Deswegen die Wiederholungsfunktion.
Ich habe mir mal die Automation angesehen, soweit ich es versteh wird durch die Anwesenheit bzw. Abwesenheit nach 15 Minuten getriggert und dann geprüft ob innerhalb von 30 Minuten ein Wert von 100 Lux unterschritten wird.
Die Vorgehensweise ist grundsätzlich gut, aber hier muss man sagen es wird nur nach der Anwesenheit geprüft. Sollte man wirklich bereits 2-3 Stunden auf der Terasse sitzen und dann gibt es normalerweise keine Wertänderung wird ja nur für 30 Minuten geprüft ob der Wert unter 100 Lux ist. Somit wird, falls man länger dort sitzt weiterhin das Insektenlicht nicht eingeschaltet. Daher hab ich eine Version geschrieben, die beides abdeckt, sowohl die Anwesenheit als auch die Beleuchtungsstärke.
Du kannst diese Version gern ausprobieren, falls du magst.
alias: Test
description: ""
triggers:
- trigger: state
entity_id:
- input_boolean.prasenz_wohnen
to: "on"
for:
hours: 0
minutes: 15
seconds: 0
id: "Anwesenheit: Terasse"
alias: Löse aus wenn jemand 15 Minuten auf der Terasse ist
- trigger: state
entity_id:
- input_boolean.prasenz_wohnen
to: "off"
for:
hours: 0
minutes: 15
seconds: 0
id: "Abwesenheit: Terasse"
alias: Löse aus wenn 15 Minuten niemand auf der Terasse ist
- trigger: state
entity_id:
- sensor.prasenz_wohnzimmer_illuminance
alias: Löse bei Änderung der Beleuchtungsstärke aus
id: Beleuchtungsstärke
conditions: []
actions:
- choose:
- conditions:
- condition: or
conditions:
- condition: and
conditions:
- condition: trigger
id:
- "Anwesenheit: Terasse"
- condition: template
value_template: >-
{{ states('sensor.prasenz_wohnzimmer_illuminance') | float
< 100 }}
alias: Beleuchtungsstärke ist unter 100 Lux
- condition: and
conditions:
- condition: trigger
id:
- Lichtstärke
- condition: state
entity_id: input_boolean.prasenz_wohnen
state: "on"
for:
hours: 0
minutes: 15
seconds: 0
alias: Jemand ist min. 15 Minuten auf der Terasse
sequence:
- action: light.turn_on
metadata: {}
data: {}
target:
device_id: 41dc1fc59a302eadc6f44846f70a5ecd
alias: Insektenlampe wird eingeschaltet
alias: Einschalten
- conditions:
- condition: trigger
id:
- "Abwesenheit: Terasse"
sequence:
- action: light.turn_off
metadata: {}
data: {}
target:
device_id: 41dc1fc59a302eadc6f44846f70a5ecd
alias: Insektenlampe wird ausgeschaltet
alias: Ausschalten
mode: restart
wow, danke für deinen Einsatz.
Das stimmt auch wieder, gut bedacht.
Aber heißt das nicht eigentlich jemand ist 15min lang auf der terrasse (dann ist erfüllt)
Was ist denn wenn die Beleuchtungsstärke auslöst und ich bin schon 2 stunden auf der terrasse…
hmmm…
oder man macht einfach als als 2te Bedingung einefach nur belegt.
Oder?
Irgendwie habe ich gefühlt komplizierte Automationen hinbekommen aber bei der Insektenlampe bin ich echt am kämpfen
Oder ich stehe total auf dem Schlauch
Die Bedingung bzgl. der Prüfung ob jemand für 15 Minuten auf der Terasse, wird erst als wahr erkannt wenn der Sensor mindestens 15 Minuten diesen Status hat. Sprich bist du bereits 2 und 15 Minuten auf der Terasse, dann ist die Bedingung erfüllt, da du die Mindestzeit erreicht hast.
Hi so nicht ganz richtig
das Timeout war zwar noch drinnen aber nicht aktiv, also wartet er so lange bis es erfüllt wird und dann geht das licht an.
sollte in der Zwischenzeit die Präsenz wieder veschwinden löst er beim nächsten mal ja wieder aus.
Bei deinem würde er die Automation ja immer auslösen wenn sich die Beleuchtung ändert, die Automation würde also dauernd getriggert werden.
alias: Test
description: ""
triggers:
- trigger: state
entity_id:
- input_boolean.prasenz_wohnen
to: "on"
for:
hours: 0
minutes: 15
seconds: 0
id: jemand auf der Terasse
- trigger: state
entity_id:
- input_boolean.prasenz_wohnen
to: "off"
for:
hours: 0
minutes: 15
seconds: 0
id: keiner auf der Terasse
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id:
- jemand auf der Terasse
sequence:
- wait_template: >-
{{ states('sensor.prasenz_wohnzimmer_illuminance') | float < 100
}}
- action: light.turn_on
metadata: {}
data: {}
target:
device_id: 41dc1fc59a302eadc6f44846f70a5ecd
- conditions:
- condition: trigger
id:
- keiner auf der Terasse
sequence:
- action: light.turn_off
metadata: {}
data: {}
target:
device_id: 41dc1fc59a302eadc6f44846f70a5ecd
mode: single
so sollte es denke laufen, habe ein paar Automationen die ähnlich laufen.
Hier kommet es auch drauf an wie wann der Präsenzmelder wieder auf nicht belegt switcht, sollte er immer hin und her switchen weil du vllt gerade nicht erkannt wirst so lösst das ding nie aus. ich habe mir dafür Helfer gebaut.
Grundsätzlich sollte das so passen - Wichtig ist in solchen Fällen hilft am Ende nur das gute alte „Try and Error Prinzip“ - Testen, Fehler finden und optimieren bis alles so funktioniert wie man es sich wünscht.
Denke mal du hast das einen sehr guten Ansatz, wird vielleicht am Anfang nicht perfekt laufen aber kommt Zeit kommen Bug Fixes.