From f3ea11bbc16558812ccdac794d520e993ba0c7f7 Mon Sep 17 00:00:00 2001 From: Simone Chemelli Date: Thu, 24 Apr 2025 14:05:42 +0200 Subject: [PATCH] Bump aiovodafone to 0.10.0 to use async_create_clientsession in Vodafone Station integration (#143537) * Use async_create_clientsession in Vodafone Station integration * bump library and rename method --- .../components/vodafone_station/__init__.py | 3 +++ .../components/vodafone_station/config_flow.py | 4 +++- .../components/vodafone_station/coordinator.py | 4 +++- .../components/vodafone_station/manifest.json | 2 +- homeassistant/components/vodafone_station/utils.py | 13 +++++++++++++ requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 7 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 homeassistant/components/vodafone_station/utils.py diff --git a/homeassistant/components/vodafone_station/__init__.py b/homeassistant/components/vodafone_station/__init__.py index b4ba5663ac2..5efc33ca882 100644 --- a/homeassistant/components/vodafone_station/__init__.py +++ b/homeassistant/components/vodafone_station/__init__.py @@ -4,18 +4,21 @@ from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME, Platfor from homeassistant.core import HomeAssistant from .coordinator import VodafoneConfigEntry, VodafoneStationRouter +from .utils import async_client_session PLATFORMS = [Platform.BUTTON, Platform.DEVICE_TRACKER, Platform.SENSOR] async def async_setup_entry(hass: HomeAssistant, entry: VodafoneConfigEntry) -> bool: """Set up Vodafone Station platform.""" + session = await async_client_session(hass) coordinator = VodafoneStationRouter( hass, entry.data[CONF_HOST], entry.data[CONF_USERNAME], entry.data[CONF_PASSWORD], entry, + session, ) await coordinator.async_config_entry_first_refresh() diff --git a/homeassistant/components/vodafone_station/config_flow.py b/homeassistant/components/vodafone_station/config_flow.py index c21796d4064..b69078b8ce6 100644 --- a/homeassistant/components/vodafone_station/config_flow.py +++ b/homeassistant/components/vodafone_station/config_flow.py @@ -18,6 +18,7 @@ from homeassistant.core import HomeAssistant, callback from .const import _LOGGER, DEFAULT_HOST, DEFAULT_USERNAME, DOMAIN from .coordinator import VodafoneConfigEntry +from .utils import async_client_session def user_form_schema(user_input: dict[str, Any] | None) -> vol.Schema: @@ -38,8 +39,9 @@ STEP_REAUTH_DATA_SCHEMA = vol.Schema({vol.Required(CONF_PASSWORD): str}) async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, str]: """Validate the user input allows us to connect.""" + session = await async_client_session(hass) api = VodafoneStationSercommApi( - data[CONF_HOST], data[CONF_USERNAME], data[CONF_PASSWORD] + data[CONF_HOST], data[CONF_USERNAME], data[CONF_PASSWORD], session ) try: diff --git a/homeassistant/components/vodafone_station/coordinator.py b/homeassistant/components/vodafone_station/coordinator.py index cee66bd2e7c..846d4b042c0 100644 --- a/homeassistant/components/vodafone_station/coordinator.py +++ b/homeassistant/components/vodafone_station/coordinator.py @@ -5,6 +5,7 @@ from datetime import datetime, timedelta from json.decoder import JSONDecodeError from typing import Any, cast +from aiohttp import ClientSession from aiovodafone import VodafoneStationDevice, VodafoneStationSercommApi, exceptions from homeassistant.components.device_tracker import DEFAULT_CONSIDER_HOME @@ -53,11 +54,12 @@ class VodafoneStationRouter(DataUpdateCoordinator[UpdateCoordinatorDataType]): username: str, password: str, config_entry: VodafoneConfigEntry, + session: ClientSession, ) -> None: """Initialize the scanner.""" self._host = host - self.api = VodafoneStationSercommApi(host, username, password) + self.api = VodafoneStationSercommApi(host, username, password, session) # Last resort as no MAC or S/N can be retrieved via API self._id = config_entry.unique_id diff --git a/homeassistant/components/vodafone_station/manifest.json b/homeassistant/components/vodafone_station/manifest.json index a36af1466d6..4c33cf1a4a5 100644 --- a/homeassistant/components/vodafone_station/manifest.json +++ b/homeassistant/components/vodafone_station/manifest.json @@ -8,5 +8,5 @@ "iot_class": "local_polling", "loggers": ["aiovodafone"], "quality_scale": "platinum", - "requirements": ["aiovodafone==0.6.1"] + "requirements": ["aiovodafone==0.10.0"] } diff --git a/homeassistant/components/vodafone_station/utils.py b/homeassistant/components/vodafone_station/utils.py new file mode 100644 index 00000000000..4f900412faf --- /dev/null +++ b/homeassistant/components/vodafone_station/utils.py @@ -0,0 +1,13 @@ +"""Utils for Vodafone Station.""" + +from aiohttp import ClientSession, CookieJar + +from homeassistant.core import HomeAssistant +from homeassistant.helpers import aiohttp_client + + +async def async_client_session(hass: HomeAssistant) -> ClientSession: + """Return a new aiohttp session.""" + return aiohttp_client.async_create_clientsession( + hass, verify_ssl=False, cookie_jar=CookieJar(unsafe=True) + ) diff --git a/requirements_all.txt b/requirements_all.txt index ed7c34852e9..1ad5c0bc219 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -416,7 +416,7 @@ aiousbwatcher==1.1.1 aiovlc==0.5.1 # homeassistant.components.vodafone_station -aiovodafone==0.6.1 +aiovodafone==0.10.0 # homeassistant.components.waqi aiowaqi==3.1.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 94ff9b4bb10..879cb142572 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -398,7 +398,7 @@ aiousbwatcher==1.1.1 aiovlc==0.5.1 # homeassistant.components.vodafone_station -aiovodafone==0.6.1 +aiovodafone==0.10.0 # homeassistant.components.waqi aiowaqi==3.1.0