فهرست منبع

Dynamically generate the list of valid types.

Jason Rumney 4 سال پیش
والد
کامیت
cfd0385356
1فایلهای تغییر یافته به همراه10 افزوده شده و 33 حذف شده
  1. 10 33
      custom_components/tuya_local/configuration.py

+ 10 - 33
custom_components/tuya_local/configuration.py

@@ -12,21 +12,16 @@ from .const import (
     CONF_SWITCH,
     CONF_TYPE,
     CONF_TYPE_AUTO,
-    CONF_TYPE_DEHUMIDIFIER,
-    CONF_TYPE_EANONS_HUMIDIFIER,
-    CONF_TYPE_EUROM_600_HEATER,
-    CONF_TYPE_FAN,
-    CONF_TYPE_GECO_HEATER,
-    CONF_TYPE_GPCV_HEATER,
-    CONF_TYPE_GPPH_HEATER,
-    CONF_TYPE_GSH_HEATER,
-    CONF_TYPE_GARDENPAC_HEATPUMP,
-    CONF_TYPE_INKBIRD_THERMOSTAT,
-    CONF_TYPE_KOGAN_HEATER,
-    CONF_TYPE_KOGAN_SWITCH,
-    CONF_TYPE_PURLINE_M100_HEATER,
-    CONF_TYPE_REMORA_HEATPUMP,
 )
+from .helpers.device_config import available_configs, TuyaDeviceConfig
+
+
+def conf_types():
+    types = [CONF_TYPE_AUTO]
+    for cfg in available_configs():
+        parsed = TuyaDeviceConfig(cfg)
+        types.append(parsed.legacy_type)
+
 
 INDIVIDUAL_CONFIG_SCHEMA_TEMPLATE = [
     {"key": CONF_NAME, "type": str, "required": True, "option": False},
@@ -35,25 +30,7 @@ INDIVIDUAL_CONFIG_SCHEMA_TEMPLATE = [
     {"key": CONF_LOCAL_KEY, "type": str, "required": True, "option": True},
     {
         "key": CONF_TYPE,
-        "type": vol.In(
-            [
-                CONF_TYPE_AUTO,
-                CONF_TYPE_DEHUMIDIFIER,
-                CONF_TYPE_EANONS_HUMIDIFIER,
-                CONF_TYPE_EUROM_600_HEATER,
-                CONF_TYPE_FAN,
-                CONF_TYPE_GECO_HEATER,
-                CONF_TYPE_GPCV_HEATER,
-                CONF_TYPE_GPPH_HEATER,
-                CONF_TYPE_GSH_HEATER,
-                CONF_TYPE_GARDENPAC_HEATPUMP,
-                CONF_TYPE_INKBIRD_THERMOSTAT,
-                CONF_TYPE_KOGAN_HEATER,
-                CONF_TYPE_KOGAN_SWITCH,
-                CONF_TYPE_PURLINE_M100_HEATER,
-                CONF_TYPE_REMORA_HEATPUMP,
-            ]
-        ),
+        "type": vol.In(conf_types()),
         "required": False,
         "default": CONF_TYPE_AUTO,
         "option": True,