Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Online Zeit per TR-064 berechnen und anzeigen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Online Zeit per TR-064 berechnen und anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kuddel @sigi234 last edited by

      @sigi234 ah okay, jetzt habe ich es verstanden.

      Leider steht dann ja immer "vor X Tagen"

      Dieses "vor" finde ich ein wenig störend

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Kuddel last edited by paul53

        @Kuddel sagte:

        Zeitstempel der letzte Änderung der Online IP in eine Dauer umrechrechnen

        const idIP = '...'; // Datenpunkt-ID eintragen
        const idDauer = '...'; 
        
        schedule('* * * * *', function() { // jede Minute
           var diff = Date.now() - getState(idIP).lc; // Onlinezeit in ms
           var tage = Math.floor(diff / (1000*60*60*24));
           diff = diff % (1000*60*60*24);
           var std = Math.floor(diff / (1000*60*60));
           diff = diff % (1000*60*60);
           var min = Math.round(diff / (1000*60));
           if(std < 10) std = '0' + std;
           if(min < 10) min = '0' + min;
           setState(idDauer, tage + ' ' + std + ':' + min, true);
        });
        
        K 1 Reply Last reply Reply Quote 0
        • K
          Kuddel @paul53 last edited by

          @paul53 die Onlinezeit in MS habe ich nicht.

          Zumindest wwüsste ich nicht, wie ich sie aus dem TR-Adapter auslesen kann

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Kuddel last edited by

            @Kuddel sagte:

            die Onlinezeit in MS habe ich nicht.

            Die wird in Zeile 5 als Differenz zwischen aktueller Zeit und dem Zeitpunkt der letzten Änderung der IP-Adresse berechnet.

            K 1 Reply Last reply Reply Quote 0
            • K
              Kuddel @paul53 last edited by

              @paul53 vielen Dank.

              Ich habe zwar nicht die große Ahnung von Java, aber es funtkioniert 🙂

              sigi234 1 Reply Last reply Reply Quote 0
              • sigi234
                sigi234 Forum Testing Most Active @Kuddel last edited by

                @Kuddel sagte in [gelöst] Online Zeit per TR-064 berechnen und anzeigen:

                @paul53 vielen Dank.

                Ich habe zwar nicht die große Ahnung von Java, aber es funtkioniert 🙂

                Welche DP hast du da eingetragen?

                const idIP = '...'; Datenpunkt-ID eintragen
                const idDauer = '...'; 
                
                K 1 Reply Last reply Reply Quote 0
                • K
                  Kuddel @sigi234 last edited by

                  @sigi234

                  const idIP = 'tr-064.0.states.externalIP'; 
                  const idDauer = 'javascript.0.uptime.online-dorfstrasse'; 
                  
                  sigi234 1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @Kuddel last edited by

                    @Kuddel sagte in [gelöst] Online Zeit per TR-064 berechnen und anzeigen:

                    javascript.0.uptime.online-dorfstrasse

                    Aha............. hast den DP javascript.0.uptime.online-dorfstrasse selbst erstellt.

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      Kuddel @sigi234 last edited by

                      @sigi234 ja den DP habe ich selber erstellt und in meine VIS eingebaut

                      667e98f2-38c2-489b-a1b5-06ee87e22bda-grafik.png

                      sigi234 2 Replies Last reply Reply Quote 0
                      • sigi234
                        sigi234 Forum Testing Most Active @Kuddel last edited by

                        @Kuddel

                        Geht bei mir nicht.........

                        Screenshot (3330).png

                        K 1 Reply Last reply Reply Quote 0
                        • K
                          Kuddel @sigi234 last edited by

                          @sigi234 du musst den Kommentar in zeile 1 hinter dem semikolon entfernen

                          sigi234 1 Reply Last reply Reply Quote 1
                          • sigi234
                            sigi234 Forum Testing Most Active @Kuddel last edited by

                            @Kuddel sagte in [gelöst] Online Zeit per TR-064 berechnen und anzeigen:

                            @sigi234 du musst den Kommentar in zeile 1 hinter dem semikolon entfernen

                            Oh man.........ich Koffer............

                            1 Reply Last reply Reply Quote 0
                            • sigi234
                              sigi234 Forum Testing Most Active @Kuddel last edited by sigi234

                              @Kuddel sagte in [gelöst] Online Zeit per TR-064 berechnen und anzeigen:

                              @sigi234 ja den DP habe ich selber erstellt und in meine VIS eingebaut

                              667e98f2-38c2-489b-a1b5-06ee87e22bda-grafik.png

                              Wie hast du Tage in den DP gebracht?

                              Erledigt.........

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                Kuddel @sigi234 last edited by

                                @sigi234 habe ich im Skript eingebaut

                                const ip_router = 'tr-064.0.states.externalIP'; 
                                const dauer_dorfdstrasse = 'javascript.0.uptime.online-router'; 
                                
                                schedule('* * * * *', function() { // jede Minute
                                
                                //router
                                  var diff = Date.now() - getState(ip_router).lc; // Onlinezeit in ms
                                  var tage = Math.floor(diff / (1000*60*60*24));
                                  diff = diff % (1000*60*60*24);
                                  var std = Math.floor(diff / (1000*60*60));
                                  diff = diff % (1000*60*60);
                                  var min = Math.round(diff / (1000*60));
                                  if(std < 10) std = '0' + std;
                                  if(min < 10) min = '0' + min;
                                  setState(dauer_dorfdstrasse, tage + ' Tage, ' + std + ' Std, ' + min + ' Min', true);
                                
                                });
                                

                                Negalein 1 Reply Last reply Reply Quote 2
                                • Negalein
                                  Negalein Global Moderator @Kuddel last edited by

                                  @Kuddel sagte in [gelöst] Online Zeit per TR-064 berechnen und anzeigen:

                                  @sigi234 habe ich im Skript eingebaut

                                  Ich bekomm folgende Warn im Log.
                                  DP wird nicht angelegt.

                                  javascript.0	2019-08-26 12:47:00.012	warn	at Timer.listOnTimeout (timers.js:290:5)
                                  javascript.0	2019-08-26 12:47:00.011	warn	at tryOnTimeout (timers.js:323:5)
                                  javascript.0	2019-08-26 12:47:00.011	warn	at ontimeout (timers.js:498:11)
                                  javascript.0	2019-08-26 12:47:00.011	warn	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                                  javascript.0	2019-08-26 12:47:00.011	warn	at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                                  javascript.0	2019-08-26 12:47:00.011	warn	at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                                  javascript.0	2019-08-26 12:47:00.011	warn	at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1191:34)
                                  javascript.0	2019-08-26 12:47:00.011	warn	at Object.<anonymous> (script.js.common.Fritz-Onlinezeit:15:3)
                                  javascript.0	2019-08-26 12:47:00.011	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1276:20)
                                  javascript.0	2019-08-26 12:47:00.011	warn	State "javascript.0.uptime.online-router" not found
                                  

                                  Script:

                                  const ip_router = 'tr-064.0.states.externalIP'; 
                                  const Onlinezeit = 'javascript.0.uptime.online-router'; 
                                   
                                  schedule('* * * * *', function() { // jede Minute
                                   
                                  //router
                                    var diff = Date.now() - getState(ip_router).lc; // Onlinezeit in ms
                                    var tage = Math.floor(diff / (1000*60*60*24));
                                    diff = diff % (1000*60*60*24);
                                    var std = Math.floor(diff / (1000*60*60));
                                    diff = diff % (1000*60*60);
                                    var min = Math.round(diff / (1000*60));
                                    if(std < 10) std = '0' + std;
                                    if(min < 10) min = '0' + min;
                                    setState(Onlinezeit, tage + ' Tage, ' + std + ' Std, ' + min + ' Min', true);
                                   
                                  });
                                  
                                  sigi234 paul53 2 Replies Last reply Reply Quote 0
                                  • sigi234
                                    sigi234 Forum Testing Most Active @Negalein last edited by

                                    @Negalein sagte in [gelöst] Online Zeit per TR-064 berechnen und anzeigen:

                                    javascript.0.uptime.online-router

                                    Du musst den State selbst anlegen!

                                    javascript.0.uptime.online-router

                                    1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Negalein last edited by paul53

                                      @Negalein sagte:

                                      DP wird nicht angelegt.

                                      Ist im Skript auch nicht vorgesehen. Lege ihn manuell im Reiter "Objekte" an: javascript.0 selektieren und Datenpunkt hinzufügen, Name: uptime.online-router, Typ: Zeichenkette

                                      Negalein 1 Reply Last reply Reply Quote 0
                                      • Negalein
                                        Negalein Global Moderator last edited by

                                        Ahhhhhhh, ich ......!

                                        1 Reply Last reply Reply Quote 0
                                        • Negalein
                                          Negalein Global Moderator @paul53 last edited by

                                          @paul53 sagte in [gelöst] Online Zeit per TR-064 berechnen und anzeigen:

                                          @Negalein sagte:

                                          DP wird nicht angelegt.

                                          Ist im Skript auch nicht vorgesehen. Lege ihn manuell im Reiter "Objekte" an: javascript.0 selektieren und Datenpunkt hinzufügen, Name: uptime.online-router, Typ: Zeichenkette

                                          Danke, funktioniert!

                                          Ich seh zwar nur wielange die Fritz mit dem Postrouter verbunden ist, aber das sind die Nachteile wenn mann vom Anbieter keinen vernünftigen Router bekommt und man was gescheites dahinter hängen muss.

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          902
                                          Online

                                          31.9k
                                          Users

                                          80.2k
                                          Topics

                                          1.3m
                                          Posts

                                          blockly
                                          4
                                          23
                                          3160
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo