Fix GPS time source. (#704)

* Change ESP32 default power_save_mode to light

* Update
This commit is contained in:
Otto Winter
2019-08-27 22:11:50 +02:00
committed by GitHub
parent 65d08beaa4
commit 2c995cf145
8 changed files with 76 additions and 35 deletions
+24
View File
@@ -6,5 +6,29 @@ namespace gps {
static const char *TAG = "gps.time";
void GPSTime::from_tiny_gps_(TinyGPSPlus &tiny_gps) {
if (!tiny_gps.time.isValid() || !tiny_gps.date.isValid())
return;
if (!tiny_gps.time.isUpdated() || !tiny_gps.date.isUpdated())
return;
if (tiny_gps.date.year() < 2019)
return;
time::ESPTime val{};
val.year = tiny_gps.date.year();
val.month = tiny_gps.date.month();
val.day_of_month = tiny_gps.date.day();
// Set these to valid value for recalc_timestamp_utc - it's not used for calculation
val.day_of_week = 1;
val.day_of_year = 1;
val.hour = tiny_gps.time.hour();
val.minute = tiny_gps.time.minute();
val.second = tiny_gps.time.second();
val.recalc_timestamp_utc(false);
this->synchronize_epoch_(val.timestamp);
this->has_time_ = true;
}
} // namespace gps
} // namespace esphome