Darstellung der Daten eines Pulsecounters in Grafana

 

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).

 

 

Voraussetzungen

 

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.

 

Verbindung des Pulsecounter mit dem ioBroker

 

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.

 

 

Darstellung der Daten in Grafana

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ab hier beschreibe ich die Installation der 3 benötigten Pakete am Beispiel eines Debian Buster

 

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.

 

Installation vom ioBroker

 

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

 

 

Installation der Influxdb

 

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

 

 

 

Verbinden des ioBroker mit der InfluxDB

 

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.

 

Installation von Grafana

 

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.