Automation Smarter Lüfter +-2% Luftfeuchtigkeit

Hallo Leute,

ich möchte folgendes erreichen. Mein Badezimmerlüfter soll automatisch ausgehen, wenn die Luftfeuchtigkeit für 5 Minuten innerhalb von ±2% ist und unterhalb von 75% liegt. Ich habe hierzu einen Statistik Helfer erstellt, der die Standartabweichung der letzten 5 Minuten berechnet. Ich möchte nun, dass meine Automation, wenn der Lüfter an ist, und zwar nur wenn der Lüfter an ist, alle 30 Sekunden triggert und das alles abfragt. Ich habe folgende Automation erstellt:

alias: Smarter Lüfter-Ausschalter ±2%
description: >-
  Schaltet den Lüfter aus, wenn Luftfeuchtigkeit 5 Minuten lang stabil bleibt.
  Prüft nur, wenn Lüfter an ist.
triggers:
  - value_template: |
      {{ is_state('fan.badezimmerlufter', 'on') and (now().second % 30 == 0) }}
    trigger: template
conditions:
  - condition: and
    conditions:
      - condition: state
        entity_id: fan.badezimmerlufter
        state: "on"
      - condition: or
        conditions:
          - condition: numeric_state
            entity_id: sensor.bad_luftfeuchtigkeit_stabil
            below: 2
          - condition: state
            entity_id: sensor.bad_luftfeuchtigkeit_stabil
            state: unknown
      - condition: numeric_state
        entity_id: sensor.bad_luftfeuchtigkeit
        below: 75
actions:
  - action: fan.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: fan.badezimmerlufter
mode: single

Nun gibt es zwei Probleme.

  1. Wenn mein Luftfeuchtigkeitssensor länger als 5 Minuten keinen Wert liefert, geht der Statistiksensor in Status “unknown” was hin und wieder für Probleme sorgt.
  2. Die Automation müsste eigentlich alle 30 Sekunden triggern, weil das template geht alle 30 Sekunden in true (wird auch in der Oberfläche beim bearbeiten der Automation angezeigt → “Ausgelöst”). Aber die Automation triggert nicht. Immer nur beim ersten mal. Sprich wenn der Lüfter angeht und die Zeit das erste mal auf 30 oder 60 Sekunden springt. Danach nicht mehr.

Hat jmd. von euch ne Idee woran das liegen könnte?

Soll heißen: Bei der ersten vollen Minute erfolgt die Aktualisierung und das Eegenis ist true und bleibt bis zu nächsten Aktualisierung (nächste volle Minute) auf true Und das Spiel fängt von vorne an und das Ergebnis bleibt für immer und ewig trueAlso absolut ungeeignet als Auslöser.

Gruß Osorkon

Wenn du alle 30 Sekunden triggern willst, dann besser so

trigger: time_pattern
seconds: /30

@sirector er wollte aber nur triggern, wenn Lüfter läuft. :wink:

@prox47 time_pattern wie @sirector schon richtig angemerkt. Und eine zweite Automation die beim einschalten des Lüfters die erste aktiviert und beim ausschalten deaktiviert.

So wird nur alle 30 Sekunde getriggert, wenn Lüfter an.

Gruß Osorkon

Das triggert ja aber immer alle 30 Sekunden, auch wenn der Lüfter aus ist. Das wollte ich eigentlich umgehen :confused:

Hi bau dir eine Schleife in die Action.

Und setze am Ende einen delay von 30 Sekunden

1 „Gefällt mir“

Also bei mir sieht das wie folgt aus:

Sprich wenn {{(now().second)}} 0 ist (und auch bei 30) dann ist der Vergleich true. Ansonsten false.
Oder seh ich da was falsch?

Dieser Hinweis ist wichtig und macht deine Überlegungen nichtig


Es wir nur zu Beginn jeder vollen Minute geschaut ob wahr oder falsch, da es ein Template Trigger ist

dann macht ja {{(now().second)}} gar keinen Sinn?! Dann kann ich ja gar keine Abfrage der aktuellen Sekunde machen, wenn nur zu Beginn jeder Minute abgefragt wird oder?

Nicht als Trigger. Dafür nutzt man eigentlich time_pattern und dann condition.

Ja das hatte ich auch erst so aber dann triggert die Automation halt auch alle 30 Sekunden, wenn der Lüfter aus ist, was ja gar keinen sinn macht. Deswegen wollte ich es iwie schöner machen :confused:

Dann schau dir die Lösung von @Osorkon an

1 „Gefällt mir“

Das triggern alle 30 s ist Dir Zuviel. Aber das Template soll im Sekunden Takt überprüft werden?

Hast doch jetzt schon Lösungen.

  1. Zweite Automation, die die erste aktiviert/ deaktiviert
  2. Oder den Lüfter als Auslöser verwenden und eine Schleife laufen lassen solange Lüfter an.

Gruß Osorkon

1 „Gefällt mir“

Jap hab ich schon gesehen :slight_smile:

Oder die Lösung von @Dschido müsste ja eigentlich auch funktionieren.

Hast du noch ne Idee zu dem Statistik Sensor? Dass er mir die Standartabweichung der letzten 5 Minuten berechnet ohne, bei fehlendem Wert unbekannt auszugeben?

Ich meine ein delay überlebt z. B. einen Neustart nicht.

Ja stimmt hast du auch wieder recht. So hab ich das noch gar nicht betrachtet :sweat_smile:

Allerdings springt der Zustand von Lüfter beim Neustart von unbekannt zu an und löst die Automation erneut aus.

Gruß Osorkon

1 „Gefällt mir“

ja das stimmt wohl. Wäre aber nicht so schlimm. hab ne automatische Abschaltung nach 45minuten als extra Automation. Ob das ausfallsicher ist müsste ich mal probieren^^

Das tut es anscheinend nicht mehr. Entweder hat sich diesbezüglich was geändert, oder meine Integrationen laden zu schnell?! Da hilft dann nur ein zusätzlicher Auslöser.

  • Home Assistant Start.

Gruß Osorkon