ESP32 Gaszähler komisches verhalten

olaf008

New member
Hallo,
ich habe ein komisches Verhalten mit meinem ESP32 (AZDelivery ESP32 NodeMCU Module WLAN WiFi Dev Kit C Development Board mit CP2102).

Ich zähle meinen Gasverbrauch mit Home Assistant und einem ESP32. Das funktioniert auch und läuft soweit. Die Impulse kommen von einem Reed-Schalter am Gaszähler, angeschlossen an GPIO21 und GND. Der Puls wird mit einer LED an GPIO23 und GND angezeigt. Aber auf einmal fängt die LED vollkommen unkontrolliert an zu blinken und zählt auch Pulse hoch im Home Assistant, obwohl der Gaszähler steht.
Huh


Das Verhalten ist zum zweiten Mal aufgetreten. Ich habe dann den ESP getauscht, und es ging wieder, aber das kann doch nicht die Lösung sein.
Der ESP hängt am Raspberry 4 wo auch Home Assistant drauf läuft .

Hier ist der Code vom ESP:

Gruß olaf

YAML:
captive_portal:
globals:
    - id: total_pulses
      type: int
      restore_value: false
      initial_value: '0'  # startet mit 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.9643'  # aus der Gasrechnung
    - id: Brennwert
      type: float
      restore_value: false
      initial_value: '10.276'  # aus der Gasrechnung
    - id: initial_consumption
      type: float
      restore_value: false
      initial_value: '0'  # hier kann der Gaszählerstand initialisiert werden (Faktor 1000 um einen genaueren Wert zu erzeugen)
    - id: initial_energy_consumption
      type: float
      restore_value: false
      initial_value: id(initial_consumption) * id(Brennwert) * id(Zustandszahl) / 1000.0
    - id: gas_price
      type: float
      restore_value: false
      initial_value: '0.0992'  # Gaspreis in Euro pro kWh

binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO21   # Pin, an dem der Reed-Kontakt hängt
      mode: INPUT_PULLUP
    name: "Live-Impuls"
    filters:
      - delayed_on: 100ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;
        - output.turn_off: led  # optional: für eine LED, die den Gaszählerpuls visualisiert
    on_release:
      then:
        - output.turn_on: led  # optional: für eine LED, die den Gaszählerpuls visualisiert

## Optional: Diese LED soll blinken, sobald ein Signal vom Gaszähler erkannt wird
output:
  - platform: gpio
    pin: GPIO23
    id: 'led'

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)/1000.0) + (id(total_pulses) * id(imp_ratio));

  - platform: template
    name: 'Gasverbrauch Energy'
    device_class: energy
    state_class: total_increasing
    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) * id(Brennwert) * id(Zustandszahl));

  - platform: template
    name: 'Pulse Counter total'
    update_interval : 10s
    icon: "mdi:counter"
    accuracy_decimals: 0
    unit_of_measurement: "pulses"
    lambda: return id(total_pulses);

  - platform: template
    name: 'Gasverbrauch Kosten'
    update_interval: 10s
    icon: 'mdi:cash'
    unit_of_measurement: "€"
    accuracy_decimals: 2
    lambda: return (id(initial_energy_consumption) + (id(total_pulses) * id(imp_ratio) * id(Brennwert) * id(Zustandszahl))) * id(gas_price);

  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy # Reports the WiFi signal strength in %
    source_id: wifi_signal_db
    name: "WiFi Signal Percent"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "Signal %"
    entity_category: "diagnostic"
    device_class: ""
 
Zuletzt bearbeitet:
da fällt mir der Begriff entprellen ein. wenn bei meinem Gaszähler per Magnetfeld die Gasuhr blöd stehenbleibt, wackelt es hin und her statt stillzustehen. Reedzähler weiß ich nicht, der hat nie funktioniert.
 
nein ich habe den Reed-Schalter dan abgeklemmt und es hat weiter gezählt
als wenn es da was irgendwas abgeschossen hat

 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.668
Beiträge
63.969
Mitglieder
6.925
Neuestes Mitglied
Noobster
Zurück
Oben