Skip adding WeMo device on failure (#91621)
* Skip adding WeMo device on failure * Only create a single log entry for each failed device * Fix typo s/serial_number/serialnumber/ * Discard failed devices on success
This commit is contained in:
parent
66a25a9e72
commit
68ce59e9c1
2 changed files with 34 additions and 1 deletions
|
@ -140,6 +140,7 @@ class WemoDispatcher:
|
|||
"""Initialize the WemoDispatcher."""
|
||||
self._config_entry = config_entry
|
||||
self._added_serial_numbers: set[str] = set()
|
||||
self._failed_serial_numbers: set[str] = set()
|
||||
self._loaded_platforms: set[Platform] = set()
|
||||
|
||||
async def async_add_unique_device(
|
||||
|
@ -149,7 +150,16 @@ class WemoDispatcher:
|
|||
if wemo.serialnumber in self._added_serial_numbers:
|
||||
return
|
||||
|
||||
coordinator = await async_register_device(hass, self._config_entry, wemo)
|
||||
try:
|
||||
coordinator = await async_register_device(hass, self._config_entry, wemo)
|
||||
except pywemo.PyWeMoException as err:
|
||||
if wemo.serialnumber not in self._failed_serial_numbers:
|
||||
self._failed_serial_numbers.add(wemo.serialnumber)
|
||||
_LOGGER.error(
|
||||
"Unable to add WeMo %s %s: %s", repr(wemo), wemo.host, err
|
||||
)
|
||||
return
|
||||
|
||||
platforms = set(WEMO_MODEL_DISPATCH.get(wemo.model_name, [Platform.SWITCH]))
|
||||
platforms.add(Platform.SENSOR)
|
||||
for platform in platforms:
|
||||
|
@ -178,6 +188,7 @@ class WemoDispatcher:
|
|||
)
|
||||
|
||||
self._added_serial_numbers.add(wemo.serialnumber)
|
||||
self._failed_serial_numbers.discard(wemo.serialnumber)
|
||||
|
||||
|
||||
class WemoDiscovery:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue