Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Adapter Anfrage: ODL-Messnetz (Bundesamt für Strahlenschutz)

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Adapter Anfrage: ODL-Messnetz (Bundesamt für Strahlenschutz)

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      spaceduck last edited by

      Hallo zusammen,

      hat wer hier im Forum schon mal per iobroker die Radioaktivitätsdaten vom ODL Netzwerk per script abgerufen oder ist zufällig ein Adapter dafür bereits in Entwicklung? Das Bundesamt für Strahlenschutz stellt die Daten der Messstationen im json Format bereit.

      https://odlinfo.bfs.de/DE/service/daten … telle.html

      Hier noch die Liste der Messstationen:

      https://odlinfo.bfs.de/DE/themen/wo-ste ... hland.html

      MfG

      1 Reply Last reply Reply Quote 0
      • BuZZy
        BuZZy last edited by

        JSON heißt "JavaScript Object Notation"..

        Und womit wird in ioBroker gescriptet? Richtig.. Mit JavaScript! 😉

        Es sind also alle Mittel um die Daten in einem Script zu verarbeiten bereits von Haus aus vorhanden. 🙂

        JSON Parser ist das Zauberwort. 🙂

        Gruß

        1 Reply Last reply Reply Quote 0
        • P
          pix last edited by

          Yep, ein Script oder der Parser sollten hier das Mitteld er Wahl sein. Ein Adapter schießt wohl etwas übers Ziel hinaus, solange wir keine Bedrohung durch Radioaktivität haben. Und wenn doch, gibt es vielleicht wichtigeres :lol:

          Such deine Messstation auf der karte, lass die Werte anzeigen und gucken in den Quelltext. Dann kannst du mit derm Parser-Adapter deine Stationsdaten extrahieren und in ein ioBroker Objekt schreiben.

          Um eine JSON-Datei laden zu können, musst man sich registrieren. Das habe ich nicht gemacht.

          Gruß

          Pix

          1 Reply Last reply Reply Quote 0
          • S
            spaceduck last edited by

            Ich habe mich gestern Abend mal drangesetzt und ein Script erstellt welches das json abruft und die Werte in ein Objekt schreibt. Funktioniert schonmal einwandfrei und war eigentlich einfacher als gedacht.

            Wenn hier jemand Interesse hat, dann kann ich das gerne veröffentlichen. Allerdings brauche ich noch ein wenig Zeit da das script wirklich quick & Dirty ist.

            Registrierung ist nötig, man bekommt dann ein personalisiertes Login.

            Jan

            1 Reply Last reply Reply Quote 0
            • D
              dna909 last edited by

              Hab auch was zurechtgeschustert:

              neue Version 🙂

              ! ````
              ////////////////////////////////////////////////////////////////////////////////
              ////BFS-Strahlen-Moped//////////////////////////////////////////////////////////
              ////////////////////////////////////////////////////////////////////////////////
              ////V0.1 Abfrage von einer Messstelle (22.09.2017)
              ////V0.2 Ergänzung Grenzwert (Setzen eines Farbwerts) (23.09.2017)
              ////V0.3 Möglichkeit der Abfrage mehrerer Messstellen (23.09.2017)
              ////V0.4 Bugfixing (25.09.2017)
              ////V0.5 Berücksichtigung des Messstellenstatus (25.05.2018)
              //// (muss =1 sein, sonst keine Auswertung)
              ////////////////////////////////////////////////////////////////////////////////
              ! var request = require("request");
              var JSON_arr = {};
              var path = "Strahlung.";
              var color_red = "#ff0000";
              var color_green = "#009900";
              var i = 1;
              ! ////////////////////////////////////////////////////////////////////////////////
              //// Stammdaten ////
              ////////////////////////////////////////////////////////////////////////////////
              ! var stations=["120612602","110000004","120644481","120644881"]; //Liste mit Stations-IDs
              var user="user";
              var pass="pass";
              ! ////////////////////////////////////////////////////////////////////////////////
              ! ///// Pfad zum json-File der Messstation ///////////////////////////////////////
              ! //var url="https://" + user + ":" + pass +"@odlinfo.bfs.de/daten/json/" + stations.0 + ".json";

              ////////////////////////////////////////////////////////////////////////////////

              ! ////////////////////////////////////////////////////////////////////////////////
              //// States erzeugen ///////////////////////////////////////////////////////////
              ////////////////////////////////////////////////////////////////////////////////
              ! function createAllStates(){
              ! steps=stations.length;
              ! if (i <= steps ) {
              ! createState(path + (i.toString()) +".Ort", "", {
              name: 'Ort der Messstation',
              desc: 'Ort der Messstation',
              type: 'string',
              role: 'value',
              unit: ''
              });

              createState(path + (i.toString()) + ".Status_Messstelle", 0, {
              name: 'Status der Messstelle',
              desc: 'Status der Messstelle',
              type: 'number',
              role: 'value',
              unit: ''
              });

              createState(path + (i.toString()) + ".Letzter_1h_Messwert", 0, {
              name: 'letzter 1h-Messwert',
              desc: 'letzter 1h-Messwert',
              type: 'number',
              rol2e: 'value',
              unit: ''
              });

              ! createState(path + (i.toString()) + ".Limit_color", "", {
              name: 'Farbe Grenzwert',
              desc: 'Farbe_Grenzwert',
              type: 'string',
              role: 'value',
              unit: ''
              });

              i++;
              createAllStates();
              

              }
              }

              ! function read(url,callback) {
              request(url, function (err, state, body){
              if (body) {
              var json = parseJson(body);
              callback(null, json);
              } else {
              console.log(err, "warn");
              callback(err, null);
              }
              });
              }
              ! function parseJson(text) {
              if (text === "") return {};
              try {
              json = JSON.parse(text);
              } catch (ex) {
              json = {};
              }
              if(!json) json = {};
              return json;
              }
              ! function main0() {
              var j = 0;
              main();
              ! function main() {
              steps=stations.length;
              if (j < steps ) {
              var url="https://" + user + ":" + pass +"@odlinfo.bfs.de/daten/json/" + stations[j] + ".json";
              var dp=j+1;
              read(url, function(err,json) {
              if(!err) {
              JSON_arr = json;
              if (JSON_arr.stamm.status == 1){
              setState(path + (dp.toString()) + ".Ort" , JSON_arr.stamm.ort);
              setState(path + (dp.toString()) + ".Status_Messstelle" , JSON_arr.stamm.status);
              setState(path + (dp.toString()) + ".Letzter_1h_Messwert" , JSON_arr.stamm.mw);

                      if(JSON_arr.stamm.mw <= 1.00) {
                          setState(path + (dp.toString()) + ".Limit_color", color_green);
                      }else
                      {
                          setState(path + (dp.toString()) + ".Limit_color", color_red);
                      }
              
              		}
              
                  } else {
                     console.log("!!!!FEHLER!!!!! : " );
                      }
              

              });

              ! j++;
              ! main();
              }
              ! }
              }
              ! createAllStates();
              ! setTimeout(main0,1000);
              ! schedule("*/30 * * * *", function () {
              main0();
              });
              ! ````

              dna909

              1 Reply Last reply Reply Quote 0
              • D
                dna909 last edited by

                Hab das Script noch etwas erweitert. Jetzt kann man mehrere Stationen abfragen.

                dna909

                1 Reply Last reply Reply Quote 0
                • L
                  Linedancer last edited by

                  Hallo Gemeinde,

                  für die, die sich nicht registrieren wollen, hab ich mal was mit dem Parser Adapter gemacht.

                  hier der Link zu der zu der Seite mit dem lokalen Messwert.

                  http://odlinfo.bfs.de/DE/aktuelles/mess … 20001.html

                  Jeder muss sich halt die Seite mit der gewünschten Mess Station aussuchen.

                  und hier der passende RegEx String

                  `Aktueller Messwert: **%wert% <abbr title="Mikrosievert pro Stunde">µSv\/h<\/abbr><\/strong><br\>[zur Messstelle<\/a>';<\/script>](%link%)</br\></abbr>**` [`Aktueller Messwert: **.*?([0-9]?[0-9],[0-9][0-9][0-9])**` **Ich bin jetzt nicht der absolute Spezialist mit dem Parser Adapter. Evetuell geht das auch einfacher…**](%link%) 
                  
                  C 1 Reply Last reply Reply Quote 0
                  • C
                    crahlfs @Linedancer last edited by

                    Wie @pix 2017 treffend schrieb "so lange wie keine Bedrohung durch Radioaktivität haben."...
                    Rein aus Interesse zum aktuellen Anlass hole ich dieses Thema noch einmal hoch.

                    @Linedancer Dein RegEx String funktioniert bei mir nicht mehr. Parser schmeißt mir einen Error: "Invalid regular expression". Mir scheint, dass sich die Website verändert hat! Wärest du bereit deinen Beitrag zu aktualisieren? Ich schaffe es noch nicht ganz den RegExp String komplett zu durch dringen.

                    Danke für eure Hilfe,
                    Christoph

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @crahlfs last edited by

                      @crahlfs

                      es gibt doch einen adapter dafür - der zeigt auch daten bei mir

                      C 1 Reply Last reply Reply Quote 0
                      • C
                        crahlfs @liv-in-sky last edited by

                        @liv-in-sky Danke für die Hinweis - ja der funktioniert einwandfrei. Soeben eingerichtet.

                        Was habt ihr bisher mit den Daten gemacht? Habt ihr euch lediglich Telegram notification eingerichtet oder ein blockly gebaut mit "wenn wert x überschritten, dann..."?
                        Liebe Grüße
                        Christoph

                        liv-in-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @crahlfs last edited by

                          @crahlfs eigentlich nix
                          Ich habe ihn etwas beobachtet und es waren immer die selben Werte
                          Dann habe ich es vergessen, bist du das geschrieben hast 🙂

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          641
                          Online

                          32.0k
                          Users

                          80.6k
                          Topics

                          1.3m
                          Posts

                          7
                          11
                          1516
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo