mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 04:07:08 +00:00
Use shared aiohttp.ClientSession in bond (#48669)
This commit is contained in:
parent
9553ae8196
commit
32daa63265
@ -10,6 +10,7 @@ from homeassistant.const import CONF_ACCESS_TOKEN, CONF_HOST
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.exceptions import ConfigEntryNotReady
|
||||
from homeassistant.helpers import device_registry as dr
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
from homeassistant.helpers.entity import SLOW_UPDATE_WARNING
|
||||
|
||||
from .const import BPUP_STOP, BPUP_SUBS, BRIDGE_MAKE, DOMAIN, HUB
|
||||
@ -25,7 +26,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
token = entry.data[CONF_ACCESS_TOKEN]
|
||||
config_entry_id = entry.entry_id
|
||||
|
||||
bond = Bond(host=host, token=token, timeout=ClientTimeout(total=_API_TIMEOUT))
|
||||
bond = Bond(
|
||||
host=host,
|
||||
token=token,
|
||||
timeout=ClientTimeout(total=_API_TIMEOUT),
|
||||
session=async_get_clientsession(hass),
|
||||
)
|
||||
hub = BondHub(bond)
|
||||
try:
|
||||
await hub.setup()
|
||||
|
@ -15,6 +15,8 @@ from homeassistant.const import (
|
||||
CONF_NAME,
|
||||
HTTP_UNAUTHORIZED,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
from homeassistant.helpers.typing import DiscoveryInfoType
|
||||
|
||||
from .const import DOMAIN
|
||||
@ -30,10 +32,12 @@ DISCOVERY_SCHEMA = vol.Schema({vol.Required(CONF_ACCESS_TOKEN): str})
|
||||
TOKEN_SCHEMA = vol.Schema({})
|
||||
|
||||
|
||||
async def _validate_input(data: dict[str, Any]) -> tuple[str, str]:
|
||||
async def _validate_input(hass: HomeAssistant, data: dict[str, Any]) -> tuple[str, str]:
|
||||
"""Validate the user input allows us to connect."""
|
||||
|
||||
bond = Bond(data[CONF_HOST], data[CONF_ACCESS_TOKEN])
|
||||
bond = Bond(
|
||||
data[CONF_HOST], data[CONF_ACCESS_TOKEN], session=async_get_clientsession(hass)
|
||||
)
|
||||
try:
|
||||
hub = BondHub(bond)
|
||||
await hub.setup(max_devices=1)
|
||||
@ -71,7 +75,9 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
online longer then the allowed setup period, and we will
|
||||
instead ask them to manually enter the token.
|
||||
"""
|
||||
bond = Bond(self._discovered[CONF_HOST], "")
|
||||
bond = Bond(
|
||||
self._discovered[CONF_HOST], "", session=async_get_clientsession(self.hass)
|
||||
)
|
||||
try:
|
||||
response = await bond.token()
|
||||
except ClientConnectionError:
|
||||
@ -82,7 +88,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
return
|
||||
|
||||
self._discovered[CONF_ACCESS_TOKEN] = token
|
||||
_, hub_name = await _validate_input(self._discovered)
|
||||
_, hub_name = await _validate_input(self.hass, self._discovered)
|
||||
self._discovered[CONF_NAME] = hub_name
|
||||
|
||||
async def async_step_zeroconf(self, discovery_info: DiscoveryInfoType) -> dict[str, Any]: # type: ignore
|
||||
@ -127,7 +133,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
CONF_HOST: self._discovered[CONF_HOST],
|
||||
}
|
||||
try:
|
||||
_, hub_name = await _validate_input(data)
|
||||
_, hub_name = await _validate_input(self.hass, data)
|
||||
except InputValidationError as error:
|
||||
errors["base"] = error.base
|
||||
else:
|
||||
@ -155,7 +161,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
errors = {}
|
||||
if user_input is not None:
|
||||
try:
|
||||
bond_id, hub_name = await _validate_input(user_input)
|
||||
bond_id, hub_name = await _validate_input(self.hass, user_input)
|
||||
except InputValidationError as error:
|
||||
errors["base"] = error.base
|
||||
else:
|
||||
|
@ -3,7 +3,7 @@
|
||||
"name": "Bond",
|
||||
"config_flow": true,
|
||||
"documentation": "https://www.home-assistant.io/integrations/bond",
|
||||
"requirements": ["bond-api==0.1.11"],
|
||||
"requirements": ["bond-api==0.1.12"],
|
||||
"zeroconf": ["_bond._tcp.local."],
|
||||
"codeowners": ["@prystupa"],
|
||||
"quality_scale": "platinum"
|
||||
|
@ -374,7 +374,7 @@ blockchain==1.4.4
|
||||
# bme680==1.0.5
|
||||
|
||||
# homeassistant.components.bond
|
||||
bond-api==0.1.11
|
||||
bond-api==0.1.12
|
||||
|
||||
# homeassistant.components.amazon_polly
|
||||
# homeassistant.components.route53
|
||||
|
@ -208,7 +208,7 @@ blebox_uniapi==1.3.2
|
||||
blinkpy==0.17.0
|
||||
|
||||
# homeassistant.components.bond
|
||||
bond-api==0.1.11
|
||||
bond-api==0.1.12
|
||||
|
||||
# homeassistant.components.braviatv
|
||||
bravia-tv==1.0.8
|
||||
|
Loading…
x
Reference in New Issue
Block a user