eHZ automatisiert auslesen und auswerten

Schon seit einiger Zeit war ich auf der Suche nach einer Möglichkeit, meine beiden eHZs automatisiert auslesen zu können. Ich wollte sehen, zu welchen Zeiten welche Verbräuche anfallen, wie oft die Wärmepumpe das Wasser erhitzt, wann sie das letzte Mal gelaufen ist und vieles mehr. Nach einer Internetrecherche ist mir sehr schnell das Volkszähler Projekt aufgefallen. Der volkszaehler.org ist ein freies Smart Meter im Selbstbau. Der Nutzer behält dabei die vollständige Kontrolle über die anfallenden Strom-, Wasser- und Gaskosten. Auf der Projektseite findet man Schritt-für-Schritt Anleitungen, die jeden mit ein wenig handwerklichem Geschick ans gewünschte Ziel bringen.

Folgende Hardware habe ich bei diesem Projekt verwendet:

  • 2x IR-Kopf
  • 1x Raspberry Pi 3 (inkl. SD-Karte, Gehäuse und Netzteil)
  • 1x Server, der die Daten vom Raspberry Pi entgegennimmt und in eine SQL Datenbank schreibt. Außerdem stellt er die WebUI zur Verfügung.
  • Kleinmaterial (Kabelbinder, Stege etc.)

Die USB-Infrarotköpfe habe ich per eMail über nils.volksz@gmail.com bezogen. Sie besitzen einen optischen Sensor mit USB-Schnittstelle, Schreib- und Lesefunktion, einen eingebauten Ringmagneten zur einfachen Montage am Zähler und eine 2,5m Anschlussleitung. Weitere Details zum IR-Kopf findet man im Volkszähler Wiki. Montiert sieht das dann (bei mir) so aus:

Diese Zähler (Typ: eHZ-FW8E2A500AK1) liefern ihre Daten als ASCII-Protokoll, was man später dann in der Konfiguration beachten musste.

Nach der Hardware-Installation der IR Köpfe habe ich dann überprüft, ob der USB IR-Kopf auch vom Betriebssystem (Gentoo) auf meinem Raspberry Pi erkannt wurde. Da udev automatisch Symlinks nach dem Einstecken generiert konnte ich mit folgendem Aufruf schnell prüfen, ob das wirklich erfolgt ist und die USB-IR-Köpfe erkannt wurden:

# ls -l /dev/serial/{by-path,by-id}/*

Weiter ging es dann mit der Software. Zum Einlesen der Werte wird der vzlogger eingesetzt. Der vzlogger ist ein Werkzeug zum Lesen der Messwerte von Sensoren und Smartmeter, um diese an die volkszahler.org Middleware weiterzureichen. Er unterstützt auch MySmartGrid und InfluxDB, kann als Daemon im Hintergrund arbeiten oder per cron aufgerufen werden. Bei mir läuft er als Daemon. Der vzlogger wertet den Return Code der Middleware aus. 

Die Middleware nimmt von den Controllern die Daten entgegen und speichert diese, um sie dann den Frontends zur Darstellung zur Verfügung zu stellen. Die Middleware stellt an das Betriebssystem folgende Voraussetzungen:

  • PHP 7.1
  • Doctrine 2.5
  • MySQL, MariaDB, PostgreSQL oder SQLite + PDO Treiber
  • APC (optional, aber empfohlen)
  • nginx, Apache (optional)

Die Visualisierung der in der Middleware gespeicherten Messwerte erfolgt über Frontends. Standardmäßiger Bestandteil von volkszaehler.org ist ein Browser-basiertes Frontend.

Wichtige Links:

2 Gedanken zu „eHZ automatisiert auslesen und auswerten

  1. Hallo
    wieder einer dieser Artikel die viel Appetit machen aber nicht helfen sein Projekt um zu setzten. Ich lese seit Tagen alle möglich Sites um zi ergründen was ich wo einstecken muss und wie viele geichzeitig gehen denn das kommt vor dem ganzen Software gedöns. Ich bin frustirert und wenn es was fertiges Gäber ich glaub ich bin soweit jeden Preis dafür zu zahlen. Das Alles nur um etwas merh über seinen Stromverbrauch zu erfahren…

    1. Hallo Lothar,

      mir erging es nicht anders und meine Lösung ist „sehr speziell“, deswegen (bisher) auch noch nicht genauer beschrieben. Ich setze Gentoo auf dem RaspberryPi und auf meinem Server ein. Ich habe den vzlogger von der Datenbank abgekoppelt und einiges von Hand „gepatcht“. Ich denke selbst mit guter Doku, hilft das nur sehr wenigen wirklich weiter. Ein Freund von mir ist auch derzeit (leicht frustriert) an dem Thema in einer anderen Umsetzung dran.

      Wenn das dann alles läuft stellt man dann noch fest, dass der „aktuelle Zählerstand“ selber in der WebUI auch nicht dargestellt wird. Dazu habe ich mir dann eine primitive separate WebUI gebaut, die auf die MySQL Datenbank zugreift und mir den gewünschten Wert des eHZs vom gewünschten Datum ausgibt.

      Schöne Grüße,
      Marcel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.