ESPhome Gaszähler Zählerstand

Hallo Community,
ich habe seit Monaten den Gaszähler mittels eines Reedkontaktes an einem WEMOS D1 Mini mit ESPhome angeschlossen.
Die Verbindung zu HA erfolgt über WLAN und funktioniert sehr gut.
Das Problem ist, dass, wenn ich den D1 neu flashe (updates, etc.) er von vorne (entweder bei 0 oder vom eingestellten Wert aus) anfängt zu zählen.
Da die ESP82xx kein SRAM haben (im Gegensatz zu den ESP32-Modellen), will ich den Zählerstand nicht auf dem D1 abspeichern.
Meine aktuell einzige Idee wäre es, den Wemos jede Nacht um 0:00 Uhr zu booten. Dann hätte ich tagesaktuelle Daten und bei nem Flash verliere ich nicht zu viel.
Hat einer eine andere, vielleicht sinnvollere Lösung für das Problem?

Danke Roland

Hallo,
schade das keiner hierzu eine Idee hat, ich habe nämlich das gleiche Problem: Auch ich betreibe einen WEMOS als Gaszähler über ESPhome und nach jedem Update fängt der WEMOS wieder am “alten” Startwert an. Z.Zt. lese ich den aktuellen Wert vor dem Update aus, führe das Update durch und ändere nach dem Update den Startwert. Geht alles, ist aber umständlich.

Mein Vorredner schrieb, das man mit einem ESP32 (und dem SRAM) das Problem lösen könnte. Hat das schon mal jemand gemacht und hat einen Code-Schnipsel für mich? Ein Umstieg auf einen ESP32 wäre kein großes Problem und für den WEMOS findet sich schon eine neue Aufgabe.

Ich habe schon darüber nachgedacht ob es nicht die Möglichkeit gibt, den Wert im HA zu speichern und der Gaszähler sendet nur den Impuls und nicht den Zählerstand. Der Zählerstand müsste dann im HA berechnet werden. Sollte aber auch irgendwie zu machen sein.

Mein jetziger Code sieht so aus:

globals:
  - id: total_pulses
    type: int
    restore_value: false
    initial_value: '1037710' # mit diesem Wert startet der Gaszählerstand

binary_sensor:
  - platform: status
    name: "Gaszähler"
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
    name: "Live-Impuls"
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;

sensor: 
  # Uptime sensor.
  - platform: uptime
    name: Uptime
  # WiFi Signal sensor.
  - platform: wifi_signal
    name: WiFi Signal
    update_interval: 60s
  # Zählerstand
  - platform: template
    name: "hwr-gasverbrauch"
    device_class: gas
    unit_of_measurement: "m³"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 2
    lambda: |-
        return id(total_pulses) * 0.01;

Richte Dir am Besten einen Verbrauchszähler als Helfer an.
Als Eingangssensor verwendest Du dann den Sensor hwr-gasverbrauch, der bereits angelegt ist.
Wenn der Zähler 1:1 den Gaszählerstand wiedergeben soll, muss Kein Zyklus ausgewählt werden.
Desweiteren sollte die Option Regelmässige Rückstellung aktiviert sein.

Anschließend geht man in die Entwicklerwerkzeuge unter Aktion und wählt Verbrauchszähler: Kalibrieren und als Entität den gerade erstellten Verbrauchszähler aus, sowie bei Wert den aktuell abgelesenen Gaszählerstand:


Wichtig für den Wert ist ein Punkt als Trennzeichen (z.B. 3183.13) und kein Komma, ansonsten wird die Eingabe nicht akzeptiert, wenn man mit Aktion ausführen die Daten übermittelt.

Jetzt sollte es eigentlich egal sein, wenn das Update des ESP den Sensor hwr-gasverbrauch wieder zurücksetzt, denn der Verbrauchszähler zählt trotzdem weiter.

1 „Gefällt mir“

@Thalion
Vielen Dank mit dem Tipp und der super Anleitung. Habe alles umgesetzt und jetzt warten wir mal auf das nächste Update. Bin sehr gespannt.

Hier der Helfer:

Dann die Kalibrierung:

Und hier das Dashboard (mit beiden Werten):
image

Jetzt muss nur noch ein neues Update kommen. Das letzte war erst heute morgen. Ich melde mich wieder, sobald ich updaten konnte.

Moin Gemeinde,
heute kam ein Update für den Gaszähler:
image

Ich habe mir vorher schnell die (alte) Anzeige gespeichert:
image

Dann habe ich das Update gefahren und voila die Anzeige stimmt jetzt (die mit dem Helfer), der alte Zählerstand wurde beibehalten :grin: :+1:

image

Ich danke euch für euere Hilfe.

1 „Gefällt mir“