Add missing config entry type for Husqvarna (#147455)

Add missing type for husqvarna
This commit is contained in:
Paulus Schoutsen 2025-06-24 16:37:35 -04:00 committed by GitHub
parent 19b773df85
commit c93e45c0f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 9 deletions

View File

@ -15,12 +15,14 @@ from homeassistant.exceptions import ConfigEntryNotReady
from .const import LOGGER from .const import LOGGER
from .coordinator import HusqvarnaCoordinator from .coordinator import HusqvarnaCoordinator
type HusqvarnaConfigEntry = ConfigEntry[HusqvarnaCoordinator]
PLATFORMS = [ PLATFORMS = [
Platform.LAWN_MOWER, Platform.LAWN_MOWER,
] ]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_setup_entry(hass: HomeAssistant, entry: HusqvarnaConfigEntry) -> bool:
"""Set up Husqvarna Autoconnect Bluetooth from a config entry.""" """Set up Husqvarna Autoconnect Bluetooth from a config entry."""
address = entry.data[CONF_ADDRESS] address = entry.data[CONF_ADDRESS]
channel_id = entry.data[CONF_CLIENT_ID] channel_id = entry.data[CONF_CLIENT_ID]
@ -54,7 +56,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return True return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_unload_entry(hass: HomeAssistant, entry: HusqvarnaConfigEntry) -> bool:
"""Unload a config entry.""" """Unload a config entry."""
if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
coordinator: HusqvarnaCoordinator = entry.runtime_data coordinator: HusqvarnaCoordinator = entry.runtime_data

View File

@ -3,30 +3,31 @@
from __future__ import annotations from __future__ import annotations
from datetime import timedelta from datetime import timedelta
from typing import TYPE_CHECKING
from automower_ble.mower import Mower from automower_ble.mower import Mower
from bleak import BleakError from bleak import BleakError
from bleak_retry_connector import close_stale_connections_by_address from bleak_retry_connector import close_stale_connections_by_address
from homeassistant.components import bluetooth from homeassistant.components import bluetooth
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN, LOGGER from .const import DOMAIN, LOGGER
if TYPE_CHECKING:
from . import HusqvarnaConfigEntry
SCAN_INTERVAL = timedelta(seconds=60) SCAN_INTERVAL = timedelta(seconds=60)
class HusqvarnaCoordinator(DataUpdateCoordinator[dict[str, bytes]]): class HusqvarnaCoordinator(DataUpdateCoordinator[dict[str, bytes]]):
"""Class to manage fetching data.""" """Class to manage fetching data."""
config_entry: ConfigEntry
def __init__( def __init__(
self, self,
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: HusqvarnaConfigEntry,
mower: Mower, mower: Mower,
address: str, address: str,
channel_id: str, channel_id: str,

View File

@ -10,10 +10,10 @@ from homeassistant.components.lawn_mower import (
LawnMowerEntity, LawnMowerEntity,
LawnMowerEntityFeature, LawnMowerEntityFeature,
) )
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import HusqvarnaConfigEntry
from .const import LOGGER from .const import LOGGER
from .coordinator import HusqvarnaCoordinator from .coordinator import HusqvarnaCoordinator
from .entity import HusqvarnaAutomowerBleEntity from .entity import HusqvarnaAutomowerBleEntity
@ -21,11 +21,11 @@ from .entity import HusqvarnaAutomowerBleEntity
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: HusqvarnaConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback, async_add_entities: AddConfigEntryEntitiesCallback,
) -> None: ) -> None:
"""Set up AutomowerLawnMower integration from a config entry.""" """Set up AutomowerLawnMower integration from a config entry."""
coordinator: HusqvarnaCoordinator = config_entry.runtime_data coordinator = config_entry.runtime_data
address = coordinator.address address = coordinator.address
async_add_entities( async_add_entities(