@@ -65,10 +65,9 @@ def __init__(
6565 self ._mac_in_bytes = bytes (mac , encoding = UTF8 )
6666 self ._mac_in_str = mac
6767 self ._send = controller .send
68- self ._node_cache : NodeCache | None = None
6968 self ._cache_enabled : bool = False
70- self ._cache_folder : str = ""
7169 self ._cache_save_task : Task | None = None
70+ self ._node_cache = NodeCache ("" )
7271
7372 # Sensors
7473 self ._available : bool = False
@@ -116,19 +115,22 @@ def network_address(self) -> int:
116115 @property
117116 def cache_folder (self ) -> str :
118117 """Return path to cache folder."""
119- return self ._cache_folder
118+ return self ._node_cache . cache_root_directory
120119
121120 @cache_folder .setter
122121 def cache_folder (self , cache_folder : str ) -> None :
123122 """Set path to cache folder."""
124- if cache_folder == self ._cache_folder :
125- return
126- self ._cache_folder = cache_folder
127- if self ._cache_enabled :
128- if self ._node_cache is None :
129- self ._node_cache = NodeCache (self ._cache_folder )
130- else :
131- self ._node_cache .cache_root_directory = cache_folder
123+ self ._node_cache .cache_root_directory = cache_folder
124+
125+ @property
126+ def cache_folder_create (self ) -> bool :
127+ """Return if cache folder must be create when it does not exists."""
128+ return self ._cache_folder_create
129+
130+ @cache_folder_create .setter
131+ def cache_folder_create (self , enable : bool = True ) -> None :
132+ """Enable or disable creation of cache folder."""
133+ self ._cache_folder_create = enable
132134
133135 @property
134136 def cache_enabled (self ) -> bool :
@@ -138,15 +140,6 @@ def cache_enabled(self) -> bool:
138140 @cache_enabled .setter
139141 def cache_enabled (self , enable : bool ) -> None :
140142 """Enable or disable usage of cache."""
141- if enable == self ._cache_enabled :
142- return
143- if enable :
144- if self ._node_cache is None :
145- self ._node_cache = NodeCache (self .mac , self ._cache_folder )
146- else :
147- self ._node_cache .cache_root_directory = self ._cache_folder
148- else :
149- self ._node_cache = None
150143 self ._cache_enabled = enable
151144
152145 @property
@@ -389,14 +382,8 @@ async def _load_cache_file(self) -> bool:
389382 self .mac ,
390383 )
391384 return False
392- if self ._node_cache is None :
393- _LOGGER .warning (
394- "Unable to load node %s from cache because cache configuration is not loaded" ,
395- self .mac ,
396- )
397- return False
398385 if not self ._node_cache .initialized :
399- await self ._node_cache .initialize_cache ()
386+ await self ._node_cache .initialize_cache (self . _cache_folder_create )
400387 return await self ._node_cache .restore_cache ()
401388
402389 async def clear_cache (self ) -> None :
@@ -623,20 +610,14 @@ async def unload(self) -> None:
623610
624611 def _get_cache (self , setting : str ) -> str | None :
625612 """Retrieve value of specified setting from cache memory."""
626- if not self ._cache_enabled or self . _node_cache is None :
613+ if not self ._cache_enabled :
627614 return None
628615 return self ._node_cache .get_state (setting )
629616
630617 def _set_cache (self , setting : str , value : Any ) -> None :
631618 """Store setting with value in cache memory."""
632619 if not self ._cache_enabled :
633620 return
634- if self ._node_cache is None :
635- _LOGGER .warning (
636- "Failed to update '%s' in cache because cache is not initialized yet" ,
637- setting
638- )
639- return
640621 if isinstance (value , datetime ):
641622 self ._node_cache .add_state (
642623 setting ,
@@ -652,11 +633,6 @@ async def save_cache(self, trigger_only: bool = True, full_write: bool = False)
652633 """Save current cache to cache file."""
653634 if not self ._cache_enabled or not self ._loaded or not self ._initialized :
654635 return
655- if self ._node_cache is None :
656- _LOGGER .warning (
657- "Failed to save cache to disk because cache is not initialized yet"
658- )
659- return
660636 _LOGGER .debug ("Save cache file for node %s" , self .mac )
661637 if self ._cache_save_task is not None and not self ._cache_save_task .done ():
662638 await self ._cache_save_task
0 commit comments