Gaszähler mit HA via MQTT auslesen - Ich brauche Tipps für meine letzten Hürden.

buzztee

New member
Hallo zusammen,

ich bin neu hier und hoffe hier mit Eurer Hilfe den Knoten in meinem HA zu lösen.

Aktuell habe ich vor, meinen Gaszähler in HA einzubinden. Dazu habe ich einen mit einem Reed-Kontakt bestückten ESP (NICHT per ESP-Home installiert) von einem Bekannten zur Verfügung gestellt bekommen. Dieser ESP erfasst die Impulse am Gaszähler im Keller und stellt Sie via WiFi dem MQTT-Broker in HA zur Verfügung. Die erkannten Impulse (1 Impuls = 0,01m3) werden als Count Topic in HA sichtbar.
2022-11-20 17_16_10-MQTT Explorer.png

Ich habe dann in HA ein Helper vom Typ Counter ("Gaszaehler_helper") erzeugt und eine Automatisierung, die den Helper-Counter hochzählt, wenn als Trigger der MQTT-Count auf 1 erkannt wird (sprich: die Rolle am Gaszähler eine Runde gedreht hat)
2022-11-20 17_19_30-Settings – Home Assistant — Mozilla Firefox.png

Das klappt auch alles wunderbar, allerdings habe ich zwei letzte und vermutlich eigentlich ganz einfache Wünsche, an denen ich aber partout nicht weiter komme.

  1. Der Counter zählt ja die Pulse hoch, ein Impuls soll dabei den Counter um 0,01 hochzählen, nicht um 1. Ich habe Anleitungen hierzu im Internet gefunden, wie ich mit Templates die Umrechnung machen kann, bekomme es aber nicht hin. Kurz: Die Umrechnung der Dezimalstellen funktioniert noch nciht.
  2. Ich möchte außerdem im idealfall den Basiswert des Counter identisch zum eigentlichen Gaszähler im Keller halten - ich vermute, dass ich einmalig den Counter_helper von Hand setzen muss. Leider scheint das mit "Set State" in den Develper Tools keinen Bestand zu haben, denn sobald wieder ein Count dazu kommt wird der vorrige falsche Wert des Helpers angezeigt.
2022-11-20 17_14_32.png

Wer hat hier Tipps für mich die mir helfen, den Knoten in meinem Kopf zu lösen?
 
Einfachster weg, der beide deiner Probleme löst:
Benutzt nicht den Counter, sondern bei den Helfern "Nummer". Den stellst du auf Schrittgröße 0.01 und nicht auf Schieberegler, sondern auf Eingabe.
Dann gibst du erstmal deinen entsprechenden Zählerstand ein (Problem 2 gelöst). In deiner Automation kannst du den Helfer mit dem Dienst input_number.increment (Numerische Eingabe: Increment) erhöhen um jeweils einen Schritt, also 0.01 (Problem 1 gelöst)
 
Hey, Super danke - das hat soweit geklappt, es kann so einfach sein.... Die Anleitung war prima!
Die Zahl wird korrekt um 0,01 bei Eingang eines Pulses erhöht. Ich nehme an, dass man das Feld nicht rückwirkend "nicht änderbar" machen kann? Ich würde außerdem gerne weitere Werte für Tages-/Wochen/Monats/Jahresverbrauch hieraus generieren. Ich hatte mal ne Anleitung dazu, mal schauen ob ich die noch finde.
1669019059963.png
 
Du könntest dir in der configuration.yaml ähnlich wie ich es bei meinem Stromzähler gemacht habe einen Sensor erstellen
Täglich = daily
Wöchentlich = weekly
Monatlich = monthly
Jährlich = yearly

Hier im bsp. anhand meines aktuellem Stromverbrauch

YAML:
utility_meter:
  stromverbrauch_aktuell_daily:                             # IR Stromzähler aktuell
    source: sensor.stromnetz_mt681_aktuelle_last
    cycle: daily
  stromverbrauch_aktuell_weekly: 
    source: sensor.stromnetz_mt681_aktuelle_last
    cycle: weekly
  stromverbrauch_aktuell_monthly:
    source: sensor.stromnetz_mt681_aktuelle_last
    cycle: monthly
  stromverbrauch_aktuell_yearly:
    source: sensor.stromnetz_mt681_aktuelle_last
    cycle: yearly
 
Sorry, ich muss nochmal nachhaken. Erstmal danke für Deine Hilfe und Deine Geduld.
Den Utility Meter habe ich in den Helpern gefunden, aber ich muss dort einen Input Sensor verwenden, während mein Number Helper kein Sensor ist? Ist hier ein zwischenschritt noch nötig?
 
Ah, hatte ich nicht auf dem Schirm. Utility Meter braucht sensor.xxx

Dann musst noch sowas hier anlegen:
Code:
template:
  - sensor:
      - name: "Verbrauch"
        state: "{{ states('input_number.XXXX')}}"
        unit_of_measurement: "m³"
        state_class: total
        device_class: energy

Selbes Spielchen, XXXX wieder einfügen, Config prüfen, Neustarten. Danach solltest du die Utility Meters anlegen können
 
Danke für Deine Hinweise - ich habe rumprobiert, umkonfiguriert und was weiss ich nicht alles - aber am Ende bin ich jetzt am Ende da, wo ich sein wollte: Gas und Strom sind im Energy-Dashbaord mit plausiblen Daten.
Jetzt heißt es noch:
- Aufräumen (Durchs Testen habe ich viel zu viele Helper, Sensoren, Entitys die nciht benötigt werden
- Wasserzähler einbinden...
Nochmal vielen Dank für Deine Geduld @IvoryBalboa90 und auch Danke an @alexamend
 
Wenn du die Werte nur optisch brauchst, ist da auch die mini-graph-card (HACS) ganz hilfreich.
Gasverbrauch.png
Die Schnipsel kann man z.B. in die Grid oder Stack Karten kopieren
YAML:
# die letzten 6 Stunden in 10min Blöcken        
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.esp_waschhaus_gas_durchfluss
            name: Rhytmus 6h/10min
            show:
              graph: bar
              icon: true
              name: true
              state: true
            hour24: true
            aggregate_func: sum
            group_by: interval
            hours_to_show: 6
            points_per_hour: 6
            card_mod:
              style: |
                rect.bar:last-of-type {
                   fill: red;
                }
                rect.bar:nth-of-type(6n) {
                   fill: yellow;
                }
               
# der letzte Tag in 24 Stunden              
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.gas_d
            name: Gasverbrauch d/h
            show:
              graph: bar
            hours_to_show: 24
            points_per_hour: 1
            aggregate_func: delta
            group_by: hour
            hour24: true
            card_mod:
              style: |
                rect.bar:last-of-type {
                   fill: red;
                }
               
# die letzte Woche in Tagen  
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.gas_m
            name: Gas 7 Tage
            show:
              graph: bar
            hours_to_show: 168
            hour24: true
            aggregate_func: delta
            group_by: date
            card_mod:
              style: |
                rect.bar:last-of-type {
                   fill: red;
                }
 
Zuletzt bearbeitet:
Moin,

bin gerade dabei, mich in HA einzufinden, komme von Domoticz, kompletter Newby, und zu blöd, die entsprechenden Anleitungen zu ergoogeln.

Ich setze per MQTT den Puls meines Gaszählers ab, hab nen Helfer definiert und eine Aktion, die pro Puls den Helfer um 0,01 m³ erhöht. Schön zu sehen, funktioniert. Aber wie bekomme ich diese Werte jetzt in den Energiezähler anzeigbar?

Iwie muß ich da wohl iwo ein Template anlegen? Aber wo und wie?

HA Version 2024.2.2
[edit]
hat sich erledigt. Hätte mir mal bloß jemand vorher gesagt, daß der "Schnellstart" des HA in diesem Fall nicht ausreicht...
Sollte jmd. ein ähnliches Problem haben wie ich, in der configuration.yaml sieht es bei mir so aus:
Code:
template:
  - sensor:
      - name: "Gasverbrauch"
        unique_id: "Gas_zaehler"
        unit_of_measurement: 'm³'
        state: '{{ states.input_number.gaszaehler_helfer.state | round(1, default=18) + 2025.2 }}'
        device_class: gas
        state_class: total_increasing

[/edit]
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.379
Beiträge
45.231
Mitglieder
3.982
Neuestes Mitglied
ThomasW
Zurück
Oben