Hier im Beispiel sieht man an einem Tag den Verbrauch von Strom und Gas. Den Wassersensor habe ich noch nicht angeschlossen.
Den Gaszähler erfasse ich mit einem Readkontakt.
Vom Gasverbrauch stelle ich nur die Spitzen dar.
(Bei uns läuft nur eine Therme und diese ist an oder aus. Der Pulsecounter erzeugt Auslaufeffekte, welche ich nicht sehen möchte.)
Die elektrische Leistung erfasse ich mit dem Impulsgeber 2.1.
Ich bin gerade auf der Suche nach Standby-Verbrauchern und habe die blaue Kurve auf der linken Y-Achse auf maximal 500W begrenzt. So kann ich 20W Unterschied gut erkennen.
Dei rote Kurve ist auf die rechte Y-Achse bezogen und skaliert automatisch. Hier gab es auch schon Spitzen mit 8kW (Waschmaschine und Herd zusammen).
Folgende Programme werden für das Projekt benötigt:
· ioBroker zum Einsammeln der Sensordaten
· InfluxDB ist ein Open Source Datenbank zur Speicherung der Messdaten
· Grafana ist eine Open-Source-Anwendung zur grafischen Darstellung von Daten aus z.B. der InfluxDB
Diese 3 Pakete können auf einem Linux-System, z.B. Raspberry oder NAS installiert werden.
Ich beschreibe die Installation am Beispiel meines NAS am Ende des Artikels.
a. Den Adapter wiffi-wz installieren
b. Nun kann der Pulsecounter mit dem ioBroker verbunden werden. Er sieht diesen als CCU.
Befehle an den Pulsecounter werden über die Adresszeile seiner Webseite eingegeben.
In meinem Beispiel hat der Pulsecounter die IP-Adresse 192.168.138.61 und der ioBroker die IP-Adresse 192.168.138.111
http://192.168.138.61/?ccu:192.168.138.111:
Den Port des ioBrokers übergibt Parameter 12 an den Pulsecounter:
http://192.168.138.61/?param:12:8181
Jetzt warten, bis "connected with CCU" angezeigt wird.
c. Überprüfen, das eine Instanz von wiffi-wz läuft
d. Unter Objekte alle auswählen, welche in der influxDB gespeichert werden sollen.
Durch Klick auf den Maulschlüssel öffnet sich, wenn InfluxDB verbunden ist, eine Einstellungsseite. Hier „Aktiviert“ anhaken und speichern.
Die Momentanwerte zeigt der Pulsecounter in kW an.
Um kleine Schwankungen besser sehen zu können, stelle ich die blaue Kurve fest auf ein Maximum von 500W
und multipliziere die 0,5kW mit 1000 um auf Watt zu skalieren.
Farbgebung und Zuordnung zu den möglichen Y-Achsen stellt man rechts bei „Series overrides“ ein.
Fertig, das sollte als Bsp. reichen. Die Auflistungen per Histogramm sind für mich noch ein Ziel.
Viel Spaß mit eurer Visualisierung.
Oxygen8
Mein System läuft auf einem QNAP TS-231p in der Containerstation als LXC.
Ich habe den Container iobroker genannt.
Es soll Vorteile haben, dem ioBroker eine eigene IP zu geben:
Ich empfehle die Nutzung der großen Konsole:
Hier muss ich einen Fehler vom QNAP korrigieren.
Benennt man den Container um, so wird dieser dem Router per DHCP mit dem geänderten Namen bekanntgegeben. In der /etc/hosts wird jedoch der alte Name eingetragen.
ioBroker scheitert später an diesem Konflikt. Also bitte per vi /etc/hosts den Namen anpassen.
Bitte die folgenden Befehle einzeln in der Konsole ausführen.
apt -y update ; apt -y upgrade ; apt -y install curl
curl -fsSL https://deb.nodesource.com/setup_15.x | bash -
apt install -y nodejs build-essential libavahi-compat-libdnssd-dev libudev-dev libpam0g-dev
curl -sL https://iobroker.net/install.sh | bash - ; iobroker plugin disable sentry
npm install -g npm@7.5.6
apt install -y gnupg2 curl wget apt-utils
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian buster stable" | tee /etc/apt/sources.list.d/influxdb.list
apt update ; apt install -y nano influxdb ; systemctl enable --now influxdb
Nun muss die conf bearbeitet werden.
nano /etc/influxdb/influxdb.conf
Runterrollen bis [http] und die Rauten entfernen, wie hier gezeigt:
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true
# The bind address used by the HTTP service.
bind-address = ":8086"
# Determines whether user authentication is enabled over HTTP/HTTPS.
auth-enabled = false
Mit STRG+O und ENTER abspeichern und mit STRG+X verlassen.
systemctl restart influxdb
apt install influxdb-client
influx
create database iobroker
use iobroker
exit
ioBroker kann unter Port 8081 aufgerufen werden. Bsp. http://192.168.XXX.YYY:8081
Beim ersten Start bitte die Statistik abnicken. ioBroker installiert nun den info Adapter.
Danach den Adapter influx installieren (3 Punkte und dann auf +)
Unter Instanzen warten, bis influxdb.0 grün wird.
wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
echo "deb https://packages.grafana.com/enterprise/deb stable main" | tee -a /etc/apt/sources.list.d/grafana.list
apt update ; apt install grafana-enterprise
systemctl enable grafana-server.service
systemctl daemon-reload ; systemctl start grafana-server
Grafana kann nun unter Port 3000 aufgerufen werden. Bsp. http://192.168.XXX.YYY:3000
Mit Name admin und Kennwort admin anmelden.
Es wird sofort ein neues Kennwort abgefragt. Man könnte hier skip klicken.
Über die Sicherheit habe ich noch nicht nachgedacht, da ich keine Ports ins Internet freigebe, sondern per VPN mit dem Handy auf mein Netzwerk zugreife.