|
|
@@ -293,6 +293,17 @@ class ConfigFlowHandler(ConfigFlow, domain=DOMAIN):
|
|
|
last_step=False,
|
|
|
)
|
|
|
|
|
|
+ @property
|
|
|
+ def _device_name_placeholder(self) -> str:
|
|
|
+ """Return device name placeholder for step descriptions."""
|
|
|
+ if self.__cloud_device and self.__cloud_device.get("product_name"):
|
|
|
+ parts = []
|
|
|
+ if self.__cloud_device.get("name"):
|
|
|
+ parts.append(self.__cloud_device["name"])
|
|
|
+ parts.append(self.__cloud_device["product_name"])
|
|
|
+ return "**" + " — ".join(parts) + "**\n\n"
|
|
|
+ return ""
|
|
|
+
|
|
|
async def async_step_search(self, user_input=None):
|
|
|
if user_input is not None:
|
|
|
# Current IP is the WAN IP which is of no use. Need to try and discover to the local IP.
|
|
|
@@ -325,7 +336,13 @@ class ConfigFlowHandler(ConfigFlow, domain=DOMAIN):
|
|
|
return await self.async_step_local()
|
|
|
|
|
|
return self.async_show_form(
|
|
|
- step_id="search", data_schema=vol.Schema({}), errors={}, last_step=False
|
|
|
+ step_id="search",
|
|
|
+ data_schema=vol.Schema({}),
|
|
|
+ description_placeholders={
|
|
|
+ "device_name": self._device_name_placeholder,
|
|
|
+ },
|
|
|
+ errors={},
|
|
|
+ last_step=False,
|
|
|
)
|
|
|
|
|
|
async def async_step_local(self, user_input=None):
|
|
|
@@ -405,7 +422,10 @@ class ConfigFlowHandler(ConfigFlow, domain=DOMAIN):
|
|
|
vol.Optional(CONF_DEVICE_CID, **devcid_opts): str,
|
|
|
}
|
|
|
),
|
|
|
- description_placeholders={"device_details_url": DEVICE_DETAILS_URL},
|
|
|
+ description_placeholders={
|
|
|
+ "device_details_url": DEVICE_DETAILS_URL,
|
|
|
+ "device_name": self._device_name_placeholder,
|
|
|
+ },
|
|
|
errors=errors,
|
|
|
)
|
|
|
|
|
|
@@ -507,11 +527,17 @@ class ConfigFlowHandler(ConfigFlow, domain=DOMAIN):
|
|
|
return self.async_show_form(
|
|
|
step_id="select_type_auto_detected",
|
|
|
data_schema=schema,
|
|
|
- description_placeholders={"detected_protocol": str(detected)},
|
|
|
+ description_placeholders={
|
|
|
+ "detected_protocol": str(detected),
|
|
|
+ "device_name": self._device_name_placeholder,
|
|
|
+ },
|
|
|
)
|
|
|
return self.async_show_form(
|
|
|
step_id="select_type",
|
|
|
data_schema=schema,
|
|
|
+ description_placeholders={
|
|
|
+ "device_name": self._device_name_placeholder,
|
|
|
+ },
|
|
|
)
|
|
|
else:
|
|
|
return self.async_abort(reason="not_supported")
|
|
|
@@ -530,11 +556,17 @@ class ConfigFlowHandler(ConfigFlow, domain=DOMAIN):
|
|
|
return self.async_create_entry(
|
|
|
title=title, data={**self.data, **user_input}
|
|
|
)
|
|
|
- schema = {vol.Required(CONF_NAME, default=config.name): str}
|
|
|
+ default_name = config.name
|
|
|
+ if self.__cloud_device and self.__cloud_device.get("name"):
|
|
|
+ default_name = self.__cloud_device["name"]
|
|
|
+ schema = {vol.Required(CONF_NAME, default=default_name): str}
|
|
|
|
|
|
return self.async_show_form(
|
|
|
step_id="choose_entities",
|
|
|
data_schema=vol.Schema(schema),
|
|
|
+ description_placeholders={
|
|
|
+ "device_name": self._device_name_placeholder,
|
|
|
+ },
|
|
|
)
|
|
|
|
|
|
@staticmethod
|