ich habe einen Dreame X50 Ultra und würde gerne eine Automation bauen, welche nach einer Öffnung der Haustüre triggert damit der Staubsauger danach den Eingangsbereich saugt.
Diese soll dann aber auch nur dann gehen, wenn innerhalb der letzten 45 minuten die Automation nicht gelaufen ist.
Kann mir hierzu jemand weiterhelfen der ein ähnliches Szenario schon umgesetzt hat?
Komponenten die genutzt werden, sind ein Türkontakt an der Haustüre als Auslöser und dann eben der Dreame Roboter.
Ich denke mal die Herausforderung ist, nicht innerhalb der letzten 45 Minuten zu laufen. Hier könntest Du in der Condition eine Template Auswertung des letzten Automatisierungslaufs und der aktuellen Uhrzeit - deiner gewünschten Karenz eintragen:
Erst wenn die Karenzzeit größer als last_run ist, würde die Automatisierung wieder laufen, weil Ergebnis `TRUE. Der Code dient nur der Verdeutlichung und ist nicht direkt als Template Condition verwendbar. Bisschen selbst was tun darfst Du auch noch
Das geht noch etwas einfacher, vorallem allgemeingültiger ohne den Namen der Aut. nennen zu müssen.
{% set blockzeit_min = 5 %}
{{ (state_attr(this.entity_id,'last_triggered') is not none) and
(as_timestamp(now()) -
as_timestamp(state_attr(this.entity_id,'last_triggered'))) > blockzeit_min
* 60 }}
Suche mal hier im Forum nach “X50” - ich sah gleich etwas Vielversprechendes.
PS: Ich selbst nutze die Shortcut-Funktionalität des Freame Aqua10 Ultra Roller Complete. Diese kann man auch über HA auslesen/anstoßen. Die Mehrheit hier wird aber sicher den Weg über das Definieren von Routen etc. gehen. Bitte schreib am Ende einmal wie Du es gemacht hast.
ich werde mich die Tage mal reinfuchsen ich vermute das ich mit der Integration schon ein kleines Problem habe da ich die einzelnen Entitäten der Raumauswahl nicht verfügbar habe.
Ich melde mich mit meiner hoffentlich funktionierenden Lösung.
Also ich habe es nun mit einem Skript gemacht, ob die Abfrage bezgl. der Zeit klappt teste ich aktuell noch, aber er fährt jetzt auf jeden Fall los wenn die Haustüre geschlossen wird.
Hier die Automation:
alias: Reinigung Flur
description: ""
triggers:
- trigger: state
entity_id:
- binary_sensor.fk_hausture_contact
from:
- "on"
to:
- "off"
conditions:
- condition: template
value_template: >-
{% set blockzeit_min = 5 %}
{{ (state_attr('automation.reinigung_flur','last_triggered') is not none)
and
(as_timestamp(now()) -
as_timestamp(state_attr('automation.reinigung_flur','last_triggered'))) >
blockzeit_min
* 60 }}
actions:
- action: script.turn_on
metadata: {}
target:
entity_id: script.saugen_eingang
data: {}
mode: single
ja wollte ich, dachte ich setze es auf 5 zum testen, da ich es mit dieser Abfrage aber immer noch nicht zum laufen bekomme bin ich am überlegen wie ich es einfacher hinbekomme xD
alias: Reinigung Flur
description: ""
triggers:
- trigger: state
entity_id:
- binary_sensor.fk_hausture_contact
from:
- "on"
to:
- "off"
conditions:
- condition: template
value_template: >-
{% set blockzeit_min = 1 %} {{
(state_attr(this.entity_id,'last_triggered') is not none) and
(as_timestamp(now()) -
as_timestamp(state_attr(this.entity_id,'last_triggered'))) > blockzeit_min
* 60 }}
actions:
- action: script.turn_on
metadata: {}
target:
entity_id: script.saugen_eingang
data: {}
mode: single
das ist jetzt die gesamte Automation sie triggert auch durch das schließen des Kontaktes aber das Template wird nicht ausgewertet, auch wenn ich das Template prüfe kommt nicht einmal die Meldung wahr oder nicht wahr
Eigentlich sieht Dein Code sauber aus und er geht ja auch. Durch Deinen eingegrenzten Screenshot ohne Uhrzeit und das Fehlen des Traces nach 1 Min kann ich auch nur raten.
Die Template Bedingung mit der this kann man nicht prüfen weil nicht die gesamte Aut. geprüft wird sondern nur die Bedingung und in diesem Moment gibt es dann das this-Objekt gar nicht. Eine HA Fehlermeldung wäre natürlich besser.
Wenn Du damit besser leben kannst, ist alles gut
Der Vorteil von der this-Methode ist, man kann den Code einfach copy/paste in die nächste Aut. übernehmen ohne anzupassen oder stell Dir vor, aus irgendeinem Grund änderst Du den Namen dieser Aut. und denkst nicht mehr an diese Bedingung.
ich versuche es morgen nochmal mit deinem Code da ich die Lösung besser finde. Immer an alles denken zu müssen bei Veränderungen geht auf Dauer nicht gut.
Fürs erste passt aber alles ich melde mich hier morgen nochmal, wenn ich es mit deinem Code hinbekommen habe.