Wasserzähler mit mBus auslesen

Echo Flex – Steuern Sie Smart Home-Geräte mit Alexa
Echo Flex – Steuern Sie Smart Home-Geräte mit Alexa
--

Unser User “derrodi” hat seine Lösung Diehl Wasserzähler in Home Assistant zu integrieren dokumentiert und uns netter Weise zur Verfügung gestellt. Vielen Dank für das Teilen dieser Anleitung!

Durch meinen Wasserversorgen wurden bei mir neue Zähler verbaut.

Ich habe zwei Stück. Einen Diehl und einen Diehl mit einem IZAR Aufsatz. Der erste ist für den Hauptwasserzähler, der 2. Für mein Gartenwasser. Der Hauptwasserzähler ist verschlüsselt und mein Wasserverband (WSE) rückt den entsprechenden KEY nicht raus. Der Gartenwasserzähler funkt allerdings ohne Verschlüsselung.

Was wird benötigt:

  • 1 LXC in Proxmox, ein Raspberry PI oder ähnliches
  • 1 CUL USB-Stick der 868MHz beherrscht.

Ich habe diesen hier für 9 € bei EBay geschossen.

Installation:

Als erstes erstellt man einen LXC in Proxmox – in dieser Anleitung habe ich einen Ubuntu genommen, 8 GB Festplatte, 1024 MB Ram.
Nachdem das Betriebssystem aufgesetzt ist, muss es mit folgendem Befehl auf den neusten Stand gebracht werden:

sudo apt-get update && sudo apt-get upgrade -y

Anschließend werden noch die benötigten Pakete installiert:

sudo apt-get install build-essential
sudo apt-get install librtlsdr-dev
sudo apt-get install mosquitto-clients
sudo apt-get install git

Danach muss der USB Stick an den LXC durchgereicht werden. (Dieser Schritt kann übersprungen werden, sofern nicht mit einem Container gearbeitet wird)
Hier habe ich mich an diese Anleitung gehalten und lief auch wunderbar durch: https://coldcorner.de/2018/07/12/proxmox-usb-passthrough-fuer-lxc-container-z-wave-uzb1/

Anschließend in den LXC einloggen und über die Konsole folgende Befehle ausführen:

cd opt/
git clone https://github.com/weetmuts/wmbusmeters.git


Dabei wird mit cd in den Ordner opt gewechselt und mit git clone wird wmbusmeters in den Ordner heruntergeladen.

Jetzt wechseln wir in den neuen Ordner

cd wmbusmeters/

und installieren wmbusmeters.

./configure; make; sudo make install

Dies dauert ein Weilchen ….
Wenn die Installation abgeschlossen ist, muss folgendes ausgeführt werden

sudo systemctl daemon-reload


Daten auslesen

Jetzt kann man schon lauschen, welche Geräte denn so alles Daten senden.
Dazu einfach in der Konsole folgendes eingeben:

wmbusmeters auto:t1

Das startet den Dienst wmbusmeters auto, bedeutet er soll selber nach der richtigen Hardware gucken und T1 ist das Protokoll.
Kurze Zeit später erscheinen meine beiden Wasserzähler

Der letztere ist der Gartenwasserzähler. Um jetzt mehr über ihn herauszufinden müssen wir das abhören erstmal beenden (MacOs control + c) und starten wieder die Dienst wmbusmeters

wmbusmeters --logtelegrams --format=json auto:t1 watermeter izar 19151611 NOKEY

logtelegrams (alles was vom Zähler kommt, soll gespeichert werden)
format json (in einem JSON String ausgegeben werden)
auto:t1 (USB selber suchen im Protokoll T1)
watermeter (der Typ des Zählers)
izar (der Treiber – zu finden in der ersten Ausgabe unter driver)
19151611 (die Geräte ID zu finden unter Received telegram from)
NOKEY (das die Kommunikation nicht verschlüsselt ist)

Was bei mir folgende Ausgabe erzielt:

Jetzt müssen die Daten in eine Gerätekonfiguration in wmbusmeters eingetragen werden.
Dazu muss zuerst die obige Ausgabe mit [Control + c] beendet werden

Anschließend mit folgenden Befehlen in den Ordner wechseln und prüfen ob Daten vorhanden sind:

cd /etc/wmbusmeters.de/
ls -lrt
sudo nano MyTapWater

Entwender ist schon eine Konfiguration vorhanden oder es öffnet sich eine leere Datei. Der Dateiinhalt muss dann wie folgt angepasst werden:

name=MyTapWater
type=izar (hier den Wert aus driver einsetzen)
id=eure GeräteId

speichern [Control + O] und beenden des Nano [Control + X].

Dann in den etc Ordner zurück wechseln

cd ..

Anschließend die wmbusmeters.conf öffnen mit:

sudo nano wmbusmeters.conf

So sieht die Datei bei mir aus.

Unter Logfile wird jetzt der MQTT Broker eingetragen, damit der Dienst weis, wohin die ermittelten Daten gesendet werden sollen.
Dazu einfach folgendes einfügen:

shell=mosquitto_pub -h EUREMQTTIP -p 1883 -t EUERGEWÜNSCHTERCHANNEL -m “$METER_JSON“

Die Änderungen werden wieder gespeichert [Control + O]. Danach kann der Texteditor (Nano) wieder mit [Control + X] verlassen werden.
Danach den Service wmbusmeters zur Sicherheit einmal stoppen

systemctl stop wmbusmeters

und anschließend neu starten.

systemctl start wmbusmeters

Jetzt können wir zum überprüfen ob alles funktioniert hat in einen MQTT Explorer wechseln und in euren MQTT einloggen. Dieser sollte nun im zuvor angegebenen Kanal die Daten des Zählers ausgeben. Das ist die Bestätigung, dass wmbusmeters fleißig die Daten des Wasserzählers sendet.

Die Ausgabe sollte in etwa so aussehen:

Um die Daten jetzt in HA verfügbar zu machen, braucht man nur einen Template Sensor mit folgender Konfiguration:

mqtt:
  sensor:
    - name: "Gartenwasserverbrauch"
      state_topic: "tele/wasserzaehler/verbrauch/"
      unit_of_measurement: "m³"
      value_template: "{{ value_json['total_m3']}}"
      icon: mdi:counter

Und fertig!

Wenn eure Zähler verschlüsselt sind, fragt bei euren Wasserverbänden nach, ob sie euch die AES Keys raus geben. Dieser muss dann im wmbusmeters Aufruf anstatt “NOKEY” angegeben werden.

Das Ganze sollte auch mit einem DVB-T USB Stick mit dem rtl2832u Chipsatz funktionieren. Hierzu muss aber im Vorfeld etwas mehr installiert werden. Dazu einfach mal dieses Video anschauen, es ist zwar auf französisch aber Bilder sagen mehr als Worte 😉
https://www.youtube.com/watch?v=m5R6sfsGmvE&t=1252s&ab_channel=JournaldeThomas


Solltet Ihr noch Fragen haben, schaut gerne einfach auf unserem Discord vorbei. Dort kann euch sicher bei eurem Problem geholfen werden!
https://smarthomeyourself.de/discord

Ansonsten findet Ihr auch weitere Informationen, Tipps und Tricks zum Thema Home Assistant in unserem Home Assistant Bereich:

https://smarthomeyourself.de/tutorial-serien/home-assistant-hilfe-tipps-und-tricks/


Ich wünsche euch viel Spaß beim nachbasteln.