@@ -30,7 +30,9 @@ async def save_cache(self) -> None:
3030 for mac , node_type in self ._nodetypes .items ():
3131 cache_data_to_save [mac ] = node_type .name
3232 _LOGGER .debug ("Save NodeTypes %s" , str (len (cache_data_to_save )))
33- await self .write_cache (cache_data_to_save , True ) # rewrite set to True is required
33+ await self .write_cache (
34+ cache_data_to_save , True
35+ ) # rewrite set to True is required
3436
3537 async def clear_cache (self ) -> None :
3638 """Clear current cache."""
@@ -43,11 +45,18 @@ async def restore_cache(self) -> None:
4345 self ._nodetypes = {}
4446 for mac , node_value in data .items ():
4547 node_type : NodeType | None = None
46- if len (node_value ) >= 10 :
48+ try :
49+ node_type = NodeType (int (node_value )) # e.g. "2"
50+ except ValueError :
51+ tmp_node_value = node_value
52+ if len (node_value ) >= 12 : # e.g. "NodeType.CIRCLE"
53+ tmp_node_value = node_value [9 :]
4754 try :
48- node_type = NodeType [node_value [9 :]]
55+ # node_value is e.g. "CIRCLE"
56+ node_type = NodeType .__members__ .get (tmp_node_value )
4957 except KeyError :
5058 node_type = None
59+
5160 if node_type is None :
5261 _LOGGER .warning ("Invalid NodeType in cache: %s" , node_value )
5362 continue
0 commit comments