Automation stoppen und fortsetzen

Ich habe eine Automation welche einen Luftentfeuchter an und ausschaltet, abhängig von der relativen Luftfeuchte, gemessen mit einem Sensor.

Nun möchte ich das er Entfeuchter gestoppt wird solange die Tür auf steht. Diese hat einen Sensor der aktuell das Licht ein/ausschaltet.

Wie stelle ich das am besten an?

In dem du in deine Automation noch ein Trigger zum ausschalten hinzugefügst und die Bedingungen zum einschalten anpasst.

Genau sagen kann man das aber nur wenn wir die Automation sehen als yaml.

Lg

Ohne weitere Kenntnis der Umstände wäre das etwas in diese Richtung:

alias: Luftentfeuchter steuern
description: ""

# Die Automation wird gestartet, wenn sich die
# Luftfeuchte oder der Status des Türkontaktes ändert
triggers:
  - trigger: state
    entity_id:
      - sensor.sonoff_snzb_02wd_bad_humidity
  - trigger: state
    entity_id:
      - binary_sensor.aqara_door_sensor_t1_bad_contact

conditions: []

actions:
  # Wenn die Luftfeuchte über 60% und die Tür zu ist ...
  - if:
      - condition: and
        conditions:
          - condition: template
            value_template: "{{ states('sensor.sonoff_snzb_02wd_bad_humidity') | float(0.0) > 60.0}}"
          - condition: state
            entity_id: binary_sensor.aqara_door_sensor_t1_bad_contact
            state: "off"

    # ... dann schalte Luftentfeuchter ein ...
    then:
      - action: switch.turn_on
        target:
          entity_id: switch.nous_a1z_trockner
    
    # ... ansonsten schalte ihn aus.
    else:
      - action: switch.turn_off
        target:
          entity_id: switch.nous_a1z_trockner
mode: single

Da musst Du natürlich noch Deine Entitäten reinfrickeln.

Jegliche Änderung der Luftfeuchtigkeit löst die Automation aus. Lustig wird es dann, wenn die Luftfeuchtigkeit um die 60% rauf und runter springt.

Dann spielt der Luftentfeuchter Breakdance. :man_dancing::grin:

Gruß Osorkon

Das ist korrekt. Das ist ja auch “nur” …

… und dementsprechend noch nicht fertig (das hätte ich vielleicht etwas mehr betonen sollen!?). Kann es auch gar nicht, weil, wie @totow schon bemerkt hatte:

Und zumindest ein kleines bissl selber (mit)machen müssen die Fragesteller ja auch. :laughing:

Mir geht es nicht um eine Copy/Paste Lösung, sondern ich möchte das Umsetzungsmuster besprechen. Im genannten Code kann ich die noch nicht entdecken.

Ein Aquara Luftfeuchtigkeitssensor steuert über seine Änderungstrigger innerhalb von zwei Schaltschwellen das Sonoff-Relais des Luftentfeuchters (dieser ist einfach auf 40% RH fest eingestellt, läuft also praktisch so lange wie er Strom hat, denn weiter runter bekommt er die nicht). Die AN-Schaltschwelle ist bei >65% und die AUS bei <50%. Ich hoffe darauf das der Aquara-Sensor nicht “prellt”, also eine gewisse Hysterese besitzt (1-3%), ggf. kann man das ja auch einstellen?

Damit läuft die Automation ja grundsätzlich ,wenn auch nicht perfekt, denn wenn unter gewissen Umständen der Trigger nicht ausgelöst wurde (Funk- oder Batterieproblem am Sensor) dann wird darauf noch nicht reagiert. Ich glaube hier müsste ich eine Überwachungsautomation bauen die prüft ob der Sensor “available” ist, oder ob die Automation AN schon zu lange läuft (>4 Stunden) um das System dann zu verriegeln.

Und jetzt kommen wir zum Türkontakt (). Dieser Steuert aktuell mit zwei Automationen die Beleuchtung des Kellerraumes, wie im Kühlschrank, Tür auf=Licht an, Tür zu=Licht aus.

Wenn nun die Luftentfeuchtung läuft (getriggert durch eine Änderung der RH>65%) und jemand öffnet die Tür und lässt diese längere Zeit auf (sagen wir 5 Minuten), dann möchte ich den Luftentfeuchter stoppen (weil es nichts bringt) bzw. gar nicht erst starten lassen, falls bei geöffneter Tür die RH über die Schaltschwelle steigt.
Umgekehrt, wenn die Tür wieder geschlossen wird soll der letzte Zustand der Entfeuchter-Automation wiederhergestellt werden. War diese aus, bleibt sie aus, war diese an, geht sie wieder an.

Mir ist klar das der Luftsensor die Automation bei Änderung immer wieder triggert, also nicht nur einmal beim durchschreiten des Schwellwertes. Die Änderungsrate ist jedoch gering und es würde wohl eine ganze Weile dauern bis die Automation wieder gestartet würde.

Ich weiß nicht ob mein Denkansatz falsch ist, aber ich hatte es so verstanden das die Trigger dazu dienen die Automation aufzurufen. Ein Trigger kann jetzt ein Device oder mehrere Devices oder auch ein Timer sein? In diesem Fall würde ich neben dem Luftsensor auch den Türsensor als Trigger einsetzen.
In der Bedingung dann abfragen ob die Tür zu war (also sich der Status nicht geändert hat) oder geschlossen wurde (Automation war angehalten, soll aber fortgesetzt werden).
Was dann noch fehlen würde wären die Sicherheitsüberwachungen, also Luftentfeuchter läuft zu lange, oder Sensoren sind nicht mehr verfügbar.

Ich hab festgestellt, daß numeric_state Trigger mit below und above manchmal auslösen, obwohl sie nicht hätten dürfen ( → Automation ausgelöst ohne Auslöser ). Dazu habe ich folgendes eingebaut:

  conditions:
  - condition: template
    value_template: '{{trigger.from_state.state != ''unavailable''}}'
  - condition: template
    value_template: '{{trigger.from_state.state != ''unknown''}}'

Nach dem Triggern geht es dann nur weiter, wenn der state zuvor nicht unavailabe oder unknown war. Bisher funktioniert das.

Ein Trigger startet eine Automation, ja. Eine Automation kann beliebig viele Trigger haben. Wenn einer davon feuert, dann wird die Automation abgearbeitet.

Als Trigger kann man folgendes auswählen:

Bis auf den Vorletzten sind die alle vorgefertigt. Mit dem template trigger, kannst Du Dir die Trigger bauen, die der Standard nicht hergibt, z.B.

  triggers:
  - trigger: template
    value_template: '{{state_attr(''zone.home'', ''persons'') | length == 0}}'

Eine Laufzeitüberwachung kannst Du mit einem Timer oder mit der Abfrage von last_changed realisieren:

{{ states.binary_sensor.aqara_door_sensor_t1_bad_contact.last_changed }}

Wenn Du die Automation richtig aufbaust, dann hast erst gar nicht die Notwendigkeit diese zu stoppen. Dann läuft diese nur wenige ms.

Mal als Bsp.:

Der Enfeuchter soll nur im Zeitraum von 8 bis 22 Uhr laufen.Einschalten, wenn Luftfeuchtigkeit über 60% steigt. Und ausschalten, wenn Luftfeuchtigkeit unter 50% sinkt. Wenn die Tür länger als 5 min offen steht und Entfeuchter läuft, soll er ausgeschaltet werden. Wenn Tür geschlossen für 1 min, Entfeuchter einschalten.

Das ergibt dann 6 Auslöser:

  • 8 Uhr → einschalten
  • 22 Uhr → ausschalten
  • Luftfeuchtigkeit steigt über 60 → einschalten
  • Luftfeuchtigkeit sinkt unter 50 → ausschalten
  • Tür geöffnet für 5 min → ausschalten
  • Tür geschlossen für 1 min → einschalten

Diesen Auslösern weist Du eine Auslöser ID

  • einschalten
  • ausschalten

Mit Auswahl als Aktion hast Du dann 2 Optionen

Option 1 einschalten, wenn Bedingungen zutreffen

  • Ausgelöst durch einschalten
  • nach 8 Uhr und vor 22 Uhr
  • Luftfeuchtigkeit über 50%
  • Tür ist geschlossen
  • Entfeuchter ist aus

Option 2 ausschalten, wenn Bedingungen zutreffen.

  • Ausgelöst durch ausschalen
  • Entfeuchter ist an

Wenn Du nicht möchtest, dass der Entfeuchter länger als 2 h am Stück läuft, dann noch einen zusätzlichen Auslöser. Entfeuchter an für 2h.

Wenn Du Luftfeuchtigkeit Sensor überwachen willst. Kannst auch diesen als Auslöser verwenden. Wenn wird nicht verfügbar und oder wenn Wert sich seit 1h nicht verändert.

Gruß Osorkon

1 „Gefällt mir“