Der Bosch Sensor BME680 ist der “große Bruder” des BME280.
Die Palette “node-red-contrib-bme680-rpi” stellt einen Node BME680 bereit, der den Sensor über I2C adressiert (bis zu zwei Sensoren pro I2C Bus) und mit sinnvollen Messparameter initialisiert.
Neben Temperatur, Luftdruck und Luftfeuchtigkeit ermittelt er auch die Konzentration von VOCs (Volatil Organic Compounds) und liefert einen Widerstandswert in Ohm. Dieser kann zur Berechnung der Luftqualität (Index of Air Quality, IAQ) herangezogen werden können. Der Wert direkt liefert leider keine zuverlässigen Informationen.
Bosch stellt zur Berechnung des IAQ eine C++ Library (BESC) bereit, die den Lizenz Bedingungen von Bosch unterliegt. Bosch macht leider aus den Algorithmen darin ein Geheimnis. Aber es gibt öffentliche Quellen, die einen (einfachen) Algorithmus zur berechnung des IAQ beschreiben. 2 von diesen sind hier als Funktionen implementiert. Die Details hierzu finden sich in den Kommentaren in der jeweiligen Funktion. Mir gefällt die 2 besser, sie berücksichtigt auch die Temperatur und die Luftfeuchtigkeit in die Berechnung ein. Letztlich ist es aber etwas Geschmacksache, näherungsweise liefern beide Algorithmen sinnvoll Ergebnisse. Ergebnisse sind:
- Air Quality (percent)
- Index of Airquality (1-500)
- Level of Air Quality nach Bosch (1-7)
- Air Quality (Text nach Level)
- Action (Text nach Level)
Insbesondere der „Level“ eignet sich gut um bspw. die Lüftung anzuschmeißen
Die Funktion „Taupunkt“ ist von Arno aus dem Blog zum BME280 übernommen. Details dazu hier: BME280 und Taupunkt. (Nur ein Eingangswert hat einen etwas anderen Namen in der BME680 Implementierung.) Ergänzt habe ich noch die Berechnung der Feuchtkugeltemperatur bzw. Kühlgrenztemperatur. Steigt diese über 28°C bzw. 30°C kann der menschliche Körper seine Temperatur nichtmehr über Verdunstung regeln.
Die Funktionen unterstützen mehrere Sensoren, die Ergebnisse können durch Topic via Switch geroutet werden.
Ich hoffe, das hilf jemandem weiter
Lutz
BME680.json (39.6 KB)