Fix time.on_time triggering if time jumped back (#1806)

Co-authored-by: Otto winter <otto@otto-winter.com>
This commit is contained in:
brambo123 2021-08-03 19:56:23 +02:00 committed by GitHub
parent 39f64f597e
commit 9fa19df2ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -22,7 +22,10 @@ void CronTrigger::loop() {
return; return;
if (this->last_check_.has_value()) { if (this->last_check_.has_value()) {
if (*this->last_check_ >= time) { if (*this->last_check_ > time && this->last_check_->timestamp - time.timestamp > 900) {
// We went back in time (a lot), probably caused by time synchronization
ESP_LOGW(TAG, "Time has jumped back!");
} else if (*this->last_check_ >= time) {
// already handled this one // already handled this one
return; return;
} }