diff --git a/homeassistant/components/bmw_connected_drive/__init__.py b/homeassistant/components/bmw_connected_drive/__init__.py
index ac25636a06660e68d03ca354f0dccf35775f7084..9d794ace5be144fc4cebbaa3e466abbe0267c5b5 100644
--- a/homeassistant/components/bmw_connected_drive/__init__.py
+++ b/homeassistant/components/bmw_connected_drive/__init__.py
@@ -1,4 +1,6 @@
 """Reads vehicle status from BMW connected drive portal."""
+from __future__ import annotations
+
 import asyncio
 import logging
 
@@ -195,7 +197,7 @@ async def update_listener(hass, config_entry):
     await hass.config_entries.async_reload(config_entry.entry_id)
 
 
-def setup_account(entry: ConfigEntry, hass, name: str) -> "BMWConnectedDriveAccount":
+def setup_account(entry: ConfigEntry, hass, name: str) -> BMWConnectedDriveAccount:
     """Set up a new BMWConnectedDriveAccount based on the config."""
     username = entry.data[CONF_USERNAME]
     password = entry.data[CONF_PASSWORD]
diff --git a/homeassistant/components/cast/helpers.py b/homeassistant/components/cast/helpers.py
index e7db380406b0e44352097d68b100f8054496cde9..b8742ec2b5eb3e7fedf8376e333bba1b1a3b7fe7 100644
--- a/homeassistant/components/cast/helpers.py
+++ b/homeassistant/components/cast/helpers.py
@@ -1,4 +1,6 @@
 """Helpers to deal with Cast devices."""
+from __future__ import annotations
+
 from typing import Optional
 
 import attr
@@ -57,7 +59,7 @@ class ChromecastInfo:
             return None
         return CAST_MANUFACTURERS.get(self.model_name.lower(), "Google Inc.")
 
-    def fill_out_missing_chromecast_info(self) -> "ChromecastInfo":
+    def fill_out_missing_chromecast_info(self) -> ChromecastInfo:
         """Return a new ChromecastInfo object with missing attributes filled in.
 
         Uses blocking HTTP / HTTPS.
diff --git a/homeassistant/components/counter/__init__.py b/homeassistant/components/counter/__init__.py
index d23c90bcb937bdc567e3b63ae0d84c693df49355..868a74cc7b76ab00e77d27e5b2a8677dc346fd64 100644
--- a/homeassistant/components/counter/__init__.py
+++ b/homeassistant/components/counter/__init__.py
@@ -1,4 +1,6 @@
 """Component to count within automations."""
+from __future__ import annotations
+
 import logging
 from typing import Dict, Optional
 
@@ -179,7 +181,7 @@ class Counter(RestoreEntity):
         self.editable: bool = True
 
     @classmethod
-    def from_yaml(cls, config: Dict) -> "Counter":
+    def from_yaml(cls, config: Dict) -> Counter:
         """Create counter instance from yaml config."""
         counter = cls(config)
         counter.editable = False
diff --git a/homeassistant/components/esphome/sensor.py b/homeassistant/components/esphome/sensor.py
index fbf3925953b01f72cc41792f150884dbee6bcaac..a5cc321cb08229a5d1542562d6429c9c4749d01d 100644
--- a/homeassistant/components/esphome/sensor.py
+++ b/homeassistant/components/esphome/sensor.py
@@ -78,11 +78,11 @@ class EsphomeTextSensor(EsphomeEntity):
     """A text sensor implementation for ESPHome."""
 
     @property
-    def _static_info(self) -> "TextSensorInfo":
+    def _static_info(self) -> TextSensorInfo:
         return super()._static_info
 
     @property
-    def _state(self) -> Optional["TextSensorState"]:
+    def _state(self) -> Optional[TextSensorState]:
         return super()._state
 
     @property
diff --git a/homeassistant/components/huawei_lte/config_flow.py b/homeassistant/components/huawei_lte/config_flow.py
index ba8baedcaf7a580f84da3c3f088392e7438a3692..350ad5bca0d5ed8ed2d980dbc9d06fbfafeced44 100644
--- a/homeassistant/components/huawei_lte/config_flow.py
+++ b/homeassistant/components/huawei_lte/config_flow.py
@@ -1,4 +1,5 @@
 """Config flow for the Huawei LTE platform."""
+from __future__ import annotations
 
 from collections import OrderedDict
 import logging
@@ -48,7 +49,7 @@ class ConfigFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
     @callback
     def async_get_options_flow(
         config_entry: config_entries.ConfigEntry,
-    ) -> "OptionsFlowHandler":
+    ) -> OptionsFlowHandler:
         """Get options flow."""
         return OptionsFlowHandler(config_entry)
 
diff --git a/homeassistant/components/huawei_lte/notify.py b/homeassistant/components/huawei_lte/notify.py
index 5659e66ea98dfbb32c5c9aed46514ce22e6c9244..ef354fefaf37de22c77c960f4fb80c4d5d6d2c02 100644
--- a/homeassistant/components/huawei_lte/notify.py
+++ b/homeassistant/components/huawei_lte/notify.py
@@ -1,4 +1,5 @@
 """Support for Huawei LTE router notifications."""
+from __future__ import annotations
 
 import logging
 import time
@@ -21,7 +22,7 @@ async def async_get_service(
     hass: HomeAssistantType,
     config: Dict[str, Any],
     discovery_info: Optional[Dict[str, Any]] = None,
-) -> Optional["HuaweiLteSmsNotificationService"]:
+) -> Optional[HuaweiLteSmsNotificationService]:
     """Get the notification service."""
     if discovery_info is None:
         return None
diff --git a/homeassistant/components/input_boolean/__init__.py b/homeassistant/components/input_boolean/__init__.py
index 1b996722c01867822d242916f56df2d41364495b..fbfe4cd0454a1b108521e3ebd14307c859937cfb 100644
--- a/homeassistant/components/input_boolean/__init__.py
+++ b/homeassistant/components/input_boolean/__init__.py
@@ -1,4 +1,6 @@
 """Support to keep track of user controlled booleans for within automation."""
+from __future__ import annotations
+
 import logging
 import typing
 
@@ -150,7 +152,7 @@ class InputBoolean(ToggleEntity, RestoreEntity):
         self._state = config.get(CONF_INITIAL)
 
     @classmethod
-    def from_yaml(cls, config: typing.Dict) -> "InputBoolean":
+    def from_yaml(cls, config: typing.Dict) -> InputBoolean:
         """Return entity instance initialized from yaml storage."""
         input_bool = cls(config)
         input_bool.entity_id = f"{DOMAIN}.{config[CONF_ID]}"
diff --git a/homeassistant/components/input_datetime/__init__.py b/homeassistant/components/input_datetime/__init__.py
index 9589fe9a7ea08aa10bbc86b957f17c3d85f8844d..adefa36639a719349ac293537025335534b6bd59 100644
--- a/homeassistant/components/input_datetime/__init__.py
+++ b/homeassistant/components/input_datetime/__init__.py
@@ -1,4 +1,6 @@
 """Support to select a date and/or a time."""
+from __future__ import annotations
+
 import datetime as py_datetime
 import logging
 import typing
@@ -228,7 +230,7 @@ class InputDatetime(RestoreEntity):
             )
 
     @classmethod
-    def from_yaml(cls, config: typing.Dict) -> "InputDatetime":
+    def from_yaml(cls, config: typing.Dict) -> InputDatetime:
         """Return entity instance initialized from yaml storage."""
         input_dt = cls(config)
         input_dt.entity_id = f"{DOMAIN}.{config[CONF_ID]}"
diff --git a/homeassistant/components/input_number/__init__.py b/homeassistant/components/input_number/__init__.py
index 5cad0f49c887c98750ed55d977025738d40b7bcd..b68e6fff45da9b2194420e1869d18e837f37e8b3 100644
--- a/homeassistant/components/input_number/__init__.py
+++ b/homeassistant/components/input_number/__init__.py
@@ -1,4 +1,6 @@
 """Support to set a numeric value from a slider or text box."""
+from __future__ import annotations
+
 import logging
 import typing
 
@@ -202,7 +204,7 @@ class InputNumber(RestoreEntity):
         self._current_value = config.get(CONF_INITIAL)
 
     @classmethod
-    def from_yaml(cls, config: typing.Dict) -> "InputNumber":
+    def from_yaml(cls, config: typing.Dict) -> InputNumber:
         """Return entity instance initialized from yaml storage."""
         input_num = cls(config)
         input_num.entity_id = f"{DOMAIN}.{config[CONF_ID]}"
diff --git a/homeassistant/components/input_select/__init__.py b/homeassistant/components/input_select/__init__.py
index a390d8e190150f4e3b9a14c7bfa91029ab82dfd1..f6831dc3e887bab822547648cffb700e749d3c13 100644
--- a/homeassistant/components/input_select/__init__.py
+++ b/homeassistant/components/input_select/__init__.py
@@ -1,4 +1,6 @@
 """Support to select an option from a list."""
+from __future__ import annotations
+
 import logging
 import typing
 
@@ -207,7 +209,7 @@ class InputSelect(RestoreEntity):
         self._current_option = config.get(CONF_INITIAL)
 
     @classmethod
-    def from_yaml(cls, config: typing.Dict) -> "InputSelect":
+    def from_yaml(cls, config: typing.Dict) -> InputSelect:
         """Return entity instance initialized from yaml storage."""
         input_select = cls(config)
         input_select.entity_id = f"{DOMAIN}.{config[CONF_ID]}"
diff --git a/homeassistant/components/input_text/__init__.py b/homeassistant/components/input_text/__init__.py
index 76eb51eedd557536dde0abad1c278b5dfcfd6abc..3f8c1d6a13e5a304dd38e294769ba94e1f6668a4 100644
--- a/homeassistant/components/input_text/__init__.py
+++ b/homeassistant/components/input_text/__init__.py
@@ -1,4 +1,6 @@
 """Support to enter a value into a text box."""
+from __future__ import annotations
+
 import logging
 import typing
 
@@ -196,7 +198,7 @@ class InputText(RestoreEntity):
         self._current_value = config.get(CONF_INITIAL)
 
     @classmethod
-    def from_yaml(cls, config: typing.Dict) -> "InputText":
+    def from_yaml(cls, config: typing.Dict) -> InputText:
         """Return entity instance initialized from yaml storage."""
         input_text = cls(config)
         input_text.entity_id = f"{DOMAIN}.{config[CONF_ID]}"
diff --git a/homeassistant/components/light/__init__.py b/homeassistant/components/light/__init__.py
index c46b7568b59e134e3050f958a73a0e7a2fc42b4d..55476c754f20ac49415b35a527411620b4478da7 100644
--- a/homeassistant/components/light/__init__.py
+++ b/homeassistant/components/light/__init__.py
@@ -1,4 +1,6 @@
 """Provides functionality to interact with lights."""
+from __future__ import annotations
+
 import csv
 import dataclasses
 from datetime import timedelta
@@ -327,7 +329,7 @@ class Profile:
         )
 
     @classmethod
-    def from_csv_row(cls, csv_row: List[str]) -> "Profile":
+    def from_csv_row(cls, csv_row: List[str]) -> Profile:
         """Create profile from a CSV row tuple."""
         return cls(*cls.SCHEMA(csv_row))
 
diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py
index d670acb7af98b593c8c55b6c0c25187b023733ab..87ecff7a54cd4bf6371bfae5ebe42ba6b1a70339 100644
--- a/homeassistant/components/media_player/__init__.py
+++ b/homeassistant/components/media_player/__init__.py
@@ -1,4 +1,6 @@
 """Component to interface with various media players."""
+from __future__ import annotations
+
 import asyncio
 import base64
 import collections
@@ -851,7 +853,7 @@ class MediaPlayerEntity(Entity):
         self,
         media_content_type: Optional[str] = None,
         media_content_id: Optional[str] = None,
-    ) -> "BrowseMedia":
+    ) -> BrowseMedia:
         """Return a BrowseMedia instance.
 
         The BrowseMedia instance will be used by the
diff --git a/homeassistant/components/media_source/models.py b/homeassistant/components/media_source/models.py
index e16ecbe578ecf180d78445255cd196e617092647..98b817344d9caf90d9a68b1bbaa4a32499abc25a 100644
--- a/homeassistant/components/media_source/models.py
+++ b/homeassistant/components/media_source/models.py
@@ -1,4 +1,6 @@
 """Media Source models."""
+from __future__ import annotations
+
 from abc import ABC
 from dataclasses import dataclass
 from typing import List, Optional, Tuple
@@ -82,12 +84,12 @@ class MediaSourceItem:
         return await self.async_media_source().async_resolve_media(self)
 
     @callback
-    def async_media_source(self) -> "MediaSource":
+    def async_media_source(self) -> MediaSource:
         """Return media source that owns this item."""
         return self.hass.data[DOMAIN][self.domain]
 
     @classmethod
-    def from_uri(cls, hass: HomeAssistant, uri: str) -> "MediaSourceItem":
+    def from_uri(cls, hass: HomeAssistant, uri: str) -> MediaSourceItem:
         """Create an item from a uri."""
         match = URI_SCHEME_REGEX.match(uri)
 
diff --git a/homeassistant/components/timer/__init__.py b/homeassistant/components/timer/__init__.py
index b123bbadf7dd6ff17062ed1c3702da452df53f81..b0ff60bbcaef296368b572db5afe6df98b2f64f5 100644
--- a/homeassistant/components/timer/__init__.py
+++ b/homeassistant/components/timer/__init__.py
@@ -1,4 +1,6 @@
 """Support for Timers."""
+from __future__ import annotations
+
 from datetime import datetime, timedelta
 import logging
 from typing import Dict, Optional
@@ -198,7 +200,7 @@ class Timer(RestoreEntity):
         self._listener = None
 
     @classmethod
-    def from_yaml(cls, config: Dict) -> "Timer":
+    def from_yaml(cls, config: Dict) -> Timer:
         """Return entity instance initialized from yaml storage."""
         timer = cls(config)
         timer.entity_id = ENTITY_ID_FORMAT.format(config[CONF_ID])
diff --git a/homeassistant/components/transmission/__init__.py b/homeassistant/components/transmission/__init__.py
index 76d9aedd8d53d95643ae07a3aa3f967d58a74491..5a37cc4d771719808e8e714aaf8533ca68d7b79f 100644
--- a/homeassistant/components/transmission/__init__.py
+++ b/homeassistant/components/transmission/__init__.py
@@ -1,4 +1,6 @@
 """Support for the Transmission BitTorrent client API."""
+from __future__ import annotations
+
 from datetime import timedelta
 import logging
 from typing import List
@@ -176,7 +178,7 @@ class TransmissionClient:
         self.unsub_timer = None
 
     @property
-    def api(self) -> "TransmissionData":
+    def api(self) -> TransmissionData:
         """Return the TransmissionData object."""
         return self._tm_data
 
diff --git a/homeassistant/components/zha/core/channels/__init__.py b/homeassistant/components/zha/core/channels/__init__.py
index 1bd8a52b6e6b084b1d8081b809308d00d69800f6..852d576c03593a7ff089bfbb001c2446d5197179 100644
--- a/homeassistant/components/zha/core/channels/__init__.py
+++ b/homeassistant/components/zha/core/channels/__init__.py
@@ -1,4 +1,6 @@
 """Channels module for Zigbee Home Automation."""
+from __future__ import annotations
+
 import asyncio
 from typing import Any, Dict, List, Optional, Tuple, Union
 
@@ -47,7 +49,7 @@ class Channels:
         self._zha_device = zha_device
 
     @property
-    def pools(self) -> List["ChannelPool"]:
+    def pools(self) -> List[ChannelPool]:
         """Return channel pools list."""
         return self._pools
 
@@ -102,7 +104,7 @@ class Channels:
         }
 
     @classmethod
-    def new(cls, zha_device: zha_typing.ZhaDeviceType) -> "Channels":
+    def new(cls, zha_device: zha_typing.ZhaDeviceType) -> Channels:
         """Create new instance."""
         channels = cls(zha_device)
         for ep_id in sorted(zha_device.device.endpoints):
@@ -263,7 +265,7 @@ class ChannelPool:
         )
 
     @classmethod
-    def new(cls, channels: Channels, ep_id: int) -> "ChannelPool":
+    def new(cls, channels: Channels, ep_id: int) -> ChannelPool:
         """Create new channels for an endpoint."""
         pool = cls(channels, ep_id)
         pool.add_all_channels()
diff --git a/homeassistant/components/zone/__init__.py b/homeassistant/components/zone/__init__.py
index 1eef9636e36318005572e380a5d1df3e071c24d3..e1d48cbe1ff5cedd3fc70d68f9d0f927c41d18ca 100644
--- a/homeassistant/components/zone/__init__.py
+++ b/homeassistant/components/zone/__init__.py
@@ -1,4 +1,6 @@
 """Support for the definition of zones."""
+from __future__ import annotations
+
 import logging
 from typing import Any, Dict, Optional, cast
 
@@ -285,7 +287,7 @@ class Zone(entity.Entity):
         self._generate_attrs()
 
     @classmethod
-    def from_yaml(cls, config: Dict) -> "Zone":
+    def from_yaml(cls, config: Dict) -> Zone:
         """Return entity instance initialized from yaml storage."""
         zone = cls(config)
         zone.editable = False