diff --git a/homeassistant/components/amcrest/camera.py b/homeassistant/components/amcrest/camera.py index a55f9c81e64..b9b2701eac6 100644 --- a/homeassistant/components/amcrest/camera.py +++ b/homeassistant/components/amcrest/camera.py @@ -8,6 +8,7 @@ from datetime import timedelta import logging from typing import TYPE_CHECKING, Any +import aiohttp from aiohttp import web from amcrest import AmcrestError from haffmpeg.camera import CameraMjpeg @@ -244,7 +245,9 @@ class AmcrestCam(Camera): websession = async_get_clientsession(self.hass) streaming_url = self._api.mjpeg_url(typeno=self._resolution) stream_coro = websession.get( - streaming_url, auth=self._token, timeout=CAMERA_WEB_SESSION_TIMEOUT + streaming_url, + auth=self._token, + timeout=aiohttp.ClientTimeout(total=CAMERA_WEB_SESSION_TIMEOUT), ) return await async_aiohttp_proxy_web(self.hass, request, stream_coro) diff --git a/homeassistant/components/auth/indieauth.py b/homeassistant/components/auth/indieauth.py index 45de94d5a70..dec6767d807 100644 --- a/homeassistant/components/auth/indieauth.py +++ b/homeassistant/components/auth/indieauth.py @@ -94,7 +94,7 @@ async def fetch_redirect_uris(hass: HomeAssistant, url: str) -> list[str]: try: async with ( aiohttp.ClientSession() as session, - session.get(url, timeout=5) as resp, + session.get(url, timeout=aiohttp.ClientTimeout(total=5)) as resp, ): async for data in resp.content.iter_chunked(1024): parser.feed(data.decode()) diff --git a/homeassistant/components/buienradar/camera.py b/homeassistant/components/buienradar/camera.py index 72bf6b7a3eb..e9a7d2517cb 100644 --- a/homeassistant/components/buienradar/camera.py +++ b/homeassistant/components/buienradar/camera.py @@ -115,7 +115,9 @@ class BuienradarCam(Camera): headers = {} try: - async with session.get(url, timeout=5, headers=headers) as res: + async with session.get( + url, timeout=aiohttp.ClientTimeout(total=5), headers=headers + ) as res: res.raise_for_status() if res.status == 304: diff --git a/homeassistant/components/cast/helpers.py b/homeassistant/components/cast/helpers.py index 137bc7ec3c0..865ea1ac3f6 100644 --- a/homeassistant/components/cast/helpers.py +++ b/homeassistant/components/cast/helpers.py @@ -248,7 +248,7 @@ async def _fetch_playlist(hass, url, supported_content_types): """Fetch a playlist from the given url.""" try: session = aiohttp_client.async_get_clientsession(hass, verify_ssl=False) - async with session.get(url, timeout=5) as resp: + async with session.get(url, timeout=aiohttp.ClientTimeout(total=5)) as resp: charset = resp.charset or "utf-8" if resp.content_type in supported_content_types: raise PlaylistSupported diff --git a/homeassistant/components/discord/notify.py b/homeassistant/components/discord/notify.py index c574b458333..8a98d172913 100644 --- a/homeassistant/components/discord/notify.py +++ b/homeassistant/components/discord/notify.py @@ -7,6 +7,7 @@ import logging import os.path from typing import Any, cast +import aiohttp import nextcord from nextcord.abc import Messageable @@ -81,7 +82,7 @@ class DiscordNotificationService(BaseNotificationService): async with session.get( url, ssl=verify_ssl, - timeout=30, + timeout=aiohttp.ClientTimeout(total=30), raise_for_status=True, ) as resp: content_length = resp.headers.get("Content-Length") diff --git a/homeassistant/components/system_health/__init__.py b/homeassistant/components/system_health/__init__.py index ca1d4026ea9..ce80f6303d9 100644 --- a/homeassistant/components/system_health/__init__.py +++ b/homeassistant/components/system_health/__init__.py @@ -235,7 +235,7 @@ async def async_check_can_reach_url( session = aiohttp_client.async_get_clientsession(hass) try: - await session.get(url, timeout=5) + await session.get(url, timeout=aiohttp.ClientTimeout(total=5)) except aiohttp.ClientError: data = {"type": "failed", "error": "unreachable"} except TimeoutError: diff --git a/homeassistant/components/trafikverket_camera/coordinator.py b/homeassistant/components/trafikverket_camera/coordinator.py index 8ead479fd1c..7bc5c556c00 100644 --- a/homeassistant/components/trafikverket_camera/coordinator.py +++ b/homeassistant/components/trafikverket_camera/coordinator.py @@ -8,6 +8,7 @@ from io import BytesIO import logging from typing import TYPE_CHECKING +import aiohttp from pytrafikverket.exceptions import ( InvalidAuthentication, MultipleCamerasFound, @@ -77,7 +78,9 @@ class TVDataUpdateCoordinator(DataUpdateCoordinator[CameraData]): if camera_data.fullsizephoto: image_url = f"{camera_data.photourl}?type=fullsize" - async with self.session.get(image_url, timeout=10) as get_image: + async with self.session.get( + image_url, timeout=aiohttp.ClientTimeout(total=10) + ) as get_image: if get_image.status not in range(200, 299): raise UpdateFailed("Could not retrieve image") image = BytesIO(await get_image.read()).getvalue() diff --git a/homeassistant/util/location.py b/homeassistant/util/location.py index 24c49c5427c..c00cf88699e 100644 --- a/homeassistant/util/location.py +++ b/homeassistant/util/location.py @@ -163,7 +163,8 @@ async def _get_whoami(session: aiohttp.ClientSession) -> dict[str, Any] | None: """Query whoami.home-assistant.io for location data.""" try: resp = await session.get( - WHOAMI_URL_DEV if HA_VERSION.endswith("0.dev0") else WHOAMI_URL, timeout=30 + WHOAMI_URL_DEV if HA_VERSION.endswith("0.dev0") else WHOAMI_URL, + timeout=aiohttp.ClientTimeout(total=30), ) except (aiohttp.ClientError, TimeoutError): return None