Restore_value einbauen?

Hallo,
ich habe einen Wasserzähler mit Impulsausgang.
dieser wird mittels GPIO gezählt und an den Homeassistant übertragen. soweit so gut.
Leider wird der Wert aber genullt wenn der ESP neu startet.
Ich habe versucht, den restore_value einzubauen, weiß aber nicht wirklich wie.

esphome:
  name: wasserzaehler
  friendly_name: Wasserzaehler

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "XXX"
  services:
    - service: set_pulse_total
      variables:
        new_pulse_total: int
      then:
        - pulse_counter.set_total_pulses:
            id: pulse_counter_id
            value: !lambda 'return new_pulse_total;'

ota:
  password: "XXX"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Wasserzaehler Fallback Hotspot"
    password: "XXX"

captive_portal:

web_server:
  port: 80 


sensor:
  - platform: pulse_counter
    id: pulse_counter_id
    pin: 12
    unit_of_measurement: 'l/h'
    device_class: "water"
    state_class: "measurement"
    name: 'Wasserzaehler_Durchfluss'
    filters:
      - multiply: 60  # (60s/1000 pulses per kWh)

    total:
      unit_of_measurement: 'm³'
      device_class: "water"
      state_class: "total_increasing"
      accuracy_decimals: 3
      name: 'Wasserzaehler'
      filters:
        - multiply: 0.001 # (1/1000 pulses per m3)

Konntest du das Problem lösen?

Ich hab es jetzt mit einem einfachen Zähler gelöst, da der pulse-count nicht persistent ist.


esphome:
  name: wasserzaehler
  friendly_name: Wasserzaehler

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:

api:
  encryption:
    key: !secret api_encryption_key
  services:
    - service: set_pulse_total
      variables:
        new_pulse_total: int
      then:
        - lambda: |-
            id(total_pulses) = new_pulse_total;

ota:
  platform: esphome
  password: !secret ota_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Wasserzaehler Fallback Hotspot"
    password: !secret fallback_ap_password

captive_portal:

web_server:
  port: 80

globals:
  - id: total_pulses
    type: int
    restore_value: yes
    initial_value: '0'

sensor:
  - platform: template
    name: "Wasserzaehler"
    id: wasserzaehler_total
    unit_of_measurement: "m³"
    accuracy_decimals: 3
    device_class: water
    state_class: total_increasing
    lambda: |-
      return id(total_pulses) * 0.001;
    update_interval: 10s

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO13
      mode:
        input: true
        pullup: true
      inverted: true
    id: wasser_impuls
    name: "Wasserimpuls GPIO13"
    on_press:
      then:
        - lambda: |-
            id(total_pulses) += 1;

1 „Gefällt mir“