Hilfe Template Sensor - Falsche Werte ausschließen - Wie?

(Leider kann ich meinen Beitrag von gestern nicht mehr ändern, daher hier neu)

Mein Tasmota Smartmeter Lesekopf liefert seit ein paar Tagen falsche Werte, die ich gerne “herausfiltern” würde. Woran das liegt, muss ich noch herausfinden.
Die Drehung des Kopfes um einen halben Millimeter hat nichts gebracht.

Aktuell sieht der Sensor wie folgt aus:

  # Stromzähler Haupt Verbrauch
      - name: "Stromzähler Haupt Verbrauch"
        unique_id: "stromzhauptverbrauch"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >
          {% if states('sensor.tasmota_e320_total_in') | float <= 0 -%}
          {{states('sensor.Stromzahler_haupt_verbrauch')}}
          {% else %}
          {% if states('sensor.tasmota_e320_total_in') | float > 99999 -%}
          {{states('sensor.Stromzahler_haupt_verbrauch')}}
          {% else %}
          {{states('sensor.tasmota_e320_total_in') | float}}
          {% endif %}
          {% endif %}

Leider bringt das nicht das gewünschte Ergebnis.

Wie würde der Code aussehen bei folgenden Bedingungen?

  • Nur Werte übernehmen, die zwischen 1800 und 50000 liegen
  • Kein Ersatzwert wie z.B. “0” wenn Bedingung nicht erfüllt ist

Hier das logfile:

Nachtrag:

Ich probiere es mal hiermit:

          {% set value = states('sensor.tasmota_e320_total_in') | float %}
          {% if 1800 <= value <= 50000 %}
            {{ value }}       
          {% endif %}

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

Warum denn das?
Du hättest doch einfach auf Deinen gestrigen Beitrag antworten können. :wink:

1 „Gefällt mir“

Hallo zusammen!

Leider liefert der Tasmota IR-Lesekopf gelegentlich immer noch weiter falsche Werte.

Die hier vorgeschlagene Lösung konnte viele “Fehlwerte” ausschließen, leider nur nicht alle, wie ich heute feststellte:

Wie kann der Code dahingehend geändert werden, dass nur der gleiche (letzte korrekte), oder ein höherer Wert genommen wird?

  # Stromzähler Haupt Verbrauch
      - name: "Stromzähler Haupt Verbrauch"
        unique_id: "stromzhauptverbrauch"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >
          {% set value = states('sensor.tasmota_e320_total_in') | float %}
          {% if 1800 <= value <= 99999 %}
            {{ value }}       
          {% endif %}

Leider habe ich immer noch das Problem mit den falschen Werten, die für ebenfalls
für zu hohe Werte in den Verbrauchszähler sorgen.

Im Energydashboard hat das keinerlei Auswirkungen. Hier wird der Verbrauch
korrekt angezeigt:

VZ3

Hier der Ausreißer nach unten:
VZ2

Hier das Resultat im Verbrauchszähler:
VZ1

VZ4

Hat jemand eine Idee, wie man das Lösen könnte?