Kontaktieren Sie mich unter info@tiemerding.com

Feinstaubsensor für HomeKit (Tutorial)

Feinstaubsensor für HomeKit (Tutorial)
Im Rahmen der aktuellen Debatten um Dieselabgase, Feinstaub und co. bin ich im Netz auf das Projekt luftdaten.info des OK Lab Stuttgart gestoßen. luftdaten.info ist ein sog. Citizen Science-Projekt, mit dem Ziel die Feinstaubbelastung in Deutschland unabhängig durch Freiwillige zu messen, zu visualisieren, und so Maßnahmen für eine bessere Luftqualität zu ergreifen.

Jeder Interessierte kann für ca. 30€ in wenigen Schritten einen smarten Sensor bauen und ihn an das Projekt anbinden. Die Messwerte werden dann aufbereitet auf einer Deutschlandkarte angezeigt.  Die Messungen sind keine Konkurrenz zu offiziellen behördlichen Messungen. Sie sind aber vergleichbar genau1 und zeitlich viel höher aufgelöst. So können sie Handlungsempfehlungen geben, ob man zum Beispiel Spazierengehen sollte oder besser nicht, weil die Feinstaubkonzentration zu hoch und somit gesundheitsgefährdend ist.

Ich habe mir daher ebenfalls vorgenommen einen solchen Sensor zu bauen und ihn zusätzlich in mein Smart Home Setup zu integrieren. Als Vorbedingung wird lediglich ein Raspberry Pi* mit einer laufenden Installation von Homebridge benötigt.  Homebridge ist eine Open-Source-Lösung um inkompatible Geräte über einen Raspberry Pi mit HomeKit zu verbinden. Alle weiteren Schritte beschreibe ich im Folgenden im Detail.

Feinstaubsensor bauen

Bauteile

Der Feinstaubsensor von luftdaten.info, auch Airrohr genannt, besteht aus wenigen Bauteilen, welche im Original einfach ohne Löten zusammengebaut werden können. Zu den Komponenten gehören u.a. ein Nova Fitness SDS011 Feinstaubsensor*, ein DHT22 Temperatur- und Luftfeuchtigkeitssensor, ein ESP8266 Mini-Computer mit WLAN sowie einige Käbelchen. Für die nötige Teileliste sowie den groben Zusammenbau habe ich mich zu großen Teilen an der sehr gute Bauanleitung von luftdaten.info orientiert.

Das schwierigste / langwierigste am Prozess ist sicher die Bestellung der Bauteile aus China via AliExpress, eine Art chinesisches Amazon. Nach ca. 4 Wochen sollten diese aber spätestens, sofern man alles richtig gemacht hat, zollfrei im Briefkasten landen.

Zusammenbau und 3D-gedrucktes Gehäuse

Ich habe mich dazu entschieden den Sensor nicht in Abflussrohren zu verbauen, wie es im Original der Fall ist. Diese Rohre sind zwar preiswert und leicht erhältlich, sehen dafür aber nicht sehr ansprechend aus. Stattdessen habe ich einen handelsüblichen, wetterfeste Verteilerkasten (OBO Bettermann T60*) mit einem 3D-gedruckten Rahmen von Thingiverse versehen und den Sensor dort verbaut. Im Gegensatz zur Originalanleitung muss man hier jedoch löten, da die Platzverhältnisse (sehr) begrenzt sind.

Firmware einspielen und Konfiguration

Nachdem die Software auf den ESP8266 aufgespielt wurde2, kann mit der Einrichtung begonnen werden. Man verbindet sich hierzu mit dem vom Airrohr eröffneten WLAN. Dieses hat den Namen “Feinstaubsensor-<SENSOR_ID>”, wobei <SENSOR_ID> die (eindeutige) Seriennummer den ESP8266 ist. Nach der Eingabe der Zugangsdaten des heimischen WLANs und einem Neustart des Mini-Computers beginnen die Messungen.

Die Messwerte sind sowohl auf der lokalen Webseite des Airrohr (feinstaubsensor-<SENSOR_ID>.local) als auch online zu finden:

  • Feinstaub / Luftqualität: https://www.madavi.de/sensor/graph.php?sensor=esp8266-<SENSOR_ID>-sds011
  • Temperatur- und Luftfeuchtigkeit: https://www.madavi.de/sensor/graph.php?sensor=esp8266-<SENSOR_ID>-dht

Wer möchte kann seinen Sensor nun noch bei luftdaten.info anmelden. Nach einer kurzen Zeit tauchen die Messwerte dann auf der oben erwähnten Deutschlandkarte auf. Dies ist aber für die Integration in Homekit nicht zwingend notwendig.

Airrohr in Homebridge einbinden

Für die Einbindung des Airrohrs in Homebridge kann das Plugin homebridge-airrohr von Thomas Kollbach genutzt werden. Die Installation des homebridge-airrohr Plugins läuft wie gewohnt.

1
$ sudo npm install -g homebridge-airrohr

Im Anschluss kann die Konfiguration von Homebridge config.json erweitert werden. name kann frei gewählt werden. Unter json_data und sensor_id wird an den entsprechenden Stellen jeweils die eigene <SENSOR_ID> eingetragen. Ich empfehle das update_interval_seconds, d.h. den zeitliche Abstand indem Sensordaten abgefragt werden, auf mindestens 145 Sekunden zu setzen. Dies entspricht der (standardmäßigen) Länge eines Messintervalls des Sensors. Ein häufigeres Abfragen ist nicht sinnvoll.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
  "accessories": [
    {
      "name": "AirRohr",
      "accessory": "airrohr",
      "json_data": "http://feinstaubsensor-<SENSOR_ID>.local/data.json",
      "sensor_id": "<SENSOR_ID>",
      "update_interval_seconds": 180
    }
  ]
}

Im Anschluss wird homebridge neu gestartet. Die Einrichtung von homebridge-airrohr war in relativ kurzer Zeit erledigt.

Airrohr in der Home App

Nach der Einrichtung taucht das Airrohr mit Luftqualität sowie aktueller Temperatur und Luftqualität auf.

Feinstaubsensor ohne Basteln

Wer kein/e Interesse, Lust oder Zeit dazu hat einen eigenen Feinstaubsensor zu basteln, kann das homebridge-airrohr Plugin auch mit den bei luftdaten.info eingetragenen, öffentlichen Sensoren nutzen. Hierzu sucht man sich auf der Karte einen Sensor sowohl für Luftqualität (SDS) sowie Temperatur und Luftqualität (DHT) heraus und notiert sich deren <SENSOR_ID>s:

  • Feinstaub / Luftqualität: https://www.madavi.de/sensor/feinstaub-map-dht
  • Temperatur- und Luftfeuchtigkeit: https://www.madavi.de/sensor/feinstaub-map-sds

Im Anschluss kann die Konfiguration von Homebridge config.json erweitert werden. Der Parameter json_data wird durch public_temperature_json_data und public_airquality_json_data ersetzt. An den entsprechenden Stellen werden die jeweilige <SENSOR_ID>s eingetragen. Für die Parameter nameupdate_interval_seconds und sensor_id gilt selbiges wie zuvor. Wichtig ist hier jeweils der Schrägstrich am Ende der URLs — nicht vergessen. Ansonsten kommt es zu Fehlermeldungen.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "accessories": [
    {
      "name": "AirRohr",
      "accessory": "airrohr",
      "public_temperature_json_data": "http://api.luftdaten.info/v1/sensor/<SENSOR_ID_DHT>/",
      "public_airquality_json_data": "http://api.luftdaten.info/v1/sensor/<SENSOR_ID_SDS>/",
      "sensor_id": "<SENSOR_ID_SDS>",
      "update_interval_seconds": 180
    }
  ]
}

Im Anschluss wird homebridge neu gestartet. Das (externe) Airrohr taucht mit Luftqualität sowie aktueller Temperatur und Luftqualität wie bekannt in HomeKit auf.

Luftqualität in Innenräumen

Möchte man zusätzlich die Luftqualität innerhalb der eigenen vier Wände ermitteln, bietet sich der Eve Room von Elgato* an. Dieser Sensor misst jedoch keinen Feinstaub, sondern flüchtige Kohlenwasserstoffe (VOC). Diese Kohlenwasserstoffe entstehen z.B. durch Pflanzenstoffwechsel, Reinigungsmittel oder auch Tabakrauch. Der Eve Room ist leider nicht gerade günstig. Daher schaue ich mir aktuell den Sensor BME680 von Bosch an, welcher auch im Eve Room verbaut ist. Dieser lässt sich nach ersten Versuchen per Raspberry Pi* in HomeKit integrieren. Hierzu vielleicht später mehr.

 

Die mit Sternchen (*) gekennzeichneten Verweise sind sogenannte Provision-Links. Wenn du auf so einen Link klickst und darüber einkaufst, bekomme ich von deinem Einkauf eine Provision. Für dich verändert sich der Preis nicht.

  1. gemessen vom LUBW Landesanstalt für Umwelt, Messungen und Naturschutz Baden-Württemberg
  2. im Idealfall passiert dies bevor die Bauteile im Gehäuse verbaut werden