Wo speichert der Gaszähler (Reed-Kontakt) seine Werte?

member1

Member
Ich habe meinen Gaszähler mit einem Reed-Kontakt nachgerüstet. Dieser gibt bei jedem Hunderstel Kubikmeter einen Impuls ab. Den Kontakt habe an einem ESP den ich mittels ESPHome Integration im HA hab. Mit folgendem Code befüttere ich den Zählerstand, sowie das Energy Dashboard:

YAML:
esphome:
  name: "esphome-gas-meter"

esp8266:
  board: d1_mini
  restore_from_flash: true

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  platform: esphome

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Web-...."
    password: "....."

captive_portal:

globals:
  - id: total_pulses
    type: int
    restore_value: true
    initial_value: '0'
   
  - id: imp_ratio
    type: float
    restore_value: false
    initial_value: '0.01'  # vom Gaszaehler

  - id: Zustandszahl
    type: float
    restore_value: false
    initial_value: '0.9037'  # aus der Gasrechnung

  - id: Brennwert
    type: float
    restore_value: false
    initial_value: '11.511'  # aus der Gasrechnung

  - id: initial_consumption
    type: float
    restore_value: false
    initial_value: '96651.90'  # Initialer Gaszählerstand inkl. 2 Nachkommastellen

  - id: initial_energy_consumption
    type: float
    restore_value: false
    initial_value: id(initial_consumption) * id(Brennwert) * id(Zustandszahl)

binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO5 # "D1"
      mode: INPUT_PULLUP
    name: gas-meter-impulse
    filters:
      - delayed_on: 100ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;

sensor:
  - platform: template
    name: "Gasverbrauch"
    device_class: gas
    update_interval : 10s   
    unit_of_measurement: "m³"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 2
    lambda: return id(initial_consumption) + (id(total_pulses) * id(imp_ratio));

  - platform: template
    name: 'Gasverbrauch Energy'
    device_class: energy
    update_interval : 10s   
    icon: 'mdi:fire'
    accuracy_decimals: 1
    unit_of_measurement: "kWh"
    lambda: return id(initial_energy_consumption) + (id(total_pulses) * id(imp_ratio));
   
  - platform: template
    name: 'Gasverbrauch Impulszähler'
    update_interval : 10s   
    icon: "mdi:counter"
    accuracy_decimals: 0
    unit_of_measurement: "pulses"
    lambda: return id(total_pulses);
   
  - platform: pulse_counter
    pin: D2
    name: "Pulse Counter"
    icon: "mdi:pulse"

Nun habe ich das Problem das ich den Initialwert anpassen wollte, aber anschließend immer falsche Verbrauchswerte angezeigt bekomme:
1725609151217.png

Ich vermute das der im ESP (Flash) gespeicherte Zähler hier alte Werte liefert?
Diese YAML ist ja für ESPHome, oder gilt die auch für HA? Liefert der ESPHome hier nicht einfach nur Sensorwerte per MQTT? Wo wirken die "globals"? Nur innerhalb es ESP oder sind die "geteilt" mit der HA-Instanz über eine API? Was bedeutet "restore_value" in den blöcken? Setze ich den vom "total_pulses" auf "false" dann bekomme ich die richtigen Werte, aber warum? und wie könnte ich den im Flash des ESP gespeicherten Sensors zurücksetzen?
 
Zuletzt bearbeitet:
YAML:
  - id: initial_consumption
    type: float
    restore_value: false
    initial_value: '96651.90'  # Initialer Gaszählerstand inkl. 2 Nachkommastellen
Da setzt du einen Wert und ’state_class: total_increasing’ zählt den immer schön dazu. Bei mir steht initial_value auf 0.
In Entwicklerwerkzeuge -> Statistik kann man Werte korrigieren.
 
Also Du meinst im Sensor-Template:

Code:
sensor:
  - platform: template
    name: "Gasverbrauch"
    device_class: gas
    update_interval : 10s   
    unit_of_measurement: "m³"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 2
    lambda: return id(initial_consumption) + (id(total_pulses) * id(imp_ratio));

Eine andere state_class? oder in der lambda die Addition von "id(initial_consumption)" rausnehmen und das irgendwo anders machen?
Wenn man Werte anpasst hat man immer auch sehr unschöne "Sprünge" in den Balkenanzeigen, die einem die ganze Sichbarkeit verhageln...
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
5.268
Beiträge
52.459
Mitglieder
5.019
Neuestes Mitglied
Jeff888
Zurück
Oben