Automation mit AirQ und Philips Air Purifier

Hallo,
ich habe ein Air-Q Luftmessgerät im Einsatz und erhalte daraus auch die Werte für Feinstaub in meiner Wohnung. Nun möchte ich, dass Philips Air Purifier automatisch angeht, wenn bestimmte Werte überschritten werden. Das klappt auch so weit.
Nun meine Frage, was muss ich noch einfügen, damit er auch wieder ausgeht, wenn die Werte wieder im Normbereich liegen, bzw. ich die Home-Zone verlasse.
Hier mein bisheriger YAML-Code:

alias: Luftfilter
description: ""
triggers:
  - type: pm1
    device_id: da8167f6d8f6e3d942914aa1fa42e637
    entity_id: 2f002ce085fc41a6d38d7bb34f5789df
    domain: sensor
    trigger: device
    above: 15
    for:
      hours: 0
      minutes: 1
      seconds: 0
  - type: pm25
    device_id: da8167f6d8f6e3d942914aa1fa42e637
    entity_id: 1b56e8ad1818316803fb313cc13ec596
    domain: sensor
    trigger: device
    above: 25
    for:
      hours: 0
      minutes: 1
      seconds: 0
  - type: pm10
    device_id: da8167f6d8f6e3d942914aa1fa42e637
    entity_id: 9e19576fcc55f15970b413665089ae31
    domain: sensor
    trigger: device
    above: 40
    for:
      hours: 0
      minutes: 1
      seconds: 0
  - type: value
    device_id: da8167f6d8f6e3d942914aa1fa42e637
    entity_id: e3c2659a1ef6a94fcefbde35a2bd10d6
    domain: sensor
    trigger: device
    below: 75
    for:
      hours: 0
      minutes: 5
      seconds: 0
conditions:
  - condition: zone
    entity_id: person.finnja_terhaer
    zone: zone.home
actions:
  - type: turn_on
    device_id: 7b52a48c837ed0f59a6ced6be7593907
    entity_id: 3cde06fbc786387bc621c7a9c6d67a10
    domain: fan
mode: single

Du kannst den numerischen Wert einer Entität als Trigger auswählen, bei mir sieht das so aus

  - platform: numeric_state
    entity_id:
      - sensor.luftreiniger_oben_pm2_5
    below: 50
    id: PM2-5UnterXXX

Hallo @Bacardi
leider kann ich dir nicht ganz folgen.
Wo müsste dein Code denn hin und wie löst er dann das Abschalten aus?

Den Trigger setzt Du hier unter “Numerischer Zustand” und dort trägst Du Deine Entity ein und einen “Unter” Wert.

Siehe auch : https://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger

Ich würde dem Trigger auch eine ID geben (und auch Deinen anderen bisherigen)

Dann kannst Du im Action Teil mit Wenn/Dann oder mit Optionen arbeiten. Als Bedingung trägst Du dann “Ausgelöst durch” die ID des Triggers ein und im DANN Teil was passieren soll.

Das wird schon, nicht aufgeben.

1 „Gefällt mir“

Hallo @Bacardi
ich bin ein wenig weiter.
Der Luftfilter geht nun an und auch aus.
Aber noch nicht ganz so wie gewünscht.
Mein Wunsch ist ja, dass er aktiviert wird, wenn einer der drei Feinstaub-Sensoren den Schwellenwert nach oben überschreitet.
Deaktiviert soll er aber nur werden, wenn alle drei Feinstaub-Sensoren unter ihren Schwellenwerten liegen.
Also bei “An” eine “Oder-Verknüpfung” und bei “Aus” eine “Und-Verknüpfung”.
Das bekomme ich leider noch nicht hin.
Geht das überhaupt in einer Automatisierung oder brauche ich dafür zwei?
So sieht mein Yaml zurzeit aus:

alias: Luftfilter Test
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm10
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 40
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm10
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 5
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm2_5
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 25
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm2_5
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 5
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm1
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 15
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm1
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 5
conditions:
  - condition: zone
    entity_id: person.XXX
    zone: zone.home
actions:
  - type: turn_on
    device_id: 7b52a48c837ed0f59a6ced6be7593907
    entity_id: 3cde06fbc786387bc621c7a9c6d67a10
    domain: fan
mode: single

Moin
Folgende Schritte könntest Du machen:

  • Gebe alle Deinen Triggern eine Auslöser-ID (eigentlich brauchen nur die Über)
  • Im Action Feld wähle Auswählen
  • Option 1 (AN): Bedingung ODER (Trigger1, Trigger3, Trigger5)
  • Als Ausführung nimmst Du dann Deine Geräteaktion
  • Option 2 (AUS): Hier sehe ich 2 Wege, nimm womit Du Dich wohler fühlst
    • Bedingung AND und dann noch einmal Deine 3 Bedingungen die Du schon beim Trigger hast (Am Anfang sicher leichter)
    • Ich selbst habe eine Template Condition genommen
- conditions:
    - condition: template
      value_template: >-
        {# Alle Werte müssen im grünen Bereich sein #}
        {% set pm25 = states('sensor.luftreiniger_unten_pm2_5') | float(0) %}
        {% set iai = states('sensor.luftreiniger_unten_indoor_allergen_index') | float(0) %}
        {% set gas = states('sensor.luftreiniger_unten_total_volatile_organic_compounds') | float(0) %}
        {{ pm25 < 50 and iai < 7 and gas < 2.5 }}
  • Und dann wieder Deine Geräte Aktion

Ablauf:

  • Wenn ein ÜBER Trigger auslöst, geht das Gerät an (Option 1 ja, Option 2 nein)
  • Wenn einer UNTER Trigger auslöst wird in (Option 1 nein, Option 2 ja) geprüft ob alle Werte grün, dann Gerät aus, wobei erst der letzte grüne Wert greift.

ja, das geht auch in einer Automation.
Habe ebenfalls diese Automation mit dem AirQ und mache das über “Wenn und Sonst”.

Deine Trigger sind so ok, wie du sie hast und dein Grundgedanke mit (AN eine oder) und (AUS eine und)-Abfrage ist ebenfalls korrekt.

Im Auslöser-Bereich als bei “Dann mache” beginnst du einfach mal mit WENN und machst in diese gleich mal ein ODER rein (fürs Einschalten) und arbeitest dich weiter nach unten.

Das sieht dann etwa so aus…

if:
  - condition: or
    conditions:
      - condition: numeric_state
        entity_id: sensor.air_q_1_pm1
        above: 4
      - condition: numeric_state
        entity_id: sensor.air_q_1_pm2_5
        above: 12
      - condition: numeric_state
        entity_id: sensor.air_q_1_pm10
        above: 20
then:
  - metadata: {}
    data:
      percentage: 50
      preset_mode: manual
    target:
      device_id: 6c12a026695076542af2d2d92eff01a3
    action: fan.turn_on
else:
  - if:
      - condition: and
        conditions:
          - condition: numeric_state
            entity_id: sensor.air_q_1_pm1
            below: 0.3
          - condition: numeric_state
            entity_id: sensor.air_q_1_pm2_5
            below: 0.6
          - condition: numeric_state
            entity_id: sensor.air_q_1_pm10
            below: 1
    then:
      - metadata: {}
        data: {}
        target:
          device_id: 6c12a026695076542af2d2d92eff01a3
        action: fan.turn_off
1 „Gefällt mir“

Hallo @anon40834185
dein Lösungsweg sieht für mich genau richtig aus.
Ich bekomme aber die oberste Verzweigung nicht hin.
Folgenden Weg habe ich probiert:
Neue Automatisierung erstellen
Auslöser hinzufügen
Und hier finde ich nichts Passendes, was zu deinem Screenshot passt und dieses Wegweisersymbol enthält.

Alternativ habe ich auch deinen Quellcode mal komplett als neue Automatisierung versucht, aber da scheint noch was zu fehlen. Entweder oben drüber oder unten drunter.

und schon hast du diese “Verzweigung” :smiley:
Die 6 Trigger hast ja schon richtig eingestellt oben unter (WENN)

1 „Gefällt mir“

@anon40834185
Dafür hast du dir ein Getränk deiner Wahl verdient.
Dass man da auch etwas eintippen kann, darauf bin ich nicht gekommen.
Mein Yaml sieht nun so aus und ich schaue mal ob er an und wieder ausgeht.

alias: Luft reinigen
description: Philips Air+ automatisiert schalten
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm1
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 4
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm2_5
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 12
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm10
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 20
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm1
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 0.3
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm2_5
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 0.6
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm10
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 1
conditions:
  - condition: zone
    entity_id: person.xxx
    zone: zone.home
actions:
  - if:
      - condition: or
        conditions:
          - condition: numeric_state
            entity_id: sensor.airq_pm1
            above: 4
          - condition: numeric_state
            entity_id: sensor.airq_pm2_5
            above: 12
          - condition: numeric_state
            entity_id: sensor.airq_pm10
            above: 20
    then:
      - type: turn_on
        device_id: 7b52a48c837ed0f59a6ced6be7593907
        entity_id: 3cde06fbc786387bc621c7a9c6d67a10
        domain: fan
    else:
      - if:
          - condition: and
            conditions:
              - condition: numeric_state
                entity_id: sensor.airq_pm1
                below: 0.3
              - condition: numeric_state
                entity_id: sensor.airq_pm2_5
                below: 0.6
              - condition: numeric_state
                entity_id: sensor.airq_pm10
                below: 1
        then:
          - type: turn_off
            device_id: 7b52a48c837ed0f59a6ced6be7593907
            entity_id: 3cde06fbc786387bc621c7a9c6d67a10
            domain: fan
mode: single

sieht ganz gut aus, wenn ich auf die Schnelle nichts übersehen habe :blush:

Bitte um Rückmeldung, ob alles geklappt hat.

Edit:
ja, das mit der Texteingabe musst du dir angewöhnen, sonst wirst du alt, wenn mal etwas größeres sein soll. Die Funktionen im Dropdown zu suchen dauert einfach zu lange. Überhaupt wenn man noch nicht so geübt ist, weiß man noch nicht wo etwas zu finden ist :smiley:

Hallo @anon40834185
es hat gestern wie gewünscht funktioniert.
Dadurch, dass schon viele Abends den Kamin anmachen, kommt beim Lüften neben der frischen Luft auch Feinstaub rein.
So war der Test nicht schwierig durchzuführen.
Vielen Dank noch mal für die Unterstützung.

sehr gerne und danke für die Rückmeldung!

Ich habe den LAP-V102S-WEU im Nagelstudio meiner Tochter stehen, da staubt es auch ganz schön :stuck_out_tongue:

Hab allerdings bei der Automation auch die Fenster/Tür-Sensoren drin, damit der Luftreiniger erst dann einschaltet, wenn alles geschlossen ist (hätte sonst nicht viel Sinn).
Gehen die Feinstaubwerte mal über den eingestellten Wert und es ist eine Tür od. Fenster offen, geht eine Meldung über den AMP auf den “Echo-Nagelstudio” … “man solle bitte die Fenster und Türen schließen, damit der Luftreiniger seine Arbeit verrichten kann” raus :smile:
Schließt sie dann alle Fenster und Türen, wird der Luftreiniger aktiv.

Ich merke schon, man kann so viel damit machen.
Sensoren an Fenstern und Türen habe ich noch gar nicht.
Kannst du mir welche empfehlen?

ich habe vor einigen Jahren auf Homematic IP umgestellt und ehrlich gesagt keine großen Erfahrungen mit Anderen.

Auf einigen “unwichtigen” Türen habe ich noch die Shelly BLU Door/Window, dafür habe ich noch reichlich Shelly-Aktoren, welche als Gateway dienen.

Ich habe jetzt doch noch eine Frage.
Die Automation funktioniert soweit korrekt.
Der Air+ geht an und aus, genauso wie es die Auslöser steuern sollen.
Jetzt habe ich aber eine zusätzliche Bedingung eingebaut, die besagt der Air+ soll nur aktiviert werden, wenn ich zu Hause bin.
Dies klappt auch.
Wenn er sich nun aktiviert während ich zu Hause bin und ich dann das Haus verlasse, geht er nicht mehr aus. Auch wenn die Auslöser für die Abschaltung erreicht werden, läuft der Air+ weiter.
Ich denke es liegt an der zusätzlichen Bedingung, dass ich in der Home-Zone sein muss.
Wie kann ich meine Automation anpassen, dass sich das Gerät auch ausschaltet, wenn ich nicht mehr in der Home-Zone bin?

alias: Luft reinigen
description: Philips Air+ automatisiert schalten
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm1
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 4
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm2_5
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 15
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm10
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 40
  - trigger: numeric_state
    entity_id:
      - sensor.airq_vocs
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 700
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm1
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 1
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm2_5
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 1
  - trigger: numeric_state
    entity_id:
      - sensor.airq_pm10
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 1
  - trigger: numeric_state
    entity_id:
      - sensor.airq_vocs
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 500
conditions:
  - condition: zone
    entity_id: person.xxx
    zone: zone.home
actions:
  - if:
      - condition: or
        conditions:
          - condition: numeric_state
            entity_id: sensor.airq_pm1
            above: 4
          - condition: numeric_state
            entity_id: sensor.airq_pm2_5
            above: 15
          - condition: numeric_state
            entity_id: sensor.airq_pm10
            above: 40
          - condition: numeric_state
            entity_id: sensor.airq_vocs
            above: 700
    then:
      - type: turn_on
        device_id: 7b52a48c837ed0f59a6ced6be7593907
        entity_id: 3cde06fbc786387bc621c7a9c6d67a10
        domain: fan
    else:
      - if:
          - condition: and
            conditions:
              - condition: numeric_state
                entity_id: sensor.airq_pm1
                below: 1
              - condition: numeric_state
                entity_id: sensor.airq_pm2_5
                below: 1
              - condition: numeric_state
                entity_id: sensor.airq_pm10
                below: 1
              - condition: numeric_state
                entity_id: sensor.airq_vocs
                below: 500
        then:
          - type: turn_off
            device_id: 7b52a48c837ed0f59a6ced6be7593907
            entity_id: 3cde06fbc786387bc621c7a9c6d67a10
            domain: fan
mode: single

conditions:
  - condition: zone
    entity_id: person.xxx
    zone: zone.home

Die von Dir gesetzte Bedingung ist zu weit oben angesetzt. Sie gilt für alle Trigger also auch für die, die das Ausschalten bewirken sollen. Die gehen aber nur wenn Person zu Hause ist.

Setze die Condition tiefer

  - if:
      - condition: and
        conditions:
          - condition: or
            conditions:
              - condition: numeric_state
                entity_id: sensor.airq_pm1
                above: 4
              - condition: numeric_state
                entity_id: sensor.airq_pm2_5
                above: 15
              - condition: numeric_state
                entity_id: sensor.airq_pm10
                above: 40
              - condition: numeric_state
                entity_id: sensor.airq_vocs
                above: 700
          - condition: zone
            entity_id: person.xxx
            zone: zone.home
    then:
      - service: fan.turn_on
        target:
          entity_id: fan.dein_airplus_entity_id
1 „Gefällt mir“

Vielen Dank!
Probiere ich aus.

Update:
Es hat funktioniert. :smiley:

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)