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'}); .... uswfü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 -
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'}); .... uswfü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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden