Vor Kurzem bin ich über die Webseite luftdaten.info gestolpert auf der es eine einfache Bauanleitung für einen Feinstaubsensor gibt. Ich habe kurzerhand alle Teile über AliExpress bestellt und einen solchen Sensor zusammengebastelt. Als Gehäuse habe ich jedoch nicht auf die Marley-Silent-Bögen zurückgegriffen, sondern den 3D-Drucker angeworfen und dieses Gehäuse gedruckt. Das faszinierende am Luftdatenprojekt ist, dass diese Sensoren mit wenigen Handgriffen Teil eines globalen Netzwerks hunderter anderer Sensoren werden können. Die so aggregierten Daten können dann grafisch sehr anschaulich auf einer Karte dargestellt werden.

Teileliste

Bauteil Bauteilkategorie
ESP8266 Mikrokontroller
Feinstaubsensor SDS011 Sensor
DHT22 Sensor Sensor

Der DHT22 Sensor, kann auch durch einen DHT11 ersetzt werden. Dieser liefert Temperatur- und Luftfeuchtigkeitsangaben jedoch nur als ganzzahligen Integer zurück. Wer es genauer mag, sollte auf einen DHT22 zurückgreifen.

Feinstaubwerte

Die gelieferten Feinstaubwerte beschränken sich auf die Werte für PM10 und PM2.5. Diese sind laut Umweltbundesamt wie folgt definiert:

PM10 kann beim Menschen in die Nasenhöhle, PM2,5 bis in die Bronchien und Lungenbläschen und ultrafeine Partikel bis in das Lungengewebe und sogar in den Blutkreislauf eindringen. Je nach Größe und Eindringtiefe der Teilchen sind die gesundheitlichen Wirkungen von Feinstaub verschieden. Sie reichen von Schleimhautreizungen und lokalen Entzündungen in der Luftröhre und den Bronchien oder den Lungenalveolen bis zu verstärkter Plaquebildung in den Blutgefäßen, einer erhöhten Thromboseneigung oder Veränderungen der Regulierungsfunktion des vegetativen Nervensystems (Herzfrequenzvariabilität).

Zu den geltenden Grenzwerten sind auf der Seite des Umweltbundesamtes folgende Aussagen zu finden:

Zum Schutz der menschlichen Gesundheit gelten seit dem 1. Januar 2005 europaweit Grenzwerte für die Feinstaubfraktion PM10. Der Tagesgrenzwert beträgt 50 µg/m3 und darf nicht öfter als 35mal im Jahr überschritten werden. Der zulässige Jahresmittelwert beträgt 40 µg/m3. Für die noch kleineren Partikel PM2,5 gilt seit 2008 europaweit ein Zielwert von 25 µg/m3 im Jahresmittel, der bereits seit dem 1. Januar 2010 eingehalten werden soll. Seit 1. Januar 2015 ist dieser Wert verbindlich einzuhalten.

Integration in Homeassistant

Für die Integration der Sensorwerte steht für Homeassistant eine Custom Component namens Local Luftdaten zur Verfügung. Diese kann über HACS installiert und muss anschließend konfiguriert werden.

Konfiguration der Custom Component

Die Custom Component verlangt eine IP-Adresse des Feinstaubsensors, ein Scan Interval zur Häufigkeit der Datenabfrage und eine Liste der der Werte, die Ausgelesen werden sollen. Die IP-Adresse sollte statisch vergeben werden, damit sie sich nicht ändert:

sensor:
  - platform: local_luftdaten
    host: 192.168.0.123         # IP Adresse hier eintragen
    scan_interval: 180          # Scan alle 3 Minuten
    name: Feinstaubsensor
    monitored_conditions:
      - SDS_P1                  # Wert für PM10
      - SDS_P2                  # Wert für PM2.5
      - temperature
      - humidity
      - signal                  # Wert für WiFi-Signalstärke

Lovelace UI

Zur Integration in die Lovelace UI empfehle ich die vielseitige Mini-Graph-Card. Im Verbund mit einem Vertical-Stack kann folgendes dargestellt werden:

Lovelace UI zur Anzeige der Feinstaubwerte.

Der Code zur Darstellung der Lovelace Card:

type: vertical-stack
cards:
  - type: horizontal-stack
    cards:
      - type: custom:mini-graph-card
        animate: true
        color_thresholds:
          - color: '#f08080'
            value: 50
          - color: '#ff9966'
            value: 40
          - color: '#90ee90'
            value: 30
        entities:
          - entity: sensor.feinstaubsensor_pm10
            index: 0
        hours_to_show: 6
        name: PM10 | ◷ 6h
        points_per_hour: 6
        show:
          fill: fade
          graph: bar
          icon: false
      - type: custom:mini-graph-card  
        animate: true
        color_thresholds:
          - color: '#f08080'
            value: 25
          - color: '#ff9966'
            value: 15
          - color: '#90ee90'
            value: 10
        entities:
          - entity: sensor.feinstaubsensor_pm2_5
            index: 0
        hours_to_show: 6
        name: PM2.5 | ◷ 6h
        points_per_hour: 6
        show:
          fill: fade
          graph: bar
          icon: false
  - type: horizontal-stack
    cards:
      - type: custom:mini-graph-card
        animate: true
        color_thresholds:
          - color: '#f08080'
            value: 23
          - color: '#90ee90'
            value: 20
          - color: '#00bfff'
            value: 1
        entities:
          - entity: sensor.feinstaubsensor_temperature
            index: 0
        hours_to_show: 24
        name: Temperatur | ◷24h
        points_per_hour: 2
        show:
          icon: false
      - type: custom:mini-graph-card
        animate: true
        color_thresholds:
          - color: '#00ffff'
            value: 60
          - color: '#00bfff'
            value: 40
          - color: '#00ffff'
            value: 1
        entities:
          - entity: sensor.feinstaubsensor_humidity
            index: 0
        hours_to_show: 24
        name: Luftfeuchte | ◷24h
        points_per_hour: 2
        show:
          fill: fade
          icon: false