Dreame X50 Ultra Eingang saugen nach Türöffnung

Hallo zusammen,

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.

Danke euch :slight_smile:

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:

{% set karenz=utcnow() - timedelta(minutes=45) %}
{% set last_run=state_attr('automation.carsten_schreibtisch', 'last_triggered')%}
{{ utcnow() - timedelta(minutes=45) }} 
{{ state_attr('automation.carsten_schreibtisch', 'last_triggered')  }}

{{ karenz > last_run }}

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 :wink:

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 }}
1 „Gefällt mir“

super danke, ich will ja auch was selbst tun :wink:

nur scheitere ich schon an dem Thema den Befehl an den Roboter zu senden das er nur den Eingangsbereich reinigen soll xD

Irgendwie sind Automatisierungen mit dem Staubsauger für mich noch nicht durchsichtig ich steige bei dem Thema noch nicht durch

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. :slight_smile:

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

Hier das Skript:

sequence:
  - target:
      entity_id: select.x50_ultra_complete_cleaning_mode
    data:
      option: sweeping
    action: select.select_option
  - action: dreame_vacuum.vacuum_clean_segment
    data:
      segments:
        - 4
      suction_level: 3
    target:
      entity_id: vacuum.x50_ultra_complete
alias: Saugen - Eingang
icon: mdi:robot-vacuum
description: ""

1 „Gefällt mir“

Ich finde gut, daß Du das über ein Script machst weil das kannst Du dann mehrfach anprechen.


{% set blockzeit_min = 5 %}

Wolltest Du nicht 45 min?

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

Gibt es eine Fehlermeldung beim Speichern? beim Ausführen?
Was sagt der Trace?

Hast Du mal in Entwicklerwerkzeugen → Aktionen geschaut

  • ob es action: dreame_vacuum.vacuum_clean_segment gibt?
  • und ob der so von dort irgendetwas startet?

er startet ohne Probleme sobald ich aber das Template aktiviere

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 }}

kann ich die Türe öffnen soviel ich will nichts geht mehr, es ist auch egal ob ich 5 Minute oder 2 Stunden abwarte.

state_attr('automation.reinigung_flur' ??

Ich habs vorhin in Deinem Code übersehen?
Nimm mal den Original Code - da brauchst Du keinen Namen setzen.

Ich habs gerade noch einmal durchgetestet

Zusammenfassung
alias: 1_test_forum_blocking_aut
description: ""
triggers:
  - trigger: state
    entity_id:
      - light.sternlampe
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: notify.gmxolaf3
    metadata: {}
    data:
      message: test
      title: test {{now()}}
mode: single

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

so jetzt hab ich es , so sieht jetzt das template aus und es funktioniert :slight_smile:

  - condition: template
    value_template: >-
      {% set blockzeit_min = 1 %} {% set last =
      state_attr('automation.reinigung_flur', 'last_triggered') %}

      {{ last is none
         or (as_timestamp(now()) - as_timestamp(last)) > (blockzeit_min * 60) }}

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 :+1:

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.

Der Trace sah immer gleich aus keine Veränderung.

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.

Danke dir vielmals :slight_smile: