From 55de91530d17ad34dd5eecaa8f61f3358b2d7db7 Mon Sep 17 00:00:00 2001 From: Simone Chemelli Date: Thu, 24 Apr 2025 14:05:11 +0200 Subject: [PATCH] Bump aiocomelit to 0.12.0 to use async_create_clientsession in Comelit integration (#143528) * Use async_create_clientsession in Comelit integration * bump library and rename method --- homeassistant/components/comelit/__init__.py | 6 ++++++ homeassistant/components/comelit/config_flow.py | 9 +++++++-- homeassistant/components/comelit/coordinator.py | 7 +++++-- homeassistant/components/comelit/manifest.json | 2 +- homeassistant/components/comelit/quality_scale.yaml | 4 +--- homeassistant/components/comelit/utils.py | 13 +++++++++++++ requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 8 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 homeassistant/components/comelit/utils.py diff --git a/homeassistant/components/comelit/__init__.py b/homeassistant/components/comelit/__init__.py index 60a4e40140d..c2a7498afec 100644 --- a/homeassistant/components/comelit/__init__.py +++ b/homeassistant/components/comelit/__init__.py @@ -12,6 +12,7 @@ from .coordinator import ( ComelitSerialBridge, ComelitVedoSystem, ) +from .utils import async_client_session BRIDGE_PLATFORMS = [ Platform.CLIMATE, @@ -32,6 +33,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ComelitConfigEntry) -> b """Set up Comelit platform.""" coordinator: ComelitBaseCoordinator + + session = await async_client_session(hass) + if entry.data.get(CONF_TYPE, BRIDGE) == BRIDGE: coordinator = ComelitSerialBridge( hass, @@ -39,6 +43,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ComelitConfigEntry) -> b entry.data[CONF_HOST], entry.data.get(CONF_PORT, DEFAULT_PORT), entry.data[CONF_PIN], + session, ) platforms = BRIDGE_PLATFORMS else: @@ -48,6 +53,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ComelitConfigEntry) -> b entry.data[CONF_HOST], entry.data.get(CONF_PORT, DEFAULT_PORT), entry.data[CONF_PIN], + session, ) platforms = VEDO_PLATFORMS diff --git a/homeassistant/components/comelit/config_flow.py b/homeassistant/components/comelit/config_flow.py index 5854bc1e324..f6bda97a781 100644 --- a/homeassistant/components/comelit/config_flow.py +++ b/homeassistant/components/comelit/config_flow.py @@ -22,6 +22,7 @@ from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers import config_validation as cv from .const import _LOGGER, DEFAULT_PORT, DEVICE_TYPE_LIST, DOMAIN +from .utils import async_client_session DEFAULT_HOST = "192.168.1.252" DEFAULT_PIN = 111111 @@ -47,10 +48,14 @@ async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, """Validate the user input allows us to connect.""" api: ComelitCommonApi + + session = await async_client_session(hass) if data.get(CONF_TYPE, BRIDGE) == BRIDGE: - api = ComeliteSerialBridgeApi(data[CONF_HOST], data[CONF_PORT], data[CONF_PIN]) + api = ComeliteSerialBridgeApi( + data[CONF_HOST], data[CONF_PORT], data[CONF_PIN], session + ) else: - api = ComelitVedoApi(data[CONF_HOST], data[CONF_PORT], data[CONF_PIN]) + api = ComelitVedoApi(data[CONF_HOST], data[CONF_PORT], data[CONF_PIN], session) try: await api.login() diff --git a/homeassistant/components/comelit/coordinator.py b/homeassistant/components/comelit/coordinator.py index df4965d9945..b35acc60b59 100644 --- a/homeassistant/components/comelit/coordinator.py +++ b/homeassistant/components/comelit/coordinator.py @@ -15,6 +15,7 @@ from aiocomelit.api import ( ) from aiocomelit.const import BRIDGE, VEDO from aiocomelit.exceptions import CannotAuthenticate, CannotConnect, CannotRetrieveData +from aiohttp import ClientSession from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -119,9 +120,10 @@ class ComelitSerialBridge( host: str, port: int, pin: int, + session: ClientSession, ) -> None: """Initialize the scanner.""" - self.api = ComeliteSerialBridgeApi(host, port, pin) + self.api = ComeliteSerialBridgeApi(host, port, pin, session) super().__init__(hass, entry, BRIDGE, host) async def _async_update_system_data( @@ -144,9 +146,10 @@ class ComelitVedoSystem(ComelitBaseCoordinator[AlarmDataObject]): host: str, port: int, pin: int, + session: ClientSession, ) -> None: """Initialize the scanner.""" - self.api = ComelitVedoApi(host, port, pin) + self.api = ComelitVedoApi(host, port, pin, session) super().__init__(hass, entry, VEDO, host) async def _async_update_system_data( diff --git a/homeassistant/components/comelit/manifest.json b/homeassistant/components/comelit/manifest.json index 303773ebc7d..2097d1c25f6 100644 --- a/homeassistant/components/comelit/manifest.json +++ b/homeassistant/components/comelit/manifest.json @@ -8,5 +8,5 @@ "iot_class": "local_polling", "loggers": ["aiocomelit"], "quality_scale": "bronze", - "requirements": ["aiocomelit==0.11.3"] + "requirements": ["aiocomelit==0.12.0"] } diff --git a/homeassistant/components/comelit/quality_scale.yaml b/homeassistant/components/comelit/quality_scale.yaml index 56922f175b9..614a1f9cab7 100644 --- a/homeassistant/components/comelit/quality_scale.yaml +++ b/homeassistant/components/comelit/quality_scale.yaml @@ -86,7 +86,5 @@ rules: # Platinum async-dependency: done - inject-websession: - status: todo - comment: implement aiohttp_client.async_create_clientsession + inject-websession: done strict-typing: done diff --git a/homeassistant/components/comelit/utils.py b/homeassistant/components/comelit/utils.py new file mode 100644 index 00000000000..fe05e2412b0 --- /dev/null +++ b/homeassistant/components/comelit/utils.py @@ -0,0 +1,13 @@ +"""Utils for Comelit.""" + +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 9c60c11f2e2..ed7c34852e9 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -213,7 +213,7 @@ aiobafi6==0.9.0 aiobotocore==2.21.1 # homeassistant.components.comelit -aiocomelit==0.11.3 +aiocomelit==0.12.0 # homeassistant.components.dhcp aiodhcpwatcher==1.1.1 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index b650ed663a9..94ff9b4bb10 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -201,7 +201,7 @@ aiobafi6==0.9.0 aiobotocore==2.21.1 # homeassistant.components.comelit -aiocomelit==0.11.3 +aiocomelit==0.12.0 # homeassistant.components.dhcp aiodhcpwatcher==1.1.1