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