Mit dem Luftdaten Sensorbaukasten lässt sich Feinstaub, Temperatur, Luftfeuchtigkeit und der Luftdruck messen. Standardmäßig übermittelt "airrohr" - so heißt der Baukasten - diese Werte automatisch an madavi und sensor.community. Ich möchte meine Roh-Daten aber auch selbst besitzen und nicht auf andere Services angewiesen sein. Deswegen habe ich eine eigene InfluxDB aufgesetzt und die Werte mit Grafana visualisiert.
Und so könnt ihr euren eigenen Software-Stack aufbauen und eure Sensordaten visualisieren:
-
- Installieren von InfluxDB
Ich benutze gerne Debian als Distribution und füge deswegen die Debian Repository als Quelle für apt hinzu:
sudo apt update sudo apt install -y gnupg2 curl wget wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add - echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list sudo apt update sudo apt install -y influxdb
Anlegen eines Admins, Write-Users und Read only-Users in der InfluxDB
Jetzt werden drei unterschiedliche Useraccounts angelegt:
- Admin: Der Nutzer hat die Hoheit über die InfluxDB und kann neue Accounts anlegen, Datenbanken anlegen, Daten löschen schreiben etc. Er soll nur für administrative, aber nicht für operative Aufgaben genutzt werden
- Write-User: Dieser Nutzer schreibt neue Sensordaten in die Datenbank und wird beim Sensor hinterlegt.
- Read only-User: Diesen Nutzer verwenden wir in Grafana. Er kann nur Messdaten lesen.
sudo influx # Ab jetzt geben wir influxdb Befehle ein # Als erstes erstellen wir unsere luftdaten Datenbank CREATE DATABASE luftdaten # Wir sagen, dass wir diese Datenbank auch nutzen wollen USE luftdaten # Wir erstellen einen neuen Admin-Nutzer CREATE USER admin WITH PASSWORD '
' WITH ALL PRIVILEGES # Wir erstellen einen neuen Write-Nutzer CREATE USER luftdatenschreiber WITH PASSWORD ' ' # Wir erstellen einen neuen Read Only-Nutzer CREATE USER luftdatenleser WITH PASSWORD ' ' # Wir geben den neu erstellten Nutzern Privilegien auf die Datenbank GRANT WRITE ON "luftdaten" TO "luftdatenschreiber" GRANT READ ON "luftdaten" TO "luftdatenleser"
Wichtig ist, dass drei unterschiedliche Passwörter verwendet werden. Im Anschluss muss die User-Authentifizierung noch aktiviert werden. Dies funktioniert, indem die Influxdb-Konfigurationsdatei bearbeitet wird:sudo nano /etc/influxdb/influxdb.conf ## Nach dieser Stelle suchen: [http] enabled = true bind-address = ":8086" auth-enabled = true # <--- Dieser Wert muss auf true gesetzt werden log-enabled = true write-tracing = false pprof-enabled = true pprof-auth-enabled = true debug-pprof-enabled = false ping-auth-enabled = true https-enabled = true https-certificate = "/etc/ssl/influxdb.pem"
Danach starten wir den Influxdb-Service neu (sudo service influxdb restart
). Auf meinem Server habe ich außerdem noch eine Firewall, bei der ich den Port 8086 freigeben muss (sudo ufw allow 8086/tcp
). Danach ist die Influxdb schon eingerichtet 👍- Luftsensor-Konfiguration anpassen
Jetzt muss der Luftsensor angepasst werden, damit die neue Datenbank genutzt wird. Dafür wird die Konfigurationsseite des Sensors aufgerufen und unter "Konfiguration" die InfluxDB angegeben. Ein Häkchen neben InfluxDB setzen und dann die Logindaten für euren luftdatenschreiber eingeben. Wichtig: Achte darauf, dass du wirklich den User luftdatenschreiber verwendest und nicht admin oder luftdatenleser. Falls du SSL nicht eingerichtet hast (haben wir in dieser Anleitung nicht), darfst du neben SSL auch kein Häkchen setzen. Nach dem Abspeichern der Konfiguration startet der Sensor neu. - Installieren von Grafana und Verbindung mit InfluxDB herstellen
Wir sind kurz vor unserem Ziel. Jetzt müssen wir die einkommenden Sensordaten noch visualisieren. Ich verwende dafür Grafana:
sudo apt-get install -y software-properties-common wget wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list sudo apt-get update sudo apt-get install grafana sudo service grafana-server start
Ich selbst nutze nginx als reverse proxy und muss deswegen meine Konfiguration für Grafana anpassen. Falls du das nicht machst, kannst du Grafana öffnen, indem du auf http://DEINE-DOMAIN.ENDUNG:3000/ gehst.
Zunächst müssen wir uns einloggen. Standardmäßig sind die Logindaten admin / admin, du musst das Passwort dann aber direkt beim ersten Einloggen ändern. Dann fügen wir unsere InfluxDB als Datenquelle hinzu. Dafür klickst du auf der linken Seite auf das Zahnrad und auf "Data Sources". Danach "Add Data Source" und "InfluxDB" auswählen. Die URL stelle ich auf "http://localhost:8086" und stelle unten bei InfluxDB Details die Logindaten für den luftdatenleser ein. Einmal auf "Save and test" klicken und dann sollte die Verbindung erfolgreich hergestellt worden sein 😊 - Visualisieren der Messdaten
Jetzt kommt der letzte Teil: Wir visualsieren unsere Messdaten. Dafür klicken wir links auf die vier Quadrate und legen damit ein neues Dashboard an. Jetzt kannst du ein neues Pane hinzufügen und ein wenig herumexperimentieren, wie dir das Dashboard am besten gefällt.
- Installieren von InfluxDB
Ich hoffe, ich konnte dir helfen dein eigenes Dashboard für deinen Luftdaten-Sensor einzurichten. Falls du noch Fragen hast, schreibe mir gerne eine Mail!