async def METHOD_NAME(self) -> None:
    """Ensure there is an access token."""
    if (
        self.access_token is not None
        and self._access_token_expires > datetime.utcnow()
    ):
        return
    with suppress(asyncio.TimeoutError, aiohttp.ClientError):
        async with self.sys_websession.post(
            f"{self.sys_homeassistant.api_url}/auth/token",
            timeout=30,
            data={
                "grant_type": "refresh_token",
                "refresh_token": self.sys_homeassistant.refresh_token,
            },
            ssl=False,
        ) as resp:
            if resp.status != 200:
                raise HomeAssistantAuthError(
                    "Can't update Home Assistant access token!", _LOGGER.error
                )
            _LOGGER.info("Updated Home Assistant API token")
            tokens = await resp.json()
            self.access_token = tokens["access_token"]
            self._access_token_expires = datetime.utcnow() + timedelta(
                seconds=tokens["expires_in"]
            )