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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  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.2k

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

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

IoBroker und Stau- / Verkehrsinformationen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
119 Beiträge 48 Kommentatoren 32.0k Aufrufe 24 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • NashraN Nashra

    So, Adapter installiert, API und Fahrziel eingetragen.....Daten werden geholt.
    Wie muß ich jetzt weiter vorgehen d.h im DP steht z.B. 7:30 was für mich aber nicht
    passt und wie das alles in VIS, einfach als HTML-Widget.
    Irgendwie stehe ich im Moment auf dem Schlauch wie man so sagt. 🙄

    H Online
    H Online
    helfi9999
    schrieb am zuletzt editiert von
    #98

    @Nashra Wenn du dir den DP anschaust "route" zeigt er dir genau an wenn du jetzt losfährst ob es länger dauert oder nicht.

    Intel NUC mit Iobroker

    NashraN 1 Antwort Letzte Antwort
    0
    • H helfi9999

      @Nashra Wenn du dir den DP anschaust "route" zeigt er dir genau an wenn du jetzt losfährst ob es länger dauert oder nicht.

      NashraN Offline
      NashraN Offline
      Nashra
      Most Active Forum Testing
      schrieb am zuletzt editiert von
      #99

      @helfi9999 sagte in IoBroker und Stau- / Verkehrsinformationen:

      @Nashra Wenn du dir den DP anschaust "route" zeigt er dir genau an wenn du jetzt losfährst ob es länger dauert oder nicht.

      D.h. es wird nur die Zeit angegeben wenn ich dies in VIS einbaue.
      Schade das es mit Google nicht mehr funktioniert, hätte gerne noch die
      Anzeige der Route.

      Gruß Ralf
      Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

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

      H 1 Antwort Letzte Antwort
      0
      • NashraN Nashra

        @helfi9999 sagte in IoBroker und Stau- / Verkehrsinformationen:

        @Nashra Wenn du dir den DP anschaust "route" zeigt er dir genau an wenn du jetzt losfährst ob es länger dauert oder nicht.

        D.h. es wird nur die Zeit angegeben wenn ich dies in VIS einbaue.
        Schade das es mit Google nicht mehr funktioniert, hätte gerne noch die
        Anzeige der Route.

        H Online
        H Online
        helfi9999
        schrieb am zuletzt editiert von
        #100

        @Nashra so verstehe ich das auch und ja finde es auch schade das man die Route nicht mehr hat mit Traffic Meldung

        Intel NUC mit Iobroker

        1 Antwort Letzte Antwort
        0
        • BuZZyB Offline
          BuZZyB Offline
          BuZZy
          schrieb am zuletzt editiert von
          #101

          Was genau meint ihr?
          Sowas wie z.B.: Stockender Verkehr auf der A7 Höhe Braunschweig.

          ??

          crunchipC 1 Antwort Letzte Antwort
          0
          • BuZZyB BuZZy

            Was genau meint ihr?
            Sowas wie z.B.: Stockender Verkehr auf der A7 Höhe Braunschweig.

            ??

            crunchipC Offline
            crunchipC Offline
            crunchip
            Forum Testing Most Active
            schrieb am zuletzt editiert von crunchip
            #102

            @BuZZy so in etwa
            in dem Fall zwei Routen

            1. normale Strecke
            2. alternative Strecke

            aktuelle Fahrzeit(Verkehrsdichte mit einbezogen), heisst,
            Zeit wird automatisch angepasst, so wie auch in google maps
            dazu noch ein Feld
            grün=frei
            gelb=stockend
            rot=Stau
            bei anklicken des Feldes, öffnet sich ein Fenster mit der Aktuellen Verkehrslage/Wegstrecke

            c1a2e655-035e-42eb-937f-cbdc2610d7aa-image.png
            378002f9-58ec-4abf-afda-ed5461489f3d-image.png

            umgestiegen von Proxmox auf Unraid

            J 1 Antwort Letzte Antwort
            0
            • crunchipC crunchip

              @BuZZy so in etwa
              in dem Fall zwei Routen

              1. normale Strecke
              2. alternative Strecke

              aktuelle Fahrzeit(Verkehrsdichte mit einbezogen), heisst,
              Zeit wird automatisch angepasst, so wie auch in google maps
              dazu noch ein Feld
              grün=frei
              gelb=stockend
              rot=Stau
              bei anklicken des Feldes, öffnet sich ein Fenster mit der Aktuellen Verkehrslage/Wegstrecke

              c1a2e655-035e-42eb-937f-cbdc2610d7aa-image.png
              378002f9-58ec-4abf-afda-ed5461489f3d-image.png

              J Offline
              J Offline
              jmyxa
              schrieb am zuletzt editiert von jmyxa
              #103

              @BuZZy vielen Dank für den Adapter!
              Aus praktischer Sicht fehlen mir die Via-Angaben in der Routenbildung. Aber gut, das kann man lösen, indem man mehrere Routen in Form "von A nach Via 1, von Via 1 nach Via 2, von Via 2 nach B" anlegt und dann die Infos addiert. Die Schwierigkeit besteht jedoch in der Adressangabe von Via-Punkten. Es macht wenig Sinn, dort eine Adresse anzugeben, vielmehr sind GPS-Koordinaten von Interesse, weil man dann den Punkt direkt auf der Strasse setzen kann. Aber genau das nimmt der Adapter nicht an. "(12945) geoCode() failed: TypeError: Cannot read property 'Result' of undefined".

              1 Antwort Letzte Antwort
              0
              • 0 Offline
                0 Offline
                0018
                schrieb am zuletzt editiert von 0018
                #104

                @BuZZy Habe auch das Problem mit der GoogleApi bekommen.
                Jetzt versuche ich gerade den Adapter zum laufen zu bekommen. Leider bekomme ich nach Adresseingabe und Adapterstart den Fehler:

                roadtraffic.0	2020-02-27 13:58:01.282	error	(5580) Error from Here: undefined undefined
                roadtraffic.0	2020-02-27 13:58:01.001	debug	(5580) Selected Alexa for Alarm: undefined
                roadtraffic.0	2020-02-27 13:58:00.964	debug	(5580) Checking API Key..
                roadtraffic.0	2020-02-27 13:58:00.891	info	(5580) starting. Version 0.2.0 in /opt/iobroker/node_modules/iobroker.roadtraffic, node: v10.18.1
                

                Was bedeutet das? Wie genau muss die Eingabe von Origin und Destination aussehen? GPS oder Straße, Ort mit PLZ?

                Ist es möglich den Adapter um die Zwischenzielfunktion in der Route zu erweitern?

                Mit der Google API habe ich mir immer zwei Wege zur Arbeit anzeigen lassen und da konnte ich mich dann einfach entscheiden welchen Weg ich nehme 😊

                Mfg
                0018

                1 Antwort Letzte Antwort
                0
                • 0 Offline
                  0 Offline
                  0018
                  schrieb am zuletzt editiert von
                  #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 Antworten Letzte Antwort
                  0
                  • J Offline
                    J Offline
                    jwerlsdf
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #107

                      @0018

                      Ich würde mich anschließen!

                      1 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #111

                              Hallo zusammen,

                              ich habe den Adapter auch gerade installiert.

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

                              1 Antwort Letzte Antwort
                              0
                              • G Offline
                                G Offline
                                gutgut30
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #114

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

                                    1 Antwort Letzte Antwort
                                    0
                                    • M Offline
                                      M Offline
                                      marsmännchen
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      0
                                      • G Offline
                                        G Offline
                                        gutgut30
                                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          730

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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