Guten Morgen zusammen,
Habe gestern mit einem esp und einem Hall Sensor das auslesen des Gaszählers realisiert.
Er liefert Impulse und der absolute Verbrauch wird auch angezeigt.
Ich habe gestern auch einen Helfer als Tageszähler eingerichtet, doch der bleibt bei 0 stehen.
Wir haben gestern nur gekocht und WW bereitet. Es war nicht viel, aber nicht 0.
Was mich auch wundert, ist das der Verbrauchszähler in m3 und kWh auf der Zeitleiste ansteigt und dann wieder abfällt.
Oder interpretiere ich das falsch und es ist der “momentane Durchfluss”?
Habt ihr Ideen?
Danke Thomas
Hier die Code aus der ESP.
globals:
#counter für die impulse des Gaszählers
- id: total_pulses
type: int
restore_value: false
initial_value: '0'
# vom Gaszaehler der Faktor pro Impuls; bei mir 1 imp = 0,01m³ Also wieviel m³ pro Impuls berechnet werden soll
- id: impuls_ratio
type: float
restore_value: false
initial_value: '0.01'
binary_sensor:
# Sensor zählt, ob der Reed Kontakt ein Klick erkannt hat.
- platform: gpio
id: internal_pulse_counter
pin:
number: GPIO32
mode: INPUT
name: "Gaszaehler_Impuls"
filters:
- delayed_on: 100ms # Verringerte Verzögerung
- delayed_off: 100ms # Zusätzliche Ausschaltverzögerung
on_press:
then:
- lambda: id(total_pulses) += 1;
# schaut, ob der ESP32 online ist
- platform: status
name: "Gaszähler Status"
sensor:
# zählt alle Impulse hoch und rechnet diese um in m³
- platform: template
name: "Gasverbrauch-m3"
device_class: gas
unit_of_measurement: "m³"
state_class: "total_increasing"
icon: "mdi:fire"
accuracy_decimals: 2
lambda: |-
return id(total_pulses) * id(impuls_ratio);
ESP_LOGD("Gaszähler m³ TAG", "Pulse bisher: %d", id(total_pulses));
# zählt alle Impulse hoch, umrechnung in kWh (mal 10)
- platform: template
name: "Gasverbrauch-kWh"
device_class: gas
unit_of_measurement: "kWh"
state_class: "total_increasing"
icon: "mdi:fire"
accuracy_decimals: 2
lambda: |-
return id(total_pulses) * id(impuls_ratio) * 10;
ESP_LOGD("Gaszähler kWh TAG", "Pulse bisher: %d", id(total_pulses));
- platform: template
name: "Gaszaehler Raw Impulse"
unit_of_measurement: "Impulse"
icon: "mdi:pulse"
accuracy_decimals: 0
update_interval: 10s
lambda: |-
return id(total_pulses);
