IKEA VINDRIKTNING in FHEM integrieren

Mit dem Vindriktning (Luftqualitätssensor für PM 2.5) ist man in der Lage sein die Feinstaubkonzentration der Umgebungsluft zu messen. Die Leuchtanzeige an der Vorderseite des Gehäuse gibt Auskunft über Höhe der der Feinstaubkonzentration, wobei die Zustände grün, orange und rot möglich sind. Für die Hausautomatisierung meiner Meinung nach etwas zu wenig. Wie nun die Messdaten dieses Sensors in die Hausautomatisierung einfließen können und worauf man dabei achten muss, zeige ich euch in diesem Beitrag!

Einleitung

Die US-amerikanische Umweltschutzbehörde führte für die Definition des Feinstaub den Particulate Matter (PM)-Standard ein. Eine Kategorie davon lautet PM 2.5, welche dem lungengängigen Feinstaub entspricht. Per Definition ist die Gewichtungsfunktion wie folgt: 100 % Gewichtung < 0,5 µm; 0 % Gewichtung > 3,5 µm; 50 % Gewichtung bei ca. 2,5 µm.
Dieser Feinstaubsensor sollte daher nicht mit der Funktion eines CO2-Sensor von Netatmo oder dem BME680 von Bosch (VOC Sensor) verwechselt werden. Auf den entsprechenden Einsatzort kommt es daher an.
Da der Vindriktning über keine WiFi-Schnittstelle verfügt, erweitern wir ihn um diese und schaffen somit eine Integration in FHEM. Ein MQTT-Broker wird genutzt, damit FHEM die Messdaten abgreifen kann.

Einrichten des MQTT-Brokers auf dem Raspberry Pi

Wenn ihr bereits einen MQTT Broker (Was ist MQTT?) am Laufen habt, dann kann dieses Kapitel übersprungen werden.
In diesem Fall wird das Einrichten des MQTT-Brokers auf eurem Raspberry Pi gezeigt. Dies ist sehr einfach und mit wenigen Befehlen realisiert. Zuvor sollte ein Update des Raspberry Pi Betriebssystem vorgenommen werden.
Der MQTT-Broker wird wie folgt installiert.

sudo apt-get install mosquitto mosquitto-clients

Nachfolgender Befehl ermöglicht es, dass der Broker zum Startup Script hinzugefügt wird, und nach einem Neutstart automatisch startet.

systemctl enable mosquitto.service

Folgende Befehlen können genutzt werden, um den Broker zu stoppen oder zu starten.

sudo systemctl stop mosquitto
sudo systemctl start mosquitto

Anschließend sollte der Raspberry Pi neugestartet werden:

sudo shutdown -r now

Per Default erlaubt der Mosquitto Broker anonyme Verbindungen. Um nun einen Benutzer inkl. Passwort anzulegen, wird nachfolgender Befehl ausgeführt. In diesem Fall wird der Benutzer TestUser angelegt. Anschließend wird man aufgefordert ein Passwort zu hinterlegen.

sudo mosquitto_passwd -c /etc/mosquitto/credentials TestUser

Anschließend muss die Config-Datei um zwei Einträge erweitert werden. Dabei wird die Datei mit dem Editor nano geöffnet. Mit STRG können die Befehl wie etwa Beenden (STRG+X) oder Speichern (STRG+O) ausgeführt werden, welche am Ende des Fensters sichtbar sind.

sudo nano /etc/mosquitto/mosquitto.conf

Folgende Zeilen sind nun zu ergänzen:

allow_anonymous false
password_file /etc/mosquitto/credentials

Editor Nano – Ergänzen der Einträge im config File

Nach dem Speichern der Datei und Beenden des Editors muss der Mosquitto Broker neu gestartet werden:

sudo service mosquitto restart

ESP8266 – Das Herzstück der Erweiterung

Das Herzstück der Erweiterung bildet der Mikrokontroller ESP8266. In meinem Fall habe ich einen ESP-12F verwendet, welcher um den 3.3V Linearregler AMS1117 und ein paar externe Widerstände erweitert wurde. Um das Löten auf ein Minimum zu reduzieren, würde ich auf einen Wemos D1 Mini zurückgreifen, da z.B. ein NodeMCU zu groß ist, um im Gehäuse des Vindriktning Platz zu finden. Für die richtige Verkabelung möchte ich auf folgendes Tutorial verweisen, da dieses auch die benötigte Software beinhaltet: https://github.com/Hypfer/esp8266-vindriktning-particle-sensor
Den Low-Noise Mod habe ich nicht umgesetzt, da die Lüftergeräusche für mich nicht störend waren.
Da die Logik-Pegel des Vindriktning mit 5V zu hoch für den ESP8266 (laut Datenblatt max. 3.6V) sind, habe ich noch einen Spannungsteiler eingelötet, welcher sich nicht in dem Tutorial findet. Wahrscheinlich ist es nicht notwendig, da es offenbar auch ohne geht, aber sicher ist sicher! Die Widerstandswerte sind 1.5k Ohm und 3k Ohm. Die grüne Markierung zeigt das Kabel, welches auf den Pin D2 bei dem Wemos D1 Mini geht.

Spannungsteiler mit 1.5k Ohm und 3k Ohm (orange Markierung), Pad bei P2 ist GND

Testen der neuen Schnittstelle

Nachdem der Vindriktning sich erfolgreich in das eigene W-Lan eingewählt hat, sollte dieser auch mit dem Übermitteln von Daten beginnen. Ob der Vindriktning nun auch wirklich Daten published kann sehr einfach mit dem Tool MQTT-Explorer überprüft werden. Nach der Installation sind die Login-Daten eures MQTT-Brokers einzugeben. In meinem Fall läuft der MQTT-Broker am gleichen Raspberry Pi wie mein FHEM Server. Somit haben der FHEM Server und der MQTT-Broker die gleiche IP-Adresse. Der Port ist per Default 1883. Der entsprechende Benutzer wurde zuvor angelegt, in meinem Fall lautet dieser admin.

MQTT-Explorer, Login

Im Idealfall sollte der Vindriktning schon Daten senden, so wie in meinem Fall. Unter der Bezeichnung Vindriktning-786F53 findet sich der Parameter pm25. Durch Klicken auf das Trend-Symbol (Kreis mit zickzack Linie) erfolgt eine Visualisierung der Messdaten in einem Chart. In eurem Fall wird der Sensor eine leicht andere Bezeichnung haben.

MQTT-Explorer, subscribe to all topics

Integration in FHEM

Um nun die Messdaten auch über FHEM zu empfangen, verwende ich das Modul MQTT2_Client. Die fhem.cfg wird zunächst um folgende Zeilen erweitert.

define MQTT2_Client MQTT2_CLIENT 192.168.1.112:1883
attr MQTT2_Client autocreate simple
attr MQTT2_Client room MQTT
attr MQTT2_Client subscriptions #
attr MQTT2_Client username admin

Im nächsten Schritt muss nun mit set password das korrekt Passwort hinterlegt werden. Der Status sollte sich danach auf opened ändern.

set MQTT2_Client password "EUER PASSWORT

MQTT2_Client

Da das Attribute autocreate auf simple gesetzt wurde, sollten nach einigen Sekunden zwei neue Device angelegt werden.

FileLog und MQTT2_Device

define MQTT2_MQTT2_Client MQTT2_DEVICE MQTT2_Client
attr MQTT2_MQTT2_Client readingList MQTT2_Client:esp8266-vindriktning-particle-sensor/VINDRIKTNING-786F53/state:.* { json2nameValue($EVENT) }
attr MQTT2_MQTT2_Client room MQTT2_DEVICE


define FileLog_MQTT2_MQTT2_Client FileLog ./log/MQTT2_MQTT2_Client-%Y.log MQTT2_MQTT2_Client
attr FileLog_MQTT2_MQTT2_Client logtype text
attr FileLog_MQTT2_MQTT2_Client room MQTT2_DEVICE

Die automatische Namensgebung ist meiner Meinung nach nicht ganz zielführend und sollte nach den eigenen Anforderungen in beiden Fällen geändert werden. In meinem Fall habe ich den Namen auf IKEA_PM25_1 geändert und zusätzlich um nachfolgende Attribute erweitert.

attr IKEA_PM25_1 room MQTT
attr IKEA_PM25_1 stateFormat Partikelkonzent. [ug/m³]: pm25, Partikelkonzent.mav [ug/m³]: pm25.mav
attr IKEA_PM25_1 userReadings pm25.mav {movingAverage("IKEA_PM25_1","pm25",360)}

attr IKEA_PM25_1 event-on-change-reading pm25,pm25.mav

Im Anschluss habe ich autocreate des Device MQTT2_Client wieder deaktiviert, dazu muss folgendes Attribute verändert werden.

attr MQTT2_Client autocreate no

Messdaten Visualisierung und Auswertung

Für das Visualisierung der Messdaten verwende ich wie üblich FHEM Tablet UI. Voraussetzung ist natürlich, dass die Messdaten in einem Log-File gespeichert werden.
Am Anfang des Projektes habe ich mir die Frage gestellt: Was macht der Vindriktning eigentlich genau und wofür kann ich diesen einsetzen? In den zwei nachfolgenden Kapiteln versuche ich anhand von verschiedenen Szenarien Antworten auf diese zwei Fragen zu finden.

Wie eingangs schon erwähnt, besitzt der Vindriktning eine Anzeige, welche sich in Abhängigkeit der Feinstaubkonzentration ändert. Nachfolgende Werte sind für die weitere Betrachtung besonders wichtig:

  • Grün: 0 – 35 μg/m³
  • Orange: 36 – 85 μg/m³
  • Rot: 86+ μg/m³

Vindriktning vs. BME680 – Arbeitszimmer

Im ersten Szenario lasse ich den Vindriktning gegen den BME680 antreten. Beide Sensoren sind nebeneinander am Schreibtisch in meinem Arbeitszimmer aufgestellt. Ereignisse, wie etwa Lüften oder Kochen sind in dem Graphen unterhalb eingezeichnet und fortlaufend nummeriert.

Vergleich BME680 vs. IKEA PM2.5 inkl. kritische Ereignisse im Arbeitszimmer

Folgendes Ereignisse konnte ich bewusst wahrnehmen:

  • Lüften um kurz nach 06:00 – Ereignis 1
  • Lüften um kurz nach 11:00 – Ereignis 2
  • Lüften um kurz nach 13:00 – Ereignis 3
  • Zwischen Ereignis 2 und Ereignis 3 fand Kochen des Mittagessen statt
  • Lüften um kurz vor 17:00 – Ereignis 4
  • Lüften um kurz vor 21:00 – Ereignis 5

In keinem Fall, außer bei Ereignis 6, war die Konzentration über 35μg/m³ (siehe rote Linie). Das hat zur Folge, dass die Leuchtanzeige des Vindriktning immer auf grün blieb. Von 07:00 bis ca. 17:00 wurde im Arbeitszimmer gearbeitet. Die Luftqualität, gemessen an den flüchtigen organischen Verbindungen (VOC), welcher der BME680 messen kann, war ständigen Schwankungen ausgesetzt (siehe grüne Linie). Während sich die gemessen Feinstaubbelastung über den gesamten Arbeitstag kaum verändert hat (siehe rote Linie). Das Ereignis 6 war für mich nicht erklärbar.
Somit ist der Vindriktning alleine nicht ausreichend, wenn es darum geht Personen in der unmittelbaren Umgebung darüber zu informieren, dass sich die Luftqualität verschlechtert hat. Entsprechende Aktionen, wie etwa Aufforderung zum Lüften, können dadurch nicht gesetzt werden.

Vindriktning vs. BME680 – Küche

Im nächsten Szenario habe ich den Vindriktning gemeinsam mit dem BME680 in der Küche aufgestellt.

Vergleich BME680 vs. IKEA PM2.5 inkl. kritische Ereignisse in der Küche

Folgendes Ereignisse konnte ich bewusst wahrnehmen:

  • Frühstück zubereiten, Personen halten sich in der Küche auf um ca. 09:30 – Ereignis 1
  • Beginn Kochen um ca. 11:15 – Ereignis 2
  • Lüften um 12:00 – Ereignis 3
  • Lüften um 16:15 – Ereignis 4
  • Beginn Kochen & Backen 18:00 – Ereignis 5
  • Lüften um 19:15 – Ereignis 6

Zwischen Ereignis 1 und 2 halten sich Personen in der Küche auf, jedoch hat dies für die gemessene Feinstaubkonzentration kaum Auswirkungen (siehe rote Linie). Während der BME680 einen leichten Anstieg der flüchtigen organischen Verbindungen detektierte.
Ereignis 2 zeigt einen klaren Anstieg, sowohl bei der Feinstaubkonzentration als auch bei den VOC.
Lüften bewirkt bei beiden Sensoren ein Reduktion der Höhe der Messwerte (siehe Ereignis 3 und 4).
Der Vindriktning zeigt nur in zwei Fällen eine erhöhte Feinstaubkonzentration (> 35 μg/m³) an. Somit ist der Vindriktning auch hier alleine nicht ausreichend, wenn es darum geht Personen in der unmittelbaren Umgebung darüber zu informieren, dass sich die Luftqualität verschlechtert.

Messdaten Visualisierung FHEM Tablet Ui

Die Visualisierung der Messdaten mittels Chart über FHEM Tablet Ui wird wie folgt realisiert.

<li data-row="1" data-col="1" data-sizex="8" data-sizey="3">
 <header>
  <h3>Luftqualität - Heute</h3>
 </header>
 <div data-type="chart"
  data-logdevice='["FileLog_IKEA_PM25_1","LOG_bme680_webserver_test_1"]'
  data-columnspec='["4:pm25.mav","4:Static_IAQ"]'  
  data-style='["ftui l2", "ftui l4"]'
  data-ptype='["lines","lines"]'
  data-uaxis='["primary","secondary"]'
  data-legend='["AZ, IKEA PM2.5","AZ, Bosch BME680"]'
  data-yunit="ug/m³"
  data-ytext="PM2.5"
  data-minvalue="0"
  data-maxvalue="auto"                        
  data-height="250"
  data-yticks="auto"
  data-minvalue_sec="0"
  data-maxvalue_sec="auto"
  data-nofulldays="true"
  data-daysago_start="0"
  data-daysago_end="-1"
  data-scrollgroup="1"
  data-xticks="auto"                              
  data-showlegend="true"
  data-yunit_sec=""
  data-ytext_sec="IAQ">
 </div>
</li>

Zusammenfassung

Dank der guten Vorlage auf github ist die Erweiterung des Vindriktning um eine Wifi-Schnittstelle sehr einfach realisiert. Die Integration in FHEM durch das entsprechende MQTT Modul ist schnell erledigt und die ersten Messergebnisse sind schnell aufgezeichnet.
Meine zwei Szenarien haben gezeigt, dass die Feinstaubkonzentration in vielen Fällen nicht mit der Konzentration der VOC übereinstimmt. Somit ist der Vindriktning alleine nicht ausreichend, wenn es darum geht Personen in der unmittelbaren Umgebung darüber zu informieren, dass sich die Luftqualität verschlechtert hat. Entsprechende Aktionen, wie etwa Aufforderung zum Lüften, können dadurch nicht gesetzt werden. In meiner Hausautomatisierung stellt der Vindriktning somit keinen Ersatz für bereits etablierte Sensoren dar, wie etwa den BME680 oder den CO2 Sensor von Netatmo. Er ist viel mehr als Add-On zu sehen, welcher weitere hilfreiche Messdaten liefert.

About Michael Aicher

Check Also

Automatisierte Hühnerklappe – Part #3

Zum Schluss wird nur noch die Software benötigt, damit die Hühnerklappe sich auch wirklich bewegt. …

2 comments

  1. Leider muß der Sensor regelmäßig geöffnet und gesäubert werden, da er sonst ständig steigende Staubwerte anzeigt:

    https://up.picr.de/42932161gb.jpg

    Bis zum 11.12.2021 stand der Sensor unglücklich plaziert in der Nähe der Heitung, was durch den Luftzug zu hohen Anzeigen führte. Als er dann später in ruhiger Luft stand, stiegen die ab da abgefallenen Werte wieder kontinuierlich an ohne daß die Wohnung schmutziger geworden wäre.

    Ein Versuch am 29.01.2022, den Sensor von Außen mit Druckluft auszublasen führe zu einem gegenteiligen Ergebnis. Der Sensor zeigte ab da nur noch über 100 µg/m³ an. Erst eine komplette Demontage und das Ausblasen von Sensor und dessen Gitter am Abend des 29. senkte die Anzeige wieder auf die anfänglichen 5 µg/m³ ab.

    Wie oft der Sensor diese Art Demontage und Reinigung aushält steht allerdings in den Sternen.

    • Vielen Dank für deinen Kommentar.
      Ich habe den Sensor aus Interesse heute geöffnet und konnte keinen Staub darin entdecken. Auch das Lüfterrad selbst war staubfrei.
      Auch einen kontinuierlichen Anstieg über Zeit konnte ich auch nicht feststellen (siehe Bild). Die Ausschläge nach oben, entstehen immer dann, wenn in der Küche gekocht wird. Nach dem Lüften beruhigt sich die Feinstaubbelastung aber wieder schnell.
      Vielleicht weißt der Sensor schon immer einen Defekt auf. Mit Druckluft würde ich generell vorsichtig sein, da diese Partikel in Bereiche bringt, wo man diese gar nicht haben möchte. Im schlimmsten Fall kann dies zu einem Defekt führen, da der Sensor evt. dafür nicht ausgelegt ist. Vielleicht würde ein grober Vorfilter helfen!
      2 Monatsverlauf Ikea PM2.5

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.