Überwachung von Umweltsensoren mit Grafana

In diesen Artikel geht es um Alarme für Umweltsensoren, die Temperatur, Luftfeuchte, Wasserstand, Windgeschwindigkeit, Luftdruck  oder viele andere Messwerte erfassen. Der Sensor ist hierbei egal und ist nicht Teil des Artikels. Dennoch nehme ich den “AirRohr” Sensor von Luftdaten.info als Referenz Beispiel damit es etwas verständlicher wird. Darüber hinaus ermöglicht die Software die einfache Anbindung einer InfluxDB Datenbank wohin die Messwerte übermittelt und gespeichert werden ( Time Series ) . Auf diese gespeicherte Daten bauen wir uns ein grafisches Dashboard mit Grafana auf.

Ziel ist es bei erreichen eines Schwellwert über oder unter einer festgelegten Grenze eine Nachricht zu erhalten dass ein Ereignis ausgelöst wurde.

Was wird minimal benötigt :

Es können mehrere Sensoren mit dem ESP8266 und BME280 Sensor eingesetzt und aufgebaut werden. In unserem Bespiel sind es zwei Sensoren die Werte liefern und überwacht werden. Wie die Sensoren aufgebaut werden, wie InfluxDB und Grafana aufgebaut und installiert wird, ist nicht Bestandteil dieses Artikels. dazu gibt es eine Vielzahl von Dokumentation im Netz.

Wer zu Grafana und influxDB dennoch Hilfe braucht darf mich kostenpflichtig einkaufen und Kontakt zu mir aufnehmen.

Schauen wir uns das Dashboard der ESP8266 Sensoren erst mal an, damit klar wird wie der BME280 und die InfluxDB konfiguriert werden muss, damit die Daten in der influxDB verfügbar sind.

Übersicht Konfiguration Feinstaubsensor Software:

Nun melden wir uns in Grafana an und importieren ein Dashboard aus dem folgenden Repository 

https://git.unixweb.net/jhummel/Luftdaten-Sensor-BME280

In diesem Repository gibt es eine Datei “BME280 – luftdaten.info-XXXX.json” , diese bitte importieren.

Damit der Zugriff auf die richtige Datenbank erfolgt muss eine sogenannte “Data Source” eingerichtet werden. Einfach die Werte so übernehmen und eventuell die IP-Adresse, Benutzername und Passwort anpassen. 

 

Wenn nun alles richtig eingestellt wurde sollte folgendes Bild zu sehen sein:

Nun schauen wir uns das Panel “Luftfeuchtigkeit ( Below/Unter) und und editieren dieses, dort fügen wir eine weitere Abfrage eines Sensors hinzu. Der Query “A” ist schon vorhanden und nur fügen wir den Query “B” hinzu wie abgebildet. Bei dem Feld “Node” muss Dein Sensorname ausgewählt werden, der in Deiner Datenbank zur Verfügung steht. Wenn nur ein Sensor in die influxDB schreibt siehst Du nur einen. Sind weitere Sensoren vorhanden die in die influxDB schreiben dann sind die genau dort sichtbar. 

Die Buchstaben für den Query “A” und “B” sind wichtig sich zu merken, weil genau die benötigt werden um einen Alarm für mehrere Sensoren einzurichten und nicht mehrere Alarme für mehrere Sensoren. Dies spart Arbeit und dient der Übersichtlichkeit. 

Nun wird eine neuer Sensor einem bestehenden Alarm hinzugefügt. Wähle dazu den Buchstabe “B” aus und ändere die Conditions auf “OR” und “IS BELOW” mit dem Wert “10”.

Klicke dann auf den Reiter “Alert” und ändere die Werte wie unten angezeigt.

Damit nun Alarme an ein Smartphone weitergeleitet werden können benötigt es einen “Notification channels” in der Grundkonfiguration von Grafana. 

Öffne hier das Panel “Alerting – Alert rules and notifications” und stelle den Dienst Telegram ein als Type. 
Es kann natürlich (ich weiß da fragen wieder welche ) Mail Notification eingerichtet werden, was man auch im Umfeld eines großen Supportteam machen kann und auch sinnvoll ist. Im Smarthome Umfeld mit Mail Notification zu arbeiten, ist etwas betagt und setze da lieber auf Dienste wie Pushover oder Telegram, die mich direkt auf dem Smartphone informieren. 

Alarmierung per Telegram auf das Smartphone senden

So sieht dann das Ergebnis auf dem Smartphone mit Telegram aus:

Das wäre schon alles und so schwierig ist es nicht einzurichten. Mit dieser Lösung hat mein ein Dashboard für die Visualisierung der Daten und eine Möglichkeit auch mal nachzusehen wie das Wetter vor 7 Tage war. 

Wichtig ist hier zu wissen, dass man nicht mit den Host Variablen Node arbeiten kann um direkt einen Alarm zu erstellen. Das funktioniert nicht. Der Reiter “Alert” ist dann schlichtweg nicht vorhanden. Er erscheint erst wenn man ein neues Panel in das existierende Dashboard eingebunden wird und der Query exklusiv über den “Node” mit “Name” ausgewählt wird. Damit aber nicht für jeden einzelnen Sensor ein Panel gebaut werden muss, fügt man ein Query hinzu. Aber Achtung: es gehen nur 26 Query pro Panel maximal also von Buchstabe “A bis Z”. Werden zum Beispiel 52 Sensoren zu überwachen eingebunden, benötigt es zwei Panel, pro Panel max. 26 Sensoren. So umgeht man die Problematik mit der Limitierung. 

Die mit Sternchen (*) gekennzeichneten Verweise sind sogenannte Provision-Links. Wenn du auf so einen Verweislink klickst und über diesen Link einkaufst, bekomme ich von deinem Einkauf eine Provision. Weiterführende Infos gibt es hier unter Punkt 8 in der Datenschutzerklärung  https://blog.unixweb.de/datenschutzerklaerung/