NEWS
Das Alter von Datenpunkten überprüfen
-
Hallo,
ich möchte etwas in Abhängigkeit von 2 Sensorwerten schalten, muss aber sicher sein, dass sie nicht älter als 3 h sind. Es handelt sich einmal um die zu erwartende Wolkendichte um eine bestimmte Zeit von "DasWetter" und zum Anderen um einen in OWFS eingebundenen Temperatursensor.Ich habe überlegt, die Zeitstempel werden ja in Unixzeit in Milisekunden ausgegeben. Wenn man also von der aktuellen Zeit als Datum-Objekt den Zeitstempel des Sensors abzieht und durch 60000 teilt, erhält man das Alter in Minuten. Das kann man vergleichen, ob der Wert noch "jung" genug ist, um ihn zu verwenden.
Würdet ihr das auch so machen, oder gibt es da clevere Lösungen?


Viele Grüße -
Ich mache das auch so ähnlich und nutze folgende Funktion hierfür:
/** * Vor wie vielen Sekunden wurde ein State aktualisiert? * Per Default wird der Timestamp genommen. Durch Setzen von what auf 'lc' wird die letzte Änderung genommen. * @param {string} stateId Id zum State, z.B. 'fullybrowser.0.192_168_0_10.isFullyAlive' * @param {string} [what='ts'] Optional. 'ts' für timestamp (= Default), lc für lastchanged. * @return {number} Vergangene Anzahl an Sekunden, als der State zuletzt aktualisiert wurde */ function stateLastUpdated(stateId, what) { if (what === undefined) what = 'ts'; if(what !== 'ts' && what !== 'lc') what = 'ts'; let dtNow = new Date(); let tsNow = dtNow.getTime(); let dtCheck = new Date(getState(stateId)[what]); let tsCheck = dtCheck.getTime(); return Math.round((tsNow - tsCheck) / 1000); // Zeitdifferenz in Sekunden }Quelle: https://forum.iobroker.net/topic/24179/vorlage-hilfreiche-javascript-funktionen
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