Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. IoBroker und Stau- / Verkehrsinformationen

NEWS

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

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

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

IoBroker und Stau- / Verkehrsinformationen

IoBroker und Stau- / Verkehrsinformationen

Scheduled Pinned Locked Moved ioBroker Allgemein
119 Posts 48 Posters 31.9k Views 24 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.
  • 0 Offline
    0 Offline
    0018
    wrote on last edited by
    #105

    Habe den Adapter mal runtergeschmissen und neu installiert. Jetzt ist der Fehler weg und die Abfrage passt wenn ich Straße mit Hausnummer, PLZ Ort eingebe.
    Leider berechnet "here" mir den falschen Weg. Hierzu hätte ich gerne die Möglichkeit Zwischenpunkte einzugeben, am besten wäre es im Koordinatenformat wie zB. 48.21843, 11.62579.

    Wäre das machbar?

    Mfg
    0018

    N G 2 Replies Last reply
    0
    • J Offline
      J Offline
      jwerlsdf
      wrote on last edited by
      #106

      Hallo,
      vielen Dank für den Adapter. Die Daten scheinen richtig zu sein. Hat jemand schon ein widget, welches er als Import bereitstellen könnte?

      1 Reply Last reply
      0
      • 0 0018

        Habe den Adapter mal runtergeschmissen und neu installiert. Jetzt ist der Fehler weg und die Abfrage passt wenn ich Straße mit Hausnummer, PLZ Ort eingebe.
        Leider berechnet "here" mir den falschen Weg. Hierzu hätte ich gerne die Möglichkeit Zwischenpunkte einzugeben, am besten wäre es im Koordinatenformat wie zB. 48.21843, 11.62579.

        Wäre das machbar?

        N Offline
        N Offline
        nousefor82
        wrote on last edited by
        #107

        @0018

        Ich würde mich anschließen!

        1 Reply Last reply
        0
        • 0 0018

          Habe den Adapter mal runtergeschmissen und neu installiert. Jetzt ist der Fehler weg und die Abfrage passt wenn ich Straße mit Hausnummer, PLZ Ort eingebe.
          Leider berechnet "here" mir den falschen Weg. Hierzu hätte ich gerne die Möglichkeit Zwischenpunkte einzugeben, am besten wäre es im Koordinatenformat wie zB. 48.21843, 11.62579.

          Wäre das machbar?

          G Offline
          G Offline
          gutgut30
          wrote on last edited by
          #108

          @0018
          Wie hast du die Strecke einsehen können? Ich rätsel hier auch gerade welche Strecke here wohl genommen hat bei meiner Start / Ziel Eingabe. Es gibt diverse Möglichkeiten, aber ich weiß nicht für welche here sich entschieden hat.

          nik82N 1 Reply Last reply
          0
          • G gutgut30

            @0018
            Wie hast du die Strecke einsehen können? Ich rätsel hier auch gerade welche Strecke here wohl genommen hat bei meiner Start / Ziel Eingabe. Es gibt diverse Möglichkeiten, aber ich weiß nicht für welche here sich entschieden hat.

            nik82N Offline
            nik82N Offline
            nik82
            Most Active
            wrote on last edited by nik82
            #109

            Hallo,
            habe auch den Roadtraffic Adapter installiert und funktioniert echt super,
            ABER bei mir läuft jeden Tag der API Key von here.com aus.

            Ich lege einen an, alles funktioniert und am nächsten Tag funktioniert der Adapter nicht mehr, weil der API Key bei Here.com auf "Expired" steht:

            507bc914-bf70-4911-9154-19a90b8e14c9-image.png

            Hat jemand eine Idee, warum der Api Key bei mir nur immer einen Tag gültig ist?

            So kann ich immer nur 24 Stunden den Roadtraffic Adapter nutzen und danach holt er keine Routen mehr:

            a3d20769-5d78-4e0c-8896-a65da03a1137-image.png

            _--------------------------------------------------------------------------------------------------------

            EDIT

            Falls den Fehler noch wer hat, es war meine Schuld.
            Ich habe vergessen meine Email zu verifizieren, dadurch läuft der API Key nach 60 Minuten ab.

            1 Reply Last reply
            0
            • BuZZyB BuZZy

              @nousefor82 die Sache mit Google und deren "Preismodell" hat mich auch genervt..

              Habe daher den roadtraffic Adapter auf Here.com umgeschrieben.
              https://github.com/BuZZy1337/ioBroker.roadtraffic
              Arbeitet über here.com und fragt aktuellen Fahrzeiten ab.

              T Offline
              T Offline
              Tirador
              wrote on last edited by
              #110

              @BuZZy said in IoBroker und Stau- / Verkehrsinformationen:

              @nousefor82 die Sache mit Google und deren "Preismodell" hat mich auch genervt..

              Habe daher den roadtraffic Adapter auf Here.com umgeschrieben.
              https://github.com/BuZZy1337/ioBroker.roadtraffic
              Arbeitet über here.com und fragt aktuellen Fahrzeiten ab.

              👍 Wow. Vielen Dank für deine tolle Arbeit. Der Adapter funktioniert auf Anhieb! 🙂

              K 1 Reply Last reply
              0
              • T Tirador

                @BuZZy said in IoBroker und Stau- / Verkehrsinformationen:

                @nousefor82 die Sache mit Google und deren "Preismodell" hat mich auch genervt..

                Habe daher den roadtraffic Adapter auf Here.com umgeschrieben.
                https://github.com/BuZZy1337/ioBroker.roadtraffic
                Arbeitet über here.com und fragt aktuellen Fahrzeiten ab.

                👍 Wow. Vielen Dank für deine tolle Arbeit. Der Adapter funktioniert auf Anhieb! 🙂

                K Offline
                K Offline
                Kuddel
                wrote on last edited by
                #111

                Hallo zusammen,

                ich habe den Adapter auch gerade installiert.

                Kann man bei der Eingabe von Start und Ziel die Strecke irgendwie beeinflussen ?

                1 Reply Last reply
                0
                • G Offline
                  G Offline
                  gutgut30
                  wrote on last edited by
                  #112

                  Hat es eigentlich irgendwer geschafft sich einfach nur die Karte einzubinden wie auf Jeepers Screenshot? Ich bekomme es einfach nicht hin eine valide URL zu generieren für das iFrame Widget.

                  Stephan SchleichS 1 Reply Last reply
                  0
                  • G gutgut30

                    Hat es eigentlich irgendwer geschafft sich einfach nur die Karte einzubinden wie auf Jeepers Screenshot? Ich bekomme es einfach nicht hin eine valide URL zu generieren für das iFrame Widget.

                    Stephan SchleichS Offline
                    Stephan SchleichS Offline
                    Stephan Schleich
                    wrote on last edited by
                    #113

                    Nutzt das Script oder den Adapter noch wer?
                    Der Adapter funktioniert bei mir nämlich nicht, vllt kann kurz jemand Rückmeldung geben

                    H 1 Reply Last reply
                    0
                    • Stephan SchleichS Stephan Schleich

                      Nutzt das Script oder den Adapter noch wer?
                      Der Adapter funktioniert bei mir nämlich nicht, vllt kann kurz jemand Rückmeldung geben

                      H Offline
                      H Offline
                      hohmannc
                      wrote on last edited by
                      #114

                      @stephan-schleich also bei mir ist der adapter Gelb und läuft nicht.

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        marsmännchen
                        wrote on last edited by
                        #115

                        Ja, schaut schlecht aus:

                        Error from Here: undefined undefined
                        

                        Ich versuch es mal mit Git-Issue
                        MfG

                        Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
                        Wago PFC200 mit Dali Lichtsteuerung.

                        1 Reply Last reply
                        0
                        • G Offline
                          G Offline
                          gutgut30
                          wrote on last edited by gutgut30
                          #116

                          Mir hat das Script hier sehr geholfen. Daher man den request inzwischen anders ausführen soll (Deprecrated Meldung) habe ich es auf Axios abgepasst.

                          Zudem noch 2x VIA Wegepunkt und das Script zieht die Daten nur wenn ich anwesend bin. Das spart Aufrufe. Zudem erzeuge ich noch einen extra Datenpunkt mit dem aktuellen Zeitstempel um zu sehen wie alt der aktuelle Wert ist.

                          Falls jemand auch auf Axios umstellen will, hier das Script:

                          // Beschreibung der API: https://developers.google.com/maps/documentation/directions/intro?hl=de#traffic-model
                          // API-Key: https://console.developers.google.com/apis/dashboard?project=iobroker-privat&duration=PT1H
                          // Infos : http://forum.iobroker.net/viewtopic.php?f=8&t=4019&p=38235#p38226
                          
                          const axios = require('axios');
                          
                          var ldebug = true; // lokale Debugausgabe des Skripts true/false
                          
                          var pfad = "0_userdata.0.xxxxx."; // der Pfad zu den Datenpunkten. Letzten Punkt nicht löschen
                          
                          var stauStufe1AbMinuten = 5;
                          var stauStufe2AbMinuten = 8;
                          var stauStufe3AbMinuten = 12;
                          
                          // Standardzeit in Minuten je Route
                          var standardMinuten0 = 33;
                          
                          var origin = "11.1111111,2.2222222"; // Start
                          var via1 = "11.1111111,2.2222222"; // Zwischenpunt1
                          var via2 = "11.1111111,2.2222222"; // Zwischenpunt2
                          var destination = "11.1111111,2.2222222"; //  Ziel
                          
                          var apikey = "DEINAPIKEY";
                          
                          var myJson = {};
                          
                          var idUrl = pfad + "skript.url";
                          var idJson = pfad + "skript.ergebnis_json";
                          var idStatus = pfad + "skript.status";
                          var idTimestamp = pfad + "skript.timestamp";
                          var idMinuten_0 = pfad + "Minuten_0";
                          var idMinuten_0_durchschnitt = pfad + "Minuten_0_Durchschnitt";
                          var idMinuten_0_delta = pfad + "Minuten_0_Deltazeit";
                          var idRoute_0 = pfad + "Route_0"; // Routenbezeichnung von Google Maps
                          var idStau_0 = pfad + "Stau_0"; // boolean
                          var idStaustufe_0 = pfad + "Staustufe_0"; // Wert von (0-3)
                          var idAnzahlWaypoints = pfad + "Anzahl_Wegpunkte_0"; // Anzahl der Wegpunkte der aktuellen Route
                          
                          function createAllStates() {
                          
                              createState(idMinuten_0, 0, {
                                  name: 'Route 0 Minuten aktuell zum Ziel',
                                  desc: 'Route 0 Minuten aktuell zum Ziel',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'min'
                              });
                          
                              createState(idMinuten_0_durchschnitt, 0, {
                                  name: 'Route 0 Minuten im Durchschnitt zum Ziel',
                                  desc: 'Route 0 Minuten im Durchschnitt zum Ziel',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'min'
                              });
                          
                              createState(idMinuten_0_delta, 0, {
                                  name: 'Route 0 Minuten Delta gegenüber dem Durchschnitt',
                                  desc: 'Route 0 Minuten Delta gegenüber dem Durchschnitt',
                                  type: 'number',
                                  role: 'value',
                                  unit: 'min'
                              });
                          
                              createState(idRoute_0, "init", {
                                  name: 'Bezeichnung der Route 0',
                                  desc: 'Bezeichnung der Route 0 von Google Maps',
                                  type: 'string',
                                  role: 'value',
                                  unit: ''
                              });
                          
                              createState(idStau_0, false, {
                                  name: 'Stau auf Route 0 (boolean)',
                                  desc: 'Stau auf Route 0 (boolean)',
                                  type: 'boolean',
                                  role: 'value',
                                  unit: ''
                              });
                          
                              createState(idStaustufe_0, 0, {
                                  name: 'Staustufe auf Route 0 (0-3)',
                                  desc: 'Staustufe (0 kein Stau bis 3 starker Stau) auf Route 0',
                                  type: 'number',
                                  role: 'value',
                                  unit: ''
                              });
                          
                              createState(idAnzahlWaypoints, 0, {
                                  name: 'Aktuelle Anzahl der Wegpunkte für die Route',
                                  desc: 'Aktuelle Anzahl der Wegpunkte für die Route',
                                  type: 'number',
                                  role: 'value',
                                  unit: ''
                              });
                          
                              createState(idUrl, "", {
                                  name: 'url der Abfrage zur Google',
                                  desc: 'url der Abfrage zur Google',
                                  type: 'string',
                                  role: 'value',
                                  unit: ''
                              });
                          
                              createState(idJson, "", {
                                  name: 'Ergebnis der Abfrage von Google',
                                  desc: 'Ergebnis der Abfrage von Google (json)',
                                  type: 'string',
                                  role: 'value',
                                  unit: ''
                              });
                          
                              createState(idStatus, "", {
                                  name: 'Status der Abfrage zur Google',
                                  desc: 'Status der Abfrage zur Google',
                                  type: 'string',
                                  role: 'value',
                                  unit: ''
                              });
                          
                              createState(idTimestamp, "", {
                                  name: 'Letze Aktualisierung',
                                  desc: 'Letze Aktualisierung',
                                  type: 'string',
                                  role: 'value',
                                  unit: ''
                              });
                          }
                          
                          function readJson(url, callback) {
                              axios.get(url)
                                  .then(response => {
                                      if (response.status === 200) {
                                          var json = response.data;
                                          callback(null, json);
                                      } else {
                                          var error = "Fehler beim Auslesen des JSON. Statuscode: " + response.status;
                                          callback(error, null);
                                      }
                                  })
                                  .catch(error => {
                                      var error = "Fehler bei der Abfrage von: " + url + ". Fehler: " + error.message;
                                      callback(error, null);
                                  });
                          }
                          
                          var url = 'https://maps.googleapis.com/maps/api/directions/json'
                              + '?origin=' + origin
                              + '&waypoints=via:' + via1
                              + '&waypoints=via:' + via2
                              + '&destination=' + destination
                              + '&departure_time=now'
                              // + '&sensor=false'
                              // + '&alternatives=true'
                              + '&mode=driving' // driving = default
                              + '&language=de-DE'
                              + '&key=' + apikey;
                          
                          function main() {
                              if (ldebug) log("url: " + url);
                              setState(idUrl, url);
                          
                              readJson(url, function (err, json) {
                                  if (!err) {
                                      myJson = json;
                                      if (ldebug) log("json:" + JSON.stringify(myJson));
                                      setState(idJson, JSON.stringify(myJson));
                          
                                      if (myJson.status == "OK") {
                                          log("Anzahl Wegepunkte: " + myJson.routes[0].legs[0].steps.length);
                          
                                          var minuten0 = Math.ceil(myJson.routes[0].legs[0].duration_in_traffic.value / 60);
                                          var minuten0_durchschnitt = Math.ceil(myJson.routes[0].legs[0].duration.value / 60);
                                          var stau0 = false;
                                          var staustufe0 = 0;
                                          var delta = minuten0 - minuten0_durchschnitt;
                          
                                          if (delta >= stauStufe1AbMinuten) { stau0 = true; staustufe0 = 1 }
                                          if (delta >= stauStufe2AbMinuten) { staustufe0 = 2 }
                                          if (delta >= stauStufe3AbMinuten) { staustufe0 = 3 }
                          
                                          setState(idMinuten_0, minuten0); // aktuelle Dauer der Route
                                          setState(idMinuten_0_durchschnitt, minuten0_durchschnitt); // durchschnittliche Dauer der Route
                                          setState(idMinuten_0_delta, delta); // Delta Aktuell im Vergleich zum Durchschnitt
                                          setState(idRoute_0, myJson.routes[0].summary); // Bezeichnung Route als Text
                                          setState(idStau_0, stau0); // Boolean
                                          setState(idStaustufe_0, staustufe0);
                                          setState(idAnzahlWaypoints, myJson.routes[0].legs[0].steps.length);
                                      } else {
                                          log("Kein gültiger Status Google Maps: " + myJson.status);
                                          setState(idStatus, myJson.status);
                                      }
                                  } else {
                                      log("Fehler beim Auslesen des JSON. Keine Daten erhalten.", "warn");
                                      myJson = {};
                                  }
                              });
                          
                              var timestampnow =  Date.now()
                                  // Setze den aktuellen Zeitstempel
                                  setState(idTimestamp, timestampnow);
                              
                          }
                          
                          // ACHTUNG !!!! Individuelle Anpassung ruhr70
                          // verkleinert den Abfrageintervall an einem Arbeitstag im Zeitraum vor dem Losfahren
                          // globale Funktionen notwendig:
                          // arbeitstag()
                          // urlaubstag()
                          // isTimeInRange()
                          //if (isTimeInRange('05:00:00', '06:00:00')) {
                          // if (arbeitstag() && !urlaubstag()) {
                          // setTimeout(main,90*1000); // alle 90 Sekunden, 1.5 Minuten abfragen
                          // }
                          //}
                          
                          // Abfrage nur aktualisieren wenn jemand anwesend ist
                          if (anwesend()) {
                              schedule("*/10 * * * *", function () { // alle 10 Minuten die Werte abfragen
                                  main();
                              });
                          }
                          
                          createAllStates();
                          
                          // Beim Skriptstart die Werte abfragen
                          setTimeout(main, 1000);
                          
                          
                          N 1 Reply Last reply
                          0
                          • G gutgut30

                            Mir hat das Script hier sehr geholfen. Daher man den request inzwischen anders ausführen soll (Deprecrated Meldung) habe ich es auf Axios abgepasst.

                            Zudem noch 2x VIA Wegepunkt und das Script zieht die Daten nur wenn ich anwesend bin. Das spart Aufrufe. Zudem erzeuge ich noch einen extra Datenpunkt mit dem aktuellen Zeitstempel um zu sehen wie alt der aktuelle Wert ist.

                            Falls jemand auch auf Axios umstellen will, hier das Script:

                            // Beschreibung der API: https://developers.google.com/maps/documentation/directions/intro?hl=de#traffic-model
                            // API-Key: https://console.developers.google.com/apis/dashboard?project=iobroker-privat&duration=PT1H
                            // Infos : http://forum.iobroker.net/viewtopic.php?f=8&t=4019&p=38235#p38226
                            
                            const axios = require('axios');
                            
                            var ldebug = true; // lokale Debugausgabe des Skripts true/false
                            
                            var pfad = "0_userdata.0.xxxxx."; // der Pfad zu den Datenpunkten. Letzten Punkt nicht löschen
                            
                            var stauStufe1AbMinuten = 5;
                            var stauStufe2AbMinuten = 8;
                            var stauStufe3AbMinuten = 12;
                            
                            // Standardzeit in Minuten je Route
                            var standardMinuten0 = 33;
                            
                            var origin = "11.1111111,2.2222222"; // Start
                            var via1 = "11.1111111,2.2222222"; // Zwischenpunt1
                            var via2 = "11.1111111,2.2222222"; // Zwischenpunt2
                            var destination = "11.1111111,2.2222222"; //  Ziel
                            
                            var apikey = "DEINAPIKEY";
                            
                            var myJson = {};
                            
                            var idUrl = pfad + "skript.url";
                            var idJson = pfad + "skript.ergebnis_json";
                            var idStatus = pfad + "skript.status";
                            var idTimestamp = pfad + "skript.timestamp";
                            var idMinuten_0 = pfad + "Minuten_0";
                            var idMinuten_0_durchschnitt = pfad + "Minuten_0_Durchschnitt";
                            var idMinuten_0_delta = pfad + "Minuten_0_Deltazeit";
                            var idRoute_0 = pfad + "Route_0"; // Routenbezeichnung von Google Maps
                            var idStau_0 = pfad + "Stau_0"; // boolean
                            var idStaustufe_0 = pfad + "Staustufe_0"; // Wert von (0-3)
                            var idAnzahlWaypoints = pfad + "Anzahl_Wegpunkte_0"; // Anzahl der Wegpunkte der aktuellen Route
                            
                            function createAllStates() {
                            
                                createState(idMinuten_0, 0, {
                                    name: 'Route 0 Minuten aktuell zum Ziel',
                                    desc: 'Route 0 Minuten aktuell zum Ziel',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'min'
                                });
                            
                                createState(idMinuten_0_durchschnitt, 0, {
                                    name: 'Route 0 Minuten im Durchschnitt zum Ziel',
                                    desc: 'Route 0 Minuten im Durchschnitt zum Ziel',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'min'
                                });
                            
                                createState(idMinuten_0_delta, 0, {
                                    name: 'Route 0 Minuten Delta gegenüber dem Durchschnitt',
                                    desc: 'Route 0 Minuten Delta gegenüber dem Durchschnitt',
                                    type: 'number',
                                    role: 'value',
                                    unit: 'min'
                                });
                            
                                createState(idRoute_0, "init", {
                                    name: 'Bezeichnung der Route 0',
                                    desc: 'Bezeichnung der Route 0 von Google Maps',
                                    type: 'string',
                                    role: 'value',
                                    unit: ''
                                });
                            
                                createState(idStau_0, false, {
                                    name: 'Stau auf Route 0 (boolean)',
                                    desc: 'Stau auf Route 0 (boolean)',
                                    type: 'boolean',
                                    role: 'value',
                                    unit: ''
                                });
                            
                                createState(idStaustufe_0, 0, {
                                    name: 'Staustufe auf Route 0 (0-3)',
                                    desc: 'Staustufe (0 kein Stau bis 3 starker Stau) auf Route 0',
                                    type: 'number',
                                    role: 'value',
                                    unit: ''
                                });
                            
                                createState(idAnzahlWaypoints, 0, {
                                    name: 'Aktuelle Anzahl der Wegpunkte für die Route',
                                    desc: 'Aktuelle Anzahl der Wegpunkte für die Route',
                                    type: 'number',
                                    role: 'value',
                                    unit: ''
                                });
                            
                                createState(idUrl, "", {
                                    name: 'url der Abfrage zur Google',
                                    desc: 'url der Abfrage zur Google',
                                    type: 'string',
                                    role: 'value',
                                    unit: ''
                                });
                            
                                createState(idJson, "", {
                                    name: 'Ergebnis der Abfrage von Google',
                                    desc: 'Ergebnis der Abfrage von Google (json)',
                                    type: 'string',
                                    role: 'value',
                                    unit: ''
                                });
                            
                                createState(idStatus, "", {
                                    name: 'Status der Abfrage zur Google',
                                    desc: 'Status der Abfrage zur Google',
                                    type: 'string',
                                    role: 'value',
                                    unit: ''
                                });
                            
                                createState(idTimestamp, "", {
                                    name: 'Letze Aktualisierung',
                                    desc: 'Letze Aktualisierung',
                                    type: 'string',
                                    role: 'value',
                                    unit: ''
                                });
                            }
                            
                            function readJson(url, callback) {
                                axios.get(url)
                                    .then(response => {
                                        if (response.status === 200) {
                                            var json = response.data;
                                            callback(null, json);
                                        } else {
                                            var error = "Fehler beim Auslesen des JSON. Statuscode: " + response.status;
                                            callback(error, null);
                                        }
                                    })
                                    .catch(error => {
                                        var error = "Fehler bei der Abfrage von: " + url + ". Fehler: " + error.message;
                                        callback(error, null);
                                    });
                            }
                            
                            var url = 'https://maps.googleapis.com/maps/api/directions/json'
                                + '?origin=' + origin
                                + '&waypoints=via:' + via1
                                + '&waypoints=via:' + via2
                                + '&destination=' + destination
                                + '&departure_time=now'
                                // + '&sensor=false'
                                // + '&alternatives=true'
                                + '&mode=driving' // driving = default
                                + '&language=de-DE'
                                + '&key=' + apikey;
                            
                            function main() {
                                if (ldebug) log("url: " + url);
                                setState(idUrl, url);
                            
                                readJson(url, function (err, json) {
                                    if (!err) {
                                        myJson = json;
                                        if (ldebug) log("json:" + JSON.stringify(myJson));
                                        setState(idJson, JSON.stringify(myJson));
                            
                                        if (myJson.status == "OK") {
                                            log("Anzahl Wegepunkte: " + myJson.routes[0].legs[0].steps.length);
                            
                                            var minuten0 = Math.ceil(myJson.routes[0].legs[0].duration_in_traffic.value / 60);
                                            var minuten0_durchschnitt = Math.ceil(myJson.routes[0].legs[0].duration.value / 60);
                                            var stau0 = false;
                                            var staustufe0 = 0;
                                            var delta = minuten0 - minuten0_durchschnitt;
                            
                                            if (delta >= stauStufe1AbMinuten) { stau0 = true; staustufe0 = 1 }
                                            if (delta >= stauStufe2AbMinuten) { staustufe0 = 2 }
                                            if (delta >= stauStufe3AbMinuten) { staustufe0 = 3 }
                            
                                            setState(idMinuten_0, minuten0); // aktuelle Dauer der Route
                                            setState(idMinuten_0_durchschnitt, minuten0_durchschnitt); // durchschnittliche Dauer der Route
                                            setState(idMinuten_0_delta, delta); // Delta Aktuell im Vergleich zum Durchschnitt
                                            setState(idRoute_0, myJson.routes[0].summary); // Bezeichnung Route als Text
                                            setState(idStau_0, stau0); // Boolean
                                            setState(idStaustufe_0, staustufe0);
                                            setState(idAnzahlWaypoints, myJson.routes[0].legs[0].steps.length);
                                        } else {
                                            log("Kein gültiger Status Google Maps: " + myJson.status);
                                            setState(idStatus, myJson.status);
                                        }
                                    } else {
                                        log("Fehler beim Auslesen des JSON. Keine Daten erhalten.", "warn");
                                        myJson = {};
                                    }
                                });
                            
                                var timestampnow =  Date.now()
                                    // Setze den aktuellen Zeitstempel
                                    setState(idTimestamp, timestampnow);
                                
                            }
                            
                            // ACHTUNG !!!! Individuelle Anpassung ruhr70
                            // verkleinert den Abfrageintervall an einem Arbeitstag im Zeitraum vor dem Losfahren
                            // globale Funktionen notwendig:
                            // arbeitstag()
                            // urlaubstag()
                            // isTimeInRange()
                            //if (isTimeInRange('05:00:00', '06:00:00')) {
                            // if (arbeitstag() && !urlaubstag()) {
                            // setTimeout(main,90*1000); // alle 90 Sekunden, 1.5 Minuten abfragen
                            // }
                            //}
                            
                            // Abfrage nur aktualisieren wenn jemand anwesend ist
                            if (anwesend()) {
                                schedule("*/10 * * * *", function () { // alle 10 Minuten die Werte abfragen
                                    main();
                                });
                            }
                            
                            createAllStates();
                            
                            // Beim Skriptstart die Werte abfragen
                            setTimeout(main, 1000);
                            
                            
                            N Offline
                            N Offline
                            newbie0815
                            wrote on last edited by
                            #117

                            @gutgut30 Hallo, vielen Dank für das Script. Der Adapter läuft bei mir nicht mehr - man muss wohl eine neue APi erzeugen, aber man muss auch für einen Free Account Zahlungsdaten usw. angeben. Ich würde gerne Dein Script benutzen, bin mir aber nicht sicher was ich genau machen muss. Kannst Du mir etwas auf die Sprünge helfen ? Danke.

                            N 1 Reply Last reply
                            0
                            • N newbie0815

                              @gutgut30 Hallo, vielen Dank für das Script. Der Adapter läuft bei mir nicht mehr - man muss wohl eine neue APi erzeugen, aber man muss auch für einen Free Account Zahlungsdaten usw. angeben. Ich würde gerne Dein Script benutzen, bin mir aber nicht sicher was ich genau machen muss. Kannst Du mir etwas auf die Sprünge helfen ? Danke.

                              N Offline
                              N Offline
                              newbie0815
                              wrote on last edited by
                              #118

                              @newbie0815 Hi, ich habe Chatgpt bemüht und es läuft. Danke

                              G 1 Reply Last reply
                              0
                              • N newbie0815

                                @newbie0815 Hi, ich habe Chatgpt bemüht und es läuft. Danke

                                G Offline
                                G Offline
                                gutgut30
                                wrote on last edited by
                                #119

                                @newbie0815 ich kann dir morgen mal das aktuelle Script posten. Der Trigger funktioniert im hier geposteten so nämlich nicht wirklich sinnvoll und kann dir flott die kostenlosen API Aufrufe verbrauchen.

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                Support us

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

                                393

                                Online

                                32.4k

                                Users

                                81.3k

                                Topics

                                1.3m

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

                                • Don't have an account? Register

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