NEWS
Rechnen mit Timestamps und Datenpunkten
-
Hallo, ich möchte einen Timestamp in einen Datenpunkt schreiben und später die Differenz zum aktuellen Datum ermitteln.
Eigentlich sollte das kein Problem sein, aber irgendwie habe ich ein Problem.Anlegen Datenpunkt:
createState(folderNameScripte + '.' + Room + ".Lastvalue_changed","15",{name: "Lastvalue_changed", type: 'string', role: 'date'}, function () {});Schreiben des aktuellen Datums in den Timestamp
setState(folderNameScripte + '.' + Room + ".Lastvalue_changed", new Date(), true);... dabei bekomme ich aber eine Fehlermeldung:
You are assigning a object to the state "0_userdata.0.scripte.Wohnzimmer_1.Lastvalue_changed" which expects a string. Please fix your code to use a string or change the state type to object. This warning might become an error in future versions.An der Stelle habe ich jetzt ein Problem. Ich habe nicht gefunden das ich einen Datenpunkt als "Datum Element" anlegen könnte. Damit bleibt nur die Ablage als String.
Deswegen habe ich den setstate geändert:
setState(folderNameScripte + '.' + Room + ".Lastvalue_changed", new Date().toLocaleTimeString(), true);Soweit funktioniert das ganze jetzt ohne Fehlermeldung.
Allerdings liefert mir ein
new Date() - getState(folderNameScripte + '.' + room + ".Lastvalue_changed").valNaN als Ergebnis anstatt einer Zeitdifferenz.
Was kann ich tun?
-
Hallo, ich möchte einen Timestamp in einen Datenpunkt schreiben und später die Differenz zum aktuellen Datum ermitteln.
Eigentlich sollte das kein Problem sein, aber irgendwie habe ich ein Problem.Anlegen Datenpunkt:
createState(folderNameScripte + '.' + Room + ".Lastvalue_changed","15",{name: "Lastvalue_changed", type: 'string', role: 'date'}, function () {});Schreiben des aktuellen Datums in den Timestamp
setState(folderNameScripte + '.' + Room + ".Lastvalue_changed", new Date(), true);... dabei bekomme ich aber eine Fehlermeldung:
You are assigning a object to the state "0_userdata.0.scripte.Wohnzimmer_1.Lastvalue_changed" which expects a string. Please fix your code to use a string or change the state type to object. This warning might become an error in future versions.An der Stelle habe ich jetzt ein Problem. Ich habe nicht gefunden das ich einen Datenpunkt als "Datum Element" anlegen könnte. Damit bleibt nur die Ablage als String.
Deswegen habe ich den setstate geändert:
setState(folderNameScripte + '.' + Room + ".Lastvalue_changed", new Date().toLocaleTimeString(), true);Soweit funktioniert das ganze jetzt ohne Fehlermeldung.
Allerdings liefert mir ein
new Date() - getState(folderNameScripte + '.' + room + ".Lastvalue_changed").valNaN als Ergebnis anstatt einer Zeitdifferenz.
Was kann ich tun?
@warhammer73 sagte: NaN als Ergebnis anstatt einer Zeitdifferenz.
Date.now() - new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime(); // Differenz in msAnmerkung: new Date() liefert ein Objekt, getState(id).val einen String. Mit beidem kann man nicht rechnen.
-
@warhammer73 sagte: NaN als Ergebnis anstatt einer Zeitdifferenz.
Date.now() - new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime(); // Differenz in msAnmerkung: new Date() liefert ein Objekt, getState(id).val einen String. Mit beidem kann man nicht rechnen.
@paul53 said in Rechnen mit Timestamps und Datenpunkten:
Date.now() - new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime();
Das ändert am NaN als Ergebnis aber leider nichts. :(
Schonnew Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime();liefert NaN
Vielleicht auch nicht verwunderlich, denn ein:
getState(folderNameScripte + '.' + room + ".Lastvalue_changed").valliefert nur die Uhrzeit (10:12:10) als Ergebnis. Problem scheint also das setState erstmal zu sein.
-
@paul53 said in Rechnen mit Timestamps und Datenpunkten:
Date.now() - new Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime();
Das ändert am NaN als Ergebnis aber leider nichts. :(
Schonnew Date(getState(folderNameScripte + '.' + room + ".Lastvalue_changed").val).getTime();liefert NaN
Vielleicht auch nicht verwunderlich, denn ein:
getState(folderNameScripte + '.' + room + ".Lastvalue_changed").valliefert nur die Uhrzeit (10:12:10) als Ergebnis. Problem scheint also das setState erstmal zu sein.
@warhammer73 sagte: liefert nur die Uhrzeit
Dann nimm bei setState()
new Date().toString()oder
formatDate(new Date(), 'YYYY-MM-DD hh:mm:ss')
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