Fixed Adding new device manually
This commit is contained in:
@@ -406,10 +406,12 @@ class LocalTuyaOptionsFlowHandler(config_entries.OptionsFlow):
|
|||||||
"""Handle adding a new device."""
|
"""Handle adding a new device."""
|
||||||
# Use cache if available or fallback to manual discovery
|
# Use cache if available or fallback to manual discovery
|
||||||
self.editing_device = False
|
self.editing_device = False
|
||||||
|
self.selected_device = None
|
||||||
errors = {}
|
errors = {}
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
if user_input[SELECTED_DEVICE] != CUSTOM_DEVICE:
|
if user_input[SELECTED_DEVICE] != CUSTOM_DEVICE:
|
||||||
self.selected_device = user_input[SELECTED_DEVICE]
|
self.selected_device = user_input[SELECTED_DEVICE]
|
||||||
|
|
||||||
return await self.async_step_configure_device()
|
return await self.async_step_configure_device()
|
||||||
|
|
||||||
self.discovered_devices = {}
|
self.discovered_devices = {}
|
||||||
@@ -524,19 +526,25 @@ class LocalTuyaOptionsFlowHandler(config_entries.OptionsFlow):
|
|||||||
defaults = self.config_entry.data[CONF_DEVICES][dev_id].copy()
|
defaults = self.config_entry.data[CONF_DEVICES][dev_id].copy()
|
||||||
schema = schema_defaults(options_schema(self.entities), **defaults)
|
schema = schema_defaults(options_schema(self.entities), **defaults)
|
||||||
placeholders = {"for_device": f" for device `{dev_id}`"}
|
placeholders = {"for_device": f" for device `{dev_id}`"}
|
||||||
elif dev_id is not None:
|
else:
|
||||||
# Insert default values from discovery and cloud if present
|
defaults[CONF_PROTOCOL_VERSION] = "3.3"
|
||||||
device = self.discovered_devices[dev_id]
|
defaults[CONF_HOST] = ""
|
||||||
defaults[CONF_HOST] = device.get("ip")
|
defaults[CONF_DEVICE_ID] = ""
|
||||||
defaults[CONF_DEVICE_ID] = device.get("gwId")
|
defaults[CONF_LOCAL_KEY] = ""
|
||||||
defaults[CONF_PROTOCOL_VERSION] = device.get("version")
|
defaults[CONF_FRIENDLY_NAME] = ""
|
||||||
cloud_devs = self.hass.data[DOMAIN][DATA_CLOUD].device_list
|
if dev_id is not None:
|
||||||
if dev_id in cloud_devs:
|
# Insert default values from discovery and cloud if present
|
||||||
defaults[CONF_LOCAL_KEY] = cloud_devs[dev_id].get(CONF_LOCAL_KEY)
|
device = self.discovered_devices[dev_id]
|
||||||
defaults[CONF_FRIENDLY_NAME] = cloud_devs[dev_id].get(CONF_NAME)
|
defaults[CONF_HOST] = device.get("ip")
|
||||||
|
defaults[CONF_DEVICE_ID] = device.get("gwId")
|
||||||
|
defaults[CONF_PROTOCOL_VERSION] = device.get("version")
|
||||||
|
cloud_devs = self.hass.data[DOMAIN][DATA_CLOUD].device_list
|
||||||
|
if dev_id in cloud_devs:
|
||||||
|
defaults[CONF_LOCAL_KEY] = cloud_devs[dev_id].get(CONF_LOCAL_KEY)
|
||||||
|
defaults[CONF_FRIENDLY_NAME] = cloud_devs[dev_id].get(CONF_NAME)
|
||||||
schema = schema_defaults(CONFIGURE_DEVICE_SCHEMA, **defaults)
|
schema = schema_defaults(CONFIGURE_DEVICE_SCHEMA, **defaults)
|
||||||
|
|
||||||
placeholders = {"for_device": ""}
|
placeholders = {"for_device": ""}
|
||||||
defaults.update(user_input or {})
|
|
||||||
|
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="configure_device",
|
step_id="configure_device",
|
||||||
|
Reference in New Issue
Block a user