mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Add configuration_url to bond (#60523)
This commit is contained in:
parent
15bf4dae9b
commit
ef8cf9e597
@ -36,7 +36,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
timeout=ClientTimeout(total=_API_TIMEOUT),
|
||||
session=async_get_clientsession(hass),
|
||||
)
|
||||
hub = BondHub(bond)
|
||||
hub = BondHub(bond, host)
|
||||
try:
|
||||
await hub.setup()
|
||||
except ClientResponseError as ex:
|
||||
@ -78,6 +78,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
model=hub.target,
|
||||
sw_version=hub.fw_ver,
|
||||
suggested_area=hub.location,
|
||||
configuration_url=f"http://{host}",
|
||||
)
|
||||
|
||||
_async_remove_old_device_identifiers(config_entry_id, device_registry, hub)
|
||||
|
@ -47,7 +47,7 @@ async def _validate_input(hass: HomeAssistant, data: dict[str, Any]) -> tuple[st
|
||||
data[CONF_HOST], data[CONF_ACCESS_TOKEN], session=async_get_clientsession(hass)
|
||||
)
|
||||
try:
|
||||
hub = BondHub(bond)
|
||||
hub = BondHub(bond, data[CONF_HOST])
|
||||
await hub.setup(max_devices=1)
|
||||
except ClientConnectionError as error:
|
||||
raise InputValidationError("cannot_connect") from error
|
||||
|
@ -65,6 +65,7 @@ class BondEntity(Entity):
|
||||
manufacturer=self._hub.make,
|
||||
# type ignore: tuple items should not be Optional
|
||||
identifiers={(DOMAIN, self._hub.bond_id, self._device.device_id)}, # type: ignore[arg-type]
|
||||
configuration_url=f"http://{self._hub.host}",
|
||||
)
|
||||
if self.name is not None:
|
||||
device_info[ATTR_NAME] = self.name
|
||||
|
@ -124,9 +124,10 @@ class BondDevice:
|
||||
class BondHub:
|
||||
"""Hub device representing Bond Bridge."""
|
||||
|
||||
def __init__(self, bond: Bond) -> None:
|
||||
def __init__(self, bond: Bond, host: str) -> None:
|
||||
"""Initialize Bond Hub."""
|
||||
self.bond: Bond = bond
|
||||
self.host = host
|
||||
self._bridge: dict[str, Any] = {}
|
||||
self._version: dict[str, Any] = {}
|
||||
self._devices: list[BondDevice] = []
|
||||
|
@ -25,7 +25,7 @@ from homeassistant.components.fan import (
|
||||
)
|
||||
from homeassistant.const import ATTR_ENTITY_ID, SERVICE_TURN_OFF, SERVICE_TURN_ON
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||
from homeassistant.helpers.entity_registry import EntityRegistry
|
||||
from homeassistant.util import utcnow
|
||||
|
||||
@ -84,6 +84,10 @@ async def test_entity_registry(hass: core.HomeAssistant):
|
||||
entity = registry.entities["fan.name_1"]
|
||||
assert entity.unique_id == "test-hub-id_test-device-id"
|
||||
|
||||
device_registry = dr.async_get(hass)
|
||||
device = device_registry.async_get(entity.device_id)
|
||||
assert device.configuration_url == "http://some host"
|
||||
|
||||
|
||||
async def test_non_standard_speed_list(hass: core.HomeAssistant):
|
||||
"""Tests that the device is registered with custom speed list if number of supported speeds differs form 3."""
|
||||
|
@ -107,6 +107,7 @@ async def test_async_setup_entry_sets_up_hub_and_supported_domains(hass: HomeAss
|
||||
assert hub.manufacturer == "Olibra"
|
||||
assert hub.model == "test-model"
|
||||
assert hub.sw_version == "test-version"
|
||||
assert hub.configuration_url == "http://some host"
|
||||
|
||||
# verify supported domains are setup
|
||||
assert len(mock_cover_async_setup_entry.mock_calls) == 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user