Browse Source

RPI: fix SunsetHandler - use correct (utc) timestamp for comparision

pull/409/head
Christian Ehrlicher 2 years ago
parent
commit
a13fc1d92a
  1. 10
      tools/rpi/hoymiles/__main__.py

10
tools/rpi/hoymiles/__main__.py

@ -48,24 +48,24 @@ class SunsetHandler:
longitude = sunset_config.get('longitude') longitude = sunset_config.get('longitude')
altitude = sunset_config.get('altitude') altitude = sunset_config.get('altitude')
self.suntimes = SunTimes(longitude=longitude, latitude=latitude, altitude=altitude) self.suntimes = SunTimes(longitude=longitude, latitude=latitude, altitude=altitude)
self.nextSunset = self.suntimes.setutc(datetime.now()) self.nextSunset = self.suntimes.setutc(datetime.utcnow())
print (f'Todays sunset is at {self.nextSunset}') print (f'Todays sunset is at {self.nextSunset} UTC')
def checkWaitForSunrise(self): def checkWaitForSunrise(self):
if not self.suntimes: if not self.suntimes:
return return
# if the sunset already happened for today # if the sunset already happened for today
now = datetime.now() now = datetime.utcnow()
if self.nextSunset < now: if self.nextSunset < now:
# wait until the sun rises tomorrow # wait until the sun rises tomorrow
tomorrow = now + timedelta(days=1) tomorrow = now + timedelta(days=1)
nextSunrise = self.suntimes.riseutc(tomorrow) nextSunrise = self.suntimes.riseutc(tomorrow)
self.nextSunset = self.suntimes.setutc(tomorrow) self.nextSunset = self.suntimes.setutc(tomorrow)
time_to_sleep = (nextSunrise - datetime.now()).total_seconds() time_to_sleep = (nextSunrise - datetime.now()).total_seconds()
print (f'Waiting for sunrise at {nextSunrise} ({time_to_sleep} seconds)') print (f'Waiting for sunrise at {nextSunrise} UTC ({time_to_sleep} seconds)')
if time_to_sleep > 0: if time_to_sleep > 0:
time.sleep(time_to_sleep) time.sleep(time_to_sleep)
print (f'Woke up... next sunset is at {self.nextSunset}') print (f'Woke up... next sunset is at {self.nextSunset} UTC')
return return
def main_loop(ahoy_config): def main_loop(ahoy_config):

Loading…
Cancel
Save