Roborock Automatisierung

Ich habe versucht meinen saugrobotter dazu zu bringen, bei Abwesenheit aller Personen ein mal pro Tag zu Saugen. Wenn alle abwesind sind, will das Ding aber nicht losfahren. Was läuft da schief?

alias: Autostart Roborock
description: Keiner Zuhause > Reinigung starten
triggers:
  - entity_id:
      - input_select.anybody_home
    to: "no"
    for:
      hours: 0
      minutes: 15
      seconds: 0
    trigger: state
conditions:
  - condition: template
    value_template: >-
      {{ now() - state_attr('automation.autostart_roborock', 'last_triggered') >
      timedelta(hours=24) }}
actions:
  - target:
      entity_id: vacuum.s7
    data: {}
    action: vacuum.start
mode: single

EDIT by Jay: Code bitte immer über die Codefunktion „</>“ im Editor einfügen.

Du kannst ja mal testweise die Condition weglassen, dann sollte der Robi starten. Problem könnte sein, dass last triggered keine Zeit liefert sondern den Wert none. Wenn eine Automatisierung noch nie ausgelöst wurde, hat last_triggered keinen Zeitstempel, sondern den Wert None.

Du kannst es ja mal mit diesem Template testen. Falls last_triggered fehlt, wird es durch den 1. Januar 2000 ersetzt und von dort aus, sind dann in jedem Fall 24h vergangen.

conditions:
  - condition: template
    value_template: >
      {% set last_run = state_attr('automation.autostart_roborock', 'last_triggered') %}
      {{ (now() - last_run | default(as_datetime("2000-01-01 00:00:00"), true)) > timedelta(hours=24) }}

Allgemein sind die 24h auch ziemlich hochgesetzt, würde da eher mit 16-18h Arbeiten. Könnte ja auch mal sein, dass ihr schon vor der 24 Stunde aus dem Hause seit und dann würde die Automatisierung auch nicht auslösen.

1 „Gefällt mir“

Vielen Dank, hab das mal so übernommen. Kann das aber erst Testen, wenn mal wieder alle das Haus verlassen haben. Es sind leider gerade Ferien.

1 „Gefällt mir“

Hat leider immer noch nicht funktioniert. Ich verstehe nicht warum alle abwesend und das roborock Ding will einfach nicht losfahren…
Leider bin ich auch nicht der yaml Experte, ich kann das kopieren und ein bisschen abändern, aber dann hört es auch auf.

Wie sieht der Zustand von deinem Helfer aus? Kannst du unter Entwicklertools und dann Zustände nachschauen. Zeige mal bitte dazu einen Screenshot.

Brauche ich dafür einen Helfer?
Ich dachte, wenn in HA die Personen, als anwesend oder abwesend ekannt werden, geht das so.
Warum gibt es im visuellem Editor nicht "Alle Personen abwesend "?
Wäre doch viel einfacher…

Nein einen Helfer brauchst du nicht zwingend, du kannst auch die Personen einzeln in der Automatisierung aufführen.

Das input_select.anybody_home lässt aktuell aber darauf schließen, dass eine Gruppe erstellt wurde, oder wo hast du die Automatisierung her? Wie sieht der Zustand unter Zustände in den Entwicklertools aus?

Hier mal ein Beispiel für eine Automatisierung mit einzelnen Personen:
Da muss man in Bedingungen noch prüfen, dass keine der beiden Personen zu Hause ist.

alias: Autostart Roborock
description: Keiner Zuhause > Reinigung starten
mode: single
triggers:
  - entity_id: device_tracker.person_a
    to: not_home
    for:
      minutes: 15
    trigger: state
  - entity_id: device_tracker.person_b
    to: not_home
    for:
      minutes: 15
    trigger: state
conditions:
  - condition: template
    value_template: >-
      {{ now() - state_attr('automation.autostart_roborock', 'last_triggered') >
      timedelta(hours=24) }}
  - condition: state
    entity_id:
      - device_tracker.person_a
      - device_tracker.person_b
    state: not_home
actions:
  - target:
      entity_id: vacuum.s7
    action: vacuum.start
    data: {}

Es gibt dafür die zone.home. Wenn sie <1 ist, ist keiner zu Hause. Wäre also wie oben, nur ohne Helfer

alias: Autostart Roborock
description: Keiner Zuhause > Reinigung starten
mode: single
triggers:
  - trigger: numeric_state
    entity_id:
      - zone.home
    for:
      hours: 0
      minutes: 15
      seconds: 0
    below: 1
conditions:
  - condition: template
    value_template: >-
      {{ now() - state_attr('automation.autostart_roborock', 'last_triggered') >
      timedelta(hours=24) }}
actions:
  - target:
      entity_id: vacuum.s7
    action: vacuum.start
    data: {}
1 „Gefällt mir“

Hey, Ich habe das problem über notered gelöst und hab mir dort eine Schaltung zusammengestellt… ich hab es so einfacher gefunden.:grinning:

Jeder wie er mag :wink:

Der einfachste Weg für mich, war die Lösung von maxe. Danke für eure Bemühungen, es funktioniert. Im gleichen Zug hab ich mir mal node red angeschaut. Das ist ja schlimmer als Yaml Code. Wenn ich Yaml lese, kann ich das noch fast verstehen was da steht. Bei node red fummelt man jeden Baustein zurecht, was doch sehr umständlich ist.
Ich hab jetzt das Temlate auf 15 Stunden geändert und mit minimalem Aufwand dem S7 gesagt er soll nur Saugen.
Ich bin begeistert…