Iq Gasguard per MQTT

Hallo zusammen,

ich habe mir von iQ gasGuard den smarten Gaszähler gekauft.
Alle anderen Lösung liefen nicht wie gewünscht.
Installation und Einrichtung war sehr einfach.

Die Software bringt auch einen MQTT Client mit um den gemessen zu übertragen.
Auf meiner home Assistant Umgebung läuft bereits der MQTT Broker und es sind bereits 48 Geräte eingebunden.

Jetzt möchte ich gerne die daten per MQTT an home assistant versenden und verarbeiten.
Die Daten kommen bereits an home assistant an.

Ich bin jetzt nur zu blöd die Daten zur verarbeiten.

Ich habe bereits die Template von der Seite zu nutzen und anzupassen.

MQTT Binary Sensor - Home Assistant (home-assistant.io)

Leider komme ich nach stunden nicht weiter.

Ich denke für auch ist das ein klacks

Die Daten kommen als Json an.

{
“chipid”: “128599352034132”,
“ggid”: “gasGuard00DEF574”,
“counter”: 25309.927,
“date”: “2023-03-19 14:58:32”,
“med”: 1.1,
“ts”: 1.6,
“ts_p”: 1.1,
“ms”: 2.7,
“ms_p”: 0,
“js”: 2.7,
“js_p”: 0
}

Wie muss ich das Template in der configuration.yaml bauen damit das Gerät Anzeigt und die daten z.B. “counter” und “date” in HA anzeigen kann.

Sry für die Newbi frage.

Gruß Tilo

Hab damit leider keine Erfahrungen, aber vielleicht so in der Art? : How to template MQTT sensor JSON as entity + attributes - #13 by parabag - Configuration - Home Assistant Community

Bitte auch Code zukünftig als Code posten, sonst werden, wie man sieht Leerzeichen, Leerzeichen entfernt :point_down:

Hallo Simon,

wer ich so befolgen :slight_smile:

Aktuell habe ich es so gelöst

mqtt:
  sensor:
    name: "Gas_Zaehlerstand"
    state_topic: "gaszaehler"
    unique_id: "gaszaehler"
    #qos: 0
    unit_of_measurement: "m³"
    value_template: "{{ value_json.counter }}"
    state_class: "total_increasing"
    device_class: "energy"
    icon: "mdi:fire"

Somit bekomme ich den veränderten Zählerstand mit und man kann den ins Energie Dashboard Gas hinzufügen.

Werde es zukünftiger weiter ausbauen.
Auch werde ich den Hersteller anschreiben, mit der bitte mehr Daten per MQTT zusenden.
z.B. Prognosen, Kosten ca…

Hier noch das Produkt, falls es jemanden interessiert.

https://www.amazon.de/iQ-gasGuard-Impulsschnittstelle-Alarm-Funktion-Gasverbrauch/dp/B0BN8KBDWX/ref=sr_1_1_sspa?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=XXJKRWG31FQ4&keywords=gasz%C3%A4hler&qid=1679482940&sprefix=gaszaehle%2Caps%2C93&sr=8-1-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1

Danke euch!
Gruß Tilo

1 „Gefällt mir“

Hallo zusammen,

ich habe zwischenzeitlich auch erfolgreich den gasGuard Zählersensor in mein Homeassistant einbinden können. Meine Einträge in der “configuration.yaml” sehen folgendermaßen aus:

# Integration gasGuard Zählersensor  
mqtt:
  sensor:
    - name: "Gaszaehler_Zaehlerstand"
      state_topic: "Keller/Gaszaehler"
      unique_id: "Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.counter }}"
      state_class: "total_increasing"
      device_class: "gas"
    - name: "Gaszaehler_Tagesdurchschnitt"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.med }}"
    - name: "Gaszaehler_Verbrauch_Heute"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.ts }}"
    - name: "Gaszaehler_Verbrauch_Gestern"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.ts_p }}"
    - name: "Gaszaehler_Verbrauch_Monat"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.ms }}"
    - name: "Gaszaehler_Verbrauch_Vormonat"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.ms_p }}"
    - name: "Gaszaehler_Verbrauch_Jahr"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.js }}"
    - name: "Gaszaehler_Verbrauch_Vorjahr"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.js_p }}"
    - name: "Gaszaehler_Vertragsbeginn"
      state_topic: "Keller/Gaszaehler"
      value_template: "{{ value_json[0].datum_ab }}"
    - name: "Gaszaehler_Vertragssende"
      state_topic: "Keller/Gaszaehler"
      value_template: "{{ value_json[0].datum_bis }}"
    - name: "Gaszaehler_Preis_kWh"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "ct/kWh"
      value_template: "{{ value_json[0].pkwh }}"
    - name: "Gaszaehler_Brennwert"
      state_topic: "Keller/Gaszaehler"
      value_template: "{{ value_json[0].bw }}"
    - name: "Gaszaehler_Zustandszahl"
      state_topic: "Keller/Gaszaehler"
      value_template: "{{ value_json[0].zz }}"
    - name: "Gaszaehler_Grundgebuehr"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "€/Jahr"
      value_template: "{{ value_json[0].gg }}"
    - name: "Gaszaehler_Grundgebuehrtage"
      state_topic: "Keller/Gaszaehler"
      unit_of_measurement: "Tag(e)"
      value_template: "{{ value_json[0].gg_tage }}"

Alles funktioniert soweit perfekt und alle Sensor- und Vertragsdaten stehen mir in Homeassistant zur Verfügung. Allerdings kommt es wiederkehrend zu folgenden Log-Einträgen, je nachdem, ob der gasguard die Sensordaten (JSON-Format) sendet oder die Vertragsdaten (JSON-Array-Format)

Nachfolgende Fehlermeldungen treten auf, wenn gasGuard die “Verbrauchsdaten” im JSON-Format sendet, vermutlich da die Vertragsdaten nicht mitgesendet werden

> 2023-03-26 12:40:13.056 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: dict object has no element 0 when rendering '{{ value_json[0].datum_ab }}'
> 2023-03-26 12:40:13.124 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: dict object has no element 0 when rendering '{{ value_json[0].datum_bis }}'
> 2023-03-26 12:40:13.127 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: dict object has no element 0 when rendering '{{ value_json[0].pkwh }}'
> 2023-03-26 12:40:13.129 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: dict object has no element 0 when rendering '{{ value_json[0].bw }}'
> 2023-03-26 12:40:13.131 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: dict object has no element 0 when rendering '{{ value_json[0].zz }}'
> 2023-03-26 12:40:13.133 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: dict object has no element 0 when rendering '{{ value_json[0].gg }}'
> 2023-03-26 12:40:13.136 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: dict object has no element 0 when rendering '{{ value_json[0].gg_tage }}'

Diese Fehlermeldungen treten auf, wenn gasGuard die “Vertragsdaten” im JSON Array-Format sendet

2023-03-26 12:42:01.671 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'list object' has no attribute 'counter' when rendering '{{ value_json.counter }}'
2023-03-26 12:42:01.673 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'list object' has no attribute 'med' when rendering '{{ value_json.med }}'
2023-03-26 12:42:01.674 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'list object' has no attribute 'ts' when rendering '{{ value_json.ts }}'
2023-03-26 12:42:01.677 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'list object' has no attribute 'ts_p' when rendering '{{ value_json.ts_p }}'
2023-03-26 12:42:01.679 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'list object' has no attribute 'ms' when rendering '{{ value_json.ms }}'
2023-03-26 12:42:01.681 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'list object' has no attribute 'ms_p' when rendering '{{ value_json.ms_p }}'
2023-03-26 12:42:01.683 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'list object' has no attribute 'js' when rendering '{{ value_json.js }}'
2023-03-26 12:42:01.685 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'list object' has no attribute 'js_p' when rendering '{{ value_json.js_p }}'

Leider hab ich hierfür noch keine Lösung gefunden, hat jemand eine Idee?

Hallo,

ich habe ebenfalls einen gasGuard und habe mir deine Yaml mal geklaut.
Allerdings bekomme ich nur eine einzige Entität angezeigt und zwar die des Gasverbrauch.

Was habe ich denn vergessen einzustellen, damit ich die anderen Entitäten (Kosten etc.) auch bekomme?

Tatsächlich zeigt die Integration “MQTT” nur diese eine Entität an, wenn man darauf klickt, alle anderen werden herausgefiltert, wie ich Deinem Screenshot entnehmen kann.

Klicke stattdessen im oberen Feld auf “Entitäten” und beginne oben links in der Suche mit der Eingabe von “Gasz…”, dann sollten dir alle Entitäten angezeigt werden.

Moin an alle,
ich bin irgendwie zu “doof” das ans laufen zu kriegen. Ich habe auch keine Erfahrung mit MQTT, ich habe gerade mal 1 Gerät bis jetzt am laufen ( Linktap Wasserventil für den Garten ). Ich habe jetzt die login daten im gasguard eingetragen, es kommt auch kein MQTT error ( zuerst hat er gezeigt das MQTT nicht angemeldet ist - ich gehe also davon aus das die login daten korrekt sind. Dann gehe ich im homeassistant auf MQTT config und gebe das topic gasguard ein und klicke auf anhören von. Nix passiert…wo liegt denn mein fehler ?? Danke vorab !

Kai


NACHTRAG
wenn ich auf MQTT senden klicke kommen daten an. wird hier keine Entität erstellt ? Muss ich das per Hand tun in der yaml ? Werden die werte nicht automatisch übermittelt an mqtt ?

… steht ja alles da sorry

Nachtrag :

Verständnissfrage :
Wenn ich deinen yaml code kopiere, woher weiß das system das er die werte die er über mqtt bekommt diesen sensoren zuordnen soll - ist das dass Feld “state topic” ? Und, wenn ich auf zuhören klicke dann kommen die daten rein, das Feld springt aber wieder zurück und ich muss erneut zuhören anklicken ?

Nachtrag2:
@Bugi
Hi - klappt das bei Dir alles ? Wie kriegst Du die anderen Entitäten mit Daten gefüttert ?

:crayon:by HarryP: Zusammenführung Doppelpost.

Hallo zusammen,

Dank dieser Anleitung und dem Code konnte ich meinen GasGuard relativ zügig aufsetzen. Nun würde ich allerdings gerne meinen Gasbezug in kWh umrechnen. Die Daten Zustandszahl, Brennwert und Zählerstand bekommen ich auch übermittelt, aber die Kalkulation klappt nicht.

Emfpangen tue ich das Topic GasGuard/#, so dass ich auch die Untertopics Vertrag bekomme. Die Multiplikation von Zustandszahl (zz) und Brennwert (bw) klappt, auch der Zählerstand in m^3 wird angezeigt, aber wenn ich die Werte in Kombi multiplizieren will klappt es nicht. Hat jemand eine Idee?

Danke im Vorraus.

Viele Grüße
Markus

Hi, gibt es zu diesem Thread inzwischen einen ‘roten Faden’ oder ein ‘HowTo’, um die aufgezeigten letzten Fragen beantwortet zu erhalten?
Stehe aktuell vor dem gleichen (unfertigen) Status wie @Kaihawaii :face_with_raised_eyebrow:

Allen fröhliche Weihnachten :wave:

Hallo zusammen,

ich passe in den nächsten Tagen meine Config an und erstelle mal eine Anleitung dazu.
:slight_smile:

1 „Gefällt mir“

Hallo, prima das wäre sehr gut. Vielen Dank schon mal im Voraus

Hallo Tilo, vielen Dank. Freue mich schon darauf :slight_smile:

Hallo zusammen,

Ich würde zuerst den MQTT Broker als Integration aufsetzen (core-mosquitto).

Dann im GasGuard wie folgt konfigurieren.

Zum Schluss dann in die configuration.yaml folgendes

mqtt:

  # Integration gasGuard Zählersensor  
  # nicht definierte Werte sind "cm", "vms", "vms_p", "vjs" & "vjs_p"
  sensor:
    - name: "Gaszaehler_Zaehlerstand"
      state_topic: "GasGuard"
      unique_id: "Gaszaehler"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.counter }}"
      state_class: "total_increasing"
      device_class: "gas"
    - name: "Gaszaehler_Tagesdurchschnitt"
      state_topic: "GasGuard"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.med }}"
    - name: "Gaszaehler_Verbrauch_Heute"
      state_topic: "GasGuard"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.ts }}"
    - name: "Gaszaehler_Verbrauch_Gestern"
      state_topic: "GasGuard"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.ts_p }}"
    - name: "Gaszaehler_Verbrauch_Monat"
      state_topic: "GasGuard"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.ms }}"
    - name: "Gaszaehler_Verbrauch_Vormonat"
      state_topic: "GasGuard"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.ms_p }}"
    - name: "Gaszaehler_Verbrauch_Jahr"
      state_topic: "GasGuard"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.js }}"
    - name: "Gaszaehler_Verbrauch_Vorjahr"
      state_topic: "GasGuard"
      unit_of_measurement: "m³"
      value_template: "{{ value_json.js_p }}"
    - name: "Gaszaehler_Vertragsbeginn"
      state_topic: "GasGuard"
      value_template: "{{ value_json.vd_von }}"
    - name: "Gaszaehler_Vertragssende"
      state_topic: "GasGuard"
      value_template: "{{ value_json.vd_bis }}"
    - name: "Gaszaehler_Preis_kWh"
      state_topic: "GasGuard"
      unit_of_measurement: "ct/kWh"
      value_template: "{{ value_json.pkwh }}"
    - name: "Gaszaehler_Brennwert"
      state_topic: "GasGuard"
      value_template: "{{ value_json.bw }}"
    - name: "Gaszaehler_Zustandszahl"
      state_topic: "GasGuard"
      value_template: "{{ value_json.zz }}"
    - name: "Gaszaehler_Grundgebuehr"
      state_topic: "GasGuard"
      unit_of_measurement: "€/Jahr"
      value_template: "{{ value_json.gg }}"
    - name: "Gaszaehler_Grundgebuehrtage"
      state_topic: "GasGuard"
      unit_of_measurement: "Tag(e)"
      value_template: "{{ value_json.gg_tage }}"


    #Kalkulierte GasGuard Werte
    - name: "Gaszaehler_Zaehlerstand_in_kWh"
      state_topic: "GasGuard/#"
      unit_of_measurement: "kWh"
      value_template: "{{ value_json.counter * value_json.bw * value_json.zz }}"
    - name: "Gaszaehler_Verbrauch_Jahr_in_kWh"
      state_topic: "GasGuard/#"
      unit_of_measurement: "kWh"
      value_template: "{{ value_json.js * value_json.bw * value_json.zz }}"

Nach dem Reload dauert es ein wenig bis die Werte verfügbar sind. Grundsätzlich machen Berechnungen Fehler wenn die Werte noch auf unknown stehen.

1 „Gefällt mir“

Hallo zusammen,

ich habe die Vorlage von @Markus_HL auch gerne genutzt.
Zunächst habe ich mich gewundert, warum in meiner MQTT-Integration keine Werte angekommen sind.
Beim „Suchen“ in meiner Installation habe ich die dann aber gefunden. In der Integration werden nur die Werte angezeigt, bei denen noch das Attribut

unique_id: „WasimmweDuwillst“

gesetzt wird.

mit was immer Du willst wäre ich vorsichtig! Bzw. ist einfach FALSCH!
Bei der Uniqe ID handelt es isch um eine einzigartige ID, die kein zweites mal vorkommen darf. Es ist der eindeutige Zeiger auf die Entity.
Wird sie ein zweites mal verwendet, wird der Sensor einfach ignoriert und nicht erstellt.

Das kann man mit der Verwendung eines Unique ID Generator erreichen.
Online UUID Generator Oder wer den besten Code Editor den es in Zusammenhang mit Home Assistant gibt verwenden tut. :wink:
Studio Code Server, hier gibt es den Unique ID Generator als Erweiterung.

Gruß
Osorkon