"Watchdog" fuer Sensoren in JS - "millis()" oderTimer gesucht

Fragen zum Skripten mit ioBroker.javascript
Antworten
klassisch
professional
Beiträge: 767
Registriert: 27.11.2014, 19:12

"Watchdog" fuer Sensoren in JS - "millis()" oderTimer gesucht

Beitrag von klassisch » 03.12.2017, 22:17

Als JS Neuling habe ich triviale Fragen:
Wie setzt man timer bzw. gibt es ein Äquvalent für millis() ?
Habe etwas Ärger mit meinem WLAN und dann sind manchmal (selten) einige ESP8266 nicht erreichbar.
Die senden aber normalerweise spätestens alle 10 Minuten Daten an ioBroker. Jetzt wuerde ich gerne einen Watchdog in JS erstellen, der mir ggf eine Mail schickt.
Deshalb die triviale Frage nach dem Aequivalent von millis(). Oder muss man auf Cron zurueckgreifen, wie in der schoenen Einführung Programmieren mit Javascript angedeutet?

paul53
guru
Beiträge: 3028
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: "Watchdog" fuer Sensoren in JS - "millis()" oderTimer gesucht

Beitrag von paul53 » 03.12.2017, 22:57

Für das Setzen von Timern (Verzögerung) gibt es in Javascript die Funktion timer = setTimeout(callback, delay). Mit der Funktion clearTimeout(timer) kann der Timer gestoppt werden. Ein Watchdog für einen Sensor könnte etwa so aussehen:

Code: Alles auswählen

var timer = null;

on({id: 'ID_des_Sensors'}, function() { // löst bei jeder Aktualisierung aus
   if(timer) clearTimeout(timer);       // laufender Timer wird gestoppt
   timer = setTimeout(function() {      // Neustart Timer
       sendTo('email', {...});          // Aktion, wenn Verzögerungszeit abgelaufen ist
   }, 20 * 60000);  // 20 Minuten in ms
});
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.13-v7+, hmcon 0.18, node 6.11.1, Host 1.2.3, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.6.0, Email 1.0.2, History 1.7.2, Flot 1.7.7, Vis 1.0.4, Web 2.1.9

klassisch
professional
Beiträge: 767
Registriert: 27.11.2014, 19:12

Re: "Watchdog" fuer Sensoren in JS - "millis()" oderTimer gesucht

Beitrag von klassisch » 04.12.2017, 05:12

Recht herzlichen Dank, lieber Paul, für die prima Anschubfinanzierung und den Verweis auf selfhtml, Unterkategorie JS.
Erste Test laufen.

P.S.: gibt es eigentlich feste Regeln oder best practices zur Verwendung von single quote vs. double quote wie z.B. single quotes bei Ids und double bei Strings?

paul53
guru
Beiträge: 3028
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: "Watchdog" fuer Sensoren in JS - "millis()" oderTimer gesucht

Beitrag von paul53 » 04.12.2017, 10:17

klassisch hat geschrieben:gibt es eigentlich feste Regeln oder best practices zur Verwendung von single quote vs. double quote
Hobbyquaker hatte mal einen Styleguide veröffentlicht. Danach sollten nur single quote für Strings verwendet werden.
Zuletzt geändert von paul53 am 04.12.2017, 11:49, insgesamt 1-mal geändert.
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.13-v7+, hmcon 0.18, node 6.11.1, Host 1.2.3, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.6.0, Email 1.0.2, History 1.7.2, Flot 1.7.7, Vis 1.0.4, Web 2.1.9

klassisch
professional
Beiträge: 767
Registriert: 27.11.2014, 19:12

Re: "Watchdog" fuer Sensoren in JS - "millis()" oderTimer gesucht

Beitrag von klassisch » 04.12.2017, 10:39

Vielen Dank, wieder was gelernt. Sehr hilfreich so ein Styleguide.
Die ersten Watchdos laufen. auch dafür nochmals vielen Dank!

Antworten