Gas & Wasserzähler in Echtzeit auslesen – openHAB
Tags: Gas, Live, openHAB, Smart Home, sparen, Volkszähler, Wasser, Zähler
Was optimiert werden soll, muss zunächst gemessen werden! Grund genug, die Zählerstände aller Ressourcen im Haus in Echtzeit zu erfassen, sodass es einfach ist zu prüfen, ob Spar-Maßnahmen (Beispiel für Wasser sparen) funktionieren oder eben nicht. Im Folgenden habe ich euch einmal ein Tutorial zusammengeschrieben, wie ich den Volkszähler auf einen Raspberry Pi inkl. Gas- & Wasserzähler Anbindung realisiert habe. Los geht …
Hardware
Um das System aufzubauen, wird zunächst ein wenig Hardware benötigt. Ich habe mir einen Raspberry Pi 3 bei Ebay geschossen, ein paar zweiadrige Kabel im Baumarkt geholt (inkl. Kabelkanäle), sowie zwei Sensoren für meine Zähler. Informiert euch vorweg genau, was eure Zähler können und wie der Hersteller das Auslesen von außen ermöglicht. Auf der Webseite vom Volkszähler gibt es auch zahlreiche DIY-Anleitungen. Ich habe mich schließlich aber für eine Nicht-DIY Lösung entschieden. Dies ist der „Itron Cyble Sensor V2 (K1)“ (Wasser) und „Elster Impulsnehmer IN-Z62 für Elster-Balgengaszähler“ (Gas). Habt ihr alles beisammen, geht es mit der Verkabelung und Software los.
Die Verkablung ist denkbar einfach. Sowohl der Itron- als auch der Elster-Impulsgeber werden mit zwei Adern direkt am Raspberry Pi verkabelt. Dabei wird immer auf Erdung und einen GPIO zurückgegriffen. Den GPIO kann dann direkt von der Volkszähler-Software konfiguriert werden. Im Folgenden die beiden Impulsgeber, sodass ihr mal ein Bild davon bekommt, wie dies am Zähler aussieht.
Volkszähler
Zunächst muss die Volkszähler Software installiert werden. Ich habe das komplette Raspberry-Image auf eine SD-Karte übertragen (Anleitung) und dann den Raspberry Pi an meinem normalen Display mit Maus und Tastatur hochgefahren. Dort habe ich dann zunächst den Locale auf de_DE geändert, das WLAN eingerichtet (Tipps), Passwörter angepasst und ein paar Updates nachgezogen. Ist dies geschehen, konnte ich mich gut via SSH auf das Gerät verbinden und konnte, Maus, Tastatur und Monitor wieder wegnehmen.
Im Volkszähler werden zwei Channel angelegt (für jeden Zähler). Dies ist hier gut erläutert. Jeder Channel ist ein S0-Verbrauchs-Channel mit der passenden Auflösung des jeweiligen Sensors (ist die Auflösung falsch, siehst du z.B. daran, dass der Volkszähler den zehnfachen, hundertfachen oder nur 1/10 des Verbrauchs anzeigt). Ich habe dann die beiden Impuls-Zähler mit jeweils zwei Kabel an den Raspberry Pi angeschlossen. Dies geschieht jeweils an GND und einem GPIO-Pin, welchen man – wie bereits oben geschrieben – direkt vom Volkszähler konfigurieren und auslesen lassen kann.
Konfiguration
Sind die beiden Channel über die Web-GUI angelegt, erhält man jeweils eine UUID zurück, unter dieser der Channel verwaltet wird. Diese braucht man sowohl für die Konfiguration, als auch später für die API im openHAB. Unter „/etc/vzlogger.conf“ ist dann die Konfiguration zu finden. Hier werden die beiden Channel konfiguriert und u.a. mit dem passenden GPIO verknüpft. Hier meine Konfiguration ohne die UUIDs:
{
"enabled": true,
"allowskip": false,
"protocol": "s0",
"gpio": 4,
"configureGPIO": true,
"send_zero": false,
"debounce_delay": 0,
"intervall": -1,
"aggtime": -1,
"aggfixedinterval": false,
"channels": [
{
"uuid": "xxxxxxxxxxxx",
"identifier": "Impulse",
"api": "volkszaehler",
"middleware": "http://127.0.0.1/middleware.php",
"aggmode": "sum",
"duplicates": 0
}
]
},
{
"enabled": true,
"allowskip": false,
"protocol": "s0",
"gpio": 17,
"configureGPIO": true,
"send_zero": false,
"debounce_delay": 0,
"intervall": -1,
"aggtime": -1,
"aggfixedinterval": false,
"channels": [
{
"uuid": "yyyyyyyyyyyy",
"identifier": "Impulse",
"api": "volkszaehler",
"middleware": "http://127.0.0.1/middleware.php",
"aggmode": "sum",
"duplicates": 0
}
]
},
Gibt es Probleme (ich hatte z.B. Fehler in der JSON), lassen sich diese mit „systemctl status vzlogger
“ prüfen, ob alles passend hochgefahren ist. Zudem gibt es zahlreiche Logs aus denen man Hinweis zu möglichen Konfigurationsfehlern entnehmen kann.
openHAB
Nachdem der Volkszähler fertig ist, will ich die Informationen natürlich noch in das openHAB übertragen. Dies geschieht über die API des Volkszählers, welche überschaubar ist und hier dokumentiert ist. Dafür habe ich sowohl für den Gaszähler, als auch für den Wasserzähler ein HTTP-Binding Thing angelegt. Hier sind die jeweils passenden Channel hinterlegt, sodass ich auf die Werte zugreifen kann. Dies ist die exemplarische Konfiguration von meinem Gaszähler:
UID: http:url:meter_gas
label: Gaszähler
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: true
baseURL: http://XXX-IP-XXX:8080/data/XXX-UUID-XXX.json
delay: 0
stateMethod: GET
refresh: 300
commandMethod: GET
contentType: application/json
timeout: 30000
bufferSize: 2048
channels:
- id: today
channelTypeUID: http:number
label: Today
description: null
configuration:
mode: READONLY
stateExtension: ?from=-24 hours&to=now
stateTransformation: JSONPATH:$.data.consumption
- id: yesterday
channelTypeUID: http:number
label: Yesterday
description: null
configuration:
mode: READONLY
stateExtension: ?from=-48 hours&to=-24 hours
stateTransformation: JSONPATH:$.data.consumption
- id: thisWeek
channelTypeUID: http:number
label: This week
description: null
configuration:
mode: READONLY
stateExtension: ?from=-1 week&to=now
stateTransformation: JSONPATH:$.data.consumption
- id: lastWeek
channelTypeUID: http:number
label: Last week
description: null
configuration:
mode: READONLY
stateExtension: ?from=-2 week&to=-1 week
stateTransformation: JSONPATH:$.data.consumption
- id: complete
channelTypeUID: http:number
label: Complete
description: null
configuration:
mode: READONLY
stateExtension: ?from=2022-09-05 18:00&to=now
stateTransformation: JSONPATH:$.data.consumption
Fazit
Alles in allem ist die Installation und auch die Software sehr „speziell“ und nichts für Leute, welche sich nicht in der Informatik/Software oder Elektrotechnik auskennen. Bisher läuft das System sehr stabil und das openHAB bekommt alle Informationen, die ich brauche, aus den beiden Zählern. Nächster Schritt wird die Anpassung des Strom-Zählers sein, um dort auch die Informationen auszulesen. Viel Spaß beim Nachbauen. Plant auf jeden Fall ein paar Stunden für die Einrichtung ein :)
Hinterlasse einen Kommentar/Leserbrief!