>
Bei diesem Projekt ging es ursprünglich darum die Zählerstände von Gas, Strom und Wasser in unserem Haus elektronisch zu erfassen. Da ich für die monatliche Erfassung zuständig war und ein Gehirn wie ein Sieb habe, war es nur logisch hier eine automatisierte Lösung zu finden. Eine andere Motivation war der schleichende Defekt unserer Kühl-Gefrier-Kombi, der zu nahezu 4 unbemerkten Monaten mit erhöhtem Stromverbrauch geführt hat. So etwas bekommt natürlich nur durch gute grafische Visualisierung mit.

Basis des Systems ist der cellarserver.


cellarserver2_running.jpg

Auf dem cellarserver läuft ein Cronjob, der jede Stunde die Verbrauchszählerstände aus dem "consumption counter" ausliest und in eine Protokolldatei schreibt (rdCounts.sh). Ebenfalls jede Stunde läuft dann ein anderes Cronscript was eine HTML-Seite mit den Verbrauchsdaten in textueller und in graphischer Form erstellt (genConsData.sh). Beide Shell-Skripte erfordern den Aufruf mit Root-Rechten.

Unter dem folgenden Link findet sich eine beispielhafte Darstellung dieser Datenauswertung. Rechts von hier auch in einer Grafik zu sehen. Der Zugang zu den tatsächlichen Online-Daten ist per Passwort geschützt. cc_demo.png
Die PC-seitige Auslesesoftware und die Software zum Generieren der HTML-Seite sind in Perl geschrieben. Die Quellen kann man unter dem folgenden Link herunterladen. Es existieren insgesamt 3 Perlskripte:
  1. get_counts.plx
  2. gen_cons_data.plx
  3. get_cc_version.plx
Mit dem Skript get_counts.plx werden die Zählerstände aus dem consumption counter ausgelesen und an eine Textdatei angehängt. Nach den Verbrauchszählerwerten wird ein "a" wie Append geschrieben. Die gewünschte Texdatei mit Datei- und Verzeichnisnamen wird dem Skript übergeben genau wie der serielle Port, an dem der consumption counter angeschlossen ist. Wenn der consumption counter z.B. nach einem Stromausfall keine gültigen Zählerwerte mehr hat, dann wird eine Warnung ausgegeben und es werden die letzten Werte aus der Textdatei in den consumption counter übertragen. Die neuen korrigierten Werte, werden in der Textdatei über ein "c" in der letzten Spalte kenntlich gemacht.
Mit dem Skript gen_cons_data.plx werden die gespeicherten Zählerstände aus der Textdatei ausgelesen, statistisch in Form von Daten des letzten Tages, der letzten Woche und des letzten Jahres ausgewertet. Die Auswertung erfolgt sowohl numerisch als auch grafisch. Hierbei wird eine HTML-Seite und mehrere Graphen in Form von PNG-Dateien generiert. Der Trend der aktuellen Werte im Vergleich zum letzten Tag wird in Form von fallenden oder steigenden Pfeilgrafiken angezeigt.
Mit dem Skript get_cc_version.plx wird die Programmversion der Firmware des consumption counters über die serielle Schnittstelle abgefragt.

Zurück zur Software-Seite.
version: 2020-05-22