Umweltbundesamt Luftdaten (60_airquality.pm) Ersetzt durch 60_uba.pm & 60_bfs.pm

Begonnen von Markus M., 07 März 2017, 19:31:30

Vorheriges Thema - Nächstes Thema

Markus M.

Modul wurde ersetzt durch die Weiterentwicklungen von Florian_GT

UBA: https://forum.fhem.de/index.php/topic,107741.0.html
BFS: https://forum.fhem.de/index.php/topic,107742.0.html




------------


Ein Modul für aktuelle Luftdaten vom Umweltbundesamt.

Es gibt Werte für Feinstaub PM10, Schwefeldioxid, Ozon, Stickstoffdioxid (1-Stunden-Mittelwert) und Kohlenmonoxid (8-Stunden-Mittelwert).
Eine Liste der Stationen findet ihr hier: http://www.umweltbundesamt.de/daten/luftbelastung/aktuelle-luftdaten#/stations

Definition:
define airquality airquality DEXX123

Da fast keine Station alle Werte misst, gibt es Attribute für zusätzliche Stationen für die einzelnen Schadstoffe.
Mit zusätzlichen Attributen für eine ODL ID und die Zugangskennung können auch Werte für Hintergrundstrahlung empfangen werden.
Den Rest findet ihr in der Modulhilfe.

Danke an jnewton957 für die Idee!


Ich werde das Modul nicht ins SVN einchecken, da die Nutzbarkeit der Daten durch die teilweise lückenhafte und verspätete Bereitstellung stark eingeschränkt ist und ich maximal statistischen Nutzen sehe. Da ich persönlich auch keine Verwendung für die Daten habe, wird das Modul nicht aktiv weiterentwickelt.


2018-06-03: Bugfix für userPassODL Attribut (afloria)
2020-01-25: Neue UBA Schnittstelle
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

peterk_de

Jeeeeeeah damit kann ich evtl. meine selbstgebastelten schrottigen HTTPMOD-Anfragen an unseren Landes-Luft-Server ersetzen, DANKE!!
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Markus M.

Zitat von: peterk_de am 07 März 2017, 19:38:03
Jeeeeeeah damit kann ich evtl. meine selbstgebastelten schrottigen HTTPMOD-Anfragen an unseren Landes-Luft-Server ersetzen, DANKE!!

Gut möglich, sollten die gleichen Daten sein. Vielleicht versteckt sich darin sogar schon die ID
Bitte mal testen und loggen, ob noch irgendwo Fehler drin sind - ich hab das gestern Abend spontan zusammengeschustert :)
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

peterk_de

Funktioniert 1a, auch das Zusammenbasteln aus verschiedenen Stationen. Wunderbar. Die Stations-IDs sind andere.

Leider leitet aber unser Landesnetzwerk nicht alle Daten an das Messnetzwerk vom Bund weiter (PM2,5, Benzol, Globalstrahlung und alle Wetterdaten von den Stationen fehlen). Da ich aber in Sichtweite von so ner Messstation wohne, und die ja Equipment auffahren, was sich ein normalsterblicher privat nicht auf den Balkon hängt, sind das perfekte Wetterdaten für mich - das heißt ein paar HTTMODs müssen bleiben, aber das ist weniger tragisch - die wichtigsten Sachen sind dabei :-)
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Markus M.

Wenn du irgendwas findest das solche Daten bundesweit bereithält und idealerweise noch per Schnittstelle auslesbar ist, gib mir Bescheid.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

peterk_de

Hatte ich schon nach gesucht - ich fürchte das gibt es nicht, die Mühe wird sich wahrscheinlich einfach niemand machen, wenn es der Bund selbst schon nicht tut.

Hab noch einen "Haken" gefunden: Die Daten hinken gegenüber denen vom Land eine Stunde hinterher. Die Laden das vermutlich manuell per Eingabemaske hoch ^^
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Markus M.

#6
Vergleich mal ob nicht nur die Stunde nicht passt.
Wenn ich 20 nach 8 einen 1h Mittelwert abrufen dann kann der  von 7 Uhr oder bis 8 Uhr sein. Definitionssache :)

Da ich jeweils von 30 Minuten nach dem letzten erhaltenen Stundenwert bis jetzt über Unix Timestamps anfrage, sollten meine Werte eigentlich fast passen.
Beispiel: Letzter Wert von 19:00, Abfrage-Zeitraum jetzt von 19:30 bis 20:30 - wenn was kommt ist es der Wert von 20 Uhr.
Scheint aber wirklich mit wechselnder Verzögerung zu laufen...
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

KölnSolar

Hi Markus,
interessante Idee. Gleich ausprobiert, aber leider
Can't locate object method "new" via package "JSON" (perhaps you forgot to load "JSON"?) at ./FHEM/60_airquality.pm line 632.

Ist ein Rpi mit aktuellem Wheezy. Hab erst gedacht, ich muss noch das libjson-perl installieren(obwohl die Meldung ja etwas anders ist als sonst bei einem fehlenden Perl-Modul).  Hat aber leider auch mit einem reboot nicht geholfen. Sobald der get-Befehl ausgeführt wird, schmiert fhem ab  :(
Muss ich da erst etwas starten/laden, so wie die Fehlermeldung aussagt ?

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Markus M.

Ne, ich muss es dummerweise auch definieren...
Update im ersten Post!
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

KölnSolar

#9
Hi Markus,
danke für die Korrektur. Versteh jetzt nur nicht, warum das bei anderen funktionieren konnte  :-\

Ja, und mein fhem zerriss es trotzdem wieder  >:( Diesmal mit: Undefined subroutine &main::Dumper called at ./FHEM/60_airquality.pm line 658. Ist das nur für Dich zum Test oder muss ich was installieren ?

Ich hab die Zeile mal auskommentiert und dann läufts  ;D

Die commandref ist gut verständlich. 2 Anmerkungen: Scheinbar hat die von mir gewählte Station keinen CO-Messwert. Vielleicht müsste man da textlich noch etwas mehr drauf eingehen, dass nicht alle Stationen alle Werte liefern und man über stationWert eine abweichende Station eintragen kann, um einen Wert zu erhalten. Gewöhnungsbedürftig ist sicherlich auch, dass im Gegensatz zum üblichen Verhalten, als timestamp nicht das letzte get, sondern der timestamp der Veröffentlichung der Luftdaten anzeigt wird.

Beides mit ein wenig Hirn und FHEM-Erfahrung leicht durchschaubar, aber newbies...  :-\ Ich sehe schon die Posts mit ".. Bug seit dem letzte Update..." vor meinen Augen  ;D

Danke fürs Modul und Deine Hilfe
Markus
Edit: Ah, und vielleicht noch die Angabe des polling-intervalls.

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Markus M.

Zitat von: KölnSolar am 08 März 2017, 11:39:38
Hi Markus,
danke für die Korrektur. Versteh jetzt nur nicht, warum das bei anderen funktionieren konnte  :-\

Dein Perl ist zu weinerlich ;)
Hab den Dumper auch noch eingetragen.


ZitatDie commandref ist gut verständlich. 2 Anmerkungen: Scheinbar hat die von mir gewählte Station keinen CO-Messwert. Vielleicht müsste man da textlich noch etwas mehr drauf eingehen, dass nicht alle Stationen alle Werte liefern und man über stationWert eine abweichende Station eintragen kann, um einen Wert zu erhalten. Gewöhnungsbedürftig ist sicherlich auch, dass im Gegensatz zum üblichen Verhalten, als timestamp nicht das letzte get, sondern der timestamp der Veröffentlichung der Luftdaten anzeigt wird.

Das mit den Stationen steht oben und nochmal in der commandref :)
Timestamps von allen Daten die in irgendwechen externen Quellen mit einem Zeitstempel rumschwirren werden eigentlich immer mit dieser Zeit eingetragen.

Polling ist stündlich. Das werde ich vielleicht noch soweit anpassen dass es immer um XX:30 passiert.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

KölnSolar

ZitatTimestamps von allen Daten die in irgendwechen externen Quellen mit einem Zeitstempel rumschwirren werden eigentlich immer mit dieser Zeit eingetragen.
OK, habe ich nicht. Bin da eher rein event getrieben ;)

Nun fluppts  :-*

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Frosch

Hallo,

super, auf so ein Modul habe ich auch schon lange gewartet. Momentan beziehe ich die Luftqualitätsdaten wie peterk_de per HTTPMOD aus dem Netz. Ich hole mir die Daten nur von hier: https://www.lanuv.nrw.de/fileadmin/lanuv/luft/immissionen/aktluftqual/eu_luft_akt
Wie das dann bei mir aussieht seht ihr im Anhang.

Merkwürdig ist, dass ich über das Modul von der Station "Bielefeld Ost" nur NO2 und O3 bekomme. Von der Webseite hole ich mir auch noch die PM10 Werte dieser Station. Könnte man www.lanuv.nrw.de noch als weitere Quelle in das Modul aufnehmen?

Ich möchte mit den aktuellen Luftqualitätswerten herausfinden ob das Lüften bzw. einschalten der Wohnraulüftung sinnvoll ist. Daher fände ich einen Vergleich der gemessenen Werte mit den Grenzwerten gut. Eine Idee wäre auch noch das man sich selber Grenzwerte festlegen kann wenn man die offiziellen Grenzwerte noch verschärfen möchte, um dann zum beispiel benachrichtigt zu werden, wenn gerade lieber nicht gelüftet werden sollte oder wie in meinem Fall dann die Wohnraumlüftung abgeschaltet wird.

Gruß Mathias

peterk_de

#13
Hmm, FroggyFrog, ich glaube, das für jedes Bundesland einzeln zu machen, das ist 16facher Pflegeaufwand. Zumal die Sachen in jedem Bundesland ja anders bereitgestellt werden.

Mein Beispiel - Sachsen-Anhalt - ist da vielleicht sogar ein typisches: Die haben nur ne Webseite im 90er Jahre-Stil, und - woah! - ne iOS-App. Die hatte ich mir mal mit Wireshark vorgenommen - und jetzt kommt der Brüller - das ist deren "API":

http://www.mu.sachsen-anhalt.de/lau/luesa/tmp/LUESA-APP-json.txt

Immerhin strukturierte Daten, aber alles von allen Messstationen auf einmal. Wer soll so nen Mist in 16fach anderer Ausführung freiwillig aktuell halten? Das läuft doch auf 16 komplett verschiedene Module hinaus. Und will man wirklich für jedes Bundesland ein Modul? Wär zwar das Optimum aber ... hmm. Ich nehm jetzt mangels Zeit, es ordentlich zu machen, mit dem HTTPMOD für die fehlenden Werte einfach von der Webseite und gut. ;-) Vielleicht könnte man ja die entsprechenden URLS/Regexe/XPath-Ausdrücke ja mal im wiki sammeln.

P.S. mein Indoor-PM10 Sensor misst immer deutlich niedrigere Werte als die Station auf der Straße. Danach dürfte ich nie Lüften 😂 Wert geht beim Lüften auch tatsächlich hoch und fällt dann bis zum nächsten mal langsam ab.
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

KölnSolar

Hi Markus,
der https://forum.fhem.de/index.php/topic,68875.0.html bzgl. Radioaktivität ist mir eben auf die Füße gefallen. Sinnvoll/Möglich zu implementieren ?

Macht es Sinn Grenzwerte per Modul vorzugeben ? Oder würdest Du da eher den Einsatz von userreadings bevorzugen ?

ZitatTimestamps von allen Daten die in irgendwechen externen Quellen mit einem Zeitstempel rumschwirren werden eigentlich immer mit dieser Zeit eingetragen.
Hab ich ja verstanden  ;) Ist es daher auch "normal", dass man auf der Detailseite bei einer Aktualisierung seitens des internaltimers den timestamp der Aktualisierung sieht, bei einem refresh dann aber den timestamp der Messung ?

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt