code: async def traverse_settings(dev, module, settings, depth=0):
      
      for setting in settings:
          if setting.is_directory:
              print("%s%s (%s)" % (depth * " ", setting.title, module))
              return await traverse_settings(dev, module, setting.settings, depth + 2)
          else:
              try:
                  print_settings([await setting.get_value(dev)], depth=depth)
              except SongpalException as ex:
                  err("Unable to read setting %s: %s" % (setting, ex))
                  continue
docs: Print all available settings.