Am Beispiel meiner Wetterstationsdaten aus dem vorherigen Artikel zur MongoDB-Anbindung einer Homematic Wetterstation via NodeRed habe ich mit einfachen Mitteln ein Reporting gebaut. Das hat erstmal Prototypen-Status, zeigt aber das Setup in hoffentlich nachvollziehbarer Form.
MongoDB-Verbindung
Der erste Schritt ist der Zugriff auf die MongoDB-Daten. Dazu wird der MongoDB-BI-Connector lokal auf dem PC installiert. Mehr Informationen zur Installation findet man auf der MongoDB-Website. Wenn dieser installiert ist wechselt man ins Installationsverzeichnis und startet den Connector mit folgendem Befehl:
mongosqld.exe --mongo-uri mongodb://192.168.178.18:27017
Dabei muss natürlich die IP-Adresse an den vorhandenen MongoDB-Server angepasst werden. Damit wird – wie der Name vermuten läßt – ein SQL-Zugriff auf die MongoDB-Daten möglich. Im nächsten Schritt muss nun der ODBC-Zugriff erstellt werden.
Das sieht wie folgt aus:
Wichtig an dieser Stelle ist die oben markierte Angabe der Datenbank. Diese ist zwingend erforderlich um einen Zugriff zu ermöglichen. Zu beachten ist an dieser Stelle auch, daß nicht die IP-Adresse des MongoDB-Servers angegeben wird, sondern „localhost“, weil der MongoDB-Connector auf dem lokalen PC läuft. Das muss gegebenenfalls angepasst werden. Damit ist nun der Zugriff auf die Daten aus Excel, oder jeder anderen Anwendung die ODBC unterstützt möglich.
Datenanpassungen
In der Regel sind die Rohdaten einer solchen Datenquelle nicht umbedingt tauglich. Es ist noch etwas Feintuning notwendig. Dies ist anhand zweier Beispiel einfach erklärt.
- In meinem Fall war der Zeitpunkt der Messung als Timestamp erfasst und so in MongoDB hinterlegt. Für die Auswertung will ich aber tageweise zusammenfassen und die gesamte Regenmenge und die Durchschnittstemperatur auswerten. Dazu muss ich aus dem Timestamp das Datum extrahieren. Das funktioniert in Excel mit einer Formel:
=WENN(B6013<>"";DATUM(LINKS(weather[@datetime];4);TEIL(weather[@datetime];6;2);TEIL(weather[@datetime];9;2));"")
Man erkennt, daß aus dem Timestamp 2020-08-06T21:28:46.824 das Datum 06.08.2020 errechnet wird. - Die Regenmenge wird in der Homematic Wetterstation kumuliert und ich habe noch keinen Trick gefunden das zu korrigieren. Also rechnen wir einfach Zeile für Zeile die Differenzmenge zur vorherigen Zeile.
Diese neu berechneten Spalten werden einfach rechts angefügt und dann für die Auswertung verwendet. Am Ende entsteht folgendes Pivot-Chart:
Auf der linken Seite ist die Pivot-Tabelle zu erkennen, die als Basis für das Pivot-Chart rechts dient. In blauer Farbe sieht man die Regenmenge – summiert pro Tag – und in rot die Durchschnittstemperatur des jeweiligen Tages.