ESP32 Zähler liefert nach Neustart (Firmware-Update) alte Werte

member1

Member
Hallo, ich habe div. ESP32 mit ESPHome in Home-Assistant eingebunden die als Ablesegerte dienen. Alle haben dasselbe Problem: nach einem Neustart (z.B. Stromausfall/FW-Update) liefern sie alte Werte und bringen meine ganzen Statistiken durcheinander.

Wenn ich es richtig verstanden habe dann liefern die ESPs immer absolute Werte. Der Inkrement findet im ESP statt. Folglich müsste der ESP, ähnlich wie ein Tacho im Auto, sich den letzten geänderten Wert immer merken. Im Tacho verwendet man aufgrund der begrenzten Anzahl von Schreibzyklen auf EEPROM/Flashs dazu oft ein rollierendes Verfahren in dem nicht immer dieselbe Speicherstelle genutzt wird, aber das wäre erstmal nur ein Detail. Wenn so ein ESP32 nach ein paar Jahren auszutauschen wäre, wäre das auch kein Beinbruch.

Hier mein ESPHome YAML vom Stromzähler-Sensor, vielleicht hat ja jemand einen Verbesserungsvorschlag für mich?

YAML:
esphome:
  name: "esphome-power-meter"
esp8266:
  board: d1_mini
  #restore_from_flash: true
# Enable logging
logger:
api:
ota:
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
captive_portal:
globals:
  - id: pulse_counter_power
    type: float
    initial_value: 63443.5 * 75 # Strom Zählerstand (ganzzahlig) * 75
switch:
  - platform: gpio
    id: power_meter_led
    name: power-meter-led
    pin:
      number: 2
      mode: output
      inverted: true
binary_sensor:
  - platform: gpio
    id: energy_meter_counter
    pin:
      number: GPIO5 # "D1"
      mode: INPUT_PULLUP
      inverted: true
    name: power-meter-impulse
    filters:
      - delayed_on: 50ms
    on_press:
      then:
        - lambda: id(pulse_counter_power) += 1;
        - switch.turn_on: power_meter_led
    on_release:
      then:
        - switch.turn_off: power_meter_led
sensor:
  - platform: template
    name: "Stromverbrauch"
    device_class: energy
    unit_of_measurement: "kWh"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 1
    lambda: |-
      return id(pulse_counter_power) / 75;
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.632
Beiträge
47.408
Mitglieder
4.283
Neuestes Mitglied
knolte
Zurück
Oben