@@ -379,25 +379,30 @@ def get_device_setting():
379379 _LOGGER .debug ("get_device_setting error : " + traceback .format_exc ())
380380 return None
381381
382+ @staticmethod
383+ def parse_capability (setting ):
384+ capabilities = []
385+ for platform in PLATFORMS :
386+ if setting .get (platform ):
387+ for cap in setting .get (platform ):
388+ capabilities .append (cap .get ("capability" ))
389+ if state := cap .get ("state" , []):
390+ if state .get ("capability" ):
391+ capabilities .append (state .get ("capability" ))
392+ for sub_cap in cap .get ("capabilities" , []):
393+ capabilities .append (sub_cap .get ("capability" ))
394+ return capabilities
395+
396+
382397 @staticmethod
383398 def get_capabilities () -> list [str ]:
384- setting = SettingManager ()
399+ inst = SettingManager ()
385400 capabilities = []
386401 try :
387402 if default_setting := SettingManager .get_default_setting ():
388- for platform in PLATFORMS :
389- if default_setting .get (platform ):
390- for cap in default_setting .get (platform ):
391- capabilities .append (cap .get ("capability" ))
392- for sub_cap in cap .get ("capabilities" , []):
393- capabilities .append (sub_cap .get ("capability" ))
403+ capabilities .extend (inst .parse_capability (default_setting ))
394404 for setting in SettingManager ().get_device_setting ():
395- for platform in PLATFORMS :
396- if setting .get (platform ):
397- for cap in setting [platform ]:
398- capabilities .append (cap .get ("capability" ))
399- for sub_cap in cap .get ("capabilities" , []):
400- capabilities .append (sub_cap .get ("capability" ))
405+ capabilities .extend (inst .parse_capability (setting ))
401406
402407 #capabilities.extend(mgr.subscribe_capabilities())
403408 _LOGGER .debug ("get_capabilities : " + str (capabilities ))
0 commit comments