Expose deCONZ configuration url from discovered entry (#64519)
This commit is contained in:
parent
7d66d4c219
commit
3258f66097
4 changed files with 24 additions and 2 deletions
|
@ -33,6 +33,7 @@ from .const import (
|
||||||
CONF_BRIDGE_ID,
|
CONF_BRIDGE_ID,
|
||||||
DEFAULT_PORT,
|
DEFAULT_PORT,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
|
HASSIO_CONFIGURATION_URL,
|
||||||
LOGGER,
|
LOGGER,
|
||||||
)
|
)
|
||||||
from .gateway import DeconzGateway, get_gateway_from_config_entry
|
from .gateway import DeconzGateway, get_gateway_from_config_entry
|
||||||
|
@ -227,7 +228,12 @@ class DeconzFlowHandler(ConfigFlow, domain=DOMAIN):
|
||||||
updates={CONF_HOST: hostname, CONF_PORT: port}
|
updates={CONF_HOST: hostname, CONF_PORT: port}
|
||||||
)
|
)
|
||||||
|
|
||||||
self.context["title_placeholders"] = {"host": hostname}
|
self.context.update(
|
||||||
|
{
|
||||||
|
"title_placeholders": {"host": hostname},
|
||||||
|
"configuration_url": f"http://{hostname}:{port}",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
self.deconz_config = {CONF_HOST: hostname, CONF_PORT: port}
|
self.deconz_config = {CONF_HOST: hostname, CONF_PORT: port}
|
||||||
|
|
||||||
|
@ -251,6 +257,8 @@ class DeconzFlowHandler(ConfigFlow, domain=DOMAIN):
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.context["configuration_url"] = HASSIO_CONFIGURATION_URL
|
||||||
|
|
||||||
self._hassio_discovery = discovery_info.config
|
self._hassio_discovery = discovery_info.config
|
||||||
|
|
||||||
return await self.async_step_hassio_confirm()
|
return await self.async_step_hassio_confirm()
|
||||||
|
|
|
@ -7,6 +7,8 @@ LOGGER = logging.getLogger(__package__)
|
||||||
|
|
||||||
DOMAIN = "deconz"
|
DOMAIN = "deconz"
|
||||||
|
|
||||||
|
HASSIO_CONFIGURATION_URL = "homeassistant://hassio/ingress/core_deconz"
|
||||||
|
|
||||||
CONF_BRIDGE_ID = "bridgeid"
|
CONF_BRIDGE_ID = "bridgeid"
|
||||||
CONF_GROUP_ID_BASE = "group_id_base"
|
CONF_GROUP_ID_BASE = "group_id_base"
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ from .const import (
|
||||||
DEFAULT_ALLOW_DECONZ_GROUPS,
|
DEFAULT_ALLOW_DECONZ_GROUPS,
|
||||||
DEFAULT_ALLOW_NEW_DEVICES,
|
DEFAULT_ALLOW_NEW_DEVICES,
|
||||||
DOMAIN as DECONZ_DOMAIN,
|
DOMAIN as DECONZ_DOMAIN,
|
||||||
|
HASSIO_CONFIGURATION_URL,
|
||||||
LOGGER,
|
LOGGER,
|
||||||
PLATFORMS,
|
PLATFORMS,
|
||||||
)
|
)
|
||||||
|
@ -152,7 +153,7 @@ class DeconzGateway:
|
||||||
# Gateway service
|
# Gateway service
|
||||||
configuration_url = f"http://{self.host}:{self.config_entry.data[CONF_PORT]}"
|
configuration_url = f"http://{self.host}:{self.config_entry.data[CONF_PORT]}"
|
||||||
if self.config_entry.source == SOURCE_HASSIO:
|
if self.config_entry.source == SOURCE_HASSIO:
|
||||||
configuration_url = "homeassistant://hassio/ingress/core_deconz"
|
configuration_url = HASSIO_CONFIGURATION_URL
|
||||||
device_registry.async_get_or_create(
|
device_registry.async_get_or_create(
|
||||||
config_entry_id=self.config_entry.entry_id,
|
config_entry_id=self.config_entry.entry_id,
|
||||||
configuration_url=configuration_url,
|
configuration_url=configuration_url,
|
||||||
|
|
|
@ -17,6 +17,7 @@ from homeassistant.components.deconz.const import (
|
||||||
CONF_ALLOW_NEW_DEVICES,
|
CONF_ALLOW_NEW_DEVICES,
|
||||||
CONF_MASTER_GATEWAY,
|
CONF_MASTER_GATEWAY,
|
||||||
DOMAIN as DECONZ_DOMAIN,
|
DOMAIN as DECONZ_DOMAIN,
|
||||||
|
HASSIO_CONFIGURATION_URL,
|
||||||
)
|
)
|
||||||
from homeassistant.components.hassio import HassioServiceInfo
|
from homeassistant.components.hassio import HassioServiceInfo
|
||||||
from homeassistant.components.ssdp import ATTR_UPNP_MANUFACTURER_URL, ATTR_UPNP_SERIAL
|
from homeassistant.components.ssdp import ATTR_UPNP_MANUFACTURER_URL, ATTR_UPNP_SERIAL
|
||||||
|
@ -425,6 +426,10 @@ async def test_flow_ssdp_discovery(hass, aioclient_mock):
|
||||||
assert result["type"] == RESULT_TYPE_FORM
|
assert result["type"] == RESULT_TYPE_FORM
|
||||||
assert result["step_id"] == "link"
|
assert result["step_id"] == "link"
|
||||||
|
|
||||||
|
flows = hass.config_entries.flow.async_progress()
|
||||||
|
assert len(flows) == 1
|
||||||
|
assert flows[0].get("context", {}).get("configuration_url") == "http://1.2.3.4:80"
|
||||||
|
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
"http://1.2.3.4:80/api",
|
"http://1.2.3.4:80/api",
|
||||||
json=[{"success": {"username": API_KEY}}],
|
json=[{"success": {"username": API_KEY}}],
|
||||||
|
@ -558,6 +563,12 @@ async def test_flow_hassio_discovery(hass):
|
||||||
assert result["step_id"] == "hassio_confirm"
|
assert result["step_id"] == "hassio_confirm"
|
||||||
assert result["description_placeholders"] == {"addon": "Mock Addon"}
|
assert result["description_placeholders"] == {"addon": "Mock Addon"}
|
||||||
|
|
||||||
|
flows = hass.config_entries.flow.async_progress()
|
||||||
|
assert len(flows) == 1
|
||||||
|
assert (
|
||||||
|
flows[0].get("context", {}).get("configuration_url") == HASSIO_CONFIGURATION_URL
|
||||||
|
)
|
||||||
|
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.deconz.async_setup_entry",
|
"homeassistant.components.deconz.async_setup_entry",
|
||||||
return_value=True,
|
return_value=True,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue