Technik

Clair Berlin entwickelt eine offene Plattform für vernetzte Sensoren mit Schwerpunkt auf CO2-Messwerten. Die Clair-Plattform ist Freie Software. Derzeit nutzen wir zur Anbindung der Sensoren die für Messdaten optimierte LoRaWAN Funktechnologie. Aber die Clair-Plattform legen wir so aus, dass über offene Schnittstellen beliebige Sensortypen und Sensor-Netzwerke angebunden werden können.

Sytemüberblick

Das Clair-Netzwerk besteht aus den in öffentlich zugänglichen Räumen installierten Sensoren, einem Kommunikationsnetzwerk, der Clair-Plattform, sowie verschiedenen Client-Anwendungen. Die folgende Abbildung gibt einen Systemüberblick.

Systemschaubild Clair-Netzwerk

Sensoren und Sensor-Netzwerk

CO2-Sensoren messen die CO2-Konzentration in mehr oder weniger regelmäßigen Abständen. Zusammen mit ggf. weiteren Messgrößen wie Temperatur oder Luftfeuchtigkeit entsteht ein Sample. Jeder Sensor schickt seine gemessenen Samples regelmäßig an die Clair Plattform. Die Kommunikation erfolgt typischerweise drahtlos bis zu einem Gateway und von dort weiter über das Internet.

Kommerziell erhältliche Sensoren nutzen verschiedene Funknetzwerke: Die auf Messwerte spezialisierten Technologien LoRaWAN und SigFox, das vom Mobilfunk abgeleitete NB-IoT, aber auch bekannte Consumer-Funknetzwerke wie WiFi oder Bluetooth. Die auf Messwert- und Internet-of-Things- (IoT) Kommunikation spezialisierten Technologien bieten größere Reichweiten und geringeren Energieverbrauch. Nutzer müssen hier zumeist keine eigenen Gateways aufstellen, und die Sensoren können über Jahre hinweg mit einem Satz Batterien betrieben werden. Allerdings ist die zulässige Datenrate sehr niedrig, so dass nur wenige Samples pro Stunde aufgenommen und übertragen werden dürfen.

In der ersten Ausbaustufe des Clair-Netzwerks setzen wir auf LoRaWAN, da diese Funktechnologie die Grundlage ist des freien, durch eine offene Community betriebenen The Things Network. Bei Bedarf und Interesse binden wir aber gerne weitere Sensornetzwerke und Sensortypen ein.

Wer selbst basteln möchte, findet hier eine Selbstbauanleitung für unseren Clairchen-Prototyp.

Clair Plattform

Für Sensoren, die ins Clair-Netzwerk eingebunden werden sollen, konfigurieren wir eine Verbindung zu einem bestimmten Endpunkt im Things Network. Dieser leitet die Messdaten zu einer passenden TTN Anwendung weiter, die erste Anwendung in der Verarbeitungskette der Clair Plattform.

Eine Übersicht der Clair-Plattform zeigt die folgende Abbildung. Die Clair Plattform

Technisch gesehen besteht die Plattform aus mehreren Anwendungen, welche wir als Docker Container verpacken und über Docker Swarm orchestrieren.

Die Forwarder empfangen Messdaten eines bestimmten Sensortyps aus dem Things Network, entschlüsseln und decodieren diese und leiten sie weiter an die ingestair genannte Anwendung, welche die Daten aufnimmt und in der zentralen Datenbank speichert.

Wenn neue Sensormodelle oder ein neues Funknetzwerk angebunden werden sollen, welche Daten über IP-kompatible Protokolle bereitstellen, müssen wir lediglich einen passenden neuen Forwarder schreiben; der Rest der Plattform ändert sich nicht.

Kern des Systems ist der Clair Server, intern managair genannt, der eine REST-Schnittstelle bereitstellt. Diese REST-Schnittstelle steht allen Client-Anwendungen offen, um Messdaten zu beziehen und Sensoren zu verwalten.

Datenmodell des Clair-Servers

Die Clair Plattform bildet real existierende Entitäten ab:

Dieses Datenmodell ist in der folgenden Abbildung in vereinfachter Weise als Entity-Relationship-Diagramm dargestellt.

Clair Berlin Entity-Relationship-Diagramm

Client-Anwendungen

Der Zugriff auf die Clair Plattform erfolgt grundsätzlich über die REST-Schnittstelle des Clair Servers. Je nach Nutzer sehen wir verschiedene Client-Anwendungen vor:

Quellcode

Der gesamte Quellcode der Clair Plattform ist in einzelnen Repositorys der Clair Berlin Organisation auf GitHub verfügbar. Pull Requests sind willkommen. Den Kern des Systems bilden die folgenden Repositories:

Mitarbeit und Nutzung der Clair-Plattform

Clair Berlin ist eine nichtkommerzielle Initiative; sämtliche oben beschriebenen Assets liegen im Quellcode vor und können durch Dritte genutzt werden. Wenn ihr mitarbeiten möchtet, so ist dies in allen Fachgebieten möglich: Entwicklung, Design, Kommunikation etc.

Die Clair REST-Schnittstelle ist komplett dokumentiert und folgt der JSON:API-Spezifikation, so dass ihr auch einfach eigene Client-Anwendungen entwickeln könnt.

Wir denken die Clair Plattform regional, und betreiben derzeit die erste Instanz in Berlin. Wenn ihr in einer anderen Region ebenfalls ein Clair Netzwerk aufbauen möchtet, so setzt ihr dazu am besten jeweils eine neue Instanz der Clair Plattform auf. Dabei unterstützen wir euch gerne!