Add configuration_url to isy994 (#58372)

This commit is contained in:
J. Nick Koston 2021-10-24 21:37:37 -10:00 committed by GitHub
parent 35872a212b
commit 3abb4bd3e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View file

@ -251,11 +251,19 @@ def _async_import_options_from_data_if_missing(
hass.config_entries.async_update_entry(entry, options=options)
@callback
def _async_isy_to_configuration_url(isy: ISY) -> str:
"""Extract the configuration url from the isy."""
connection_info = isy.conn.connection_info
proto = "https" if "tls" in connection_info else "http"
return f"{proto}://{connection_info['addr']}:{connection_info['port']}"
async def _async_get_or_create_isy_device_in_registry(
hass: HomeAssistant, entry: config_entries.ConfigEntry, isy
) -> None:
device_registry = await dr.async_get_registry(hass)
url = _async_isy_to_configuration_url(isy)
device_registry.async_get_or_create(
config_entry_id=entry.entry_id,
connections={(dr.CONNECTION_NETWORK_MAC, isy.configuration["uuid"])},
@ -264,6 +272,7 @@ async def _async_get_or_create_isy_device_in_registry(
name=isy.configuration["name"],
model=isy.configuration["model"],
sw_version=isy.configuration["firmware"],
configuration_url=url,
)

View file

@ -23,6 +23,7 @@ from homeassistant.core import callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity import DeviceInfo, Entity
from . import _async_isy_to_configuration_url
from .const import DOMAIN
@ -76,8 +77,11 @@ class ISYEntity(Entity):
if hasattr(self._node, "protocol") and self._node.protocol == PROTO_GROUP:
# not a device
return None
uuid = self._node.isy.configuration["uuid"]
isy = self._node.isy
uuid = isy.configuration["uuid"]
node = self._node
url = _async_isy_to_configuration_url(isy)
basename = self.name
if hasattr(self._node, "parent_node") and self._node.parent_node is not None:
@ -91,6 +95,7 @@ class ISYEntity(Entity):
model="Unknown",
name=basename,
via_device=(DOMAIN, uuid),
configuration_url=url,
)
if hasattr(node, "address"):