Robins Blog – Technik und Multimedia

ioBroker: USB-Raumluft-Sensor Daten über MQTT übertragen

Update 03.05.2018 Scripterweiterung bei Sensorausfall

Ich besitze seit einigen Jahren den USB-Raumluft-Sensor (amazon-affili), welcher direkt an meinem Raspberry Pi angeschlossen ist. Der Sensor hat folgende Eigenschaften:


Einen zweiten Sensor habe ich an einem zweiten Raspberry Pi angeschlossen, welcher im Büro steht. Hier dient er zur Messung der Luft bei einem eingeschalteten 3d Drucker. Die Übertragung der Daten zur Visualisierung und Bündelung mit FHem habe ich damals mit Fhem2Fhem gemacht. Hierzu wurde der Telnet-Port 7072 benutzt.

Im Zeitalter von MQTT fand ich das aber nicht mehr zeitgemäß. Deshalb habe ich am zweiten Pi die Software überarbeitet, sodass die Daten jetzt direkt über MQTT einlaufen. So ist es kein Problem mehr Raumluftqualitätsdaten (VOC) für Node-Red oder ioBroker abzurufen.


Als Basis benötigt man den USB-Raumluft-Sensor und einen Raspberry-Pi. Ein alter Raspi 1 genügt auch.

Anschließend verwendet man das kompilierte C-Programm, wie ich es hier in meinem Blogbeitrag vom Jahr 2016 beschrieben habe. Es wird dann mit airsensor aufgerufen und gibt den jeweiligen VOC-Wert heraus.

Hierzu muss vorher die Library von Raphael Cohn (Bish-Bosh) installiert werden, die hier zu finden ist.

Als Topic habe ich
/airquality/buero/voc
welcher dann im mqtt-spy später so zu sehen ist.

Damit ständig neue Raumluft-Daten gemessen werden können, habe ich ein Cronjob crontab -e angelegt.
Die Pfade und die Abrufzeiten solltet ihr anpassen. Bei mir wird jede Minute das Script angestossen.

*/1 * * * * /root/bish-bosh/bish-bosh --verbose 2 -- /root/bish-bosh/airsensormqtt

So könnt ihr jetzt mit ioBroker oder Node-Red die Daten abfangen und weiter verarbeiten.

In Fhem sieht dann das Script so aus

defmod airqualityRehau MQTT_DEVICE
attr airqualityRehau IODev MyBroker
attr airqualityRehau room 60_Raumklima
attr airqualityRehau stateFormat transmission-state
attr airqualityRehau subscribeReading_voc /airquality/buero/voc

Update 03.05.2018: Wie bekommt Fhem mit, wenn keine Daten gesendet werden, z. B. zweiter Raspi down oder Sensorausfall?

Wenn ein Event vom Sensor airqualityRehau ausbleibt, sende eine Telegram-Message set user1 message Rehau-Raumluftsensor ausgefallen . Prüfe das alle 600 Sekunden und setze den Watchdog resetwait zurück.
Dieses Script kann man auch für andere Devices nehmen, um zu checken, ob die Sensoren noch senden.

defmod RehauRaumluft_push DOIF ([airqualityRehau])(set user1 message Rehau-Raumluftsensor ausgefallen)
attr RehauRaumluft_push do resetwait
attr RehauRaumluft_push room 91_Funktionen
attr RehauRaumluft_push stateFormat wait_timer
attr RehauRaumluft_push wait 600

Kaufen bei amazon.de: REHAU Raumluftsensor USB Stick

Das könnte Euch auch interessieren:

Die mobile Version verlassen