NEWS
Zeitstempel überprüfen ?
-
Hallo Gemeinde!
Möchte einen Zeitstempel überprüfen, wenn dieser älter als 10min ist, dann soll eine Aktion ausgeführt werden.
Er hat es einmal gemacht und seither nicht mehr, ich finde den Fehler nicht?
Besten Dank!
var lastTime; // BSC - restart den Shelly wenn keine Daten kommen lastTime = getState('mqtt.0.bsc.bms.bt.0.maxCellDifferenceVoltage').ts; console.info('BSC Zeitstempel gesichert'); schedule("*/10 * * * *", async () => { if (getState('mqtt.0.bsc.bms.bt.0.maxCellDifferenceVoltage').ts == lastTime) { setState('shelly.0.shellyplusplugs#c82e180c5118#1.Relay0.Switch' /* Schalter */, false); lastTime = getState('mqtt.0.bsc.bms.bt.0.maxCellDifferenceVoltage').ts; console.info('BSC deaktiviert - keine Daten!'); } else { console.info('BSC nicht deaktiviert - Zeitstempel unterschiedlich'); } });
-
@humidor ach jetzt wo ichs geschrieben habe, muss ich nicht den setze lastTime aus dem falls raus nehmen und ans Ende setzten...
naja, wenn ich es schon geschrieben habe, gäbe es eine elegantere Lösung?
-
@humidor sagte in Zeitstempel überprüfen ?:
gäbe es eine elegantere Lösung?
Du musst ja nicht die letzte Zeit merken. Du kannst auch immer den Zeitstempel mit der aktuellen Zeit vergleichen und schauen ob Differenz zu jetzt > 10 min.
-
Mach ich aus so in einigen Skripten. In dem Beispiel hier ist die Abfrage größer 2,5 Tage
-
Moin,
kurze frage in die Runde, mir erschließt sich die Zahl 86400000 nicht so ganz.
Versuche gerade ein Willkommens Script mit ein paar Werten aus dem TR Adapter und Tür Sensor zu bauen.
Das soll starten wenn das Handy unter 5 min im Wlan ist und die Tür geöffnet wird.
Ich komme beim besten willen nicht auf die Zahl 86400000.
ein Ratlosen Gruß aus der Mittagspause
Tim -
@sleepless135
60 Sekunden * 60 Minuten * 24 Stunden
= 86400. Wir brauchen das aber in Millisekunden. Also86400000
= 1 Tag / 24 Std. -
@haus-automatisierung said in Zeitstempel überprüfen ?:
86400000
klappt hast mir damit sehr geholfen, jetzt nur noch das mit dem Sonne Untergang als Zeitraum hin bekommen dann ist der Tag perfekt
-
Evtl nochmal ein anderer Ansatz. Du fragst ja in einem festen zeitraster ab.
Wenn du exakter auf die 10 Minuten reagieren willst könntest du auch auf Änderungen des datenpunkts triggern und ein timeout von 10 Minuten starten. Wenn die nächste Änderung kommt wird dieser timeout abgebrochen und neu gestartet. Wenn der timeout ausläuft wird deine Aktion gestartet. -
das ist gerade so meine Idee, wie gesagt am Sonnenuntergang und Licht an arbeite ich noch.
Das hat so nicht geklappt gehabt.