Просмотр исходного кода

Config flow: catch network errors when scanning

Allow the config to proceed even when local network scan throws an error.

Issue #1951
Jason Rumney 1 год назад
Родитель
Сommit
8902745a73
1 измененных файлов с 7 добавлено и 3 удалено
  1. 7 3
      custom_components/tuya_local/config_flow.py

+ 7 - 3
custom_components/tuya_local/config_flow.py

@@ -372,9 +372,13 @@ class ConfigFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
                 f"Scanning network to get IP address for {self.__cloud_device['id']}."
             )
             self.__cloud_device["ip"] = ""
-            local_device = await self.hass.async_add_executor_job(
-                scan_for_device, self.__cloud_device["id"]
-            )
+            try:
+                local_device = await self.hass.async_add_executor_job(
+                    scan_for_device, self.__cloud_device["id"]
+                )
+            except OSError:
+                local_device = {"ip": None, "version": ""}
+
             if local_device["ip"] is not None:
                 _LOGGER.debug(f"Found: {local_device}")
                 self.__cloud_device["ip"] = local_device["ip"]