@@ -71,9 +71,7 @@ async def discover_home(self) -> None:
7171
7272 home_cache = await self ._build_home_cache ()
7373 _LOGGER .debug ("Home discovery complete, caching data for %d maps" , len (home_cache ))
74- cache_data = await self ._cache .get ()
75- cache_data .home_cache = home_cache
76- await self ._cache .set (cache_data )
74+ await self ._update_home_cache (home_cache )
7775 self ._home_cache = home_cache
7876
7977 async def _refresh_map_data (self , map_info ) -> CombinedMapInfo :
@@ -132,10 +130,7 @@ async def refresh(self) -> Self:
132130 map_data = await self ._refresh_map_data (current_map_info )
133131 if map_data != current_map_data :
134132 self ._home_cache [map_flag ] = map_data
135- # Persist to cache
136- cache_data = await self ._cache .get ()
137- cache_data .home_cache = self ._home_cache
138- await self ._cache .set (cache_data )
133+ await self ._update_home_cache (self ._home_cache )
139134
140135 return self
141136
@@ -155,3 +150,8 @@ def current_map_data(self) -> CombinedMapInfo | None:
155150 def _parse_response (self , response : common .V1ResponseData ) -> Self :
156151 """This trait does not parse responses directly."""
157152 raise NotImplementedError ("HomeTrait does not support direct command responses" )
153+
154+ async def _update_home_cache (self , home_cache : dict [int , CombinedMapInfo ]) -> None :
155+ cache_data = await self ._cache .get ()
156+ cache_data .home_cache = home_cache
157+ await self ._cache .set (cache_data )
0 commit comments