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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Datum mit Uhrzeit in Unixzeit umwandeln

NEWS

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

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

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

[gelöst] Datum mit Uhrzeit in Unixzeit umwandeln

Scheduled Pinned Locked Moved JavaScript
15 Posts 4 Posters 2.3k Views
  • 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.
  • O Online
    O Online
    Oli
    wrote on last edited by Oli
    #1

    Hallo zusammen,

    ich befasse mich erst seit kurzen mit dem Thema ioBroker und Javascript, aus diesem Grund stoße ich auch immer wieder an meine Grenzen.

    Ich möchte aber allen Teilnehmer ein großes Lob und Dankeschön ausrichten, was ihr hier alles leistet ist echt Top!!!

    Nun aber zu meinem Problem:

    Ich rufe mir mit einem Script hier aus dem Forum die Busverbindung über Google Api auf, nun möchte ich aber nicht nur die nächste Verbindung, sondern auch die übernächste Verbindung abrufen.

    Nach Angaben von Google muss die Abfahrtszeit in Unixzeit angegeben werden, also dachte ich mir, ich nehme das aktuelle Datum, plus die Abfahrtszeit der ersten Verbindung, plus einen Zuschlag von 2 Minuten.

    Nur wie schaffe ich es, eine zusammengebaute Variable in Unixzeit umzurechnen?

    Das vorhanden Script füge ich mit bei.

    // Busfahrplan per Google Maps
    //
    // 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
    
    var apikey              = "xxxxxxxxxxxxxxxxxxxxx"; //(Mein Key wurde eingetragen)
    var origin              = "49.352588,11.144985"; // Koordinaten Startadresse
    var destination         = "49.444155,11.084046"; // Koordinaten Zieladresse
    
    var request = require('request');
    var logging = true;
     
    createState('Busfahrplan.Aktualisieren', false, {
            desc: 'Werte aktualisieren',
            type: 'boolean',
            def:  false,
            role: 'indicator'    
    });
    createState('Busfahrplan.Bus1.Startzeit', 0, {
    		});
    createState('Busfahrplan.Bus1.Abfahrtszeit', 0, {
    		});		
    createState('Busfahrplan.Bus1.Ankunftszeit', 0, {
    		});
    createState('Busfahrplan.Bus1.Haltestelle', 0, {
    		});
    createState('Busfahrplan.Bus1.Linie', 0, {
    		});
    createState('Busfahrplan.Bus1.Verkehrsmittel', 0, {
    		});	
    createState('Busfahrplan.Bus2.Startzeit', 0, {
    		});
    createState('Busfahrplan.Bus2.Abfahrtszeit', 0, {
    		});		
    createState('Busfahrplan.Bus2.Ankunftszeit', 0, {
    		});
    createState('Busfahrplan.Bus2.Haltestelle', 0, {
    		});
    createState('Busfahrplan.Bus2.Linie', 0, {
    		});
    createState('Busfahrplan.Bus2.Verkehrsmittel', 0, {
    		});	
     
    function datenlesen() {
        //Hochkreuzalle nach HBF ohne Waypoints
        //var link = 'https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJ_xXrLmzkvkcRQacjsrOKAv0&&destination=place_id:ChIJAwsLOp_hvkcRMZDtxvyPpBc&key=###API_KEY_EINFÜGEN###&mode=transit&language=de' ;
        var link = 'https://maps.googleapis.com/maps/api/directions/json'  
                 + '?origin=' + origin             
                 + '&destination=' + destination 
                 + '&departure_time=now'
                 + '&mode=transit'
                 + '&language=de-DE'
                 + '&key=' + apikey;  
        
        log('Google Daten einlesen');
        request(link, function (error, response, body) {
            if (!error && response.statusCode == 200) {
                var result;
                try{
                    result = JSON.parse(body);
     
                    if (logging) log('Kein Fehler beim Einlesen Google Daten');
     
                } catch (e) {
                    log('Parse Fehler (Roofi Modul):' + e);
                }    
                if (result) {
     
                    var Startzeit;
                    var Abfahrtszeit;
                    var Ankunftszeit;
                    var Haltestelle;
                    var Linie;
                    var Verkehrsmittel;
     
                    if (logging) log(result.routes[0].legs[0].departure_time.text);
                    if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_time.text);
                    if (logging) log(result.routes[0].legs[0].arrival_time.text);
                    if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_stop.name);
                    if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.short_name);
                    if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name);
     
                    Startzeit = result.routes[0].legs[0].departure_time.text;
                    Abfahrtszeit = result.routes[0].legs[0].steps[1].transit_details.departure_time.text;
                    Ankunftszeit = result.routes[0].legs[0].arrival_time.text;
                    Haltestelle = result.routes[0].legs[0].steps[1].transit_details.departure_stop.name;
                    Linie = result.routes[0].legs[0].steps[1].transit_details.line.short_name;
                    Verkehrsmittel = result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name;               
    
                    setState("javascript.0.Busfahrplan.Bus1.Startzeit",Startzeit);
                    setState("javascript.0.Busfahrplan.Bus1.Abfahrtszeit",Abfahrtszeit);
                    setState("javascript.0.Busfahrplan.Bus1.Ankunftszeit",Ankunftszeit);
                    setState("javascript.0.Busfahrplan.Bus1.Haltestelle",Haltestelle);
                    setState("javascript.0.Busfahrplan.Bus1.Linie",Linie);
                    setState("javascript.0.Busfahrplan.Bus1.Verkehrsmittel",Verkehrsmittel);             
                   
                }
            } else log('Fehler (Google Daten Abfrage: ' + error);
        });   // Ende request 
        log('Google Daten eingelesen');
    }
    
    schedule("*/10 5,4-22,44 * * *", function () { // alle 10 Minuten die Werte abfragen
         datenlesen ();
     });
      
     // Beim Skriptstart die Werte abfragen
     setTimeout(datenlesen,1000);
    

    Vielen Dank für eure Hilfe.
    Gruß Oliver

    Gruß
    Oliver

    HomoranH paul53P 3 Replies Last reply
    0
    • O Oli

      Hallo zusammen,

      ich befasse mich erst seit kurzen mit dem Thema ioBroker und Javascript, aus diesem Grund stoße ich auch immer wieder an meine Grenzen.

      Ich möchte aber allen Teilnehmer ein großes Lob und Dankeschön ausrichten, was ihr hier alles leistet ist echt Top!!!

      Nun aber zu meinem Problem:

      Ich rufe mir mit einem Script hier aus dem Forum die Busverbindung über Google Api auf, nun möchte ich aber nicht nur die nächste Verbindung, sondern auch die übernächste Verbindung abrufen.

      Nach Angaben von Google muss die Abfahrtszeit in Unixzeit angegeben werden, also dachte ich mir, ich nehme das aktuelle Datum, plus die Abfahrtszeit der ersten Verbindung, plus einen Zuschlag von 2 Minuten.

      Nur wie schaffe ich es, eine zusammengebaute Variable in Unixzeit umzurechnen?

      Das vorhanden Script füge ich mit bei.

      // Busfahrplan per Google Maps
      //
      // 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
      
      var apikey              = "xxxxxxxxxxxxxxxxxxxxx"; //(Mein Key wurde eingetragen)
      var origin              = "49.352588,11.144985"; // Koordinaten Startadresse
      var destination         = "49.444155,11.084046"; // Koordinaten Zieladresse
      
      var request = require('request');
      var logging = true;
       
      createState('Busfahrplan.Aktualisieren', false, {
              desc: 'Werte aktualisieren',
              type: 'boolean',
              def:  false,
              role: 'indicator'    
      });
      createState('Busfahrplan.Bus1.Startzeit', 0, {
      		});
      createState('Busfahrplan.Bus1.Abfahrtszeit', 0, {
      		});		
      createState('Busfahrplan.Bus1.Ankunftszeit', 0, {
      		});
      createState('Busfahrplan.Bus1.Haltestelle', 0, {
      		});
      createState('Busfahrplan.Bus1.Linie', 0, {
      		});
      createState('Busfahrplan.Bus1.Verkehrsmittel', 0, {
      		});	
      createState('Busfahrplan.Bus2.Startzeit', 0, {
      		});
      createState('Busfahrplan.Bus2.Abfahrtszeit', 0, {
      		});		
      createState('Busfahrplan.Bus2.Ankunftszeit', 0, {
      		});
      createState('Busfahrplan.Bus2.Haltestelle', 0, {
      		});
      createState('Busfahrplan.Bus2.Linie', 0, {
      		});
      createState('Busfahrplan.Bus2.Verkehrsmittel', 0, {
      		});	
       
      function datenlesen() {
          //Hochkreuzalle nach HBF ohne Waypoints
          //var link = 'https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJ_xXrLmzkvkcRQacjsrOKAv0&&destination=place_id:ChIJAwsLOp_hvkcRMZDtxvyPpBc&key=###API_KEY_EINFÜGEN###&mode=transit&language=de' ;
          var link = 'https://maps.googleapis.com/maps/api/directions/json'  
                   + '?origin=' + origin             
                   + '&destination=' + destination 
                   + '&departure_time=now'
                   + '&mode=transit'
                   + '&language=de-DE'
                   + '&key=' + apikey;  
          
          log('Google Daten einlesen');
          request(link, function (error, response, body) {
              if (!error && response.statusCode == 200) {
                  var result;
                  try{
                      result = JSON.parse(body);
       
                      if (logging) log('Kein Fehler beim Einlesen Google Daten');
       
                  } catch (e) {
                      log('Parse Fehler (Roofi Modul):' + e);
                  }    
                  if (result) {
       
                      var Startzeit;
                      var Abfahrtszeit;
                      var Ankunftszeit;
                      var Haltestelle;
                      var Linie;
                      var Verkehrsmittel;
       
                      if (logging) log(result.routes[0].legs[0].departure_time.text);
                      if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_time.text);
                      if (logging) log(result.routes[0].legs[0].arrival_time.text);
                      if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_stop.name);
                      if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.short_name);
                      if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name);
       
                      Startzeit = result.routes[0].legs[0].departure_time.text;
                      Abfahrtszeit = result.routes[0].legs[0].steps[1].transit_details.departure_time.text;
                      Ankunftszeit = result.routes[0].legs[0].arrival_time.text;
                      Haltestelle = result.routes[0].legs[0].steps[1].transit_details.departure_stop.name;
                      Linie = result.routes[0].legs[0].steps[1].transit_details.line.short_name;
                      Verkehrsmittel = result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name;               
      
                      setState("javascript.0.Busfahrplan.Bus1.Startzeit",Startzeit);
                      setState("javascript.0.Busfahrplan.Bus1.Abfahrtszeit",Abfahrtszeit);
                      setState("javascript.0.Busfahrplan.Bus1.Ankunftszeit",Ankunftszeit);
                      setState("javascript.0.Busfahrplan.Bus1.Haltestelle",Haltestelle);
                      setState("javascript.0.Busfahrplan.Bus1.Linie",Linie);
                      setState("javascript.0.Busfahrplan.Bus1.Verkehrsmittel",Verkehrsmittel);             
                     
                  }
              } else log('Fehler (Google Daten Abfrage: ' + error);
          });   // Ende request 
          log('Google Daten eingelesen');
      }
      
      schedule("*/10 5,4-22,44 * * *", function () { // alle 10 Minuten die Werte abfragen
           datenlesen ();
       });
        
       // Beim Skriptstart die Werte abfragen
       setTimeout(datenlesen,1000);
      

      Vielen Dank für eure Hilfe.
      Gruß Oliver

      HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by Homoran
      #2

      @Oliver-Böhm

      Beim Skripten kann ich dir nicht helfen, aber vielleicht hift das:

      Unixzeit ist die Anzahl der vergangenen Sekunden seit dem 1.1.1970 um 00:00

      Außerdem mal bei npm nach Modulen gesehen?

      https://www.npmjs.com/package/unix-time

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

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

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

      1 Reply Last reply
      0
      • O Online
        O Online
        Oli
        wrote on last edited by
        #3

        Hallo @Homoran,

        danke für deine Antwort, dass weis ich, mir fehlt nur die Erfahrung bein scripen, was ich bis jetzt hinbekommen habe ist folgenden:

        var Test = Date.parse('28 Dec 2019 00:00:00 GMT');
        setState("javascript.0.Test.Unixtime.Tage",Test);
        

        sobald ich das Datum als "28.12.2019 00:00:00 " eingebe bekomme ich schon einen Fehler, als Variable Zusammenstellung bekomme ich es gar nicht hin.

        Gruß
        Oliver

        HomoranH 1 Reply Last reply
        0
        • O Oli

          Hallo @Homoran,

          danke für deine Antwort, dass weis ich, mir fehlt nur die Erfahrung bein scripen, was ich bis jetzt hinbekommen habe ist folgenden:

          var Test = Date.parse('28 Dec 2019 00:00:00 GMT');
          setState("javascript.0.Test.Unixtime.Tage",Test);
          

          sobald ich das Datum als "28.12.2019 00:00:00 " eingebe bekomme ich schon einen Fehler, als Variable Zusammenstellung bekomme ich es gar nicht hin.

          HomoranH Do not disturb
          HomoranH Do not disturb
          Homoran
          Global Moderator Administrators
          wrote on last edited by
          #4

          @Oliver-Böhm
          Wie gesagt kann ich dir beim Skripten mangels Wissen nicht helfen.

          Auf Github steht beim npm Modul leider nicht in welchem Format das Datum eingegeben werden muss.
          Ich kann mir aber vorstellen, dass es sich um US-Notation handeln wird.

          Es gibt aber noch weitere Module.
          Mein Link war nur ein Beispiel

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

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

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

          1 Reply Last reply
          0
          • O Online
            O Online
            Oli
            wrote on last edited by
            #5

            @Homran,

            trotzdem Danke für deine schnelle Antwort.

            Gruß
            Oliver

            1 Reply Last reply
            0
            • D Offline
              D Offline
              dwm
              wrote on last edited by
              #6

              Du suchst "getTime()"...

              siehe https://www.w3schools.com/jsref/jsref_gettime.asp

              var theDate = new Date("28 Dec 2019 00:00:00 GMT");
              log (theDate.getTime());
              

              liefert
              1577491200000

              Achtung: Das liefert die Millisekunden, evt. durch 1000 teilen :)

              1 Reply Last reply
              0
              • O Oli

                Hallo zusammen,

                ich befasse mich erst seit kurzen mit dem Thema ioBroker und Javascript, aus diesem Grund stoße ich auch immer wieder an meine Grenzen.

                Ich möchte aber allen Teilnehmer ein großes Lob und Dankeschön ausrichten, was ihr hier alles leistet ist echt Top!!!

                Nun aber zu meinem Problem:

                Ich rufe mir mit einem Script hier aus dem Forum die Busverbindung über Google Api auf, nun möchte ich aber nicht nur die nächste Verbindung, sondern auch die übernächste Verbindung abrufen.

                Nach Angaben von Google muss die Abfahrtszeit in Unixzeit angegeben werden, also dachte ich mir, ich nehme das aktuelle Datum, plus die Abfahrtszeit der ersten Verbindung, plus einen Zuschlag von 2 Minuten.

                Nur wie schaffe ich es, eine zusammengebaute Variable in Unixzeit umzurechnen?

                Das vorhanden Script füge ich mit bei.

                // Busfahrplan per Google Maps
                //
                // 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
                
                var apikey              = "xxxxxxxxxxxxxxxxxxxxx"; //(Mein Key wurde eingetragen)
                var origin              = "49.352588,11.144985"; // Koordinaten Startadresse
                var destination         = "49.444155,11.084046"; // Koordinaten Zieladresse
                
                var request = require('request');
                var logging = true;
                 
                createState('Busfahrplan.Aktualisieren', false, {
                        desc: 'Werte aktualisieren',
                        type: 'boolean',
                        def:  false,
                        role: 'indicator'    
                });
                createState('Busfahrplan.Bus1.Startzeit', 0, {
                		});
                createState('Busfahrplan.Bus1.Abfahrtszeit', 0, {
                		});		
                createState('Busfahrplan.Bus1.Ankunftszeit', 0, {
                		});
                createState('Busfahrplan.Bus1.Haltestelle', 0, {
                		});
                createState('Busfahrplan.Bus1.Linie', 0, {
                		});
                createState('Busfahrplan.Bus1.Verkehrsmittel', 0, {
                		});	
                createState('Busfahrplan.Bus2.Startzeit', 0, {
                		});
                createState('Busfahrplan.Bus2.Abfahrtszeit', 0, {
                		});		
                createState('Busfahrplan.Bus2.Ankunftszeit', 0, {
                		});
                createState('Busfahrplan.Bus2.Haltestelle', 0, {
                		});
                createState('Busfahrplan.Bus2.Linie', 0, {
                		});
                createState('Busfahrplan.Bus2.Verkehrsmittel', 0, {
                		});	
                 
                function datenlesen() {
                    //Hochkreuzalle nach HBF ohne Waypoints
                    //var link = 'https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJ_xXrLmzkvkcRQacjsrOKAv0&&destination=place_id:ChIJAwsLOp_hvkcRMZDtxvyPpBc&key=###API_KEY_EINFÜGEN###&mode=transit&language=de' ;
                    var link = 'https://maps.googleapis.com/maps/api/directions/json'  
                             + '?origin=' + origin             
                             + '&destination=' + destination 
                             + '&departure_time=now'
                             + '&mode=transit'
                             + '&language=de-DE'
                             + '&key=' + apikey;  
                    
                    log('Google Daten einlesen');
                    request(link, function (error, response, body) {
                        if (!error && response.statusCode == 200) {
                            var result;
                            try{
                                result = JSON.parse(body);
                 
                                if (logging) log('Kein Fehler beim Einlesen Google Daten');
                 
                            } catch (e) {
                                log('Parse Fehler (Roofi Modul):' + e);
                            }    
                            if (result) {
                 
                                var Startzeit;
                                var Abfahrtszeit;
                                var Ankunftszeit;
                                var Haltestelle;
                                var Linie;
                                var Verkehrsmittel;
                 
                                if (logging) log(result.routes[0].legs[0].departure_time.text);
                                if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_time.text);
                                if (logging) log(result.routes[0].legs[0].arrival_time.text);
                                if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_stop.name);
                                if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.short_name);
                                if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name);
                 
                                Startzeit = result.routes[0].legs[0].departure_time.text;
                                Abfahrtszeit = result.routes[0].legs[0].steps[1].transit_details.departure_time.text;
                                Ankunftszeit = result.routes[0].legs[0].arrival_time.text;
                                Haltestelle = result.routes[0].legs[0].steps[1].transit_details.departure_stop.name;
                                Linie = result.routes[0].legs[0].steps[1].transit_details.line.short_name;
                                Verkehrsmittel = result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name;               
                
                                setState("javascript.0.Busfahrplan.Bus1.Startzeit",Startzeit);
                                setState("javascript.0.Busfahrplan.Bus1.Abfahrtszeit",Abfahrtszeit);
                                setState("javascript.0.Busfahrplan.Bus1.Ankunftszeit",Ankunftszeit);
                                setState("javascript.0.Busfahrplan.Bus1.Haltestelle",Haltestelle);
                                setState("javascript.0.Busfahrplan.Bus1.Linie",Linie);
                                setState("javascript.0.Busfahrplan.Bus1.Verkehrsmittel",Verkehrsmittel);             
                               
                            }
                        } else log('Fehler (Google Daten Abfrage: ' + error);
                    });   // Ende request 
                    log('Google Daten eingelesen');
                }
                
                schedule("*/10 5,4-22,44 * * *", function () { // alle 10 Minuten die Werte abfragen
                     datenlesen ();
                 });
                  
                 // Beim Skriptstart die Werte abfragen
                 setTimeout(datenlesen,1000);
                

                Vielen Dank für eure Hilfe.
                Gruß Oliver

                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by
                #7

                @Oliver-Böhm sagte:

                Abfahrtszeit = result.routes[0].legs[0].steps[1].transit_details.departure_time.text;

                Anstelle von .text gibt es sicherlich noch andere Möglichkeiten ? Vielleicht in s oder ms, mit denen es kein Problem ist, 2 Minuten (120 s) zu addieren.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Reply Last reply
                0
                • O Oli

                  Hallo zusammen,

                  ich befasse mich erst seit kurzen mit dem Thema ioBroker und Javascript, aus diesem Grund stoße ich auch immer wieder an meine Grenzen.

                  Ich möchte aber allen Teilnehmer ein großes Lob und Dankeschön ausrichten, was ihr hier alles leistet ist echt Top!!!

                  Nun aber zu meinem Problem:

                  Ich rufe mir mit einem Script hier aus dem Forum die Busverbindung über Google Api auf, nun möchte ich aber nicht nur die nächste Verbindung, sondern auch die übernächste Verbindung abrufen.

                  Nach Angaben von Google muss die Abfahrtszeit in Unixzeit angegeben werden, also dachte ich mir, ich nehme das aktuelle Datum, plus die Abfahrtszeit der ersten Verbindung, plus einen Zuschlag von 2 Minuten.

                  Nur wie schaffe ich es, eine zusammengebaute Variable in Unixzeit umzurechnen?

                  Das vorhanden Script füge ich mit bei.

                  // Busfahrplan per Google Maps
                  //
                  // 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
                  
                  var apikey              = "xxxxxxxxxxxxxxxxxxxxx"; //(Mein Key wurde eingetragen)
                  var origin              = "49.352588,11.144985"; // Koordinaten Startadresse
                  var destination         = "49.444155,11.084046"; // Koordinaten Zieladresse
                  
                  var request = require('request');
                  var logging = true;
                   
                  createState('Busfahrplan.Aktualisieren', false, {
                          desc: 'Werte aktualisieren',
                          type: 'boolean',
                          def:  false,
                          role: 'indicator'    
                  });
                  createState('Busfahrplan.Bus1.Startzeit', 0, {
                  		});
                  createState('Busfahrplan.Bus1.Abfahrtszeit', 0, {
                  		});		
                  createState('Busfahrplan.Bus1.Ankunftszeit', 0, {
                  		});
                  createState('Busfahrplan.Bus1.Haltestelle', 0, {
                  		});
                  createState('Busfahrplan.Bus1.Linie', 0, {
                  		});
                  createState('Busfahrplan.Bus1.Verkehrsmittel', 0, {
                  		});	
                  createState('Busfahrplan.Bus2.Startzeit', 0, {
                  		});
                  createState('Busfahrplan.Bus2.Abfahrtszeit', 0, {
                  		});		
                  createState('Busfahrplan.Bus2.Ankunftszeit', 0, {
                  		});
                  createState('Busfahrplan.Bus2.Haltestelle', 0, {
                  		});
                  createState('Busfahrplan.Bus2.Linie', 0, {
                  		});
                  createState('Busfahrplan.Bus2.Verkehrsmittel', 0, {
                  		});	
                   
                  function datenlesen() {
                      //Hochkreuzalle nach HBF ohne Waypoints
                      //var link = 'https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJ_xXrLmzkvkcRQacjsrOKAv0&&destination=place_id:ChIJAwsLOp_hvkcRMZDtxvyPpBc&key=###API_KEY_EINFÜGEN###&mode=transit&language=de' ;
                      var link = 'https://maps.googleapis.com/maps/api/directions/json'  
                               + '?origin=' + origin             
                               + '&destination=' + destination 
                               + '&departure_time=now'
                               + '&mode=transit'
                               + '&language=de-DE'
                               + '&key=' + apikey;  
                      
                      log('Google Daten einlesen');
                      request(link, function (error, response, body) {
                          if (!error && response.statusCode == 200) {
                              var result;
                              try{
                                  result = JSON.parse(body);
                   
                                  if (logging) log('Kein Fehler beim Einlesen Google Daten');
                   
                              } catch (e) {
                                  log('Parse Fehler (Roofi Modul):' + e);
                              }    
                              if (result) {
                   
                                  var Startzeit;
                                  var Abfahrtszeit;
                                  var Ankunftszeit;
                                  var Haltestelle;
                                  var Linie;
                                  var Verkehrsmittel;
                   
                                  if (logging) log(result.routes[0].legs[0].departure_time.text);
                                  if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_time.text);
                                  if (logging) log(result.routes[0].legs[0].arrival_time.text);
                                  if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_stop.name);
                                  if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.short_name);
                                  if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name);
                   
                                  Startzeit = result.routes[0].legs[0].departure_time.text;
                                  Abfahrtszeit = result.routes[0].legs[0].steps[1].transit_details.departure_time.text;
                                  Ankunftszeit = result.routes[0].legs[0].arrival_time.text;
                                  Haltestelle = result.routes[0].legs[0].steps[1].transit_details.departure_stop.name;
                                  Linie = result.routes[0].legs[0].steps[1].transit_details.line.short_name;
                                  Verkehrsmittel = result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name;               
                  
                                  setState("javascript.0.Busfahrplan.Bus1.Startzeit",Startzeit);
                                  setState("javascript.0.Busfahrplan.Bus1.Abfahrtszeit",Abfahrtszeit);
                                  setState("javascript.0.Busfahrplan.Bus1.Ankunftszeit",Ankunftszeit);
                                  setState("javascript.0.Busfahrplan.Bus1.Haltestelle",Haltestelle);
                                  setState("javascript.0.Busfahrplan.Bus1.Linie",Linie);
                                  setState("javascript.0.Busfahrplan.Bus1.Verkehrsmittel",Verkehrsmittel);             
                                 
                              }
                          } else log('Fehler (Google Daten Abfrage: ' + error);
                      });   // Ende request 
                      log('Google Daten eingelesen');
                  }
                  
                  schedule("*/10 5,4-22,44 * * *", function () { // alle 10 Minuten die Werte abfragen
                       datenlesen ();
                   });
                    
                   // Beim Skriptstart die Werte abfragen
                   setTimeout(datenlesen,1000);
                  

                  Vielen Dank für eure Hilfe.
                  Gruß Oliver

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #8

                  @Oliver-Böhm:
                  Doku:

                  arrival_time contains the estimated time of arrival for this leg. This property is only returned for transit directions. The result is returned as a Time object with three properties:

                  value the time specified as a JavaScript Date object.

                  Dann sollte es etwa so funktionieren:

                  var dep = result.routes[0].legs[0].steps[1].transit_details.departure_time.value;
                  // Unix-Zeit in s 2 Minuten später  
                  var next = Math.round(dep.setMinutes(dep.getMinutes() + 2) / 1000);
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Reply Last reply
                  0
                  • O Online
                    O Online
                    Oli
                    wrote on last edited by
                    #9

                    @paul53 said in Datum mit Uhrzeit in Unixzeit umwandeln:

                    var dep = result.routes[0].legs[0].steps[1].transit_details.departure_time.value; // Unix-Zeit in s 2 Minuten später var next = Math.round(dep.setMinutes(dep.getMinutes() + 2) / 1000);

                    Da bringt er mir folgende Fehler:

                    b09e2d09-5200-4448-b507-528d7a3995ae-image.png

                    Gruß
                    Oliver

                    paul53P 1 Reply Last reply
                    0
                    • O Oli

                      @paul53 said in Datum mit Uhrzeit in Unixzeit umwandeln:

                      var dep = result.routes[0].legs[0].steps[1].transit_details.departure_time.value; // Unix-Zeit in s 2 Minuten später var next = Math.round(dep.setMinutes(dep.getMinutes() + 2) / 1000);

                      Da bringt er mir folgende Fehler:

                      b09e2d09-5200-4448-b507-528d7a3995ae-image.png

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #10

                      @Oliver-Böhm
                      Dann ist es kein Javascript Date object. Was sagt ?

                      log(dep + ' ' + typeof dep);
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Reply Last reply
                      0
                      • O Online
                        O Online
                        Oli
                        wrote on last edited by
                        #11

                        Habe den Fehler gefunden :-),

                        deine 1. Codezeile wirft den Wert schon in Sekunden aus, super vielen Dank!!

                        Jetzt habe ich aber noch eine Anfängerfrage.

                        Wie packe ich jetzt beide anfragen in einen Code?

                        Gruß
                        Oliver

                        paul53P 1 Reply Last reply
                        0
                        • O Oli

                          Habe den Fehler gefunden :-),

                          deine 1. Codezeile wirft den Wert schon in Sekunden aus, super vielen Dank!!

                          Jetzt habe ich aber noch eine Anfängerfrage.

                          Wie packe ich jetzt beide anfragen in einen Code?

                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by
                          #12

                          @Oliver-Böhm sagte:

                          Wie packe ich jetzt beide anfragen in einen Code?

                          Keine Ahnung, ich kenne die Schnittstelle nicht, sondern müsste mich auch durch die API-Doku wälzen. Das mit .value habe ich zufällig entdeckt.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Reply Last reply
                          0
                          • O Online
                            O Online
                            Oli
                            wrote on last edited by
                            #13

                            ich habe jetzt pro Verbindungsabfrage ein Script angelegt und lassen mir bei der ersten Abfragen die neue Abfragezeit in einen Datenpunkt eintragen.

                            Wie kann ich jetzt dem 2. Script sagen "führe Abfrage durch, sobald sich der Datenpunkt ändert"?

                            Und wie kann ich diesen Forumsbeitrag als gelöst kennzeichnen?

                            Gruß
                            Oliver

                            paul53P 1 Reply Last reply
                            0
                            • O Oli

                              ich habe jetzt pro Verbindungsabfrage ein Script angelegt und lassen mir bei der ersten Abfragen die neue Abfragezeit in einen Datenpunkt eintragen.

                              Wie kann ich jetzt dem 2. Script sagen "führe Abfrage durch, sobald sich der Datenpunkt ändert"?

                              Und wie kann ich diesen Forumsbeitrag als gelöst kennzeichnen?

                              paul53P Offline
                              paul53P Offline
                              paul53
                              wrote on last edited by
                              #14

                              @Oliver-Böhm sagte:

                              "führe Abfrage durch, sobald sich der Datenpunkt ändert"

                              on(idDatenpunkt, function(dp) { // triggert bei Wertänderung
                                  var zeit = dp.state.val;
                                  // Abfrage
                              });
                              

                              @Oliver-Böhm sagte in Datum mit Uhrzeit in Unixzeit umwandeln:

                              wie kann ich diesen Forumsbeitrag als gelöst kennzeichnen?

                              Durch Editieren der Überschrift.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Reply Last reply
                              1
                              • O Online
                                O Online
                                Oli
                                wrote on last edited by
                                #15

                                @paul53 said in Datum mit Uhrzeit in Unixzeit umwandeln:

                                on(idDatenpunkt, function(dp) { // triggert bei Wertänderung var zeit = dp.state.val; // Abfrage });

                                Vielen Dank für deine Hilfe!!

                                Gruß
                                Oliver

                                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

                                827

                                Online

                                32.4k

                                Users

                                81.5k

                                Topics

                                1.3m

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

                                • Don't have an account? Register

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