Hitchi ESP32 Stromzähler Dashboard Neustart

So… hab es mal versucht… geht sogar alles… ein Problem hatte ich aber nicht bedacht und noch nicht verstanden…

Kopf bestellt, Script gesucht, gebaut und läuft auf einem:
eBZ DD3 2R06 DTA SMZ1

In HomeAssistant herein geschoben, Werte gewandelt… alles TOP!

image

zu

image

Alles fein… aber dann startet das Dingen neu oder ich irgendwas dann:

image
oder

Code dazu zb.:


name: "Strom-EG-Bezug"
        unique_id: "Strom-EG-Bezug"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
          {{ float(states('sensor.bitshake_smartmeterreader_sml_1_8_0')) | round(3) }}

Hat jemand den Befehl um das zu verhindern?
Vielleicht auch noch wie ich meine Zähler wieder geheilt bekomme???

Würde der gehen?

{% if states('sensor.bitshake_smartmeterreader_sml_1_8_0') | float == 0 %}
           {{ states('sensor.strom_eg_bezug') }}
          {% else %}
           {{ states('sensor.bitshake_smartmeterreader_sml_1_8_0') | round(4) }}
          {% endif %}

Falls es einer brauchen kann…

>D
>B
;TelePeriod 10
=>sensor53 r
>M 1
; Device: eBZ DD3 2R06 DTA SMZ1
; protocol is D0 SML HEX
; 9600@7E1 for OD-type devices, 9600@8N1 for SM-type devices
+1,5,s,0,9600,SML
; Zählerstand zu +A, tariflos, 
; Auflösung 10 µW*h (6 Vorkomma- und 8 Nachkommastellen)
1,77070100010800FF@100000000,Energie Bezug,kWh,1_8_0,8
; Zählerstand zu -A, tariflos
; Auflösung 10 µW*h (6 Vorkomma- und 8 Nachkommastellen)
1,77070100020800FF@100000000,Einspeisung,kWh,2_8_0,8
; Summe der Momentan-Leistungen in allen Phasen, Auflösung 0,01W (5 Vorkomma- und 2 Nachkommastellen)
1,77070100100700FF@1,Leistung,W,16_7_0,18
; Momentane Leistung in Phase Lx, Auflösung 0,01W (5 Vorkomma- und 2 Nachkommastellen)
1,77070100240700FF@1,Leistung L1,W,36_7_0,18
1,77070100380700FF@1,Leistung L2,W,56_7_0,18
1,770701004C0700FF@1,Leistung L3,W,76_7_0,18
; Spannung in Phase Lx, Auflösung 0,1V (nur über MSB)
1,77070100200700FF@1,Spannung L1,V,32_7_0,1
1,77070100340700FF@1,Spannung L2,V,52_7_0,1
1,77070100480700FF@1,Spannung L3,V,72_7_0,1
; Statuswort, 4 Byte Information über den Betriebszustand, HEX string
; tasmota can decode one string per device only!
;1,1-0:96.5.0*255@#),Status1,,96_5_0,0
;1,1-0:96.8.0*255@#),Status2,,96_8_0,0
; Hersteller-Identifikation, Hersteller-Kennung und Typ mit Software Version
1,77078181C78203FF@#),Herstellerkennung,,Typ,0
; Eigentumsnummer nach Kundenwunsch, sonst nach DIN 43863-5
1,77070100000000FF@#),Eigentumsnummer,,0_0_0,0
; Geräte-Identifikation, Nach DIN 43863-5 
1,77070100000009FF@#),Identifikation,,96_1_0,0
#

Hallo Marcvons,
Ich hatte ein ähnliches Problem. Es werden zeitweise extrem hohe Werte übermittelt und das verhagelt dir dann deine Statistik.
Habe im Internet dann eine Lösung gefunden:

# Wertebereiche und Sensornamen entsprechend anpassen. Sensorwerte werden nur zugelassen, wenn diese der IF-Bedingung entsprechen. Ansonsten wird der aktuelle Wert des Template Sensors beibehalten.
#https://technikauswahl.de/2023/01/stromzaehler-mit-ir-lesekopf-tasmota-und-home-assistant-auslesen/

    - name: "SmartMeter Leistung"
      unique_id: "smartmeter_power_filtered"
      device_class: energy
      unit_of_measurement: "W"
      state_class: measurement
      state: >-
        {%- if states('sensor.stromzaehler_lk13be_power_curr')|float(0) >= -600 and states('sensor.stromzaehler_lk13be_power_curr')|float(0) <= 30000 and states('sensor.stromzaehler_lk13be_power_curr')|float(0) != 0 -%}
        {{(states('sensor.stromzaehler_lk13be_power_curr'))}}
        {%- else -%}
        {{(states('sensor.smartmeter_leistung'))}}
        {%- endif -%}

    - name: "SmartMeter Verbrauch"
      unique_id: "smartmeter_verbrauch_filtered"
      device_class: energy
      unit_of_measurement: "kWh"
      state_class: total_increasing
      state: >-
        {%- if states.sensor.stromzaehler_lk13be_power_total_in.state|float(0) >= states.sensor.smartmeter_verbrauch.state|float(0) and states.sensor.stromzaehler_lk13be_power_total_in.state|float(0) <= states.sensor.smartmeter_verbrauch.state|float(0) + 1 and states.sensor.stromzaehler_lk13be_power_total_in.state|float(0) < 10000 and states.sensor.stromzaehler_lk13be_power_total_in.state|float(0) != 0 or states('sensor.smartmeter_verbrauch') in ['unavailable', 'unknown', 'none'] -%}
        {{(states.sensor.stromzaehler_lk13be_power_total_in.state)}}
        {%- else -%}
        {{(states('sensor.smartmeter_verbrauch'))}}
        {%- endif -%}

    - name: "SmartMeter Einspeisung"
      unique_id: "smartmeter_einspeisung_filtered"
      device_class: energy
      unit_of_measurement: "kWh"
      state_class: total_increasing
      state: >-
        {%- if states.sensor.stromzaehler_lk13be_power_total_out.state|float(0) >= states.sensor.smartmeter_einspeisung.state|float(0) and states.sensor.stromzaehler_lk13be_power_total_out.state|float(0) <= states.sensor.smartmeter_einspeisung.state|float(0) + 1 and states.sensor.stromzaehler_lk13be_power_total_out.state|float(0) < 5000 and states.sensor.stromzaehler_lk13be_power_total_out.state|float(0) != 0 or states('sensor.smartmeter_einspeisung') in ['unavailable', 'unknown', 'none'] -%}
        {{(states.sensor.stromzaehler_lk13be_power_total_out.state)}}
        {%- else -%}
        {{(states('sensor.smartmeter_einspeisung'))}}
        {%- endif -%}

Es werden die Werte nur gespeichert, wenn die Bedingungen passen. Bei mir scheint das bisher gut zu funktionieren.
Hoffe das hilft dir weiter.

Hey super, werde es testen …