Skip to content

Commit 0c8e2db

Browse files
committed
prevent storage file being overwritten while integration is disabled
1 parent edc8433 commit 0c8e2db

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

custom_components/scheduler/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ def __init__(self, hass, session, entry, store):
213213
self.state = const.STATE_INIT
214214
self._workday_tracker = None
215215
self._workday_timer = None
216+
self.stopped = False
216217

217218
super().__init__(hass, _LOGGER, name=const.DOMAIN)
218219

@@ -243,11 +244,13 @@ def async_timer_finished(_now):
243244

244245
# store the current date+time when scheduler is being shutdown
245246
@callback
246-
async def async_handle_stopped(_event):
247+
async def async_handle_shutdown(_event):
248+
if self.stopped:
249+
return
247250
now = dt_util.utcnow().isoformat()
248251
await self.store.async_set_time_shutdown(now)
249252

250-
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, async_handle_stopped)
253+
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, async_handle_shutdown)
251254

252255
def async_get_schedule(self, schedule_id: str):
253256
"""fetch a schedule (websocket API hook)"""
@@ -326,6 +329,7 @@ async def async_unload(self):
326329
if self._workday_tracker:
327330
self._workday_tracker()
328331
self._workday_tracker = None
332+
self.stopped = True
329333

330334
async def async_delete_config(self):
331335
await self.store.async_delete()

0 commit comments

Comments
 (0)