Tipps & Tricks

Leuchtet im Kühlschrank eigentlich Licht?

Es ist wahrscheinlich die Frage aller Fragen und ein Rätsel, dass einen Großteil der Menschheit seit Erfindung des „kühlenden Kastens”  beschäftigt: Was passiert im gut beleuchteten Kühlschrank, wenn man die Tür wieder schließt? 

Eine Frage, die auch die kleine Tochter unseres Kunden Sebastian Walker, Senior Manager Informationssysteme Operations bei Mitsubishi Polyester Film GmbH, nachts nicht schlafen lassen hat. Ein Glück, dass Sebastian Splunk zur Hand hat. In diesem Blogpost beschreibt er, wie er nicht nur das Kühlschrank-Licht-Rätsel lösen, sondern nebenbei seiner Tochter auch etwas über Energiesparen beibringen konnte:

Zoe: „Papa...sag mal, leuchtet das Licht im Kühlschrank eigentlich die ganze Zeit? Auch wenn die Tür zu ist?”

Sebastian: „Gute Frage, keine Ahnung... aber wenn wir das splunken kriegen wir sicher die Antwort!”

Zoe: „Splunk? Was ist denn Splunk?” 

Sebastian: „Ach Zoe, das zu erklären führt jetzt zu weit, aber Du kannst Dir schon mal dieses Video ansehen und den ganzen Rest erzähl ich dir ein anderes Mal. Jetzt kümmern wir uns erstmal um den Kühlschrank.”

Wir benutzen Dinge, die jeder in der Schublade hat (und falls nicht – was sehr seltsam wäre – ganz einfach online bezogen werden können): einen Mikrocontroller mit WLAN-Chip (Wemos D1 mini - ESP8266), verbinden diesen mit einem LDR (Light Dependent Resistor, zu deutsch lichtabhängiger Widerstand) und speisen alles mit einer Powerbank.

Die Daten dieses WiFi-Sensors werden über den HEC (HTTP Event Collector) zum Splunk Indexer geschickt. Wie der HEC funktioniert und konfiguriert wird, erfährt man unter https://docs.splunk.com/Documentation/Splunk/8.2.0/Data/UsetheHTTPEventCollector

So sieht ein RAW-Event aus: 

Es besteht aus 

  • dem Zeitstempel
  • dem Indikator, ob Licht auf den LDR fällt
  • einem Zähler, der die Uptime in Sekunden zählt.


Wenn die Daten erstmal indiziert wurden, wollen wir diese natürlich auch wieder abfragen, um Zoes Frage (und die der meisten Menschen) zu beantworten.

Was sagt unsere SPL-Abfrage aus?

 

Zeile 1

index: Spezifiziert, wo die Daten innerhalb Splunk gespeichert werden. Unser Index heißt also “esp8622hec”

host: woher stammen die Daten? Unser Mikrokontroller heißt “walkingFridge”

Zeile 2

eval: wertet ein Statement aus und und gibt das Ergebnis im definierten Feld zurück

if: (Bedingung, Wahr, Falsch) – der LDR ist im dunklen Kühlschrank bei Werten zwischen 0 und 5. Wir definieren also alles unter 5 ist “Licht aus (0)” und alles über 5 ist “Licht an(1)”. Das hätte man natürlich auch auf dem ESP8266 in der Software machen können.. aber in Splunk ist das nochmal cooler ;-). Durch das eval Kommando enthält das Feld “lightIndex” jetzt also nur noch 0 oder 1 für Licht aus oder Licht an.

Zeile 3

timechart: gibt uns die Ergebnisse auf einer Zeitachse aus, zeigt jeweils den maximal gemessenen “lightIndex” an und teilt die Abfrage in Blöcke mit einer Auflösung (span) von 60 Sekunden (mehr Infos zu Timechart und Rename).

 


Als Visualisierung nutzen wir erstmal ein Säulendiagramm. Wann immer also hier ein senkrechter Strich auftaucht hat jemand den Kühlschrank geöffnet (das bringt Patrick auf die Idee, RFID-Chips in die Handgelenke der Familie Walker zu implantieren, damit man auslesen kann, welches Familienmitglied den Kühlschrank geöffnet hat. Der Vorschlag stieß überraschenderweise auf wenig Gegenliebe :-) )

Sebastian: „Siehst du Zoe, nun wissen wir also, dass im Kühlschrank kein Licht leuchtet, wenn die Tür zu ist – mit Splunk bewiesen! Aber da wir gerade vom Kühlschrank reden: Mir ist aufgefallen, dass du immer sehr lange in den Kühlschrank schaust. Das ist ein Kühlschrank, kein Fernseher. Weißt du eigentlich, was dadurch im Kühlschrank passiert? Er wird wärmer. Wenn die Tür auf ist, fällt unten die kalte Luft raus und oben kommt warme Luft rein. Und es dann wieder kalt zu machen braucht ganz schön Energie. Komm, ich zeigs Dir.”

Zoe: „Mit Splunk?”  

Sebastian: „Mit Splunk!”

Da wir die Luftbewegung im Moment nicht beweisen können, messen wir wenigstens die Temperaturänderung. Um dem kindlichen Unglauben über die Physik also entgegenzuwirken, müssen wir den Sensor mit einer Temperaturmessung aufrüsten. Ein Griff in die bekannte Schublade fördert einen Temperatursensor (AHT10, der kann auch die Luftfeuchtigkeit messen) hervor. Diesen bringen wir im bestehenden Setup unter und aktualisieren die Firmware auf dem Mikrocontroller, damit dieser nun auch die Lufttemperatur und Luftfeuchtigkeit sendet.

Wir erweitern unser timechart-Kommando in der SPL um den Zusatz

max(Temperature) as Temperature

Weil Temperatursäulen als Visualisierung nicht so sinnvoll sind, konfigurieren wir die Temperatur als Overlay im bestehenden Diagramm. Und schon kann man sehen, wie die Temperatur am Sensor sich durch das Öffnen der Kühlschranktür ändert.

Da der AHT10 Sensor nicht nur Temperatur, sondern auch die Luftfeuchtigkeit messen kann packen wir das auch noch mit in das Diagramm. Warum? Naja… weil wir es können :-)


Zum Glück hat Zoe Sebastian die ganze Zeit begleitet – und hervorragende Fragen gestellt, z. B.:

Zoe: „Was passiert wenn die Batterie leer ist?”

Sebastian: „Dann müssen wir die austauschen, sonst gibt es keine Daten mehr.”

Zoe: „Und woher weißt du später, wann du das gemacht hast?”

Ok hier müssen wir tricksen. Wir wissen zwar nicht wann die Powerbank gewechselt wurde, aber wir wissen wann der Mikrocontroller gestartet wurde. Bei jedem Neustart des Mikrocontrollers wird jetzt auch der Status “restarted” an den HEC gesendet. Dieser Status kann dann mittels einer Annotation im Diagramm angezeigt werden.

Annotations müssen direkt im Quellcode des Dashboards eingefügt werden. 

Direkt im <chart> Tag muss die Annotation-Suche eingefügt werden. Das Zeitfenster (earliest/latest) ist hier fest vorgegeben und sollte natürlich mit Token gefüllt werden.


Fazit

Das Kind ist zufrieden und kann wieder ruhig schlafen. Der Kühlschrank ist zu. Das Licht ist aus. Papa hat was über Splunk gelernt. Ein erfolgreicher Tag.

Und jetzt ihr

Falls ihr Sebastians Setup zuhause nachbauen möchtet, haben wir euch hier eine Liste der verwendeten Hardware und Software bereitgestellt. Die Hardware googlet ihr am besten einfach und kauft sie zum besten Preis beim Händler eures Vertrauens. Für die Software haben wir euch direkt Links eingefügt. Viel Spaß!

Hardware-Liste:

  • Wemos D1 mini (oder jedes andere ESP8266 Entwicklerboard)
  • AHT10
  • Powerbank
  • LDR
  • 1k Ohm Widerstand
  • Steckbrett
  • Verbindungskabel

Software-Liste:

Gelernter Fachinformatiker/Systemintegration, schon immer als "Techie" unterwegs. Irgendwann dann Projektmanager, von dort aus wieder in die Computer-Administration. Der Zufall will es, und ich lande als Digitalforensiker bei der Kriminalpolizei. Bei einem tollen Abend meinen Kollegen Henning kennengelernt, der mich dann zu Splunk geholt hat.

Join the Discussion