Hallo zusammen,
Ich habe vor einiger Zeit die Betreuung des Moduls Airquality übernommen. Ich habe schon vor einiger Zeit dieses Module in zwei einzelne Module getrennt. Der Grund, weil es Grundlegend zwei unterschiedliche Ämter und Daten sind. Die Entwicklung ist so einfacher. Alles wird getrennt auseinandergehalten.
Ihr müsst also das alte Airquality Module im FHEM Ordner löschen!
um die Daten des BFS - Bundesamt Für Strahlenschutz im FHEM Verfügbar zu machen, stelle ich das Module BFS zur Verfügung. Dieses gibt es aktuell in einer Produktiv nutzbaren Version.
ich habe die neue Version unter https://github.com/fhem/bfs veröffentlicht.
Zum installiren per Update kann https://raw.githubusercontent.com/fhem/bfs/master/controls_bfs.txt verwendet werden.
Definition:
defmod <DeviceName> bfs <StationID>
defmod Luftdaten bfs 057540080
Hinweise:
Die StationID bekommt ihr auf http://odlinfo.bfs.de/DE/themen/wo-stehen-die-sonden/messstellen-in-deutschland.html#standort.
Um Daten abrufen zu können müsst ihr euch beim BFS Freischalten lassen. Siehe http://odlinfo.bfs.de/DE/service/datenschnittstelle.html.
Danke und Gruß Florian
Ich glaub pollutants und so kommen nicht über die Schnittstelle ;-)
showTimeReadings hatte auch keinen messbaren Effekt.
Die letzten Daten von GT-Hollen sind von 10:00, meine Readings Time sagt 11 Uhr, aber ich habe die Daten um 13:xx abgefragt.
Internals:
CFGFN
DEF 057540080
FUUID 5e2c3433-f33f-0f53-635e-8a0c10bb97dad085
NAME general.test.bfs
NR 18654
RADIATION Gütersloh-Hollen
STATE 0.061 µSv/h
TYPE bfs
.attraggr:
.attrminint:
Helper:
DBLOG:
radiation_cosmic:
general.system.log.db:
TIME 1579955343.96793
VALUE 0.041
radiation_terrestrial:
general.system.log.db:
TIME 1579955343.97335
VALUE 0.02
radiation_total:
general.system.log.db:
TIME 1579955343.96255
VALUE 0.061
READINGS:
2020-01-25 13:29:03 .lastUpdateRadiation 1579946400
2020-01-25 11:00:00 radiation_cosmic 0.041
2020-01-25 11:00:00 radiation_terrestrial 0.02
2020-01-25 11:00:00 radiation_total 0.061
helper:
INTERVAL 3600
STATION 057540080
Attributes:
showTimeReadings 0
stateFormat radiation_total µSv/h
userPassODL notyour:business
Gibt die Schnittstelle die Information mit, dass die Daten noch nicht geprüft wurden?
Zitat von: Christoph Morrison am 25 Januar 2020, 13:34:24
Ich glaub pollutants und so kommen nicht über die Schnittstelle ;-)
showTimeReadings hatte auch keinen messbaren Effekt.
Die letzten Daten von GT-Hollen sind von 10:00, meine Readings Time sagt 11 Uhr, aber ich habe die Daten um 13:xx abgefragt.
Internals:
CFGFN
DEF 057540080
FUUID 5e2c3433-f33f-0f53-635e-8a0c10bb97dad085
NAME general.test.bfs
NR 18654
RADIATION Gütersloh-Hollen
STATE 0.061 µSv/h
TYPE bfs
.attraggr:
.attrminint:
Helper:
DBLOG:
radiation_cosmic:
general.system.log.db:
TIME 1579955343.96793
VALUE 0.041
radiation_terrestrial:
general.system.log.db:
TIME 1579955343.97335
VALUE 0.02
radiation_total:
general.system.log.db:
TIME 1579955343.96255
VALUE 0.061
READINGS:
2020-01-25 13:29:03 .lastUpdateRadiation 1579946400
2020-01-25 11:00:00 radiation_cosmic 0.041
2020-01-25 11:00:00 radiation_terrestrial 0.02
2020-01-25 11:00:00 radiation_total 0.061
helper:
INTERVAL 3600
STATION 057540080
Attributes:
showTimeReadings 0
stateFormat radiation_total µSv/h
userPassODL notyour:business
Gibt die Schnittstelle die Information mit, dass die Daten noch nicht geprüft wurden?
Da hast du recht, pollutants hat null Funktion.
showTimeReadings wird nur in Verwendung mit einem neuen Update der Daten verwendet. Es müsste also ein angezeigt werden sobald das Module neue Daten liefert.
Bei der Uhrzeit läuft bestimmt einiges wie beim UBA falsch. Würde mich jedenfalls nicht wundern.
Ich habe im Development Branch eine neue Version hinterlegt, mit einigen neuen Debug Ausgaben Rund ums Thema Zeit. Magst du das mal testen?
Das Internal RADIATION sollte vielleicht auch eher STATION heißen oder?
Ich rufe die Gamma-Ortsdosisleistung vom BFS seit 6 Jahren mit einem HTTPMOD ab, das lediglich 6 Definitionszeilen umfasst. Kann mir mal jemand erklären, was dieses BFS-Modul besser macht?
LG
pah
Zitat von: Prof. Dr. Peter Henning am 25 Januar 2020, 17:02:26
Ich rufe die Gamma-Ortsdosisleistung vom BFS seit 6 Jahren mit einem HTTPMOD ab, das lediglich 6 Definitionszeilen umfasst. Kann mir mal jemand erklären, was dieses BFS-Modul besser macht?
LG
pah
- Anwenderfreundlichkeit
- Verschlüsselte Zugangsdaten
- Import aller Daten seit dem letzten Update, wenn also ein Zyklus mal nicht funktioniert sind auch alle Daten rückwirkend wieder da.
Aber du weißt ja, ich habe das übernommen. Aber generell finde ich auch gefallen daran, Module zu haben, anstatt selber mit HTTPMOD "fummeln" zu müssen. Hier übernehme ich das für die werten Module-Nutzer.
Edit:
@pah: Hast du deine Definition irgendwo veröffentlicht? Über die Suche nach "bundesamt für strahlenschutz" oder "BFS Strahlung" habe ich nix gefunden.
Ich sehe keines der Argumente als stichhaltig an. Ist also Geschmackssache, und ich werde das Modul nicht nutzen.
Veröffentlicht? Aber klar.Steht irgendwo im Forum - keine Lust, das jetzt noch zu suchen.
Und auf Seite 182 hier: https://www.hanser-fachbuch.de/buch/Smart+Home+mit+FHEM/9783446458734
LG
pah
Zitat von: Prof. Dr. Peter Henning am 25 Januar 2020, 20:12:45
Veröffentlicht? Aber klar.Steht irgendwo im Forum - keine Lust, das jetzt noch zu suchen.
Das war wohl hier: https://forum.fhem.de/index.php/topic,107057.msg1009653.html#msg1009653
Theoretisch liefert das Modul von Florian z.B. den letzten Datenzeitpunkt mit, das kann dein HTTPMOD nicht (aktuell stimmt der Zeitpunkt ja nicht ...)
Ich fände es ja spannend wenn das Modul sich melden würde, wenn mal länger keine Daten kommen / die Daten stark veraltert sind. Klar, geht auch über FHEM-Bordmittel, aber timtowtdi.
Ansonsten siehe Issue-Tracker (https://github.com/fhem/bfs/issues) - da habe ich noch ein paar Sachen abgeladen (nicht nur Bugs ;-)).
Zitat von: Christoph Morrison am 25 Januar 2020, 20:55:21
Theoretisch liefert das Modul von Florian z.B. den letzten Datenzeitpunkt mit, das kann dein HTTPMOD nicht (aktuell stimmt der Zeitpunkt ja nicht ...)
Ich fände es ja spannend wenn das Modul sich melden würde, wenn mal länger keine Daten kommen / die Daten stark veraltert sind. Klar, geht auch über FHEM-Bordmittel, aber timtowtdi.
Ansonsten siehe Issue-Tracker (https://github.com/fhem/bfs/issues) - da habe ich noch ein paar Sachen abgeladen (nicht nur Bugs ;-)).
Mit der neuen BFS Version werden genau wie bei UBA alle Fehler behoben.
Zitatdas kann dein HTTPMOD nicht
Sorry, aber das ist Käse. Im HTTPMOD wird der Status abgefragt. So lange der Status der Messstelle auf 1 steht, ist der Messwert höchstens eine Stunde alt. Und selbstverständlich kann man darauf einen Trigger setzen. Keineswegs möchte ich als Ketzer gelten oder jemandem die Motivation nehmen - aber pardon, ich sehe immer noch keinen Vorteil des BFS-Moduls.
LG
pah
Edit: Und einige Deiner Issues verstehe ich auch nicht. Warum sollte man öffentlich und kostenfrei erhältliche Daten, deren Verbreitung sogar in öffentlichem Interesse liegt, verschlüsseln?
Zitat von: Prof. Dr. Peter Henning am 26 Januar 2020, 07:53:17
Edit: Und einige Deiner Issues verstehe ich auch nicht. Warum sollte man öffentlich und kostenfrei erhältliche Daten, deren Verbreitung sogar in öffentlichem Interesse liegt, verschlüsseln?
Zitat von: Florian_GT am 25 Januar 2020, 18:28:34
- Anwenderfreundlichkeit
- Verschlüsselte Zugangsdaten
- Import aller Daten seit dem letzten Update, wenn also ein Zyklus mal nicht funktioniert sind auch alle Daten rückwirkend wieder da.
Zugangsdaten sind nicht im öffentlichen Interesse.
Zitat von: Prof. Dr. Peter Henning am 25 Januar 2020, 17:02:26
Ich rufe die Gamma-Ortsdosisleistung vom BFS seit 6 Jahren mit einem HTTPMOD ab, das lediglich 6 Definitionszeilen umfasst. Kann mir mal jemand erklären, was dieses BFS-Modul besser macht?
LG
pah
Hallo pah.
Kannst du mal bitte deine definition posten ?
Danke
@sash.sc: Siehe oben im Link von dkreutz.
ZitatZugangsdaten sind nicht im öffentlichen Interesse.
Ach herrje, ein Kenner der Materie... :D :D
LG
pah
Hallo,
ich bekomme seit dem 24.3. ca. 5:00 keine neuen Daten rein. Im logfile sieht alles noch ordentlich aus, nur dass eben keine Daten abgerufen wurden:
Zitat
2020.03.31 09:39:15 3: Getting ODL data with login from URL: http://odlinfo.bfs.de/daten/json/053150002ct.json
2020.03.31 09:39:15 2: Received 0 values for radiation
Hat jemand das gleiche Verhalten beim Abruf von Daten?
Viele Grüße Gisbert
HTTPMODs und das BFS Modul gehen bei mir weiterhin einwandfrei.
Hallo Frank,
jetzt läuft es wieder, aber schon komisch.
Als ob jemand mitliest und notiert, ob ich merke, wenn keine Daten mehr reinkommen.
Um dann Daten (unbemerkt) auf einen Rutsch nachzuliefern, nach dem Motto "ist doch alles da, was willst du denn überhaupt".
Der logfile gibt aber folgende Auskunft:
Zitat2020.03.31 10:39:15 3: Getting ODL data with login from URL: http://odlinfo.bfs.de/daten/json/053150002ct.json
2020.03.31 10:39:23 2: Received 165 values for radiation
Ich werde ein wachsames Auge draufwerfen, was will man in diesen Zeiten auch schon groß anderes machen als spazierengehen und sich seinen Hobbies hingeben.
In diesem Sinne, danke für deine Antwort und bleib gesund.
Viele Grüße Gisbert
Hallo zusammen,
ich bekomme jede Stunde folgende Einträge im logfile:
2021.04.11 07:03:26.101 1: ERROR: Another HttpUtils_NonblockingGet with the same hash is in progress
2021.04.11 07:03:26.101 1: stacktrace:
2021.04.11 07:03:26.101 1: main::HttpUtils_NonblockingGet called by FHEM/HttpUtils.pm (889)
2021.04.11 07:03:26.101 1: main::HttpUtils_ParseAnswer called by FHEM/HttpUtils.pm (642)
2021.04.11 07:03:26.102 1: main::__ANON__ called by fhem.pl (770)
2021.04.11 07:03:26.102 1: Radiation: URL error for ODL: Another HttpUtils_NonblockingGet with the same hash is in progress
Gleichzeitig steht im state "error", statt der erwarteten Werte.
Hier noch ein list meines Devices: (edit: gelöscht)
Hat jemand das gleiche Problem?
Viele Grüße
Gisbert
Du hast gerade deine Zugangsdaten veröffentlicht.
Zitat von: Christoph Morrison am 11 April 2021, 19:34:00
Du hast gerade deine Zugangsdaten veröffentlicht.
Danke, hab's gelöscht, da ist mir was durchgeflutscht.
An einer Stelle hab ich die Credentials verändert, an einer anderen es aber übersehen.
Viele Grüße Gisbert
Hallo zusammen,
müssen wir da etwas anpassen?
ZitatSie haben sich vor einiger Zeit für die Nutzung der ODL-Datenschnittstelle registriert, mit der das Bundesamt für Strahlenschutz (BfS) die auf https://odlinfo.bfs.de veröffentlichten Daten des Messnetzes zur Überwachung der Ortsdosisleistung (ODL) kostenlos zur Verfügung stellt.
Zur Bereitstellung dieser ODL-Daten hat das BfS Anfang Dezember 2021 eine neue offene, standardisierte ODL-Datenschnittstelle (API) auf Basis der OGC-Standards eingerichtet.
Vorteile der neuen Lösung sind...
die einfachere Nutzung:
Für OGC-Standards gibt es bereits eine Vielzahl an Bibliotheken, die Nutzenden das Parsen und Handling der Daten erleichtern.
der freie Zugang:
Die neue Schnittstelle ist unter Beachtung der Nutzungsbedingungen frei zugänglich und erfordert keine Registrierung.
die verbesserte Aktualität:
Die Daten der neuen Schnittstelle werden nicht mehr wie bisher alle sechs Stunden, sondern quasi live mit der Verarbeitung der Messdaten beim BfS aktualisiert. Dies geschieht in der Regel stündlich.
Die bisherige (alte) ODL-Datenschnittstelle wird bis 30. Juni 2022 unter https://odlinfo2.bfs.de/daten/ parallel zur neuen ODL-Schnittstelle weiter betrieben, um allen Nutzenden Zeit zu geben, ihre Datenabrufe umzustellen.
Zudem wurden Weiterleitungen eingerichtet, sodass der ODL-Datenabruf in der bisher praktizierten Form zunächst weiter funktionieren sollte.
Bitte nutzen Sie für Ihre ODL-Datenabrufe ab sofort, spätestens jedoch ab 30. Juni 2022, die neue ODL-Datenschnittstelle.
Ausführliche Informationen zur neuen ODL-Schnittstelle erhalten Sie unter https://odlinfo.bfs.de/ODL/DE/service/datenschnittstelle/datenschnittstelle_node.html.
Damit kann man sich ja jetzt relativ einfach die Werte mit einem JsonMod holen. Nur der Wert hinter kenn: ist entsprechend anzupassen.
defmod bfs JsonMod https://www.imis.bfs.de/ogc/opendata/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=opendata:odlinfo_timeseries_odl_1h&outputFormat=application/json&viewparams=kenn:031020004&sortBy=end_measure+D&maxFeatures=1
attr bfs interval 5/30 * * * *
attr bfs readingList single(jsonPath('$.features.0.properties.value'), 'value', 0);;single(jsonPath('$.features.0.properties.end_measure'), 'end_measure', 0);;single(jsonPath('$.features.0.properties.name'), 'name', 0)
attr bfs stateFormat name: value µSv/h
und schon hat man ein paar Readings
READINGS:
2022-01-09 15:32:40 end_measure 2022-01-09T14:00:00Z
2022-01-09 15:32:40 name Salzgitter-Lebenstedt
2022-01-09 15:32:40 value 0.095
Hallo sinus61,
hat super geklappt, vielen Dank.
Viele Grüße Gisbert
Hallo zusammen,
das BFS hat die API erneuert und die alte auf eine andere URL verschoben. Ich habe das Module entsprechend für diese URL Veränderung angepasst und ein Update steht für euch zur Verfügung.
Gruß Florian
Hallo,
wie bekomme ich die Nummer der Messtelle raus? Der alte Link funktioniert nicht mehr und bei der Karte, Liste oder einzelne Messstelle gibt es keine Messstellennummer.
Grüße, Jens
Hallo Jens,
kuckst du hier:
https://www.imis.bfs.de/ogc/opendata/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=opendata:odlinfo_odl_1h_latest&outputFormat=application/json
Viele Grüße Gisbert
Zitat von: Jewe am 12 März 2022, 09:03:44
wie bekomme ich die Nummer der Messtelle raus? Der alte Link funktioniert nicht mehr und bei der Karte, Liste oder einzelne Messstelle gibt es keine Messstellennummer.
Neben den JSON-Daten steht die Kennnummer der Station auch in der URL der Messstelle (Parameter
id)
https://odlinfo.bfs.de/ODL/DE/themen/wo-stehen-die-sonden/karte/_documents/Messstelle.html?id=057540160
Vielen Dank,
in die URL-Leiste hätte ich ja auch mal schauen können :-)
Danke Jens
Ich bekomme leider nach einem Update des Moduls noch immer keine Daten.
Ein get <DEVICE> data wird mit einem leeren Meldungsfenster quittiert indem ich lediglich OK klicken kann.
Hier ein list meines Devices:
Internals:
DEF 082260960
FUUID 622dccae-f33f-3b28-0aaf-25bb6490712b6218
FVERSION 60_bfs.pm:?/2022-03-13
NAME OUT_Luftdaten
NR 558
STATE ???
TYPE bfs
helper:
INTERVAL 3600
STATION 082260960
Attributes:
DbLogExclude .*
room Draussen
stateFormat radiation_total µSv/h
verbose 5
ZitatIch bekomme leider nach einem Update des Moduls noch immer keine Daten.
Bekommst du mittlerweile Daten?
Daten werden anscheinend nur dann gelesen, wenn neue Daten vorliegen. Dies ist bei mir zu jeder vollen Stunde der Fall.
Viele Grüße Gisbert
Zitat von: Gisbert am 13 März 2022, 21:22:18
Bekommst du mittlerweile Daten?
Daten werden anscheinend nur dann gelesen, wenn neue Daten vorliegen. Dies ist bei mir zu jeder vollen Stunde der Fall.
Viele Grüße Gisbert
Nein, keine Daten. Weder nach warten, noch nach dem get-Befehl der wie oben beschrieben ein leeres Dialogfenster erzeugt.
Zitat von: Florian_GT am 10 März 2022, 21:40:04
Hallo zusammen,
das BFS hat die API erneuert und die alte auf eine andere URL verschoben. Ich habe das Module entsprechend für diese URL Veränderung angepasst und ein Update steht für euch zur Verfügung.
Gruß Florian
Dein Modul wird aber nach dem 30. Juni nicht mehr funktionieren. Die alte API wird dann abgeschaltet.
Tja. Vor 16 Jahren habe ich mal einen Forschungspreis dafür bekommen, dass ich bei diesen Geodateninitiativen mitgemacht habe und mit Studenten ein eigenes komplett XML-basiertes Geoinformationssystem gebaut habe.
Jetzt muss ich doch tatsächlich den alten Kram zum WebFeatureService wieder ausgraben...
LG
pah
Zitat von: Christoph Morrison am 14 März 2022, 08:40:37
Dein Modul wird aber nach dem 30. Juni nicht mehr funktionieren. Die alte API wird dann abgeschaltet.
ich arbeite an einer neuen Version und werde diese sobald fertig in das Repo pushen.
Gruß Florian
Funktioniert das Modul noch?
Also bei mir läuft das Modul noch. Ich hab mir die Stichpunkte JSON und API notiert, d.h. ich frage über beide Wege ab, in der Erwartung, dass ein Weg wegfallen wird.
Viele Grüße Gisbert
Ich habe es jetzt mit dem JsonMod-Modul gelöst. Mal schauen, ob das noch lange funktioniert.
Hallo zusammen,
ich musste gerade an meiner eigenen Produktiven FHEM Installation feststellen, dass die API vom BFS andere bzw. keine Daten mehr liefert. Das führt dummerweise dazu, dass das BFS Module in FHEM eine Exception wirft und FHEM neu gestartet wird.
2023.03.29 15:13:07.704 3: Getting ODL data with login from URL: http://odlinfo2.bfs.de/daten/json/xxxxxxx.json
Can't use an undefined value as an ARRAY reference at ./FHEM/60_bfs.pm line 208.
Da mein Fokus zwar noch auf Umweltdaten aber nicht mehr so sehr auf Entwicklung in FHEM mit Perl liegt, konkret möchte ich mit kleinen einfachen Docker Containern Daten per MQTT zur Verfügung stellen würde ich, da auch die Schnittstelle beim BFS modernisiert worden ist, das Module in FHEM einstampfen und eine neue Lösung im nächsten halben Jahr vorstellen!
Gruß Florian
dito, eine meiner Instanzen ging ab 14:55 in die "Bootschleife"
nach deaktivieren der BFS Geräte ist wieder Ruhe.
Das gleiche hier.
Disablen hat geholfen die Bootschleife zu beenden.
Über die Schnittstelle kommen immer noch keine Daten mehr. Ich denke das war es mit der alten Schnittstelle. Ich habe gestern aber trotzdem noch einen kleinen Fix für das Module bereitgestellt, damit man nicht gleich in's offene Messer läuft, wenn man es lädt.
Ich würde mich über Feedback freuen, wie viele von euch schon ein wenig mit Docker zu tun haben. Meine Idee geht dahin, ein auf PHP Basis geschriebenen Daemon laufen zu lassen, der regelmäßig Daten an MQTT liefert bzw. auch Daten von z.B. meinem Energiezähler ablesen kann. Das würd ich gerne als Docker bereitstellen, und ich würde gerne wissen, wie viele es so gibt, die dazu noch eine alternative möchten. Die Alternative wäre dann ein per Systemd laufender Daemon Job.
Gruß Florian
Hallo Zusammen,
ein kurzer Blick in die Beschreibung der Schnittstelle (https://odlinfo.bfs.de/SharedDocs/Downloads/ODL/DE/datenbereitstellung.pdf?__blob=publicationFile&v=3) und eine kleine JsonMod definition (kenn anpassen an eure Messstation):
defmod test JsonMod https://www.imis.bfs.de/ogc/opendata/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=opendata:odlinfo_timeseries_odl_1h&outputFormat=application/json&maxFeatures=1&sortBy=end_measure+D&viewparams=kenn:064390021
attr test readingList complete();
liefert das:
setstate test 2023-03-30 19:26:27 .computedReadings features.0.geometry.type,features.0.properties.start_measure,features.0.geometry.coordinates.1,features.0.properties.value,crs.properties.name,features.0.properties.name,features.0.geometry.coordinates.0,features.0.properties.duration,totalFeatures,features.0.id,features.0.properties.nuclide,timeStamp,features.0.geometry_name,features.0.properties.end_measure,features.0.properties.unit,type,features.0.properties.validated,features.0.properties.id,features.0.type,features.0.properties.kenn,numberMatched,crs.type,numberReturned
setstate test 2023-03-30 19:26:27 crs.properties.name urn:ogc:def:crs:EPSG::4326
setstate test 2023-03-30 19:26:27 crs.type name
setstate test 2023-03-30 19:26:27 features.0.geometry.coordinates.0 8.06
setstate test 2023-03-30 19:26:27 features.0.geometry.coordinates.1 50.16
setstate test 2023-03-30 19:26:27 features.0.geometry.type Point
setstate test 2023-03-30 19:26:27 features.0.geometry_name geom
setstate test 2023-03-30 19:26:27 features.0.id odlinfo_timeseries_odl_1h.fid--14020c47_187338e6fbb_-6f72
setstate test 2023-03-30 19:26:27 features.0.properties.duration 1h
setstate test 2023-03-30 19:26:27 features.0.properties.end_measure 2023-03-30T16:00:00Z
setstate test 2023-03-30 19:26:27 features.0.properties.id DEZ0824
setstate test 2023-03-30 19:26:27 features.0.properties.kenn 064390021
setstate test 2023-03-30 19:26:27 features.0.properties.name Bad Schwalbach
setstate test 2023-03-30 19:26:27 features.0.properties.nuclide Gamma-ODL-Brutto
setstate test 2023-03-30 19:26:27 features.0.properties.start_measure 2023-03-30T15:00:00Z
setstate test 2023-03-30 19:26:27 features.0.properties.unit µSv/h
setstate test 2023-03-30 19:26:27 features.0.properties.validated 1
setstate test 2023-03-30 19:26:27 features.0.properties.value 0.107
setstate test 2023-03-30 19:26:27 features.0.type Feature
setstate test 2023-03-30 19:26:27 numberMatched 167
setstate test 2023-03-30 19:26:27 numberReturned 1
setstate test 2023-03-30 19:26:27 timeStamp 2023-03-30T17:26:27.044Z
setstate test 2023-03-30 19:26:27 totalFeatures 167
setstate test 2023-03-30 19:26:27 type FeatureCollection
Das Ganze kann man natürlich noch schön machen. Aber der Abruf funktioniert.
VG Sebastian
Hallo Sebastian,
danke für die einfache Möglichkeit, die ODL-Daten weiterhin abrufen zu können. Es funktioniert sehr gut. Ich habe noch ein stateFormat festgelegt mit:
ODL: features.0.properties.value features.0.properties.unit
Außerdem fand ich interessant, dass die BfS-Messungen auch den terrestrischen und den kosmischen Anteil der ODL (Ortsdosisleistung) ausweisen. Da es diese beiden Werte nicht im Layer "odlinfo_timeseries_odl_1h" gibt, habe ich es mit dem Layer "odlinfo_odl_1h_latest" versucht. Leider konnte ich dort nicht über "viewparams=kenn:064390021" einen Standort herausfiltern. Erfolgreich war ich mit folgender Variante:
https://www.imis.bfs.de/ogc/opendata/ows?service=WFS&version=1.1.0&request=GetFeature&typeName=opendata:odlinfo_odl_1h_latest&outputFormat=application/json&maxFeatures=1&sortBy=name&startIndex=1258
Die hinteren Parameter haben folgende Bedeutung:
- nur einen Datensatz lesen: maxFeatures=1
- nach dem Stationsnamen sortieren: sortBy=name
- bei folgender Nummer beginnen: startIndex=1258
Welchen Startindex die gewünschte Station bei der eingestellten Sortierung hat, habe ich über Probieren herausgefunden. Da es 1719 Datensätze gibt, kann man abschätzen, wo die Suche beginnen könnte. Bestimmt gibt es hier noch bessere Varianten. Auch andere Sortierungen sind möglich.
Damit man alle Angaben zu den Messwerten als Readings erhält, setzt man auch hier das Attribut "readingList" auf:
complete()
Nun kann ich nicht nur den Gesamtwert der ODL, sondern auch die terrestrischen und kosmischen Anteile für einen speziellen Ort auslesen. Über das stateFormat
K: features.0.properties.value_cosmic features.0.properties.unit T: features.0.properties.value_terrestrial features.0.properties.unit G: features.0.properties.value features.0.properties.unit
bekomme ich eine sinnvolle Darstellung.
Viele Grüße
ZitatDas Ganze kann man natürlich noch schön machen
Bitteschön:
single(jsonPath('crs.properties.name'),'crs_properties_name','error');
single(jsonPath('crs.type'),'crs_type','error');
single(jsonPath('features.0.geometry.coordinates.0'),'lon','error');
single(jsonPath('features.0.geometry.coordinates.1'),'lat','error');
single(jsonPath('features.0.geometry.type'),'geo_type','error');
single(jsonPath('features.0.geometry.name'),'geo_name','error');
single(jsonPath('features.0.id'),'bfs_id','error');
single(jsonPath('features.0.properties.duration'),'duration','error');
single(jsonPath('features.0.properties.end_measure'),'timestamp_end','error');
single(jsonPath('features.0.properties.id'),'station_name','error');
single(jsonPath('features.0.properties.kenn'),'station_kenn','error');
single(jsonPath('features.0.properties.name'),'station_city','error');
single(jsonPath('features.0.properties.nuclide'),'measurement','error');
single(jsonPath('features.0.properties.start_measure'),'timestamp_start','error');
single(jsonPath('features.0.properties.unit'),'unit','error');
single(jsonPath('features.0.properties.validated'),'validated','error');
single(jsonPath('features.0.properties.value'),'value','error');
single(jsonPath('features.0.type'),'type','error');
single(jsonPath('numberMatched'),'numberMatched','error');
single(jsonPath('numberReturned'),'numberReturned','error');
single(jsonPath('timeStamp'),'timeStamp','error');
single(jsonPath('totalFeatures'),'totalFeatures','error');
single(jsonPath('type'),'type','error');
VG Sebastian