Nautisch wird anders gesetzt, nach dämmerung nur noch schließen
This commit is contained in:
BIN
Binary file not shown.
@@ -230,7 +230,7 @@ class SternwarteDataUpdateCoordinator(DataUpdateCoordinator[SternwarteState]):
|
|||||||
|
|
||||||
self.schedule.open_at = self._format_schedule_datetime(next_schedule["open_at"])
|
self.schedule.open_at = self._format_schedule_datetime(next_schedule["open_at"])
|
||||||
self.schedule.close_at = self._format_schedule_datetime(next_schedule["close_at"])
|
self.schedule.close_at = self._format_schedule_datetime(next_schedule["close_at"])
|
||||||
self.schedule.open_done = False
|
self.schedule.open_done = next_schedule["open_at"] is None
|
||||||
self.schedule.close_done = False
|
self.schedule.close_done = False
|
||||||
self.schedule.open_power_on_at = ""
|
self.schedule.open_power_on_at = ""
|
||||||
self.schedule.close_power_on_at = ""
|
self.schedule.close_power_on_at = ""
|
||||||
@@ -805,7 +805,7 @@ class SternwarteDataUpdateCoordinator(DataUpdateCoordinator[SternwarteState]):
|
|||||||
)
|
)
|
||||||
return dt_util.as_local(event_utc).replace(second=0, microsecond=0)
|
return dt_util.as_local(event_utc).replace(second=0, microsecond=0)
|
||||||
|
|
||||||
def _get_next_nautical_schedule(self, now: datetime) -> dict[str, datetime] | None:
|
def _get_next_nautical_schedule(self, now: datetime) -> dict[str, datetime | None] | None:
|
||||||
for day_offset in range(3):
|
for day_offset in range(3):
|
||||||
base_date = now + timedelta(days=day_offset)
|
base_date = now + timedelta(days=day_offset)
|
||||||
twilight = self._calc_twilight(base_date)
|
twilight = self._calc_twilight(base_date)
|
||||||
@@ -828,6 +828,16 @@ class SternwarteDataUpdateCoordinator(DataUpdateCoordinator[SternwarteState]):
|
|||||||
if close_date is not None:
|
if close_date is not None:
|
||||||
return {"open_at": dusk, "close_at": close_date}
|
return {"open_at": dusk, "close_at": close_date}
|
||||||
|
|
||||||
|
if day_offset == 0 and dusk and dusk <= now:
|
||||||
|
for close_offset in range(day_offset, day_offset + 3):
|
||||||
|
close_base = now + timedelta(days=close_offset)
|
||||||
|
close_twilight = self._calc_twilight(close_base)
|
||||||
|
if close_twilight["naut"] is None:
|
||||||
|
continue
|
||||||
|
candidate = self._event_to_local_datetime(close_base, close_twilight["naut"]["dawn"])
|
||||||
|
if candidate and candidate > now:
|
||||||
|
return {"open_at": None, "close_at": candidate}
|
||||||
|
|
||||||
if day_offset == 0 and dawn and dawn > now:
|
if day_offset == 0 and dawn and dawn > now:
|
||||||
return None
|
return None
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user