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

Config flow: check categories when identifying hubs

The missing local key was a good sign of a hub, but misses hubs with
local functions, which can also be connected to as devices.
Also check the categories that appear to be gateways/hubs/routers in
https://openapi.tuyaus.com/v1.0/iot-03/device-categories

Discussion #1960
Jason Rumney 1 год назад
Родитель
Сommit
58db65ec82
1 измененных файлов с 19 добавлено и 1 удалено
  1. 19 1
      custom_components/tuya_local/config_flow.py

+ 19 - 1
custom_components/tuya_local/config_flow.py

@@ -54,6 +54,21 @@ from .helpers.log import log_json
 
 _LOGGER = logging.getLogger(__name__)
 
+HUB_CATEGORIES = [
+    "wgsxj",
+    "lyqwg",
+    "bywg",
+    "zigbee",
+    "wg2",
+    "dgnzk",
+    "videohub",
+    "xnwg",
+    "qtyycp",
+    "alexa_yywg",
+    "gywg",
+    "cnwg",
+]
+
 
 class ConfigFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
     VERSION = 13
@@ -336,7 +351,10 @@ class ConfigFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
         hub_list.append(SelectOptionDict(value="None", label="None"))
         for key in self.__cloud_devices.keys():
             hub_entry = self.__cloud_devices[key]
-            if hub_entry[CONF_LOCAL_KEY] == "":
+            if (
+                hub_entry[CONF_LOCAL_KEY] == ""
+                or hub_entry["category"] in HUB_CATEGORIES
+            ):
                 hub_list.append(
                     SelectOptionDict(
                         value=key,