Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    760

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

[Geschlossen] Blitzer über API abfragen

Scheduled Pinned Locked Moved JavaScript
javascript
20 Posts 7 Posters 7.3k Views 6 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 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?

    H Offline
    H Offline
    hans_999
    Banned
    wrote on last edited by hans_999
    #2

    @JayR said in Blitzer über API abfragen:

    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?

    Mir sind keine API der Polizei bekannt, auf denen diese Infos zur Verfügung gestellt werden.
    Ich kenne nur die mehr oder weniger vollständigen Infos von - meist lokalen - Radiosendern.

    Alternativ gibt's ja die relativ einfache Methode, sich an die geltenden Gesetze und Regeln zu halten. Dann gibt auch bei einer nicht bekannten Radarkontrolle keine unangenehmen Überraschung.
    Das scheint eben der kleine Unterschied zu sein:
    Bei Corona fordert jeder, dass er persönlich vollständig geschützt wird.
    Im Straßenverkehr ist der Schutz anderer Verkehrsteilnehmer (insbesondere vor Rasern) ziemlich tabu.
    Maske nicht aufgesetzt: 250 EUR
    90 km/h in der Innenstadt: 120 EUR (https://www.adac.de/verkehr/recht/bussgeld-punkte/bussgeldrechner/)
    Was da wohl besser ist ?

    1 Reply Last reply
    -1
    • bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      wrote on last edited by
      #3

      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.


      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 JayRJ 2 Replies Last reply
      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.

        HomoranH Do not disturb
        HomoranH Do not disturb
        Homoran
        Global Moderator Administrators
        wrote on last edited by
        #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 -
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        bahnuhrB 1 Reply Last reply
        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
          wrote on last edited by
          #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 Reply Last reply
          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 Do not disturb
            HomoranH Do not disturb
            Homoran
            Global Moderator Administrators
            wrote on last edited by 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 -
            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            bahnuhrB 1 Reply Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              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 Do not disturb
                HomoranH Do not disturb
                Homoran
                Global Moderator Administrators
                wrote on last edited by
                #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 -
                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                1 Reply Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by
                    #10

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

                    bahnuhrB 1 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        A Former User
                        wrote on last edited by
                        #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 Reply Last reply
                        1
                        • ? A Former User

                          @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
                          wrote on last edited by 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 Replies Last reply
                          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
                            wrote on last edited by 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 Reply Last reply
                            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
                              wrote on last edited by
                              #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 Reply Last reply
                              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
                                wrote on last edited by
                                #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 Reply Last reply
                                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
                                  wrote on last edited by 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 Reply Last reply
                                  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
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    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
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      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
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        1

                                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                        With your input, this post could be even better 💗

                                        Register Login
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        598

                                        Online

                                        32.8k

                                        Users

                                        82.7k

                                        Topics

                                        1.3m

                                        Posts
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                        ioBroker Community 2014-2025
                                        logo
                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Home
                                        • Recent
                                        • Tags
                                        • Unread 0
                                        • Categories
                                        • Unreplied
                                        • Popular
                                        • GitHub
                                        • Docu
                                        • Hilfe