NEWS
Java: Problem beim Verwalten von Fenster Status
-
Hallo zusammen
habe ein Problem mit Java.
Folgender Stand:- Skript zur Erstellung der States:
//Fenster Farbe createState('javascript.0.fenster.buero_strasse_farbe', {type: 'string',name: 'Buero_Strasse_Farbe'}); .... usw //Fenster Last Aktion createState('javascript.0.fenster.buero_strasse_last', {type: 'string',name: 'Buero_Strasse_Last'}); ..... usw //Fenster geöffnet createState('javascript.0.fenster.buero_strasse_offen', {type: 'string',name: 'Buero_Strasse_Offen'}); .... usw
für weitere Fenster
2: Skript mit den Statusabfragen der Fenster
on({id: 'bshb.0.hdm:HomeMaticIP:3014F711A000009A185904C8.ShutterContact.value'}, function () { Window_Open("bshb.0.hdm:HomeMaticIP:3014F711A000009A185904C8.ShutterContact.value", "javascript.0.fenster.buero_strasse_farbe", "javascript.0.fenster.buero_strasse_last", "javascript.0.fenster.buero_strasse_offen"); }); ....... usw function Window_Open(objekt_status, farbe, last, offen) { if (getState(objekt_status).val === "OPEN") { setState(farbe,"#de3117",true); setState(last,formatDate(new Date(), "TT.MM.JJ SS:mm:ss").toString(),true); } else { setState(farbe,"#2f2d2d",true); var startDate = new Date(getState(last).val); var endDate = new Date(formatDate(new Date(), "TT.MM.JJ SS:mm:ss")); var differenz = Sekundenumwandeln(endDate.getTime() - startDate.getTime()); setState(offen,differenz,true); }; }; function fuehrendeNull(wert) { if (wert < 10) return "0" + parseInt(wert); else return parseInt(wert); } function Sekundenumwandeln(Sekundenzahl) { Sekundenzahl = Math.abs(Sekundenzahl) return fuehrendeNull((Sekundenzahl/60/60)%24) + ":" + fuehrendeNull((Sekundenzahl/60)%60) + ":" + fuehrendeNull(Sekundenzahl%60); }
Wird ein Fenster geöffnet wird in "last" folgendes Eingetragen: 29.01.21 16:40:06
Beim Schließen des Fensters wird in "offen" folgendes Eingetragen: NaN:NaN:NaN sollte aber zB: 00:06:12 sein.Wo liegt mein Fehler?
MfG
Wastl -
-
-
@langer
Zeilen 16 und 17 und die Funktionen unten sollten sich ersetzen lassen durch:var differenz = formatDate(Date.now() - startDate.getTime(), 'hh:mm:ss');
, wenn das Fenster nicht länger als 24 h offen sein kann.
-