Unerklärliche Auslöser bei Automation

Bei einer Automation soll eine Aktion ausgelöst werden, wenn die Spannung eines Regensensors einen Wert von 1500 mV unterschreitet. Die Aktion wird aber oft ausgelöst, auch wenn die Spannung längere Zeit den angegebenen Wert von 1500 mV nie überschritten hatte. Wie kann ich diese Fehlauslösung verhindern, sodass nur dann eine Aktion ausgelöst wird, wenn vorher ein höherer Wert vorgelegen hat?

Zeig am besten deine Automation im yaml Code.

eventuell so!?

wenn Spannung > 1520 mV:
    armed = true

wenn Spannung < 1500 mV und armed == true:
    Aktion auslösen
    armed = false

@maxe

sieht so aus:

alias: RainNotify
description: „“
triggers:

* trigger: numeric_state
  entity_id:
  * sensor.tz3210_tgvtvdoc_ts0207_spannung
    above: 2000
    id: nass
* trigger: numeric_state
  entity_id:
  * sensor.tz3210_tgvtvdoc_ts0207_spannung
    below: 1500
    id: trocken
    conditions: [ ]
    actions:
* choose:
  * conditions:
    * condition: trigger
      id:
      * nass
        sequence:
    * action: notify.mobile_app_sm_g781b
      metadata: {}
      data:
      message: " {{ now().strftime(‚%H:%M‘) }} Spannung {{ states(‚sensor.tz3210_tgvtvdoc_ts0207_spannung‘) }} mV (nass)"
      title: HA RainNotify
  * conditions:
    * condition: trigger
      id:
      * trocken
        sequence:
    * action: notify.mobile_app_sm_g781b
      metadata: {}
      data:
      message: " {{ now().strftime(‚%H:%M‘) }} Spannung {{ states(‚sensor.tz3210_tgvtvdoc_ts0207_spannung‘) }} mV (trocken)"
      title: HA RainNotify
      mode: single

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

ich würde es so machen

wir brauchen ein Helferlein:

input_boolean:
  rain_wet_seen:
    name: Rain Wet Seen

und dann das etwas aufgebohrte Script:

alias: RainNotify
description: ""
mode: single

triggers:
  - trigger: numeric_state
    entity_id: sensor.tz3210_tgvtvdoc_ts0207_spannung
    above: 2000
    for:
      seconds: 30
    id: nass

  - trigger: numeric_state
    entity_id: sensor.tz3210_tgvtvdoc_ts0207_spannung
    below: 1500
    for:
      seconds: 30
    id: trocken

actions:
  - choose:

      # NASS erkannt
      - conditions:
          - condition: trigger
            id: nass
        sequence:
          - action: input_boolean.turn_on
            target:
              entity_id: input_boolean.rain_wet_seen

          - action: notify.mobile_app_sm_g781b
            data:
              title: "HA RainNotify"
              message: >
                {{ now().strftime('%H:%M') }} Spannung
                {{ states('sensor.tz3210_tgvtvdoc_ts0207_spannung') }} mV (nass)

      # TROCKEN erkannt (nur wenn vorher nass)
      - conditions:
          - condition: trigger
            id: trocken
          - condition: state
            entity_id: input_boolean.rain_wet_seen
            state: "on"
        sequence:
          - action: notify.mobile_app_sm_g781b
            data:
              title: "HA RainNotify"
              message: >
                {{ now().strftime('%H:%M') }} Spannung
                {{ states('sensor.tz3210_tgvtvdoc_ts0207_spannung') }} mV (trocken)

          - action: input_boolean.turn_off
            target:
              entity_id: input_boolean.rain_wet_seen

das macht jetzt:

Kurz gesagt:

Du kombinierst damit drei Dinge, um Fehlauslösungen zu vermeiden:

1. Hysterese (2 Schwellwerte)
Statt einem Wert nutzt du zwei:

  • 2000 mV = „nass erkannt“

  • <1500 mV = „trocken erkannt“
    → verhindert Hin- und Herspringen um einen Punkt

2. Zeitfilter (for)
Der Wert muss z. B. 30 (oder weniger) Sekunden stabil sein
→ filtert Messrauschen

3. Merker (input_boolean)
Speichert: „war vorher nass“
→ „trocken“ wird nur ausgelöst, wenn davor wirklich „nass“ war

:backhand_index_pointing_right: Ergebnis:
Die Automation reagiert nur auf echte Zustandswechsel
(nass → trocken) und nicht auf zufällige oder dauerhafte niedrige Werte.

Probiers mal aus! :waving_hand:

@maxe Kannst ja mal drüberschauen und entsprechend “ab/bewerten” :wink:

Wurde evtl. HA zwischendurch immer mal wieder neu gestartet?
Das könnte z.B. ein Grund dafür sein.

Ich würde solche Dinge dann vermutlich auch mit einem Helfer abfangen, wie @Dr.Big vorgeschlagen hat.

Reicht ja schon falls mal ein Wert nicht sauber kommt! Funk ist da ja immer seltsam! :rofl:

@Dr.Big

Danke, das klingt nach einer guten Idee. Ich probiere es gleich aus.

Vermutlich springt der Sensor von unavailable auf >2000.
unavailable kann halt beim HA-Neustart auftauchen. oder beim Funkproblem. oder oder oder.

Da bietet sich, wie schon erwähnt (@Dr.Big @maxe) ein input_boolean Helfer an.
oder du verpackst die Hysterese in den Schwellwert-Helfer und lässt HA die Hauptarbeit machen :wink:

1 „Gefällt mir“