Keine Auslösung

Hallo zusammen,

ich habe einer recht einfache Automation geschrieben, die bei einem bestimmten Netzeinspeise-Wert meiner Photovoltaik-Anlage auslösen soll.

Der Code dazu sieht wie folgt aus:

  trigger:
  - platform: numeric_state
    entity_id: binary_sensor.netzeinspeisung
    for:
      hours: 0
      minutes: 0
      seconds: 0
    below: 200
    attribute: sensor_value

In meinem Dashboard lasse ich mir den o.a. Wert ( sensor_value der Entität binary_sensor.netzeinspeisung ) anzeigen und obwohl der Wert im Dashboard den Schwellwert 200 unterschreitet, löst der Trigger nicht aus.
image

Ich stehe vor einem Rätsel. Gibt es die Möglichkeit einer Debug-Ausgabe des Wertes während der Trigger-Auswertung? Eine mögliche Erklärung wäre für mich, dass der angezeigte Wert im Dashboard gar kein numerischer Wert sondern ein String ist und damit der der Verlgleich “below: 200” fehlschlägt.

Viele Grüße,
Thomas

Hi ThomasAT91,
es sieht nach einem Logikfehler aus, ein “binary_sensor” hat keinen “numeric_state”, nur “on/off”.

Gruß Alex

Hallo Alex,

danke für Deinen Hinweis. Das hatte ich auch schon im Verdacht, aber deshalb habe ich als Attribut “sensor_value” angegeben. Wenn ich dieses Attribut in einer Karte im Dashboard anzeige, wird mir der numerische Wert angezeigt.

Aber um das weiter einzugrenzen, habe ich nun direkt die Entität “sensor.ac_meter_watts” eingetragen und einen Schwellwert angegeben, der zur Auslösung führen müsste. “below 10000” habe ich eingetragen, wo der aktuelle Wert unter 1000 liegt.

Ergebnis: keine Auslösung

Ich bin ratlos…

Versuch dein Glück über die Templates um zu verstehen welcher Sensor, was ausgibt.

hiermit würde ich anfangen:
{{ state_attr(‘binary_sensor.netzeinspeisung’,‘sensor_value’) }}
{{ states.sensor.ac_meter_watts }}

Mit dem ouput, solltest du weitermachen können :slight_smile:

1 „Gefällt mir“

Wenn du mit below 10000 triggerst, muss der Wert erst mal über 10000 sein und dann darunter fallen, damit der Trigger ausgelöst wird.

Nimm zum Testen z. B. einen Zeit Trigger von 5 Min. \5 und als Bedingung dann deinen Wert.

1 „Gefällt mir“

Es wird gespenstischer:

Bisher habe die Automatisierung, die nicht ausgelöst hat, immer wieder modfiziert, zur Fehlersuche vereinfacht und die Werte immer weiter angepasst, so dass sie auslösen müßte. Wie oben geschrieben hat das alles nicht funktioniert.

Nun habe ich eine vollständig neue Automatisierung erstellt (die dann ja auch eine neue id bekommt), da ich das Gefühl habe, die “alte” Automatisierung könne einen inkonsistenten Zustand haben. Und siehe da, wenn ich “sensor.inverter_watts” auf größer 1 prüfe, löst der Trigger aus. Hat dafür jemand eine Erklärung?

Nun zeigt mir “sensor.inverter_watts” mir den aktuellen Leistungswert meines Solaredge-Inverters an, also das, was meine Photovoltaikanlage gerade produziert. Für die gewünschte Automation ist dieser Wert aber nicht hilfreich, da die aktuellen Verbraucher nicht berücksichtigt werden. Dazu gibt es die Entität sensor.ac_meter_watts, der von einem Modbustcp-basierten Zähler geliefert wird und anzeigt, welche Leistung ich in das Netz einspeise oder beziehe. Ist der Wert negativ beziehe ich Strom, bei poitiven Werten speise ich in das Netz ein.

Schreibe ich nun eine neue Automation, die mit der funktionierenden identisch ist, nur dass der Sensor ac_meter_watts genutzt wird, löst das System wieder nicht aus. Hier der Wert von ac_meter_watts, wie er in einer Karte angezeigt wird:
image

Hat jemand eine Erklärung für das Verhalten?

1. Nachtrag:
@Alleks Alleks
Vielen Dank, das probiere ich gleich mal. Danke!

2. Nachtrag:
So, ich habe jetzt über ein Script eine Nachricht gesendet, die den Wert zu “sensor.ac_meter_watts” ausgibt. Hier das Ergebnis:

image

Für mich sieht dies so aus, als könnte ich “sensor-ac_meter_watts” verwenden können - oder?

:crayon:by HarryP: Zusammenführung Mehrfachpostings
@ThomasAT91
Bitte für Ergänzungen/Nachträge die “bearbeiten” Funktion verwenden. Danke!
Andere User kannst Du auch mit “@”+Usernamen ansprechen/zitieren.

“sensor.ac_meter_watts” sieht aus, als wär das der richtige Sensor.

Mit dieser Automation, kannst du sehen ob der sensor richtig triggern würde.
Hier sollte alle 5 Minuten eine Home-Assistant Benachrichtigung auftauchen, wenn der sensor über 1000W ist.

description: ""
mode: single
trigger:
  - platform: time_pattern
    minutes: /5
condition:
  - condition: template
    value_template: "{{ states('sensor.ac_meter_watts') | int > 1000 }} "
action:
  - service: notify.persistent_notification
    data:
      message: Test

Code wurde nochmal angepasst

2 „Gefällt mir“

@Alleks Noch mal vielen Dank auch dafür!

In Deinem obigen Beispiel wird alle 5 Minuten geprüft, ob der Wert über dem Schwellwert liegt. Wenn ich aber als Bedingung habe, dass die letzten 5 Minuten der Wert über dem Schwellwert gelegen haben muß (Stichwort Hysterese), wie sollte die Automation dann aussehen?

Ich habe nun die Automation wiefolgt definiert:

  alias: Ac_meter above 500
  description: ''
  trigger:
  - platform: numeric_state
    entity_id: sensor.ac_meter_watts
    above: 500
    for:
      hours: 0
      minutes: 5
      seconds: 0
  condition: []
  action:
  - service: notify.notify
    data:
      message: Wert {{ states.sensor.ac_meter_watts }}
      title: Leistungswert erreicht
  mode: single

Wenn ich es richtig verstanden habe, müßte die obige Automation ausgelöst werden, wenn die Netzeinspeisung ( sensor.ac_meter_watts ) über einen Zeitraum von 5 Minuten über dem Schwellwert von 500 liegt. Muß sie dazu - wie sirector oben schrieb - davor unter dem Wert gelegen haben?

Nachtrag 1: habe gerade in der Doku nachgeschaut. Es ist wi sirector oben schrieb. “Crossing the threshold means that the trigger only fires if the state wasn’t previously within the threshold.”

Nachtrag 2: jetzt löst die Automation wie gewünscht aus. Muss nach jeder Änderung einer Automation das Betriebssystem neu gestartet werden?

1 „Gefällt mir“

Super :slight_smile: freut mich dass es geklappt hat.
Nach Anpassung von Automationen, muss HA nicht neugestartet werden.

Ja der Trick mit den Templates war schon prima. Da stochert man nicht so im Nebel herum.

1 „Gefällt mir“