Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Geschlossen] Blitzer über API abfragen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

[Geschlossen] Blitzer über API abfragen

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
20 Beiträge 7 Kommentatoren 6.6k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • bahnuhrB bahnuhr

    Ich lese die Blitzer per Adapter "parser" von der Internet-Seite "osthessen-news blitzer" aus.

    Beim Regex hat mir homoran damals sehr geholfen.

    Und diese schreibe ich dann in Objekte die dann per telegram auf handy kommen.

    Klappt sehr gut.

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #4

    @bahnuhr sagte in Blitzer über API abfragen:

    Klappt sehr gut.

    Ist das so?
    Die verschoben sich doch immer

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    bahnuhrB 1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      @bahnuhr sagte in Blitzer über API abfragen:

      Klappt sehr gut.

      Ist das so?
      Die verschoben sich doch immer

      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #5

      @Homoran sagte in Blitzer über API abfragen:

      Ist das so?

      Ja

      @Homoran sagte in Blitzer über API abfragen:

      Die verschoben sich doch immer

      Was verschiebt sich da ?


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      HomoranH 1 Antwort Letzte Antwort
      0
      • bahnuhrB bahnuhr

        @Homoran sagte in Blitzer über API abfragen:

        Ist das so?

        Ja

        @Homoran sagte in Blitzer über API abfragen:

        Die verschoben sich doch immer

        Was verschiebt sich da ?

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von Homoran
        #6

        @bahnuhr sagte in Blitzer über API abfragen:

        Was verschiebt sich da ?

        einige Einträge aus der kompletten Liste von Hessenblitzer waren mal da und mal nicht

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        bahnuhrB 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @bahnuhr sagte in Blitzer über API abfragen:

          Was verschiebt sich da ?

          einige Einträge aus der kompletten Liste von Hessenblitzer waren mal da und mal nicht

          bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #7

          @Homoran sagte in Blitzer über API abfragen:

          einige Einträge aus der kompletten Liste von Hessenblitzer waren mal da und mal nicht

          Ne, klappt sehr gut.


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          HomoranH 1 Antwort Letzte Antwort
          0
          • bahnuhrB bahnuhr

            @Homoran sagte in Blitzer über API abfragen:

            einige Einträge aus der kompletten Liste von Hessenblitzer waren mal da und mal nicht

            Ne, klappt sehr gut.

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #8

            @bahnuhr sagte in Blitzer über API abfragen:

            @Homoran sagte in Blitzer über API abfragen:

            einige Einträge aus der kompletten Liste von Hessenblitzer waren mal da und mal nicht

            Ne, klappt sehr gut.

            Super!

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • JayRJ JayR

              Hallo zusammen,

              gibt es eine Möglichkeit über ein Script zu prüfen ob auf meinem Arbeitsweg ein Blitzer steht?
              Kennt jemand eine API wo man solche Informationen abfragen kann?

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von
              #9

              @JayR

              blitzer.de gäbe es da

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              1 Antwort Letzte Antwort
              0
              • bahnuhrB bahnuhr

                Ich lese die Blitzer per Adapter "parser" von der Internet-Seite "osthessen-news blitzer" aus.

                Beim Regex hat mir homoran damals sehr geholfen.

                Und diese schreibe ich dann in Objekte die dann per telegram auf handy kommen.

                Klappt sehr gut.

                JayRJ Offline
                JayRJ Offline
                JayR
                schrieb am zuletzt editiert von
                #10

                @bahnuhr Danke für den Tipp. Kannst du mir ein RegEx Bsp geben

                bahnuhrB 1 Antwort Letzte Antwort
                0
                • JayRJ JayR

                  @bahnuhr Danke für den Tipp. Kannst du mir ein RegEx Bsp geben

                  bahnuhrB Online
                  bahnuhrB Online
                  bahnuhr
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #11

                  @JayR sagte in Blitzer über API abfragen:

                  @bahnuhr Danke für den Tipp. Kannst du mir ein RegEx Bsp geben

                  "blitzer"><strong class="time">(.+?)</p>

                  Es kommt aber auf die Homepage an.


                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                  Danke.
                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                  ScreenToGif :https://www.screentogif.com/downloads.html

                  1 Antwort Letzte Antwort
                  1
                  • JayRJ JayR

                    Hallo zusammen,

                    gibt es eine Möglichkeit über ein Script zu prüfen ob auf meinem Arbeitsweg ein Blitzer steht?
                    Kennt jemand eine API wo man solche Informationen abfragen kann?

                    ? Offline
                    ? Offline
                    Ein ehemaliger Benutzer
                    schrieb am zuletzt editiert von
                    #12

                    @JayR Moin, vielleicht hilft dir das weiter, aber unter Vorbehalt, da ich nur mal ein paar Minuten was geguckt hatte. So wie ich es verstehe, nutzt Blitzer.de den Datenbestand von Atudo.net. Wenn man den Link:
                    https://cdn2.atudo.net/api/1.0/vl.php?type=0,1,2,3,4,5,6&box=53.527656,10.024888,53.520012,10.048231
                    aufruft, kommt zumindest eine JSON, dessen result man auswerten könnte. Am Ende der URL sind die Koordinaten vom Start und vom Ende der geplanten Tour. Kannst ja mal mit rumspielen und Bescheid geben, wie man das auswerten könnte. (Telegram, Alexa Ansage, oder?)

                    JayRJ 1 Antwort Letzte Antwort
                    1
                    • ? Ein ehemaliger Benutzer

                      @JayR Moin, vielleicht hilft dir das weiter, aber unter Vorbehalt, da ich nur mal ein paar Minuten was geguckt hatte. So wie ich es verstehe, nutzt Blitzer.de den Datenbestand von Atudo.net. Wenn man den Link:
                      https://cdn2.atudo.net/api/1.0/vl.php?type=0,1,2,3,4,5,6&box=53.527656,10.024888,53.520012,10.048231
                      aufruft, kommt zumindest eine JSON, dessen result man auswerten könnte. Am Ende der URL sind die Koordinaten vom Start und vom Ende der geplanten Tour. Kannst ja mal mit rumspielen und Bescheid geben, wie man das auswerten könnte. (Telegram, Alexa Ansage, oder?)

                      JayRJ Offline
                      JayRJ Offline
                      JayR
                      schrieb am zuletzt editiert von JayR
                      #13

                      @J_Paul : Super vielen Dank für den Tipp. Ich habe das Script fast fertig. Brauche aber nochmal die Hilfe von euch.
                      Ich muss 2 API calls machen einmal um den Content von der Blitzer API zu bekommen und einmal um LATITUDE und LONGITUDE in eine richtige Adresse aufzulösen. Dabei bin ich auf ein Problem gestoßen.

                      Weiß jemand wie ich ein return aus einer Callback function machen kann, sodass ich mit den Werten weiterarbeiten kann. Ich würde also gerne ein

                      return body[0].formatted;
                      

                      Dies geht aber leider nicht

                      function getContent(){
                          var url = BASE_URL + LATITUDE_START + "," + LONGITUDE_START + "," + LONGITUDE_START + "," + LATITUDE_DEST  + "," + LONGITUDE_DEST
                      
                          request(url, callback)
                          function callback (error, response, body) {
                              var json = JSON.parse(body);
                              json = json.pois;
                              
                              json.forEach(function(radar) {
                                  getAddress(radar.lat, radar.lng, function(err,body){
                                      if(LOGGING && VERBOSE)    log('Reverse geolocation: ' + json);
                                      body = body.results
                                      return body[0].formatted;
                                  });   
                              });
                          }; 
                      }
                      
                      
                      function getAddress(lat, long, callback){
                          var geoCodeUrl = 'https://api.opencagedata.com/geocode/v1/json' 
                          geoCodeUrl = geoCodeUrl + '?' + 'key=' + APIKEY_GEOCODING + '&q=' + lat + ',' + long + '&pretty=1'
                          
                          request(geoCodeUrl, function (error, resp, body) {
                              return callback(error, JSON.parse(body));
                          });
                      }  
                      

                      Ich habe jetzt mehrere Funktionen in Funktionen und weiß nicht wie ich da wieder zurück komme.

                      OliverIOO liv-in-skyL 3 Antworten Letzte Antwort
                      0
                      • JayRJ JayR

                        @J_Paul : Super vielen Dank für den Tipp. Ich habe das Script fast fertig. Brauche aber nochmal die Hilfe von euch.
                        Ich muss 2 API calls machen einmal um den Content von der Blitzer API zu bekommen und einmal um LATITUDE und LONGITUDE in eine richtige Adresse aufzulösen. Dabei bin ich auf ein Problem gestoßen.

                        Weiß jemand wie ich ein return aus einer Callback function machen kann, sodass ich mit den Werten weiterarbeiten kann. Ich würde also gerne ein

                        return body[0].formatted;
                        

                        Dies geht aber leider nicht

                        function getContent(){
                            var url = BASE_URL + LATITUDE_START + "," + LONGITUDE_START + "," + LONGITUDE_START + "," + LATITUDE_DEST  + "," + LONGITUDE_DEST
                        
                            request(url, callback)
                            function callback (error, response, body) {
                                var json = JSON.parse(body);
                                json = json.pois;
                                
                                json.forEach(function(radar) {
                                    getAddress(radar.lat, radar.lng, function(err,body){
                                        if(LOGGING && VERBOSE)    log('Reverse geolocation: ' + json);
                                        body = body.results
                                        return body[0].formatted;
                                    });   
                                });
                            }; 
                        }
                        
                        
                        function getAddress(lat, long, callback){
                            var geoCodeUrl = 'https://api.opencagedata.com/geocode/v1/json' 
                            geoCodeUrl = geoCodeUrl + '?' + 'key=' + APIKEY_GEOCODING + '&q=' + lat + ',' + long + '&pretty=1'
                            
                            request(geoCodeUrl, function (error, resp, body) {
                                return callback(error, JSON.parse(body));
                            });
                        }  
                        

                        Ich habe jetzt mehrere Funktionen in Funktionen und weiß nicht wie ich da wieder zurück komme.

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von OliverIO
                        #14

                        @JayR

                        Du packst die Verarbeitung, die danach passieren soll in eine eigene Funktion. Die Referenz auf diese Funktion übergibst du oben als Callback Parameter. Diesen Callback rufst du auf, wenn du oben fertig bist.

                        Eine andere Alternative wäre das über promises zu machen.

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        1 Antwort Letzte Antwort
                        0
                        • JayRJ JayR

                          @J_Paul : Super vielen Dank für den Tipp. Ich habe das Script fast fertig. Brauche aber nochmal die Hilfe von euch.
                          Ich muss 2 API calls machen einmal um den Content von der Blitzer API zu bekommen und einmal um LATITUDE und LONGITUDE in eine richtige Adresse aufzulösen. Dabei bin ich auf ein Problem gestoßen.

                          Weiß jemand wie ich ein return aus einer Callback function machen kann, sodass ich mit den Werten weiterarbeiten kann. Ich würde also gerne ein

                          return body[0].formatted;
                          

                          Dies geht aber leider nicht

                          function getContent(){
                              var url = BASE_URL + LATITUDE_START + "," + LONGITUDE_START + "," + LONGITUDE_START + "," + LATITUDE_DEST  + "," + LONGITUDE_DEST
                          
                              request(url, callback)
                              function callback (error, response, body) {
                                  var json = JSON.parse(body);
                                  json = json.pois;
                                  
                                  json.forEach(function(radar) {
                                      getAddress(radar.lat, radar.lng, function(err,body){
                                          if(LOGGING && VERBOSE)    log('Reverse geolocation: ' + json);
                                          body = body.results
                                          return body[0].formatted;
                                      });   
                                  });
                              }; 
                          }
                          
                          
                          function getAddress(lat, long, callback){
                              var geoCodeUrl = 'https://api.opencagedata.com/geocode/v1/json' 
                              geoCodeUrl = geoCodeUrl + '?' + 'key=' + APIKEY_GEOCODING + '&q=' + lat + ',' + long + '&pretty=1'
                              
                              request(geoCodeUrl, function (error, resp, body) {
                                  return callback(error, JSON.parse(body));
                              });
                          }  
                          

                          Ich habe jetzt mehrere Funktionen in Funktionen und weiß nicht wie ich da wieder zurück komme.

                          liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          schrieb am zuletzt editiert von
                          #15

                          @JayR hi

                          wirst du das ganze script - wenn fertig - mit uns teilen ? hätte interesse daran

                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                          1 Antwort Letzte Antwort
                          0
                          • JayRJ JayR

                            @J_Paul : Super vielen Dank für den Tipp. Ich habe das Script fast fertig. Brauche aber nochmal die Hilfe von euch.
                            Ich muss 2 API calls machen einmal um den Content von der Blitzer API zu bekommen und einmal um LATITUDE und LONGITUDE in eine richtige Adresse aufzulösen. Dabei bin ich auf ein Problem gestoßen.

                            Weiß jemand wie ich ein return aus einer Callback function machen kann, sodass ich mit den Werten weiterarbeiten kann. Ich würde also gerne ein

                            return body[0].formatted;
                            

                            Dies geht aber leider nicht

                            function getContent(){
                                var url = BASE_URL + LATITUDE_START + "," + LONGITUDE_START + "," + LONGITUDE_START + "," + LATITUDE_DEST  + "," + LONGITUDE_DEST
                            
                                request(url, callback)
                                function callback (error, response, body) {
                                    var json = JSON.parse(body);
                                    json = json.pois;
                                    
                                    json.forEach(function(radar) {
                                        getAddress(radar.lat, radar.lng, function(err,body){
                                            if(LOGGING && VERBOSE)    log('Reverse geolocation: ' + json);
                                            body = body.results
                                            return body[0].formatted;
                                        });   
                                    });
                                }; 
                            }
                            
                            
                            function getAddress(lat, long, callback){
                                var geoCodeUrl = 'https://api.opencagedata.com/geocode/v1/json' 
                                geoCodeUrl = geoCodeUrl + '?' + 'key=' + APIKEY_GEOCODING + '&q=' + lat + ',' + long + '&pretty=1'
                                
                                request(geoCodeUrl, function (error, resp, body) {
                                    return callback(error, JSON.parse(body));
                                });
                            }  
                            

                            Ich habe jetzt mehrere Funktionen in Funktionen und weiß nicht wie ich da wieder zurück komme.

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #16

                            @JayR da ich gerade versuche, sowas auch richtig umzusetzen - kannst mal hier schauen

                            https://forum.iobroker.net/post/511273

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            JayRJ 1 Antwort Letzte Antwort
                            1
                            • liv-in-skyL liv-in-sky

                              @JayR da ich gerade versuche, sowas auch richtig umzusetzen - kannst mal hier schauen

                              https://forum.iobroker.net/post/511273

                              JayRJ Offline
                              JayRJ Offline
                              JayR
                              schrieb am zuletzt editiert von JayR
                              #17

                              @liv-in-sky : Vielen Dank für deine Hilfe und Anpassungen von meinem Code. Ich habe das Script von dir noch etwas optimiert:

                              /*****************************************************************************
                               * Created: 29.10.2020
                               * Created by: JayR
                               * Description: Get radar info
                               * Notes:
                               * Source:
                               * ToDo: nothing
                               * Version:  1.0
                               * Changes:  1.0 - Initial creation
                              ******************************************************************************/
                              /*****************************************************************************/
                              
                              /********************************
                               * Configuration
                              ********************************/
                              /*****Default*****/
                              const LOGGING = true;   //if(LOGGING)   log('');                     //Log
                              const VERBOSE = false;  //if(LOGGING && VERBOSE)    log('');        //Verbose log
                              const STATE_PATH = '0_userdata.0.' + 'notification.radar.';
                              const STATES = ['lastMessage']; 
                              /*****Custom*****/
                              const LATITUDE_START = 'XX.XXXXXX';
                              const LONGITUDE_START = 'XX.XXXXXX';
                              const LATITUDE_DEST = 'XX.XXXXXX';
                              const LONGITUDE_DEST = 'XX.XXXXXX';
                              
                              //Radar
                              const BASE_URL = "https://cdn2.atudo.net/api/1.0/vl.php?type=0,1,2,3,4,5,6&box="
                              
                              //Geocoding
                              const APIKEY_GEOCODING = '5b3bxxxxxxxxxxx2007a9d'; // https://opencagedata.com/
                              
                              //Whatsapp
                              const WHATSAPP_STATE = 'whatsapp-cmb.0.sendMessage';
                              /********************************
                               * Start/Init
                              ********************************/
                              getRadarControll();
                              
                              /********************************
                               * Functions
                              ********************************/
                              
                              async function getRadarControll(){
                                  const radar = await getContent();
                                  let message = "";
                                  if(radar[0]!="empty") {
                                      if(LOGGING && VERBOSE)    log('The following radar conrolls was found: ' + JSON.stringify(radar));        //Verbose log
                                      message = "Die folgenden Biltzer wurden gefunden: ";
                                      for(let i=0;i<radar.length;i++){
                                              let addresse = await getAddress(radar[i].lat, radar[i].lng)
                                              message = message + "\n -" + addresse 
                                      }
                                      if(LOGGING && VERBOSE)    log('Message: ' + message); //Verbose log
                                  } else {
                                      message = "No"
                                  }
                              
                                  //Send Message
                                  const lastMessage = getState(STATE_PATH + 'lastMessage').val;
                                  if(lastMessage != message && message != "No") {
                                      setState(STATE_PATH + 'lastMessage', message); 
                                      setState(WHATSAPP_STATE, message);    
                                  }  
                                  log(message);
                                  
                                  return message
                              
                              }
                              
                              
                              function getContent(){
                                  return new Promise((resolve) => {
                                      const url = BASE_URL + LATITUDE_START + "," + LONGITUDE_START + "," + LONGITUDE_START + "," + LATITUDE_DEST  + "," + LONGITUDE_DEST
                                      request(url, function(err, response, json) {
                                          if(LOGGING && VERBOSE)    log('Content from radar API: ' + json); //Verbose log
                                          const myjson = JSON.parse(json).pois;
                                          
                                          if(json.length>25 && err==null){
                                              var myBlitzRes=[];
                                              for(let i=0;i<myjson.length;i++){
                                                  myBlitzRes.push({
                                                      lat: myjson[i].lat,
                                                      lng: myjson[i].lng,
                                                      radType: myjson[i].type,
                                                  });
                                              }
                                              resolve(myBlitzRes)
                                          }else{
                                              resolve(["empty"])
                                          } 
                                      });
                                  });
                              } 
                                          
                              function getAddress(lat, long) {
                                  return new Promise((resolve) => {
                                      let geoCodeUrl = 'https://api.opencagedata.com/geocode/v1/json'
                                      geoCodeUrl = geoCodeUrl + '?' + 'key=' + APIKEY_GEOCODING + '&q=' + lat + ',' + long + '&pretty=1'
                                      request(geoCodeUrl, function (err, response, json) {
                                          if (err==null){
                                              const myRes = JSON.parse(json).results[0].formatted;
                                              resolve(myRes)
                                          } else {
                                              resolve("Address resolution not possible")
                                          }
                                      });
                                  });
                              } 
                              
                              
                              /********************************
                               * Trigger
                              ********************************/
                              schedule('2 * * * *', function() {
                                  getRadarControll();
                              });
                              
                              /********************************
                               * Create States
                              ********************************/
                              STATES.forEach(function(STATE_NAME) {
                                  var STATE = STATE_PATH + STATE_NAME;
                                  if(!getObject(STATE)) {
                                      createState(STATE);
                                      if(LOGGING && VERBOSE) log('Create state: "' + STATE + '"');    //Verbose log
                                  }
                              });
                              
                              /********************************
                               * End
                              ********************************/
                              
                              liv-in-skyL 1 Antwort Letzte Antwort
                              0
                              • JayRJ JayR

                                @liv-in-sky : Vielen Dank für deine Hilfe und Anpassungen von meinem Code. Ich habe das Script von dir noch etwas optimiert:

                                /*****************************************************************************
                                 * Created: 29.10.2020
                                 * Created by: JayR
                                 * Description: Get radar info
                                 * Notes:
                                 * Source:
                                 * ToDo: nothing
                                 * Version:  1.0
                                 * Changes:  1.0 - Initial creation
                                ******************************************************************************/
                                /*****************************************************************************/
                                
                                /********************************
                                 * Configuration
                                ********************************/
                                /*****Default*****/
                                const LOGGING = true;   //if(LOGGING)   log('');                     //Log
                                const VERBOSE = false;  //if(LOGGING && VERBOSE)    log('');        //Verbose log
                                const STATE_PATH = '0_userdata.0.' + 'notification.radar.';
                                const STATES = ['lastMessage']; 
                                /*****Custom*****/
                                const LATITUDE_START = 'XX.XXXXXX';
                                const LONGITUDE_START = 'XX.XXXXXX';
                                const LATITUDE_DEST = 'XX.XXXXXX';
                                const LONGITUDE_DEST = 'XX.XXXXXX';
                                
                                //Radar
                                const BASE_URL = "https://cdn2.atudo.net/api/1.0/vl.php?type=0,1,2,3,4,5,6&box="
                                
                                //Geocoding
                                const APIKEY_GEOCODING = '5b3bxxxxxxxxxxx2007a9d'; // https://opencagedata.com/
                                
                                //Whatsapp
                                const WHATSAPP_STATE = 'whatsapp-cmb.0.sendMessage';
                                /********************************
                                 * Start/Init
                                ********************************/
                                getRadarControll();
                                
                                /********************************
                                 * Functions
                                ********************************/
                                
                                async function getRadarControll(){
                                    const radar = await getContent();
                                    let message = "";
                                    if(radar[0]!="empty") {
                                        if(LOGGING && VERBOSE)    log('The following radar conrolls was found: ' + JSON.stringify(radar));        //Verbose log
                                        message = "Die folgenden Biltzer wurden gefunden: ";
                                        for(let i=0;i<radar.length;i++){
                                                let addresse = await getAddress(radar[i].lat, radar[i].lng)
                                                message = message + "\n -" + addresse 
                                        }
                                        if(LOGGING && VERBOSE)    log('Message: ' + message); //Verbose log
                                    } else {
                                        message = "No"
                                    }
                                
                                    //Send Message
                                    const lastMessage = getState(STATE_PATH + 'lastMessage').val;
                                    if(lastMessage != message && message != "No") {
                                        setState(STATE_PATH + 'lastMessage', message); 
                                        setState(WHATSAPP_STATE, message);    
                                    }  
                                    log(message);
                                    
                                    return message
                                
                                }
                                
                                
                                function getContent(){
                                    return new Promise((resolve) => {
                                        const url = BASE_URL + LATITUDE_START + "," + LONGITUDE_START + "," + LONGITUDE_START + "," + LATITUDE_DEST  + "," + LONGITUDE_DEST
                                        request(url, function(err, response, json) {
                                            if(LOGGING && VERBOSE)    log('Content from radar API: ' + json); //Verbose log
                                            const myjson = JSON.parse(json).pois;
                                            
                                            if(json.length>25 && err==null){
                                                var myBlitzRes=[];
                                                for(let i=0;i<myjson.length;i++){
                                                    myBlitzRes.push({
                                                        lat: myjson[i].lat,
                                                        lng: myjson[i].lng,
                                                        radType: myjson[i].type,
                                                    });
                                                }
                                                resolve(myBlitzRes)
                                            }else{
                                                resolve(["empty"])
                                            } 
                                        });
                                    });
                                } 
                                            
                                function getAddress(lat, long) {
                                    return new Promise((resolve) => {
                                        let geoCodeUrl = 'https://api.opencagedata.com/geocode/v1/json'
                                        geoCodeUrl = geoCodeUrl + '?' + 'key=' + APIKEY_GEOCODING + '&q=' + lat + ',' + long + '&pretty=1'
                                        request(geoCodeUrl, function (err, response, json) {
                                            if (err==null){
                                                const myRes = JSON.parse(json).results[0].formatted;
                                                resolve(myRes)
                                            } else {
                                                resolve("Address resolution not possible")
                                            }
                                        });
                                    });
                                } 
                                
                                
                                /********************************
                                 * Trigger
                                ********************************/
                                schedule('2 * * * *', function() {
                                    getRadarControll();
                                });
                                
                                /********************************
                                 * Create States
                                ********************************/
                                STATES.forEach(function(STATE_NAME) {
                                    var STATE = STATE_PATH + STATE_NAME;
                                    if(!getObject(STATE)) {
                                        createState(STATE);
                                        if(LOGGING && VERBOSE) log('Create state: "' + STATE + '"');    //Verbose log
                                    }
                                });
                                
                                /********************************
                                 * End
                                ********************************/
                                
                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                schrieb am zuletzt editiert von
                                #18

                                @JayR

                                https://forum.iobroker.net/topic/38168/script-radar-kontrolle-und-koordinaten-übersetzer

                                :-) :-)

                                ist hoffentlich in ordnng für dich - ich war grad so drin- da habe ich einfach weitergemacht

                                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                JayRJ 1 Antwort Letzte Antwort
                                1
                                • liv-in-skyL liv-in-sky

                                  @JayR

                                  https://forum.iobroker.net/topic/38168/script-radar-kontrolle-und-koordinaten-übersetzer

                                  :-) :-)

                                  ist hoffentlich in ordnng für dich - ich war grad so drin- da habe ich einfach weitergemacht

                                  JayRJ Offline
                                  JayRJ Offline
                                  JayR
                                  schrieb am zuletzt editiert von
                                  #19

                                  @liv-in-sky : Hab den Beitrag gerade gesehen. Klar kein Problem. Ich hoffe, dass wir mit Script vielen helfen können.

                                  :)

                                  liv-in-skyL 1 Antwort Letzte Antwort
                                  0
                                  • JayRJ JayR

                                    @liv-in-sky : Hab den Beitrag gerade gesehen. Klar kein Problem. Ich hoffe, dass wir mit Script vielen helfen können.

                                    :)

                                    liv-in-skyL Offline
                                    liv-in-skyL Offline
                                    liv-in-sky
                                    schrieb am zuletzt editiert von
                                    #20

                                    @JayR

                                    ich wollt ja eigentlich nur das wait und async mal richtig integrieren - aber letztlich fand ich auch die idee gut

                                    einen blitzer hat er mir schon angezeigt auf einen meiner wege !

                                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                    1 Antwort Letzte Antwort
                                    1
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    529

                                    Online

                                    32.4k

                                    Benutzer

                                    81.5k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe