From 1445ca342f9808227dbb3d434560f5e012ad152d Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 29 Oct 2020 08:55:05 -1000 Subject: [PATCH] Defer esphome persistant storage writes until after startup Avoid disk I/O during startup as it can cause delays when a user has many esphome devices. --- homeassistant/components/esphome/entry_data.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/esphome/entry_data.py b/homeassistant/components/esphome/entry_data.py index 8f273b682ff25d..54da1ed5562db2 100644 --- a/homeassistant/components/esphome/entry_data.py +++ b/homeassistant/components/esphome/entry_data.py @@ -31,6 +31,8 @@ DATA_KEY = "esphome" +SAVE_DELAY = 120 + # Mapping from ESPHome info type to HA platform INFO_TYPE_TO_PLATFORM = { BinarySensorInfo: "binary_sensor", @@ -159,7 +161,7 @@ async def async_save_to_store(self) -> None: for service in self.services.values(): store_data["services"].append(service.to_dict()) - await self.store.async_save(store_data) + self.store.async_delay_save(lambda: store_data, SAVE_DELAY) def _attr_obj_from_dict(cls, **kwargs):