Als Monitoring-Experten lieben wir es, Dinge zu überwachen, die uns persönlich betreffen. Bezüglich unseres Konferenzgebäudes wussten wir von der Konferenz im letzten Jahr, dass der Hauptsaal eine gute Belüftung und Klimatisierung benötigt – und, dass wir helfen könnten, dies zu gewährleisten. Lesen Sie hier, wie es gelungen ist, Sie am Einschlafen zu hindern (von großartigen Vortragenden und spannenden Einsichten einmal abgesehen).

Seit 2022 haben wir eine Zusammenarbeit mit Watterott Electronic. Begonnen hat diese mit einem Pull-Request für die “Watterott CO2 Ampel”, ein WLAN-fähiges CO2-Sensor-Board. Obwohl der Pull-Request ursprünglich vor allem dafür gedacht war, zu zeigen, dass ein Checkmk Agent auf Endgeräten mit extrem geringem Arbeitsspeicher implementiert werden kann (hier ARM M0+, mit Arduino programmiert), ist der Checkmk Agent mittlerweile Teil der vorinstallierten Firmware der CO2-Ampel – und bei vielen Checkmk Anwendern bewährt. Vor dem Hintergrund dieser Partnerschaft haben wir beschlossen einige der CO2-Ampeln zu bestellen, um neue Ideen für den minimalen Arduino-Agenten zu testen – und natürlich, die Luftqualität (CO2 und Temperatur) der Innenräume bei der Konferenz zu überwachen. Ein weiterer Aspekt war, die Möglichkeiten des überarbeiteten Dashboardings zu demonstrieren und die Vorteile paketierbarer Dashboards zu zeigen.

Bild der CO2-Ampel mit vier grün leuchtenden LEDs
Die Watterott CO2 Ampel misst die CO2-Konzentration in der Umgebungsluft und zeigt die Luftqualität mit vier RGB-LEDs an, zudem können die Messwerte per WLAN ausgelesen werden..

Im Gegensatz zu billigeren Sensoren verwenden Watterotts Boards (optische) NDIR Sensoren, die sehr präzise sind und sich daher für professionelle Anwendungen eignen. Billigere Boards nutzen meist “Hot Plate Sensoren”, die ein breites Spektrum organischer Komponenten erkennen, die von Schweiß, Atmung und Verdauung herrühren (TVOC, “Total Volatile Organic Components") und daraus einen geschätzten CO2-Wert ableiten (eCO2, “estimated CO2”). Diese geschätzten Werte können in einigen Situationen weit daneben liegen. Greifen Sie daher bei der Anschaffung von CO2 Sensoren immer zu den präziseren optischen Sensoren.

Die Integration

Watterotts CO2-Ampeln lassen sich stand-alone betreiben, dann geben vier RGB LEDs mit den Ampelfarben und ein zusätzlicher Summer Auskunft über CO2-Werte. Zudem stellen sie ihre Messwerte über eine USB-Seriell-Schnittstelle zur Verfügung. Sehr praktisch ist, dass sofort nach der Aufnahme in ein WLAN die Checkmk Agentenausgabe über einen REST-API-Endpunkt abgerufen werden kann – das macht sie wahrscheinlich zu den am leichtesten mit Checkmk zu überwachenden Sensor-Boards. Um die CO2-Ampeln ins Monitoring aufzunehmen, müssen Sie lediglich vom Aufruf des regulären Agenten auf ein Datenquellenprogramm umstellen, welches den REST-API-Endpunkt über die IPv4-Adresse abfragt: 

curl http://$_HOSTADDRESS_4/cmk-agent

Screenshot zeigt die Konfiguration der Datenquelle in Checkmk

Da die Ampel bereits einen lokalen Check für die CO2-Werte mitbringt, steht sofort ein nützlicher Service zur Verfügung. Neben Sensoren für CO2 und Temperatur hat die auf der Konferenz eingesetzte CO2-Ampel Pro auch Sensoren für Luftfeuchte und Luftdruck an Bord. Diese können mit dem in der Exchange erhältlichen Plugin ausgelesen werden. Hauptzweck der zusätzlichen Sensoren ist die Korrektur der ausgelesenen CO2-Werte, aber auch alleine betrachtet können sie einigen Spaß bereiten.

Mehr zu diesem Spaß später.

Das Setup

Paulaner am Nockherberg ist ein großer, aber gut zu überblickender Veranstaltungsort. Da das WLAN des Betreibers keine Kommunikation zwischen den Endgeräten zulässt (eine sinnvolle Standardeinstellung), haben wir einen eigenen Accesspoint und einen alten “Nettop” aufgestellt, der sowohl als Checkmk Server diente, als auch das Dashboard im Browser anzeigen sollte. Obwohl diese Kombination in Tests funktionierte, stellten sich bald seine schlechte WLAN-Antenne und bei Temperaturen bis 32°C auch seine schlechte Prozessorkühlung als ungünstig für den Praxiseinsatz heraus. So wechselten wir dann am 20. Juni (erster Konferenztag) um die Mittagszeit zu einem weit leistungsfähigeren Notebook. Der Umzug gestaltete sich dank​​​​​​​ omd backup und omd restore sehr einfach. 

Wir benutzten einen einzigen OpenWRT Accesspoint mit zwei WLAN Interfaces, um die gesamte Location abzudecken. Insgesamt fünf CO2-Ampeln waren im Einsatz: vier mit WLAN (drei davon im großen Saal und eine im Foyer) und eine per USB direkt mit dem Checkmk Server verbunden. Wir versuchten, die Sensoren so weit wie möglich voneinander entfernt zu platzieren. Das funktionierte ganz gut, allerdings führte die hohe Anzahl an Endgeräten im 2,4GHz Band zu hohen Latenzen, Paketverlusten und Channel Hopping und im Ergebnis zu gelegentlich fehlenden Monitoring-Daten. Hinsichtlich der Trägheit von Luftaustausch und -erwärmung, sowie der Redundanz der Sensoren, betrachteten wir Lücken als akzeptabel, solange sie unter zehn Minuten blieben.

Die erste Schlussfolgerung aus dieser Erfahrung ist, dass für Umgebungen mit starker Nutzung des 2,4GHz Bandes oder in größeren Lokalitäten über die Verwendung der Variante mit LoRa-Funkmodul nachgedacht werden sollte. Leider existiert noch keine softwareseitige Unterstützung für LoRa, bei Interesse an einer vollständigen Integration können Sie jedoch Watterott um ein Angebot bitten.

Der produktive Einsatz

Bild des Setups bestehend aus Dashboard und Checkmk Server

Das Foto oben zeigt unser Setup auf dem Bistrotisch im Foyer. Auf dem Bildschirm ist die erste Version des Dashboards zu sehen, bei dem die Graphen über vier Stunden gehen. Als genügend Daten vorhanden waren, wechselten wir dann auf 25 Stunden. Das Terminalfenster diente dazu, Zugriff und Output des Agenten auf der CO2-Ampel zu zeigen.

Während der Konferenz erstellten und veränderten wir das Dashboard auf einem separaten Computer und kopierten es anschließend zur Produktivumgebung. Dies funktionierte dank des ab der Checkmk Version 2.2.0 verfügbaren Features der paketierbaren Dashboards sehr gut. In der Praxis waren dann auf Grund abweichender Bildschirmformate und -auflösungen zwischen Entwicklernotebook und dem Monitoring-Bildschirm nach der Übertragung des Dashboards kleinere Anpassungen nötig. Die sind aber schnell umgesetzt und damit weniger verwirrend als längere Zeit mit mehreren ähnlichen Dashboards klarkommen zu müssen. Denn das wäre der Fall gewesen, wenn wir die Dashboard-Entwicklung via kopieren und bearbeiten auf der produktiven Instanz durchgeführt hätten.

Die ausgelesenen Daten waren zunächst im besten Sinne unbeeindruckend: CO2 überschritt nicht  800ppm, was bei der großen Umgebung gerade vor dem Hintergrund, dass wir bei der letzten Konferenz häufiger 1200ppm maßen, als sehr gut gelten kann. Zudem war der Temperaturunterschied zwischen dem Bühnenbereich, wo die meiste klimatisierte Luft verfügbar war und dem hinteren Teil des Raumes deutlich: Die minimalen Temperaturen im Bühnenbereich lagen bei etwa 24°C, die maximalen im hinteren Teil des Raumes bei 33°C, bei einem typischen Unterschied von 2–3°C zwischen Bühne und hinterem Bereich.

Alles lief soweit gut, bis am zweiten Tag die Klimatisierung ausfiel. Hier war der Anstieg der CO2-Konzentration weit schneller als der Temperaturanstieg. Wenigstens führte dieser Indikator zur frühen Erkennung des Problems und ermöglichte die Reparatur in der Mittagspause. Der nächste Screenshot zeigt das finale Dashboard etwa eine halbe Stunde nach Ende des letzten Talks. Die Spitze von 1400ppm ist ebenso zu erkennen wie der normale Betrieb am Nachmittag.

Screenshot unseres Dashboards für das Luftqualitäts-Monitoring

Der lustige Teil

Natürlich stießen wir auch auf einige Anomalien, die wir gerne mit Ihnen teilen wollen. Was ist  hier passiert? Was wird wohl den enormen Temperaturanstieg zwischen 7:00 und 8:30 Uhr am Morgen ausgelöst haben?

Screenshot des Graphen zur Temperaturübersicht mit der deutlichen Spitze am Mittwochmorgen

Wir standen zunächst selbst vor einem Rätsel, vermuteten aber, dass es mit den morgendlichen Reinigungsarbeiten zu tun haben muss. Bestätigt wurde dies, als wir beobachteten, wie das Personal eine Aufsitz-Scheuersaugmaschine wegräumte…

Wir haben nicht nachgeprüft, ob es sich um eine mit Batterie- oder LPG-Antrieb gehandelt hat. Betrachtet man jedoch den geringen Wirkungsgrad (und die damit verbundene Abwärme) eines LPG-Motors, liegt ein solcher Antrieb nahe. Die Tatsache, dass auch die CO2-Werte zu diesem Zeitpunkt einen ersten Anstieg um 7:00 zeigten, scheinen dies zu bestätigen. 

Eine weitere interessante Erkenntnis lieferte der Luftdruckgraph: Er zeigte für den ersten Tag kontinuierlich fallende Werte, sodass jeder im Team Niederschlag am Abend erwartete – der dann auch kam.

Kalibrierung erforderlich

Hinsichtlich der Präzision der Messungen war nicht alles perfekt: Sie können den CO2-Verlaufsgraphen im obigen Screenshot entnehmen, dass ein Sensor keine Werte unter 530ppm maß, ein anderer ging jedoch bis auf 370ppm herunter. Beide Werte sind nicht sehr plausibel, am frühen Morgen sind 420 bis 430ppm zu erwarten.

Graphs of the two sensors that need to be re-calibrated

In beiden Fällen hätten wir die Sensoren neu kalibrieren müssen. Wahrscheinlichster Grund für die Abweichung dürften Erschütterungen beim Transport gewesen sein. Wenn also trotz richtiger Einstellung der Meereshöhe deutlich falsche Werte ausgelesen werden, machen Sie nicht Sensirion (Hersteller des Sensors) oder Watterott verantwortlich. Im Regelfall liegt die Schuld im zu robustem Handling beim Paketdienst.

Da wir die Zeitreihen nicht unterbrechen wollten, haben wir dieses mal auf die Kalibrierung verzichtet.
 

Fazit und Ausblick

Wir werden bei der nächsten Konferenz mit dem CO2-Monitoring weitermachen und es weiter ausbauen. Dann wahrscheinlich mit zwei Access Points, um auch das Foyer vollständig abzudecken. Die Einrichtung des Monitorings mit einer Handvoll CO2-Ampeln ist ohne automatische Erkennung zwar noch kein Problem, das ändert sich jedoch mit der Anzahl der Ampeln. Daher habe ich begonnen, ein Skript zu erstellen, das Ampeln findet und die REST-API verwendet, um Hosts anzulegen. 

Interesse an der CO2-Ampel im Checkmk Branding?

Selbstverständlich können Sie jederzeit eine CO2-Ampel mit grüner Platine und ohne Checkmk Logo in Watterotts Onlineshop kaufen. Vielleicht sind Sie aber an einer Version mit Checkmk Logo interessiert, wie wir sie auf der Konferenz dabei hatten. Watterott hat noch einige CO2-Ampeln mit grünen Platinen auf Lager, stellt aber möglicherweise für die nächste Auflage auf weiße Platinen um.

Für die Produktionsplanung benötigt Watterott Zahlen. Falls Sie Interesse haben, teilen Sie bitte unverbindlich per E-Mail an co2@checkmk.com mit, wie viele CO2-Ampeln Sie ungefähr bestellen möchten und ob Sie auf einen weißen PCB bestehen, oder grün für Sie in Ordnung ist. Sobald Watterott Bestellungen annimmt, schicken wir Ihnen dann den Shoplink und werden den Blogartikel entsprechend anpassen.