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.
    • 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

                        814
                        Online

                        32.0k
                        Users

                        80.6k
                        Topics

                        1.3m
                        Posts

                        7
                        11
                        1518
                        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