Automation Mähroboter verpasst den zweiten Anlauf

Hallo,
ich habe eine Automation,
die leider nicht zu meiner Zufriedenheit funktioniert.

Mein Mähroboter soll ab 11:00 Uhr mähen.
aber nur wenn:

  • Es ist Montag oder Mittwoch
  • Die Temperatur über 12 Grad ist
  • Der Mähplan aktiviert (geschieht über gesonderten Helfer) ist.

dann soll

  • wenn der Regensensor seit 6 Stunden trocken ist, der Mähroboter für 240min mähen!

Das funktioniert bis hierin!

Meldet der Regensensor aber noch nicht trocken,
soll 3 Stunden gewartet werden werden ob der Regensensor ggf. noch die 6 Stunden Trockenheit erreicht.
Es gab nun schon einige Tage,
da ist es erst Bsp: um 13:00 trocken geworden und der Mähroboter hätte eigentlich mähen sollen, tat es aber nicht.

Wo habe ich da den Fehler in meiner Automation?

alias: "Rasenmäher: Mähen Mo & Mi für 4h bei über 12°C  um 11:00 Uhr "
description: ""
triggers:
  - at: "11:00:00"
    trigger: time
conditions:
  - condition: state
    entity_id: input_select.mahplan
    state: EIN
  - condition: numeric_state
    entity_id: sensor.temperatursensor_garten_temperature
    above: 12
  - condition: time
    weekday:
      - mon
      - wed
actions:
  - if:
      - condition: state
        entity_id: binary_sensor.shelly_regensensor_channel_2_input
        state: "off"
        for:
          hours: 6
          minutes: 0
          seconds: 0
    then:
      - target:
          entity_id: lawn_mower.m
        data:
          boundary: false
          runtime: 240
        action: landroid_cloud.ots
      - metadata: {}
        data:
          message: Ich beginne zu mähen!
          title: Mähziege
        action: notify.mobile_app_iphone_xr
    else:
      - wait_for_trigger:
          - entity_id:
              - binary_sensor.shelly_regensensor_channel_2_input
            to: "off"
            for:
              hours: 6
              minutes: 0
              seconds: 0
            trigger: state
        timeout:
          hours: 3
          minutes: 0
          seconds: 0
          milliseconds: 0
        continue_on_timeout: false
      - target:
          entity_id: lawn_mower.m
        data:
          boundary: false
          runtime: 240
        action: landroid_cloud.ots
      - metadata: {}
        data:
          message: Es wurde trocken. Die Ziege ist los
          title: Mähziege
        action: notify.mobile_app_iphone_xr
mode: single

Was sagt denn die trace?
Wenn du im Übrigen zwischendurch HA neugestartet oder deine Automationen neugeladen hast, ist die Automation futsch.

Also ich lese da dass die Automation einmalig um 11 Uhr ausgeführt wird. Wenn es unter 12 Grad hat dann war’s das für den Tag.

Wenn es nicht 6 Stunden trocken war dann wartet es bis 15 Uhr ob es bis dann 6 Stunden trocken war.

Stimmt so weit?

@Kitty ich denke du meinst die Traces sind futsch, oder?

Ich meine damit, dass laufende Automationen unterbrochen werden.

Achso, ja, stimmt. Dafür sind leider auch manche meiner Automationen anfällig :sweat_smile:

@Kusei das soll heißen es ist robuster wenn du kein Warten mit einem langen Timeout machst. Besser zwei Trigger: Mo/Mi 11:00 und 6 Stunden Trockenheit. Und als Bedingung das nochmal ähnlich: Mo/Mi zwischen 11:00 und 15:00 und 6 Stunden Trockenheit. Und Mäher seit 10 Stunden nicht gelaufen (damit er nicht doppelt fährt).

Ich bin nicht so der HA Profi aber das könnte funktionieren. Statt der Trockenheit kannst du zum Testen auch z.B. einen UI Schalter nehmen (input_boolean) und nur 3min oder so abfragen.

Würde ich auf den ersten Blick genauso machen.

Okay,
wenn ich Euch (Kitty und StefanT) richtig verstehe, ist die Automaton erst einmal korrekt und sollte funktionieren!

Heute waren in den Traces nur:

at: '11:00:00'
trigger: time

Es kann aber durch einen Neustart von HA zu Problemen bei Automationen u.a. mit Timeout kommen, so Euer Tenor.
Das könnte der Fall sein, da ich manchmal nebenher einige Dinge gemacht habe und hatte die Automationen der “Mähziege” nicht auf dem Schirm. Ich werde dies nochnmals testen und wenn es nicht klappt die Automation wie beschrieben umbauen.

Danke erstmal

Gerne. Es liegt mir fern dir Druck zu machen, aber bau es lieber gleich um. Irgendwann wird es dich ärgern und dann ist die Erinnerung nicht mehr so frisch wie jetzt noch. Frag mal warum ich das weiß :joy:

Kurze Frage noch:
Was bedeutet eigentlich unter “Warte auf einen Auslöser”?
Bei Zeitüberschreitung fortfahren.

Er wartet bis zu 3 Stunden bei dir. Was soll passieren wenn nach den 3 Stunden es noch immer nicht trocken genug ist? Trotzdem mähen oder heute nicht? Das steuerst du damit.

Im Englischen ist es mit continue_on_timeout recht gut gesagt: wenn die Zeit um ist dann bricht er die Automation bei dir ab. Wenn du trotzdem weiter machen willst dann musst du es auf true setzen.

Also wartet er dann länger als die 3 Stunden bis der Regensensor nach 6 Stunden trocken meldet. Das kann dann auch auch am Folgetag sein…

Nun ja, das will ich ja nicht, somit bliebt der Schalter aus.
Danke

Nein er wartet nicht länger. Nach 3 Stunden wird die Automation abgebrochen (false) oder er beginnt mit dem Mähen (true). Also er macht die Automation in dem Fall weiter als ob es trocken genug ist.

Ich hab’ sowas bei meinem Mähroboter beim Aufladen. Wenn er am Ende am Dock steht und abends ausgeschaltet werden soll dann wartet er bis zu 2h bis der Roboter geladen ist. Nach den 2h wird aber auf jeden Fall ausgeschaltet - für den Fall dass irgendwas mit der Erkennung vom Akku Stand nicht geklappt hat. Ist er früher fertig mit dem Laden wird früher ausgeschaltet. Also quasi wie bei dir aber mit true.

Nur ist diese Automation einer der Fälle der bei mir nicht richtig funktioniert wenn ich den Home-Assistant neu starte oder die Automation gerade umbaue. Also einer der Kandidaten die ich mal umbauen sollte und somit eigentlich ein schlechtes Beispiel.

Sicher das das so funktioniert ?
Ist es nicht so, das es NUR Triggert wenn die Temperatur irgendwann unter 12° war. Danach nie wieder. Scharf erst wieder wenn die Temp unter 12° gefallen war.

Bei numeric_state - Triggern - ja.
Nicht in der Bedingung. Da prüft die Automation nur, ob es über 12 Grad sind, auch wenn 24x getriggert wird.