BFS - Bundesamt Für Strahlenschutz - Support Thread

Begonnen von Florian_GT, 25 Januar 2020, 13:23:30

Vorheriges Thema - Nächstes Thema

Florian_GT

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
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

Christoph Morrison

#1
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?

Florian_GT

#2
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?
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

Christoph Morrison

Das Internal RADIATION sollte vielleicht auch eher STATION heißen oder?

Prof. Dr. Peter Henning

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

Florian_GT

#5
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.
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

Prof. Dr. Peter Henning

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

dkreutz

Raspberry Pi3B+ (Bullseye) / JeeLink868v3c (LaCrosse), nanoCUL433 (a-culfw V1.24.02), HM-MOD-UART (1.4.1), TEK603, MapleCUL / diverse Sensoren/Sender/Aktoren von Technoline, Intertechno, Shelly, Homematic und MAX!, Froggit Wetterstation, Luftdaten.info / Autor des fhem-skill für Mycroft.ai

Christoph Morrison

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 - da habe ich noch ein paar Sachen abgeladen (nicht nur Bugs ;-)).

Florian_GT

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 - da habe ich noch ein paar Sachen abgeladen (nicht nur Bugs ;-)).

Mit der neuen BFS Version werden genau wie bei UBA alle Fehler behoben.
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

Prof. Dr. Peter Henning

#10
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?

marv99

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.

sash.sc

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
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Prof. Dr. Peter Henning

@sash.sc: Siehe oben im Link von dkreutz.

ZitatZugangsdaten sind nicht im öffentlichen Interesse.
Ach herrje, ein Kenner der Materie... :D :D

LG

pah

Gisbert

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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Frank_Huber

HTTPMODs und das BFS Modul gehen bei mir weiterhin einwandfrei.

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Gisbert

#17
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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Christoph Morrison

Du hast gerade deine Zugangsdaten veröffentlicht.

Gisbert

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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

capo

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.

sinus61

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

Gisbert

Hallo sinus61,

hat super geklappt, vielen Dank.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Florian_GT

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
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

Jewe

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

Gisbert

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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Christoph Morrison

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

Jewe

Vielen Dank,
in die URL-Leiste hätte ich ja auch mal schauen können :-)

Danke Jens

trinitywhm

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

Gisbert

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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

trinitywhm

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.

Christoph Morrison

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.

Prof. Dr. Peter Henning

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

Florian_GT

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
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

Persuasiv


Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Persuasiv

Ich habe es jetzt mit dem JsonMod-Modul gelöst. Mal schauen, ob das noch lange funktioniert.

Florian_GT

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
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

Frank_Huber

dito, eine meiner Instanzen ging ab 14:55 in die "Bootschleife"
nach deaktivieren der BFS Geräte ist wieder Ruhe.

Gisbert

#39
Das gleiche hier.
Disablen hat geholfen die Bootschleife zu beenden.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Florian_GT

Ü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
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

binford6000

Hallo Zusammen,
ein kurzer Blick in die Beschreibung der Schnittstelle 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

Plotter

#42
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

binford6000

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