NEWS
Gedanken zur Feinstaubmessung
-
@Homoran Die Luftleute machen das mit dem ESP8266 und haben einen eigenen Sketch, der die Daten bei denen auf der Website abliefert. So war das zumindest als ich mir das angeschaut habe.
Der ESP8266 hat aber nur eine HW-Serial, die man gemeinhin als Diagnose/Programming etc. nutzt. Deshalb nutzen die Luftleute eine SW-Serial, was wohl auch im Großen Ganzen funktioniert und mit 9600Bd ist der Sensor auch langsam genug.
Ich hatte das mal mit einem Fingerprintsensor eine SW Serial eingesetzt, was mir aber tricky in Erinnerung blieb. Vielleicht weil das einer meiner ersten Versuche mit dem ESP8266 war.
Deshalb habe ich was mit dem ESP32 gemacht - wollte ohnehin mal was mit dem ESP32 machen. Verwendet habe ich https://github.com/sensebox/SDS011-select-serial forked from https://github.com/sensebox/SDS011-select-serial forked from https://github.com/ricki-z/SDS011 was man wohl mit HWSerial und SWSerial betreiben kann. Und angeblich https://github.com/ricki-z/SDS011/blob/master/library.properties kann man das mitarchitectures=esp8266,avr,esp32
betreiben. Bei ESP32 mit HW-Serial.
Das habe ich in meinen Monstersketch hineneingequetscht und kann so auch T-H Messen - mit BME280 oder SHT31.
Übertragen werden die Daten direkt an ioBroker über simpleApi. -
@klassisch
Ich werde da ganz bestimmt auf dich zukommen wenn ich meinen eigenen Sensor bauen will.In der Zwischenzeit logge ich die Werte zweier Stationen der Luftinfo und einer des UBA:
Auch die rH logge ich mit
Danke fürs Anschubsen
-
@Homoran gerne, auch wenn das bei mir schon wieder einige Zeit her ist. März 2018 war wohl der letzte Compilerlauf, Sensor kam Ende Februar 2018 an.
Habe heute den Sketch noch so modifiziert, daß ich alternativ CO2 messen kann, wenn denn der MH-Z19 Sensor mal ankommt.
Offizielle Meßstationen gibt es 3 in ca. 20 bis 25km Entfernung, Zwei nach Norden, wobei eine davon direkt an einer Staustraße ist, die andere an einer strak befahrenen Bundesstraße und eine nach Süden hin, an einer mäßig befahrenen Bundesstraße. Die paßt für mich eher, hat auch einen realistischeren Abstand zur Straße.
Ist das das passende Skript zum Auslesen https://forum.iobroker.net/post/303043 ?
https://forum.iobroker.net/post/303043 -
@klassisch sagte in wrong type of...:
Ist das das passende Skript zum Auslesen
Ja!
Du musst einmal die Abfrage der Stationen manuell machen und "deine" Station irgendwie finden. Da dann die ID raussuchen und in dem Skript eintragen.
-
@Homoran Habe ich gemacht, funktioniert aber nicht wirklich. Die Messwerte sind 1 Tag alt und kommen im Bundle und ein Messwert wird als "null" geschickt.
Frage ich die Station manuell über die Webseite des LandesUmweltamtes ab, kommen die Daten im Klartext auf der Webseite eingebettet an. Also man kann sie als Mensch lesen und es gibt alle Meßwerte, die die Station kann. einigermaßen aktuell. Jetzt, um 11:40 werden die 11:00 Werte angezeigt.
Von der Bundesamt-Seite gezogen kommen die Werte von gestern und das auch noch lückenhaft.
Wahrscheinlich gibt es da einen Großrechner Nachtlauf, der die Daten vom Vortag überträgt.
Das Suchen der Station ging am besten so: Über die Karte eine Station picken und dann gabs bei mir irgendwann die Site des Landesamtes. Dort kann man auch auf Diagramm klicken und dann weren Meßstelleninformationen angezeigt. Darunter eine EU-Kennung.
Dann öffnet man den Suchlink, der im Skript referenziert ist, wartet ewig und sucht dann nach dieser EU-Kennung. Dann sieht man auch die Zahl. -
@klassisch
Das ist mir noch nicht aufgefallen!Habe mich gestern wegen der Skalierung der Flot-Achsen ein wenig mit dem BImSchG beschäftigt.
Die angegeben Grenzen beziehen sich immer auf das maximale Tagesmittel, das wiederum maximal x mal im Jahr überschritten werden darf und einem maximalen Jahresmittel.Deshalb erstelle ich jetzt auch einen fließenden Mittelwert über den Tag und trage diesen zum Tagesende in einen anderen Datenpunkt ein.
Daher ergibt es schon einen Sinn, wenn nur das Tagesmittel angegeben wird. Das geht natürlich erst am Folgetag.
Ich sehe mir das gleich nochmal an!
Hatte auch schon versucht die Seite des UBA über den parser zauszulesen . auf die Schnelle ohne Erfolg -
@Homoran Neinein, bekommen kein Tagesmittel. Ich bekomme 10 Arrays mit gestrigem Datum und zwar von 00:00 bis 09:00 Uhr. In den Arrays stecken nochmals Arrays drin und da drin Daten. Ich vergleiche das mal mit dem Format der "633" aus dem Thread.
-
-
@Homoran Also bei mir hat die "633" ein ähnlicher Format wie meine. Und auch die Daten sind ein Tag alt. Irgendwas mache ich also falsch.
-
@klassisch
Nur das wir vom gleichen reden.Hier das Skript:
In Zeile 7 steht ein Link.
Diesen aufrufen - und ja, das dauert ewig - dann in der Liste (ARRAY) die Nummer deiner Station suchen.
Dazu uf der Karte des UmweltBUNDESamtes https://www.umweltbundesamt.de/daten/luft/luftdaten/luftqualitaet/eJzrWJSSuMrIwNBS19BI18h8UUnmIkODRXmpCw0XFZcsNjIyWZziVoRQYLA4JSQfWX1uFcei3OSmxTmJJacdPPxn1vE1PF6ck5d-2kFxFf-EabvnAQCejCSuDeine Station suchen und den Stationsnamen in dem Array suchen.
Die dort befindliche Stationsnummer im Skript in Zeile 16 eintragen
-
Bin ein wenig weiter.
Habe noch die Seite vom LANUV (Landesamt für Natur, Umwelt und Verkehr, NRW) über den Parser ausgelesen.
Hier neben PM10 auch die Werte für NO2 und O3, was das Skript über die API vom UBA auch ermittelt.Langsam glaube ich an nichts mehr:
Da passt nichts zusammen
-
@Homoran So, jetzt habe ich auch wieder her gefunden. Ja, bei mir passt das auch nicht. Die Webseite des Landes sagt etwas anderes als das Skript.
Habe jetzt das Skript neu geladen - und er holt wieder Werte von gestern.
Vielleicht mittelt das Skript, ich habe es nicht verstanden. Ausserdem zeigt es nicht alle Werte an.
Wie hast Du die Seite Deines Landes geparst?
Ich habe mal als Beispiel die Meßstation in der Nähe des ioBroker Headquarter genommen. Da gibt es z.B. diese "Karlsruhe Reinhold Frank-Straße":https://www.umweltbundesamt.de/daten/luft/luftdaten/luftqualitaet
https://www.lubw.baden-wuerttemberg.de/luft/messwerte-immissionswerte#karte
Aber da muß man noch irgendwelche Menues bedienen. Das wird wohl nichts.
-
@klassisch
habe mich gerade zdurch den Code gewühlt und @piForscher in dem Thread zum Skript angepingt:
https://forum.iobroker.net/topic/6777/luftdate-info-per-skript-einlesen/26Ich sehe mir mal deine Links an, ob ich da was machen kann.
Auch in der Website des LANUV muss man den Quelltext des Tabellen-Frames analysieren. -
@klassisch sagte in Gedanken zur Feinstaubmessung:
Wie hast Du die Seite Deines Landes geparst?
Nachdem ich die Seiten des Landesamts BaWü gesehen habe muss ich sagen ich habe Glück:
https://www.lanuv.nrw.de/umwelt/luft/immissionen/aktuelle-luftqualitaetIm linken Menü dann den Parameter auswählen und mit der rechten Maustaste in der Tabelle den frame-Quelltext anzeigen.
Da kann man dann parsen.z.B. PM10:
Frame-Link: https://www.lanuv.nrw.de/fileadmin/lanuv/luft/immissionen/aktluftqual/eu_pm10_akt.htm
RegEx:RODE<\/td><td class="eins">[<\d]*<\/td><td class="zwei">([<\d]*)<
-
@Homoran Oder mit https://www.lanuv.nrw.de/fileadmin/lanuv/luft/immissionen/aktluftqual/eu_luftqualitaet.csv alle aktuellen Werte als CSV bekommen. Ganz praktisch.
-
@klassisch
Ja, aber für den laufenden Betrieb wollte ich die Seite parsen.Inzwischen habe ich festgestellt, dass sich da die Classes "eins" und "zwei" wohl immer mal wechseln, hab es zwar im Griff, sehe mir die csv aber später auch noch an.
Bundesweit oder für dich in BaWü habe ich noch nichts gefunden
-
@Homoran Vielen Dank für Deine Bemühungen! Ich habe ja noch meine eigenen Meßwerte.
Habe den Sketch jetzt mal so geändert, daß ich das gültig/ungültig Flag mit zum ioBroker schicke und auch wahlweise ungültige Werte zum ioBroker schicken kann. Mit FLOT kann man dann über "Füllen" des INVALID Flags die unültigen Daten schön deutlich machen. Hat auch was.
Das gelbe Overlay markiert die Daten als ungültig.
Wenn die Luftfeuchte mal wieder <70% wird, sollte das gelbe Overlay dann verschwinden.
Dann sehen wir mal, was in der Sylvesternacht "gemessen" oder besser angezeigt wird... -
@klassisch
Bei mir sieht es im Moment so aus:
Die Grenzen jeweils markiert und die rH als Graph.
Dann kann man die rH jedem aktuellen Messwert zuordnen und nicht den ganzen Graph als ungültig markierenDie blauen Linien sind die kumulierten Tagesmittelwerte (0:00 - 24:00, dann wieder von neuem)
-
@Homoran Da erkennt man eben den Profi. Weil ich auf die ganz Schnelle keine Grenzlinien einziehen konnte, habe ich die Grenzwerte in die Legende geschrieben.
Ok, Grenzlinien kann ich jetzt auch, habe es mal mit "Markierungen" gemacht.
Die 70% Grenze gilt für das Chinesische Billigmeßgerät . Ich nehme an, daß die amtlichen Stationen eine validierte Trockung eingebaut haben und deshalb nicht an diese Grenzen gebunden sind. Das ist auch mein Hautptinteresse an den offiziellen Daten. Wie gesagt, die sind eigentlich viel zu weit weg und auch an Orten, die nicht zu meinem Wohnort vergleichbar sind.
Apropos Feinstaub an Sylvester: Dazu gibt es eine Broschüre https://www.umweltbundesamt.de/sites/default/files/medien/479/publikationen/hgp_wenn_die_luft_zum_schneiden_ist_2019.pdf- 4200 Tonnen Feinstaub PM10 jährlich durch Feuerwerk
- Entspricht 25% der Menge aus Holzfeuerungen
- Entspricht 2% der deutschlandweit gesamten jährlichen Feinstaubmenge
Hoffe, daß das Zitat jetzt noch gesetzeskonform ist
-
@klassisch
Na dann guten Rutsch!