1. Motivation
Die Motivation für die Entwicklung des AirSniffer waren die vielen Diskussionen zur Luftqualität in Innenstädten. Für mich persönlich ist aber weniger interessant, wie die Luftqualität draußen auf der Straße ist, sondern viel wichtiger ist mir die Luftqualität in meinen Innenräumen bzw. meiner nahen Umgebung. Gerade weil ich mich dort im Gegensatz zur Straße besonders viele Stunden aufhalte. Natürlich gibt es heute schon für die Luftüberwachung verschiedene Messgeräte, aber alle messen eben nur und warnen ggf. bei zu schlechter Luftqualität. Die wichtigen Aktionen wie Fenster öffnen und Lüftung einschalten sind nicht enthalten. Deshalb ist die Integration eines Luftgütemessers in das Smarthome mit den vielen abgestuften Steuerungs- und Warnmöglichkeiten von besonderem Interesse. Gerade in Zeiten von Corona ist die Information über die Luftqualität von besonderer Bedeutung für die Gesundheitsvorsorge/Lüftung in geschlossenen Räumen.
Gerade in Zeiten von Corona / COVID-19 ist die Information über die Luftqualität von besonderer Bedeutung für die Gesundheitsvorsorge/Lüftung in geschlossenen Räumen. Im Gegensatz zu reinen CO2-Sensoren auf Infrarotbasis scheint insbesondere der hier verwendete Sensor Bosch BME680 die menschlichen Atemgase besonders gut zu detektieren. Deshalb kann mit dem hier vorgestellten Modul in Verbindung mit anderen Smarthome-Komponenten eine Belüftungssteuerung für Wohnräume einen wertvollen Beitrag zur Minderung des Ansteckungsrisikos leisten. Hier mehr zu diesem Thema.
2. Das kann der AirSniffer
Der AirSniffer ist ein weiteres sehr leistungsfähiges Modul einer Reihe von Sensor- und Aktor-Modulen, die hauptsächlich zur Erweiterung und Ergänzung der Hausautomation mit der Homematic konzipiert sind. Diese Module sind allesamt Funkmodule , die das in nahezu jedem Haushalt vorhandene gesicherte WLAN-Funknetz verwenden, um mit der Homematic-CCU oder anderen Smarthome-Systemen zu kommunizieren. Im AirSniffer sind modernste intelligente Sensoren integriert, die das Modul zu einer leistungsfähigen Raumsonde für alle Räume im Haus macht. Damit sind eine Vielzahl von Automatisierungsaufgaben im Haus mit der Homematic aber natürlich auch mit anderen Smarthome-Systemen möglich.
Für die Heizung- und Klimasteuerung
- Messung der Lufttemperatur
- Messung der relativen und absoluten Feuchte
- Messung der „Behaglichkeit“
- Messung der Tautemperatur zur Erkennung von Schimmelbildung
- Messung des Luftdrucks mit Trendberechnung zur Wettervorhersage
Für die hochwertige Überwachung der Raumluftqualität
- Messung des Luftqualtätsindex IAQ qualitativ (sehr gut bis ungenügend)
- Messung des Luftqualitätsindex quantitativ (Wert von 0 bis 500)
- Messung CO2-Equivalent oder optional CO2 mit NDIR-Sensor MH-Z19
- Feinstaub-Konzentration verschiedener Partikelgrößen PM1.0, PM2.5 und PM10
- Ableitung bzw. Berechnung Luftqualitätsindex aus den Partikel-Konzentrationen
Sonstige Funktionalitäten
- Einbindung ins Heimnetz über WLAN
- komfortable Eingabe der WLAN-Zugangsdaten mit Browser
- Einfache Update-Möglichkeiten über integrierte Webseite
- Ampelanzeige der Luftqualität
- einfache Integration in das Homematic-System
- JSON-Datenausgabe an bel. Server im Heimnetz
Man muß aber bei dem großen Leistungsumfang auch die Grenzen der hier verwendeten Sensoren aufzeigen: Insbesondere Gassensoren sind eher qualitative Sensoren, mit denen man sehr gut Verschlechterungen gegenüber Frischluft auch quantitativ aufzeigen kann, aber die absoluten Werte sind mit „Vorsicht zu genießen“. Eigentlich müßte man diese Sensoren sowohl mit Frischluft als auch mit einem Eichgas kalibrieren, aber das kann man im Hobbybereich nicht bezahlen. Zusätzlich wäre diese Eichung regelmäßig zu wiederholen, weil diese Sensoren altern bzw. mit der Zeit sich verändern. Für die qualitative Bewertung der Raumluftqualität und Ableitung von Lüftungsempfehlungen im Smarthome reichen diese Sensoren aber allemal aus . Man muß sich eben nur dieser begrenzten Eigenschaften bewusst sein!
Die Datenübertragung des AirSniffer erfolgt mit dem hauseigenen WLAN. Die Datenübertragung zur Homematic arbeitet völlig automatisch im Hintergrund, indem die Daten kontinuierlich auf entsprechende CCU-Systemvariablen abgebildet werden. Für die Verwendung in Verbindung mit ioBbroker oder anderen Hausautomationssystemen kann der AirSniffer anstatt zur CCU auch JSON Daten an eine programmierbare Serveradresse im Heimnetz versenden. Und natürlich kann man den AirSniffer auch ganz ohne Hausautomation verwenden: dafür hat das Modul seine eigene Webseite, womit die Messdaten im Heimnetz mit jedem üblichen Browser einfach dargestellt werden können. So hat man die aktuellen Zustandsdaten des Wohnraumes jederzeit auch auf dem Tablet oder Smartphone im Blick. Das sieht dann so aus wie auf folgendem Bild:
Das Webseiten-Erscheinungsbild könnte man zwar mit einer App graphisch aufpeppen, aber der Aufwand ist mir einfach zu groß. Schließlich steht die Funktionalität an erster Stelle und die ist mit der aktuellen Webseite voll erfüllt. Wer doch lieber das „Mäusekino“ möchte, der kann über IObroker oder NodeRed sich wunderschöne grafische Anzeigen zusammenstellen.
Oben auf der Webseite sind die blauen Links zu den verschiedenen Webseiten des AirSniffer. Darunter sind die Befehle aufgelistet, mit denen man das Modul komfortabel konfigurieren kann und weiter unten die IP-Adressen des Moduls und der CCU. Im unteren Bereich der Webseite sind die umfangreichen Sensordaten dargestellt. Die Aktualisierung im Browser erfolgt automatisch im Minutentakt oder manuell durch Anklicken des „manuellen Messwert Refresh“-Links. In rot sind die Namen der entsprechenden CCU-Systemvariablen aufgeführt, mit denen die Messdaten automatisch synchronisiert werden. Die Replizierung erfolgt intelligent nach verschiedenen Kriterien, damit einerseits eine sehr schnelle Aktualisierung möglich ist und andererseits die Datenrate klein bleibt.
2. Der AirSniffer … Nachbau relativ einfach!
Damit der Nachbau auch für den weniger versierten Elektroniker möglich ist, wurde ein Komplettbausatz entwickelt. Dabei wurde Wert darauf gelegt, daß die zu verlötenden Bauelemente möglichst nur große Standard-Bauteile sind. Der „vielbeinige“ Controller ist bereits auf einer fertigen Modulplatine verlötet und schon programmiert , so daß bei diesem wichtigsten Bauteil keine Probleme auftreten können. Sorgfalt und der fachgerechte Umgang mit dem Lötkolben sind aber schon erforderlich! Eine umfangreiche bebilderte Bauanleitung (hier noch die alte Bauanleitung bis 12/2020) macht den Nachbau auch für „Nicht-Nerds“ gut machbar. Nachfolgend das Funktionsschema des Airsniffer:
Das Controller-Board holt die Messwerte von den sehr leistungsfähigen Sensoren:
Der verwendete BOSCH-Sensor BME680 ist ein sog. I2C-Bus Sensor. Er ist äußerst leistungsfähig und misst neben Temperatur, Feuchte und Luftdruck auch verschiedene Schadgase der Luft. Als Schadgase erkennt er CO2 und ein breites Spektrum von Kohlenwasserstoffen, die für die Luftqualität im Raum entscheidend sind. Bei dem Thema Luftqualität lohnt es sich, die Eigenschaften dieses Bausteines näher kennen zu lernen.
Zur Feinstaubmessung wird der Sensor PMS5003 von der Fa. Plantower verwendet. Die Luft wird dazu mit einem Miniaturlüfter in eine Messkammer geführt. Dort werden mit Laser die Staubpartikel beleuchtet und das Lichtecho so ausgewertet, daß Anzahl der verschiedenen Partikelgrößen ermittelt wird. Bei dem hier implementierten Funktionsablauf erfolgt ca. alle 5 bis 15 Minuten (einstellbar) ein Messzyklus, der etwa 1 Minute dauert. Nach dem Einschalten des Lüfters wird gewartet, bis die Messwerte sich stabilisiert haben. Erst dann startet die eigentliche Messung, die wiederum einige Sekunden dauert. Die Roh-Messdaten werden dann über serielle Verbindung(9200Bd) zum AirSniffer übertragen, dort weiter ausgewertet und in verständlicher Form (IAQ-Werte) auf der Webseite dargestellt bzw. zur Homematic etc. übertragen.
Und so sieht das Ganze im zusammengebauten Zustand aus. Mit einer Stromversorgung über ein einfaches 5V/1A-Steckernetzteil sind keine Batterien notwendig. Das macht auch Sinn, weil ja im Wohnraum eh eine Steckdose vorhanden ist und regelmäßiger Batteriewechsel nur nervt!
Eingebaut wird die Controllerplatine in ein spezielles Gehäuse, das im 3D-Druck hergestellt wird. Man kann das Gehäuse mit dem Bausatz beziehen oder auch selbst ausdrucken. Die Sensoren und der Controller werden ohne spezielle Werkzeuge einfach nur in das fertige Gehäuse eingeschoben. Alle Teile und alle zu verlötenden oder steckbaren Sensoren sind beim Bausatz schon dabei. Das Netzteil wird allerdings nicht mitgeliefert. Benötigt wird ein 5V/1A Steckernetzteil mit 5,5mm/2.1mm Hohlstecker. Dabei sollte man beim Netzteil auf gute Qualität achten, weil diese ja immerhin im Dauerbetrieb arbeiten. Die einschlägigen Elektronikhändler bieten hier genügend Alternativen an.
Die Luftqualität wird im Gehäuse mit einer Ampelanzeige (RGB-LED) wie auf folgendem Bild angezeigt:
3. Programmierung und Einstellung
Der AirSniffer verwendet als Mikrocontroller mit WLAN den WeMos D1 mini mit integrierter USB-Schnittstelle. Der WeMos ist vorprogrammiert, lediglich die für das WLAN notwendigen Zugangsdaten für den heimischen Router müssen einmalig eingegeben werden. Dies kann sehr komfortabel erfolgen, indem man den AirSniffer zur Einstellung als Hotspot arbeiten läßt. Auf der eigenen Webseite des AirSniffer (IP: 192.168.4.1) kann man dann die notwendigen Daten und Einstellungen mit einem normalen Browser durchführen. Dafür sind keinerlei Programmierkenntnisse notwendig, also alles sehr einfach. Die folgenden Schritte zeigen kochrezeptartig das Vorgehen:
1.RESET-Minitaster seitlich am WeMos-Modul drücken oder Versorgungsspannung einschalten. Nach einigen Sekunden blinkt die blaue LED auf dem WeMos-Modul oder die RGB-LED blau im Sekundentakt . Dabei versucht der AirSniffer sich ins WLAN einzuloggen, was natürlich wegen des Fehlens der Zugangsdaten noch nicht geht!
2. Dann den PROG-Taster (der Taster links unten neben dem WeMos) etwa 2sec drücken bis die blaue LED im 2Hz-Takt blinkt. Jetzt ist der AirSniffer im Hotspot-Modus (192.168.4.1).
3. Mit dem Smartphone oder besser Laptop nach einem Hotspot mit dem Namen „wiffi“ suchen und die Verbindung herstellen. Da es eine gesicherte Verbindung ist, muß beim ersten Zugang das Kennwort „wiffi1234“ eingegeben werden. Danach ist, wenn alles richtig funktioniert, eine gesicherte Verbindung zum „wiffi“ -Hotspot (AirSniffer) vorhanden.
4. Auf dem so im WLAN eingeloggten Smartphone oder Tablet mit der Adresszeile des Browsers die Hotspot-Webseite des AirSniffer aufrufen mit: 192.168.4.1/?
Die Antwort im Browser ist wie im folgenden Bild:
5. Jetzt die notwendigen Eingaben in der Adresszeile des Browsers machen. Das macht man mit folgenden Befehlen, die immer mit einem Doppelpunkt(!) abgeschlossen werden:
Achtung:
SSID und PWD dürfen zwar Tiefstriche aber keinen Doppelpunkt, Leerzeichen, Sonderzeichen oder äöüß enthalten! Das gibt sonst mit vielen Wifi-Chips und auch mit der Homematic nur Ärger und schwierige Fehler. Bitte keine Email an mich wegen entsprechender Änderungen; das bleibt so wegen meiner schlechten Erfahrungen mit diesem Thema!
192.168.4.1/?ssid:my_ssid: dabei ist „my_ssid“ die SSID des eigenen Routers , am Schluss aber den Doppelpunkt nicht vergessen!)
192.168.4.1/?pwd:my_pwd: dabei ist „my_pwd“ das Router-Passwort des eigenen Routers
192.168.4.1/?ccu:my_ccu: dabei ist „my_ccu“ die IP der eigenen CCU. Wenn alle drei Daten richtig eingegeben sind und auf der Webseite auch richtig angezeigt werden , dann ist der AirSniffer startbereit und kann mit dem Befehl:
192.168.4.1/?reset: oder der Druck auf den RESET-Taster (am WeMos) startet das Modul neu. Nach einigen Sekunden blinkt die blaue LED solange im Sekundentakt, bis der AirSniffer sich im heimischen WLAN eingeloggt hat.
Jetzt kann die Webseite des AirSniffer im Heimnetz aufgerufen werden. Dazu schaut man im Router nach, welche IP der AirSniffer bekommen hat (der Name im Router fängt oft mit ESP-… an) und ruft dann einfach diese IP auf, indem man diese IP in die Adresszeile des Browsers eingibt.
Alternativ kann man mit http://airsniffer.local auch die Webseite des Airsniffer aufrufen, aber das funktioniert nicht mit allen Browsern. Die Antwort auf den Browseraufruf mit der AirSniffer-IP ist im folgenden Bild dargestellt:
4. Anlernen an die CCU
Die automatische Verbindung zur CCU wird über Systemvariablen hergestellt, deren Namen vorgegeben sind (in rot im Bild oben). Diesen Namen wird beim AirSniffer noch ein Prefix vorangestellt. Bei mehreren AirSniffern in verschiedenen Räumen kann man damit eine raumspezifische Unterscheidung der Namenskreise machen. Für das Wohnzimmer wählt man als Prefix z.B. „wz_“ und beim Schlafzimmer „sz_“ . In diesem Beispiel habe ich als Prefix einfach „as_“ gewählt, damit die Systemvariablen des AirSniffer später in der Auflistung der CCU-Systemvariablen immer vorn stehen, aber der Prefix ist eben beliebig! Wie man den Prefix mit dem prefix-Befehl ändert, ist weiter unten bei den Befehlen beschrieben.
Im ersten Schritt sollte man die Namensvorgabe erst mal behalten! Daneben werden auf der AirSniffer-Webseite die aktuellen Sensorwerte dargestellt. Diese Werte werden ca. alle 60sec in einem festen Zeitraster im Browser aktualisiert, um das Datenaufkommen für die Signalübertragung zu begrenzen. Durch Aktualisierung der Webseite oder Klick auf den Link manueller Messwert-Refresh kann auch außerhalb des Zeitrasters die Anzeige jederzeit aktualisiert werden.
Zum Anlernen an die CCU müssen vorher die Firewall-Einstellungen der CCU richtig eingestellt werden. Bei der CCU2 stellt man alles auf Vollzugriff. Bei der CCU3 ist mit dem Sicherheitassistenten die Einstellung „relaxed“ auszuwählen. Das eigentliche Anlernen des AirSniffer an die CCU ist sehr einfach, weil für jedes Sensorsignal nur eine korrespondierende Systemvariable angelegt wird. Entsprechend der Vorgabe (rote Namen) werden Systemvariablen in der CCU manuell oder automatisch angelegt. Automatisch kann kann man mit dem Befehl setvar die CCU-Systemvariablen auf der CCU „in einem Rutsch“ anlegen lassen. Dazu die Befehlsliste aufrufen und einfach den setvar-Link anklicken. Dann ca. 60sec warten, bis alle notwendigen Systemvariablen auf der CCU angelegt sind. Danach in der CCU nachschauen, ob alle Systemvariablen auch richtig angelegt wurden.
Wenn dieses Verfahren nicht erfolgreich ist, dann müssen die Systemvariablen mit dem name-Befehl entsprechend folgender Liste (hier mit dem prefix as_ ) manuell angelegt werden:
as_ip vom Typ „Zeichenkette“
as_temp vom Typ „Zahl“, -50 bis 50 °C
as_taupunkt vom Typ „Zahl“, -50 bis 50 °C
as_feuchte vom Typ „Zahl“, 0 bis 100 %
as_feuchte_abs vom Typ „Zahl“, 0 bis100 g/m³
as_baro vom Typ „Zahl“, 0 bis 1300 hPa
as_luftdrucktrend vom Typ „Zeichenkette“
as_iaq_rr0_value vom Typ „Zahl“, 0 bis 1
as_co2_equ vom Typ „Zahl“, 0 bis 5000
as_iaq_co2 vom Typ „Zahl“, 0 bis 500
as_pm1_0 vom Typ „Zahl“, 0 bis 100
as_iaq1_0 vom Typ „Zahl“, 0 bis 500
as_pm2_5 vom Typ „Zahl“, 0 bis 100
as_iaq2_5 vom Typ „Zahl“, 0 bis 500
as_pm10 vom Typ „Zahl“, 0 bis 100
as_iaq10 vom Typ „Zahl“, 0 bis 500
as_iaq_max vom Typ „Zahl“, 0 bis 500
as_IAQ_max_note vom Typ „Zeichenkette“
Wenn man andere Namen als die hier verwendeten Namen benutzen möchte, dann man man die Namen mit dem name-Befehl neu festlegen.
Will man anstelle des vorgegebenen prefix as_ beispielsweise das Prefix wz_ verwenden, dann gibt man in die Browserzeile ein: <airsniffer_ip>/?prefix:wz_:
Aber bitte erst umbenennen, wenn alles unproblematisch läuft ;))
Weitere Infos zu diesem Thema:
>> Es müssen nur diejenigen Systemvariablen definiert werden, die man auch benutzen möchte!
>> Die Aktualisierung aller genannten Systemvariablen erfolgt automatisch, entweder im festen Zeitraster oder wenn sich die Messwerte ändern. Dadurch wird vorteilhafterweise der Datenfluss stark reduziert.
>> Die oben genannten Systemvariablen sind „normale“ CCU-Systemvariablen, deren Zahl nicht wie bei den HM-Skriptvariablen auf 200 begrenzt ist !
Firewall-Einstellungen:
Zum Anlernen an die CCU müssen vorher die Firewall-Einstellungen der CCU richtig eingestellt werden:
- Bei der CCU2 stellt man alles auf Vollzugriff.
- Bei der CCU3 und bei der RaspberryMatic reichen folgende Einstellungen:
… und kein Häkchen bei Authentifizierung!
5. Befehlsliste des AirSniffer
Auf der Befehlsliste-Seite sind Befehle dargestellt, mit denen bestimmte Eigenschaften des AirSniffer bei Bedarf geändert werden können. Normalerweise ist dies aber nicht notwendig. Nur bei speziellen Bedürfnissen wie Änderung der Namen für die CCU-Systemvariablen sollte man diese Befehle anwenden. Bei den als Link blau gekennzeichneten Befehlen reicht es, zum Ausführen einfach darauf zu klicken. Die Funktion der einzelnen Befehl ist dem folgenden Bild zu entnehmen:
Beim AirSniffer muß aber auf jeden Fall im Raum mit sauberer Luft zur ersten Kalibrierung der calair –Befehl einmalig ausgeführt werden . Die anderen Befehle sollte man sich ansehen, damit man einen Überblick über die Möglichkeiten hat.
Einige Erklärungen sind noch für den setip-Befehl notwendig. Damit kann man die Vergabe der IP-Adresse regeln. Standardmässig ist DHCP eingestellt, wobei der Router dem Modul eine IP-Adresse zuteilt. Wenn man dem Modul aber eine bestimmte IP zuteilen möchte, dann kann das mit dem setip-Befehl folgendermaßen geschehen:
setip:192.168.178.61: >>setzt die IP 192.168.178.61 und DNS ist 192.168.178.1 und Gateway ist 192.168.178.1 und Subnet ist 255.255.255.0
setip:192.168.178.61:3:5: >>setzt die IP 192.168.178.61 und DNS ist 192.168.178.3 und Gateway ist 192.168.178.5 und Subnet ist immer 255.255.255.0
setip: >> setzt zurück auf DHCP bzw der Standardeinstellung
Wichtig: nach jeder neuen IP-Festlegung wird der WeMos automatisch resettet.
Die IP-Einstellungen bleiben auch bei Komplett-Updates erhalten. Lediglich beim Werksreset (factory) wird auf die Grundeinstellung DHCP zurückgesetzt.
6. Einstellungen im Expertenmodus
Im sog. Expertenmodus. sind zur Erstinstallation einige Parameter einzustellen. Dies macht man mit dem param-Befehl. Um beispielsweise die eigene Ortshöhe (bei mir 186m) einzugeben, lautet der Befehl: <airsniffer_ip>/?param:20:186: Analog dazu können nach eigenen Erfordernissen die anderen Parameter gesetzt werden. Aber bitte nur, wenn man genau weiß, was man damit macht!
Wichtig ist das besondere Verhalten des BOSCH BME680 Moduls zu beachten. In diesem Sensor ist ein beheiztes Substrat, dessen Widerstand sich bei Schadgas-Einwirkung verändert. Die Toleranzen bei diesem Sensor sind sehr groß. Deshalb ist es notwendig, nach dem ersten Einschalten des AIRSNIFFERS mindestens 1h zu warten und dann bei frischer Luft im Raum mit dem Befehl <IP>/?calair: einen Nullabgleich durchzuführen. Dieser Nullabgleich ist nach mehreren Betriebstagen zu wiederholen. Aber vorher den Raum immer gut durchlüften, weil damit die Referenz für „gute Luft“ festgelegt wird!
Die Temperaturanzeige des BME680 ist nicht kalibriert!! Es können Abweichungen von mehreren °C vorliegen. Mit dem param 4 kann eine Kalibrierung erfolgen. Wird beispielsweise die Temperatur 3°C zu hoch angezeigt, dann gibt in der Adresszeile des Browsers ein: <IP>/?param:4:-30:
7. Rückstellen in Werkszustand
Manchmal kann es notwendig sein, die im EEPROM abgelegten Daten zu löschen und den AirSniffer in den Auslieferungszustand zu versetzen. Hierfür wird durch 1sec-Drücken des PROG-Tasters zuerst der Hotspot-Modus eingestellt, was durch 2Hz- Blinken der blauen LED angezeigt wird. Danach hält man den PROG-Taster solange gedrückt, bis die blaue LED dauerhaft leuchtet. Jetzt werden die EEPROM-Daten gelöscht, was zum Abschluss mit schnellem Blinken der blauen LED signalisiert wird. Dann startet der AirSniffer neu und geht automatisch in den Hotspot-Modus, um so wieder neu an den Router angelernt zu werden.
Man kann zusätzlich auch mit dem factory-Befehl den Werkszustand wieder herstellen, aber das funktioniert nur, wenn auch die Befehlsliste im Browser aufrufbar ist. .
8. Update des AirSniffer
Ein Update des AirSniffer kann ohne Demontage bzw. Geräteöffnung komplett über das WLAN erfolgen. Dabei ist der AirSniffer vorher im Heimnetz über WLAN eingeloggt und seine Webseite ist mit der vom Router vergebenen IP-Adresse aufrufbar.
Aktuelles Update Zip-Archiv von der Webseite stall.biz runterladen, den *.bin File entpacken und auf dem PC speichern. Achtung nicht das Zip-Archiv zum Update verwenden, das beschädigt u.U. den AirSniffer.
> Die Update-Seite des AirSniffer aufrufen (siehe nächstes Bild). Dort werden zwei Alternativen eines Updates angeboten: das Komplett-Update nur wenn das bei den Informationen zum Update-File ausdrücklich angemerkt ist und das normalerweise verwendete Teil-Update.
Das Teil-Update mit Klick auf den Link Teil-Update oder Komplett-Update auslösen. Dann öffnet dieses Fenster:
Jetzt mindestens 15sec warten und erst dann den Link Update-Explorer auslösen.
Nach kurzer Zeit öffnet sich der Browser mit der Möglichkeit per „Durchsuchen“ den neuen update *.bin File einzugeben und dann mit dem Update-Button den Vorgang zu starten:
Nach einigen Sekunden wird ein erfolgreiches Update bestätigt und der AirSniffer neu mit der upgedateten Firmware gestartet:
9. Update der Firmware über USB
Ein Update über USB ist etwas komplizierter als über WLAN. Aber wenn beispielsweise ein neues Ersatz-WeMos-Modul verwendet werden soll, dann ist ein Update über USB die einzige Lösung. Manchmal ist auch ein neues Flashen sinnvoll, weil z.B. die Firmware durch Hardwarefehler „zerschossen“ wurde und das WLAN nicht mehr richtig funktioniert.
Hier die Anleitung mit dem Tool ESP Easy Flasher:
- beim Airsniffer muß das Modul PMS5003 vor dem Flashen abgeschaltet sein (Grove-Stecker ziehen!)
- ESP Easy Flasher Tool runterladen, in ein Verzeichnis ESPEasyFlasher entpacken
- Für den WeMos ggf. den notwendigen USB-Treiber installieren: windows 32&64bit
- USB-Kabelverbindung PC <> WeMos Modul herstellen
- Den für das Flashen notwendigen aktuellen Firmware-Update-bin-File in das Unterverzeichnis ESP_Easy_Flasher-master/BIN speichern
- Die Factory-bin-Files des WeMos hier runterladen und entpacken und beide bin-Files ebenfalls in das Unterverzeichnis ESPEasyFlasher/BIN speichern
- Mit ESP EASY Flasher.exe das Flash-Programm jetzt starten und es zeigt sich folgendes Fenster:
- In der obersten Zeile mit dem grünen Refresh-Button den verfügbaren com-Port einstellen.
- In der Zeile darunter den File „blank_4MB.bin“ auswählen, der zuvor in das BIN-Unterverzeichnis gespeichert wurde
- sonst nichts eingeben und jetzt nur noch den Button Flash ESP Easy FW drücken; danach blinkt die blaue LED auf dem WeMos während des Flashvorganges
- nach ca, 7 Minuten (!) wird ein erfolgreicher Flashvorgang mit „DONE!“ bestätigt.
- Wenn man den WeMos in den Fabrik-Zustand versetzen möchte, dann jetzt den zweiten File „ESP_8266_BIN0.92.bin“ flashen (dauert ca. 1 Minute) oder …
- jetzt den aktuellen Firmware-Update-bin-File nach gleicher Methode flashen (Dauer ca. 1 Minute)
- Dann mit dem Button Open serial monitor das Ausgabefenster der seriellen Ausgabe öffnen (wenn das nicht funktioniert HTerm ( serial 9600bd, Newline at „CR+LF“ ) verwenden )
- Nach dem Reset am WeMos-Modul kommt die Meldung „In den nächsten 5 Sekunden kann mit Terminaleingabe ‚p‘ das eeprom auf Werkseinstellung gesetzt werden„
- Nun sofort p eingeben und warten auf die Meldung, dass das eeprom gelöscht ist. Dann nochmal den Reset-Taster drücken
- Danach das Modul in die Controllerplatine einsetzen und …
- im Hotspot-Modus auf IP 192.168.4.1 wie oben beschrieben die eigenen Router.Zugangsdaten eingeben.
Hier einige typische Startmeldungen des WeMos im Fenster des Terminalprogramms HTerm:
10. Hier die neuesten Updates zum runterladen:
Zum Update das ZIP-Archiv runterladen und entpacken. Zum Update nur die *.bin-Datei aus dem zip-Archiv verwenden. Jedes Update ist immer ein vollständiges Update, so daß man auch wieder auf alte Softwarestände zurück „updaten“ kann. Nach den Updates immer die Parameterliste überprüfen, weil die Parameter beim Update u.U auf veränderte Standardeinstellungen gesetzt werden!
Hinweis: Bei größeren Versionssprüngen immer ein Komplett-Update machen und nach dem Update noch ein Factory-Reset machen, um die EEPROM-Daten zu aktualisieren. Danach sind natürlich die Router-Zugangsdaten im Hotspotmodus neu einzugeben.
Update 11.09.2020: airsniffer_8 Basis-Firmware
Update 28.09.2020: airsniffer_10 Datentransfer zur CCU abschaltbar mit param 3, wenn keine CCU verwendet wird
Test-Update 14.10.2020: airsniffer_12 WLAN unabhängiger Hotspot-Betrieb auf 192.168.4.1 alternativ möglich . Umschalten auf Hotspot mit <IP>/? param:1:1: und zurück auf normalen WLAN-Betrieb am Router mit <IP>/? param:1:0:
Update 18.10.2020: airsniffer_13 Fix für den Airsniffer-mini, damit mit dem Taster der Hotspot-Modus sicher ausgelöst werden kann. Ein Update des normalen Airsniffer ist nicht notwendig!
Beta-Update 18.10.2020: airsniffer_14 Schnellere CPU, übersetzt mit neuem Compiler, dadurch schnellere Browser-Darstellung und Hotspot-Modus verbessert
Test-Update 18.10.2020: airsniffer_16 RGB-LED Farbdarstellung verbessert.
Beta-Update 27.10.2020: airsniffer_18 umfangreiches Komplett-Update: Berechnung des CO2-Äquivalent und CO2-IAQ nach meinem Standard-Verfahren (param 14 = 0 setzen) mit notwendiger Frischluft -Kalibrierung (Befehl „calair“ ) oder alternativ die Datenberechnung nach dem BOSCH-BSEC-Verfahren (param 14 = 1 setzen) .
Teilweise haben sich leider die Namen der Systemvariablen geändert; deshalb vor dem Update zuerst die entsprechenden Systemvariablen auf der CCU löschen und dann mit dem Befehl „setvar“ neu anlegen.
Beta-Update 04.11.2020: airsniffer_20 Fehler bei der Datenübertragung zur CCU behoben
Update 15.11.2020: airsniffer_22 Fehler im JSON-Datentelegramm behoben
Update 23.11.2020: airsniffer_23 Wenn das Einloggen in das WLAN fehl schlägt oder kein WLAN verfügbar, ist dann wird automatisch nach 60sec ein Stand-Alone-Betrieb gestartet . Danach ist es möglich, die Daten auf dem Hotspot 192.168.4.1 anzusehen. Zugangsdaten zu diesem Hotspot wie in Kap.3 beschrieben.
Update 18.12.2020: airsniffer_25 Beim AirSniffer-CO2 wurde bei einigen CO2-Sensoren MH-Z19 aufgrund unterschiedlicher Dauer der Startsequenz dieser Sensor nicht erkannt („bitte warten“). Mit dem Update wird das Problem korrigiert, indem der MH-Z19 nicht 5sec sondern erst 60sec nach Neustart gesucht bzw. erkannt wird. Komplett-Update !
Update 21.12.2020: airsniffer_27 Dieses Update bezieht sich hauptsächlich auf die Verbesserung der Luftgüteberechnung mit dem BME680. Bei Verwendung des BOSCH-Berechnungsverfahren BSEC werden die Kalibrierdaten nach der „Einbrennzeit“ im EEPROM abgelegt und die aktuelle BSEC-Version verwendet.
Test-Update 28.12.2020: airsniffer_28 Bisher wurde bei fehlendem WLAN automatisch in den Hotspotmodus geschaltet. Jetzt versucht das Modul alle 5min während 90sec erneut eine WLAN-Verbindung zum Router herzustellen.
Update 30.12.2020: airsniffer_32 Probleme mit der Hotspot-Initialisierung (Tasterbetätigung) beim AirSniffer-mini und AirSniffer-CO2 ohne LED-Display beseitigt.
Update 19.02.2021: airsniffer_33 Auf dem optionalen LED-Display wird Temperatur mit Nachkommastelle und rel. Feuchte im Wechsel mit Temperatur und CO2-Gehalt angezeigt.
Beta-Update 12.04.2021: airsniffer_35 Zusätzliche Kenngröße „Behaglichkeit“ zur Bewertung des Raumklimas hinzugefügt. Notwendig ist ein Komplett-Update und danach ein neues Setzen der Systemvariablen mit dem Befehl setvar . Alternativ kann man auch mit dem Befehl name:4:Behaglichkeit: die zusätzliche Systemvariable manuell setzen.
Update 02.10.2021: airsniffer_39 Browser mit Favicon, stabilere Darstellung mit Firefox
Update 20.01.2022: airsniffer_42 Kleinigkeiten: BSEC-libraries für BME680 aktualisiert, Font etwas kleiner,
Update 31.08.2023: airsniffer_44 BSEC-libraries für BME680 aktualisiert
11. Verwendung des Luftgütesensors BME680
Optional kann anstelle des standardmäßigen BOSCH-Sensors BME280 (Temperatur, Feuchte, Luftdruck) der BME680 ((Temperatur, Feuchte, Luftdruck plus Luftgüte) verwendet werden. Dieser Sensor erkennt neben CO2 ein ganzes Bündel von häuslichen Schadgasen. Dazu ist im Sensor ein beheiztes Substrat enthalten, dessen Widerstandswert ein Maß für die Luftqualität ist. Gute Luft heißt Widerstand hoch (> 100kOhm) , schlechte Luft heißt kleinerer Widerstand. Die Auswertung dieses Widerstandes ist insofern etwas „tricky“, weil der Sensor nicht geeicht ist, sondern mit „sauberer“ Luft (Frischluft) regelmäßig neu geeicht werden muß. Insbesondere bei neuem Sensor dauert es mehrere Tage, bis der Widerstandswert (Eichwert Ro) bei Frischluft sich stabilisiert hat.
Die Umrechnung des Widerstandswertes in den sog IAQ-Wert (Luftqualitätsindex) ist m.W. nicht genormt, so daß jeder Hersteller sein eigenes „Süppchen kocht“ . BOSCH hat hierzu eine Software BSEC entwickelt, die man als geschützte Software verwenden darf. Leider ist aber nicht der Quellcode veröffentlicht und bei jedem neuen Arduino-Update entstanden immer wieder neue Compilationsschwierigkeiten mit der BSEC-Library. Auch wegen des manchmal nicht nachvollziehbaren selbsttätigen Abgleichverhaltens (KI ??) habe ich nach alternativen veröffentlichten Bewertungsalgorithmen gesucht; allerdings mehr oder weniger ergebnislos. Deshalb wurde selbst ein eigener Lösungsansatz entwickelt:
Unter der Annahme, daß der BME680 sich vermutlich ähnlich verhält wie z.B. der oft verwendete Raumluftsensor MQ135, kann man aus dem normalisierten Widerstand R/R0 über eine Exponentialfunktion den Gehalt an Schadgasen abschätzen. Hilfreich war für diese Annahmen das Datenblatt des MQ135 .
Das Ergebnis ist ein Zusammenhang zwischen dem im Sensor gemessenen normalisierten Widerstand R/Ro und dem CO2-Äquivalent oder sog. IAQ-Wert (siehe folgendes Bild). Der Störeinfluß von Luftfeuchte und Temperatur wird ebenfalls berücksichtigt, ist aber in dem Bild der Einfachheit halber nicht dargestellt.
Mit der eigenen IAQ-Berechnungssoftware wird wie bei der BSEC-Software ebenfalls ein IAQ-Index (0 bis 500) und ein sog. CO2-Äquivalent (0 bis 5000ppm) berechnet. Dazu muß man wissen, daß das CO2-Äquivalent bei diesem Sensor ein Maß für die gesamten Schadgase sind. Der Sensor ist eben kein reinrassiger CO2-Sensor, sondern er misst ein ganzes Bündel der typischen häuslichen Schadgase. Mehr dazu in den vielen Veröffentlichungen im Internet.
Mit dem vom User individuell anpassbaren Parameter iaq_sensivity (param 24) wird der IAQ-Wert im AirSniffer berechnet und angezeigt. Standardmäßig wird als iaq_sensivity der Wert 70 verwendet. Man kann wie im obigen Diagramm erkennbar aber auch empfindlichere oder weniger empfindliche Anzeigen realisieren.
Wenn man mit den gemessenen IAQ-Werten in der Homematic oder anderswo irgendwelche Aktoren (z.B. Lüfter etc.) abhängig von Schwellwerten schalten will, dann muß man natürlich sich für einen Empfindlichkeitswert (iaq_sensivity) entscheiden und diesen dann auch beibehalten.
Bei einem neuen BME680-Modul sollte man zur Eichung erst mal das Gerät mindestens 3 Tage laufen lassen, damit der Sensor sich stabilisiert bzw. sich „einbrennt“. Durch Lüftungsvorgänge im Raum wird im laufenden Betrieb jedesmal der Sensor automatisch auf beste Frischluft geeicht. Die Eichwerte werden in param 23 dauerhaft abgelegt. Das ist schon alles!
Wenn man manuell neu eichen möchte, dann lüftet man solange den Raum, bis sich überall Frischluft eingestellt hat. Danach gibt man den Befehl <airsniffer_ip>/?calair: ein oder betätigt den entsprechenden Link auf der Befehlsliste. In der Regel stellen sich für param 23 automatisch Werte zwischen 8000 und 30000 ein.
Wichtig:
Der Eichwert (Widerstandswert Ro) wird automatisch als param 23 im EEPROM dauerhaft gespeichert, bleibt also beim Ausschalten des Moduls erhalten. Allerdings wird beim Komplett-Update der Parameter auf null gesetzt und der kontinuierliche Eichvorgang wird nach dem Einschalten neu gestartet. In der Regel stellen sich Werte für param 23 zwischen 8000 und 30000 ein.
Wenn man eine bestimmte vorgegebene Luftqualität im Raum als Frischluft (IAQ = 25) kalibrieren möchte, dann kann man das manuell mit dem Befehl „calair“ auf der Webseite „Befehlsliste“ machen. Aber normalerweise sollte man das nicht machen und die kontinuierliche Eichung der eingebauten Automatik überlassen!
Noch eine Information: Nach dem Start leuchtet die blaue LED für 5 Minuten. Während dieser Zeit wird nicht gemessen, damit sich der Luftgütesensor „setzen“ kann.
Quellen: Interessante Info zum BME680
12. Luftqualität der Luft
Die Bewertung der Feinstaub- und CO2-Konzentration in der Raumluft mit einem sog. AirQualityIndex (AQI) ist meines Wissens leider nicht weltweit genormt. Es gibt viele nationale Ansätze, die zwar ähnlich sind, sich aber wertemäßig etwas unterscheiden. In der Auswertesoftware des Airsniffer habe ich eine Bewertungsskala entsprechend folgendem Diagramm umgesetzt. Dies ist keine offizielle Bewertung sondern von mir nach dem Vergleich verschiedener Quellen so festgelegt:
13. Verwendung als unabhängiger WLAN-Hotspot (noch im Teststadium!)
Wenn der AirSniffer autark ohne Einbindung in das lokale WLAN laufen soll, dann kann das Modul einen eigenen Hotspot aufbauen (ab firmware airsniffer_12). Das funktioniert genauso wie das bei der Eingabe der WLAN-Zugangsdaten (Kap. 3) bereits erfolgt ist. Im Einzelnen geht das so:
Umschalten in den Hotspot Betrieb, in dem man auf der AirSniffer-Webseite „Expertenmodus“ den Parameter 1 auf 1 stellt. Der Befehl lautet: <IP>/?param:1:1: Danach wird der AirSniffer neu gestartet und ist nach einiger Zeit als Hotspot mit der IP 192.4.1 verfügbar. Das WLAN-Netz heißt genau wie oben in Kap.3 beschrieben „wiffi“ und das Passwort ist „wiffi1234“. Mit einem Laptop kann man das WLAN-Netz suchen und sich verbinden. Es wird im Hotspot-Modus nur die Datenseite (Bild unten) angezeigt, damit andere User wichtige Parameter nicht einfach verstellen können.
Zurückschalten in den Normalbetrieb, in dem man auf der Webseite in die Adresszeile eingibt: 192.168.4.1/?param:1:0: Danach wird automatisch im Normalmodus neu gestartet.
Beide Betriebsarten gleichzeitig ist mit param:1:2: zwar möglich, wird aber nicht empfohlen.
Hinweis: Das Einloggen in den Hotspot kann mit manchen Smartphones oder Laptops etwas „zickig“ sein. manchmal hilft es , die alten nicht gebrauchten Zugänge zu löschen.
14. Verwendung mit ioBroker
Der ioBroker-Adapter für den WIFFI-wz ist hier: https://github.com/t4qjXH8N/ioBroker.wiffi-wz
Eine Anpassung für den AirSniffer ist noch nicht erfolgt bzw. müßte man mit der o.a,. Vorlage selbst machen.
Die ioBroker-Adapter Entwicklung im Allgemeinen ist hier beschrieben https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation
15. Integration in IP-Symcon
Viele Homematic-User verwenden IP-Symcon zur erweiterten Visualisierung und Steuerung. Hier im IP-Symcon-Forum werden die Grundlagen für die Einbindung und Verwendung des WIFFI-wz diskutiert und erläutert. Eine konkrete und sehr hilfreiche Anwendungsbeschreibung beschreibt auch dieser Artikel hier : WIFFI-WZ Multisensor mit IP-Symcon betreiben.
Hier hat ein aktiver User ein Modul für den WIFFI 3.0 geschrieben.
16. Node-Red verwenden
Ein User des WEATHERMAN hat einen entsprechenden Adapter für das leistungsfähige Node-Red entwickelt. Sicher kann man dieses Beispiel auch auf den AirSniffer übertragen. Weitere Informationen zur RedMatic hier.
17. Den WIFFI mit Home Assistant nutzen
Hier sind die entsprechen Informationen.
… und wo kann man den Bausatz bekommen?
Für den Nachbauer habe ich Bausätze zusammengestellt. Diese können bei mir bezogen werden: AirSniffer-Bausatz. Wer vorher einen Blick in die Bauanleitung werfen möchte, bitteschön: (hier noch die alte Bauanleitung bis 12/2020)
Haftungs- und Sicherheitshinweise
Beim Nachbau müssen natürlich alle wichtigen einschlägigen Sicherheitsvorschriften für den Umgang mit gefährlichen Spannungen eingehalten werden. Fundierte theoretische und praktische Fachkenntnisse der Elektrotechnik und für den Umgang mit gefährlichen Spannungen sind unverzichtbar!! Durch eine unsachgemäße Installation gefährden Sie ihr Leben und das Leben ihrer Mitmenschen! Darüberhinaus riskieren Sie erhebliche Sachschäden , welche durch Brand etc. hervorgerufen werden können ! Für alle Personen- und Sachschäden durch falsche Installation etc. ist nicht der Hersteller sondern nur der Betreiber verantwortlich. Ich verweise hier unbedingt auf die „Sicherheitshinweise und Haftungsausschluss„-Seite dieses Blogs.