NEWS
[gelöst] Online Zeit per TR-064 berechnen und anzeigen
-
Hallo zusammen,
per TR-064 Adapter, bekommt man ja den Zeitpunkt ausgewertet, wann sich die Online-IP das letzte Mal geändert hat.
Da ich Vodafone-Kunde, habe ich keine Zwangstrennung und bekomme erst eine neue IP, wenn der Router durchstartet.
Ich würde in meiner VIS jetzt gern eine Anzeige hinzufgen: Online seit
Leider habe ich keine Ahnung, wich den Zeitstempel der letzte Änderung der Online IP in eine Dauer umrechrechnen kann.
Vllt. hat ja jmd. eine Tip für mich ?
-
@Kuddel sagte in Online Zeit per TR-064 berechnen und anzeigen:
Änderung der Online IP in eine Dauer umrechrechnen kann
Intervall anhaken?
-
@sigi234 wo genau ?
Ich kann die gerade nicht folgen ^^^
-
@Kuddel sagte in Online Zeit per TR-064 berechnen und anzeigen:
@sigi234 wo genau ?
Ich kann die gerade nicht folgen ^^^
...
Aha, sehe gerade du willst ja die Dauer, welchen DP hat der? -
@sigi234 ah okay, jetzt habe ich es verstanden.
Leider steht dann ja immer "vor X Tagen"
Dieses "vor" finde ich ein wenig störend
-
@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); });
-
@paul53 die Onlinezeit in MS habe ich nicht.
Zumindest wwüsste ich nicht, wie ich sie aus dem TR-Adapter auslesen kann
-
@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.
-
@paul53 vielen Dank.
Ich habe zwar nicht die große Ahnung von Java, aber es funtkioniert
-
@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 = '...';
-
const idIP = 'tr-064.0.states.externalIP'; const idDauer = 'javascript.0.uptime.online-dorfstrasse';
-
@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.
-
@sigi234 ja den DP habe ich selber erstellt und in meine VIS eingebaut
-
Geht bei mir nicht.........
-
@sigi234 du musst den Kommentar in zeile 1 hinter dem semikolon entfernen
-
@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............
-
@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
Wie hast du Tage in den DP gebracht?
Erledigt.........
-
@sigi234 habe ich im Skript eingebaut
-
@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); });
-
@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