mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 04:37:06 +00:00
Explicitly pass in the config_entry in totalconnect coordinator (#137898)
explicitly pass in the config_entry in coordinator
This commit is contained in:
parent
89e29dd14f
commit
028c74e488
@ -3,18 +3,15 @@
|
||||
from total_connect_client.client import TotalConnectClient
|
||||
from total_connect_client.exceptions import AuthenticationError
|
||||
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.exceptions import ConfigEntryAuthFailed
|
||||
|
||||
from .const import AUTO_BYPASS, CONF_USERCODES
|
||||
from .coordinator import TotalConnectDataUpdateCoordinator
|
||||
from .coordinator import TotalConnectConfigEntry, TotalConnectDataUpdateCoordinator
|
||||
|
||||
PLATFORMS = [Platform.ALARM_CONTROL_PANEL, Platform.BINARY_SENSOR, Platform.BUTTON]
|
||||
|
||||
type TotalConnectConfigEntry = ConfigEntry[TotalConnectDataUpdateCoordinator]
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant, entry: TotalConnectConfigEntry
|
||||
@ -41,7 +38,7 @@ async def async_setup_entry(
|
||||
"TotalConnect authentication failed during setup"
|
||||
) from exception
|
||||
|
||||
coordinator = TotalConnectDataUpdateCoordinator(hass, client)
|
||||
coordinator = TotalConnectDataUpdateCoordinator(hass, entry, client)
|
||||
await coordinator.async_config_entry_first_refresh()
|
||||
|
||||
entry.runtime_data = coordinator
|
||||
|
@ -12,14 +12,13 @@ from homeassistant.components.alarm_control_panel import (
|
||||
AlarmControlPanelState,
|
||||
CodeFormat,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.exceptions import HomeAssistantError, ServiceValidationError
|
||||
from homeassistant.helpers import entity_platform
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from .const import CODE_REQUIRED, DOMAIN
|
||||
from .coordinator import TotalConnectDataUpdateCoordinator
|
||||
from .coordinator import TotalConnectConfigEntry, TotalConnectDataUpdateCoordinator
|
||||
from .entity import TotalConnectLocationEntity
|
||||
|
||||
SERVICE_ALARM_ARM_AWAY_INSTANT = "arm_away_instant"
|
||||
@ -27,7 +26,9 @@ SERVICE_ALARM_ARM_HOME_INSTANT = "arm_home_instant"
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||
hass: HomeAssistant,
|
||||
entry: TotalConnectConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up TotalConnect alarm panels based on a config entry."""
|
||||
coordinator = entry.runtime_data
|
||||
|
@ -12,12 +12,11 @@ from homeassistant.components.binary_sensor import (
|
||||
BinarySensorEntity,
|
||||
BinarySensorEntityDescription,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import EntityCategory
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from .coordinator import TotalConnectDataUpdateCoordinator
|
||||
from .coordinator import TotalConnectConfigEntry, TotalConnectDataUpdateCoordinator
|
||||
from .entity import TotalConnectLocationEntity, TotalConnectZoneEntity
|
||||
|
||||
LOW_BATTERY = "low_battery"
|
||||
@ -119,7 +118,9 @@ LOCATION_BINARY_SENSORS: tuple[TotalConnectAlarmBinarySensorEntityDescription, .
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||
hass: HomeAssistant,
|
||||
entry: TotalConnectConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up TotalConnect device sensors based on a config entry."""
|
||||
sensors: list = []
|
||||
|
@ -7,12 +7,11 @@ from total_connect_client.location import TotalConnectLocation
|
||||
from total_connect_client.zone import TotalConnectZone
|
||||
|
||||
from homeassistant.components.button import ButtonEntity, ButtonEntityDescription
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import EntityCategory
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from .coordinator import TotalConnectDataUpdateCoordinator
|
||||
from .coordinator import TotalConnectConfigEntry, TotalConnectDataUpdateCoordinator
|
||||
from .entity import TotalConnectLocationEntity, TotalConnectZoneEntity
|
||||
|
||||
|
||||
@ -38,7 +37,9 @@ PANEL_BUTTONS: tuple[TotalConnectButtonEntityDescription, ...] = (
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
|
||||
hass: HomeAssistant,
|
||||
entry: TotalConnectConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up TotalConnect buttons based on a config entry."""
|
||||
buttons: list = []
|
||||
|
@ -20,17 +20,28 @@ from .const import DOMAIN
|
||||
SCAN_INTERVAL = timedelta(seconds=30)
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
type TotalConnectConfigEntry = ConfigEntry[TotalConnectDataUpdateCoordinator]
|
||||
|
||||
|
||||
class TotalConnectDataUpdateCoordinator(DataUpdateCoordinator[None]):
|
||||
"""Class to fetch data from TotalConnect."""
|
||||
|
||||
config_entry: ConfigEntry
|
||||
config_entry: TotalConnectConfigEntry
|
||||
|
||||
def __init__(self, hass: HomeAssistant, client: TotalConnectClient) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
hass: HomeAssistant,
|
||||
config_entry: TotalConnectConfigEntry,
|
||||
client: TotalConnectClient,
|
||||
) -> None:
|
||||
"""Initialize."""
|
||||
self.client = client
|
||||
super().__init__(
|
||||
hass, logger=_LOGGER, name=DOMAIN, update_interval=SCAN_INTERVAL
|
||||
hass,
|
||||
logger=_LOGGER,
|
||||
config_entry=config_entry,
|
||||
name=DOMAIN,
|
||||
update_interval=SCAN_INTERVAL,
|
||||
)
|
||||
|
||||
async def _async_update_data(self) -> None:
|
||||
|
@ -5,9 +5,10 @@ from __future__ import annotations
|
||||
from typing import Any
|
||||
|
||||
from homeassistant.components.diagnostics import async_redact_data
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from .coordinator import TotalConnectConfigEntry
|
||||
|
||||
TO_REDACT = [
|
||||
"username",
|
||||
"Password",
|
||||
@ -22,7 +23,7 @@ TO_REDACT = [
|
||||
|
||||
|
||||
async def async_get_config_entry_diagnostics(
|
||||
hass: HomeAssistant, config_entry: ConfigEntry
|
||||
hass: HomeAssistant, config_entry: TotalConnectConfigEntry
|
||||
) -> dict[str, Any]:
|
||||
"""Return diagnostics for a config entry."""
|
||||
client = config_entry.runtime_data.client
|
||||
|
Loading…
x
Reference in New Issue
Block a user