NEWS
[gelöst] Online Zeit per TR-064 berechnen und anzeigen
-
@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
-
@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
-
Ahhhhhhh, ich ......!
-
@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.