Skip to content

ELV Gaszähler Integration in Home Assistant

Neulich konnte ich endlich in Zusammenarbeit mit einem Kollegen vom IOT Shop im Photovoltaik Forum meinen KLAX2.0 Optokoppler in Betrieb nehmen. Das Teil misst den Stromverbrauch am Stromzähler und überträgt seine Daten via LoRaWAN, von wo aus man sie mit einem TTN Mapper abgreifen und auswerten kann. Der zweite Energieträger bei uns ist Gas, was liegt also näher, als auch die Daten des Gaszählers abzugreifen und auszuwerten? Nun gibt es ja verschieden Methoden, die mit unterschiedlichem Bastelaufwand ebensolche Ergebnisse präsentieren. Auch beim Gas ist es so, daß eine Auswertung per WLAN wegen der Entfernung zum Zahler nicht in Frage kam. Auch ist wie beim Stromzähler selbst keine Stromversorgung vorhanden, was die Auswahl auch hier ziemlich eindampft. Ich hatte mich dann letztlich für den vergleichsweise günstigen LoRaWAN® Energiezähler-Sensorschnittstelle, C sowie den ES-GAS-2 Sensor entschieden, welche dann auch kurze Zeit später geliefert wurden. Der Zusammenbau wie auch die Montage gestalteten sich einfach, am Gaszähler muß nichts verändert werden, passende Adapter werden mitgeliefert. Für die Stromversorgung habe ich mir bei einen Battery Expansion Shield 18650 V3 besorgt, dafür ein Gehäuse gedruckt und zusammen mit einer 18650 Zelle an den ELV Zähler gesteckt. Das ist nun schon einige Tage her, der Stromverbrauch gestaltet sich recht zivil, man kann natürlich auch größere Akkupacks verwenden, sollte jedoch darauf achten, daß sich diese nicht abschalten, während der Zähler im Tiefschlaf ist, da sonst die Datenübertragung unterbrochen ist.

Für die Anleitung setze ich folgendes voraus:

  • Ein LoRaWAN Gateway ist vorhanden und eingebunden.

  • Es wird The Things Network (TTN) genutzt.

  • Homeassistant ist installiert und das Add-on Mosquitto broker ist hinzugefügt und aktiviert. Dieses Add-on muss wie folgt konfiguriert sein:
Der Screenshot zeigt die notwendigen Ergänzungen in der Konfiguration des mosquitto Plugins: Require Client Certificate auf "ono" und unter "customize" folgendes eingeben:"active:true" , "folder: mosquitto", require_certificate: false
Hier nun die Konfiguration im ttn Stack, als erstes eine Applikation anlegen, dann unter "Integrations" einen API Key sowie Username erstellen, abfragen und kopieren.

Der Screenshot zeigt die entsprechende Einrichtung der Einträge bei den "applications"
Bitte den API Key speichern und ebenfalls die anderen Informationen. Sie werden noch gebraucht. Der ELV-LW-ESI ist zu einer TTN Applikation hinzugefügt. Dazu den "Device Repository Formatter", den ELV zur Verfügung stellt nutzen:

der Screenshot zeigt die Auswahl des "Formatter Type": "Use Device Repository formatters" bei den Payload Formatters / Uplink
Für die nächsten Schritte, in denen unter anderem auf die Dateistruktur von Home Assistant zugegriffen werden muss nehme ich einfach das Add-on "File Editor", das einfach nachinstalliert werden kann. Wichtig für die folgenden Schritte: Änderungen in der Konfiguration vom "File Editor":

Der Screenshot zeigt die notwendigen Einstellungen in der Konfiguration des Editor Plugins.
Nun die Zertifikate von TTN in Homeassistant hinterlegen. Dazu laden wir die Zertifikatsdatei "minimal certificate list hier herunter: Root Certificates. Mit dem "File Editor" navigieren wir jetzt eine Ebene höher als /homeassistant und öffnen dann den Ordner "ssl". In diesem Ordner laden wir die ca.pem hoch.

Nächster Schritt: MQTT Bridge einrichten

Mit dem "File Editor" gehen wir wieder eine Ebene höher und öffnen dann den Ordner "share". Hier erstellen wir nun den Ordner "mosquitto" und darin dann die Datei "mosquitto.conf" mit folgendem Inhalt:

connection elv
    address eu1.cloud.thethings.network:8883
    cleansession true
    remote_username elv-lw-esi-xxxxx@ttn
    remote_password NNSXS.SupersicheresPasswort
    try_private false
    bridge_insecure false
    bridge_cafile /ssl/ca.pem
    topic # in 0 ttn/
Dabei setzt man in hinter remoteusername den oben erstellten Usernamen ein und hinter remotepassword den API Key.

Die /homeassistant/configuration.yaml wird am Ende um folgenden Code erweitert, der die "payload", also die Daten, die der ELV-LW-ESI liefert, für Home Assistant übersetzt:

# Anfang Gaszähler
    - name: "Gasverbrauch"
      state_topic: "ttn/v3/elv-lw-esi-xxx@ttn/devices/eui-xxxxxxxxx/up"
      value_template: "{{ value_json['uplink_message']['decoded_payload']['Energy_Data']['Energy_Counter'][0]}}"
      unit_of_measurement: "m³"
      device_class: "energy"
      state_class: "total_increasing"
      unique_id: elv_lw_esi
      device:
        identifiers: "elvlwesi"
        manufacturer: "ELV"
        name: "ELV Gaszähler"
# Ende Gaszähler
Folgende Anpassungen müssen darin noch vorgenommen werden:

Das state_topic entspricht der Kombination aus dem remote_username der Datei mosquitto.conf und der eui des ELV-LW-ESI in der Übersicht der angelegten Applikation:

Der Screenshot zeigt in der "Application Overview" unter "End Devices" die eui-*** des ELV-LW-ESI
Nach einem Neustart und Datenempfang vom Zähler sollte jetzt beim "Energie" Panel von Home Assistant der Gasverbrauch fertig zur Einrichtung sein: Dazu klickt man oben rechts im Drei Punkte Menü auf "Energiekonfiguration", woraufhin sich die unterschiedlichen Energiearten wie Strom, Gas, Wasser etc. konfigurieren lassen und nach dem Abspeichern in diesem Panel angezeigt werden.

Der Screenshot zeigt in Balkendiagrammen den Energieverbrauch bei Strom und Gas an.
Dir hat der Beitrag weiter geholfen? Diese Seite finanziert sich durch Spenden der LeserInnen. Wir freuen uns über Unterstützung via:

LiberaPay

BitCoin:

bc1qgthwzrszw48lw9jl8zjg94fp6w6xfkw0929vg0



oder PayPal


Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Um einen Kommentar hinterlassen zu können, erhalten Sie nach dem Kommentieren eine E-Mail mit Aktivierungslink an ihre angegebene Adresse.
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
BBCode-Formatierung erlaubt
Formular-Optionen

Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!

cronjob