Pass config entry to UpdateCoordinator in yale_smart_alarm (#132205)

This commit is contained in:
G Johansson 2024-12-04 10:45:47 +01:00 committed by GitHub
parent 8c6d638354
commit db266d80ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 20 additions and 15 deletions

View File

@ -27,17 +27,17 @@ async def async_setup_entry(hass: HomeAssistant, entry: YaleConfigEntry) -> bool
return True
async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None:
async def update_listener(hass: HomeAssistant, entry: YaleConfigEntry) -> None:
"""Handle options update."""
await hass.config_entries.async_reload(entry.entry_id)
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_unload_entry(hass: HomeAssistant, entry: YaleConfigEntry) -> bool:
"""Unload a config entry."""
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_migrate_entry(hass: HomeAssistant, entry: YaleConfigEntry) -> bool:
"""Migrate old entry."""
LOGGER.debug("Migrating from version %s", entry.version)

View File

@ -47,7 +47,7 @@ class YaleAlarmDevice(YaleAlarmEntity, AlarmControlPanelEntity):
def __init__(self, coordinator: YaleDataUpdateCoordinator) -> None:
"""Initialize the Yale Alarm Device."""
super().__init__(coordinator)
self._attr_unique_id = coordinator.entry.entry_id
self._attr_unique_id = coordinator.config_entry.entry_id
async def async_alarm_disarm(self, code: str | None = None) -> None:
"""Send disarm command."""
@ -84,7 +84,7 @@ class YaleAlarmDevice(YaleAlarmEntity, AlarmControlPanelEntity):
translation_domain=DOMAIN,
translation_key="set_alarm",
translation_placeholders={
"name": self.coordinator.entry.data[CONF_NAME],
"name": self.coordinator.config_entry.data[CONF_NAME],
"error": str(error),
},
) from error

View File

@ -108,7 +108,9 @@ class YaleProblemSensor(YaleAlarmEntity, BinarySensorEntity):
"""Initiate Yale Problem Sensor."""
super().__init__(coordinator)
self.entity_description = entity_description
self._attr_unique_id = f"{coordinator.entry.entry_id}-{entity_description.key}"
self._attr_unique_id = (
f"{coordinator.config_entry.entry_id}-{entity_description.key}"
)
@property
def is_on(self) -> bool:

View File

@ -9,12 +9,14 @@ from yalesmartalarmclient import YaleLock
from yalesmartalarmclient.client import YaleSmartAlarmClient
from yalesmartalarmclient.exceptions import AuthenticationError
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
if TYPE_CHECKING:
from . import YaleConfigEntry
from .const import DEFAULT_SCAN_INTERVAL, DOMAIN, LOGGER, YALE_BASE_ERRORS
@ -22,13 +24,14 @@ class YaleDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
"""A Yale Data Update Coordinator."""
yale: YaleSmartAlarmClient
config_entry: YaleConfigEntry
def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None:
def __init__(self, hass: HomeAssistant, config_entry: YaleConfigEntry) -> None:
"""Initialize the Yale hub."""
self.entry = entry
super().__init__(
hass,
LOGGER,
config_entry=config_entry,
name=DOMAIN,
update_interval=timedelta(seconds=DEFAULT_SCAN_INTERVAL),
always_update=False,
@ -40,8 +43,8 @@ class YaleDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
try:
self.yale = await self.hass.async_add_executor_job(
YaleSmartAlarmClient,
self.entry.data[CONF_USERNAME],
self.entry.data[CONF_PASSWORD],
self.config_entry.data[CONF_USERNAME],
self.config_entry.data[CONF_PASSWORD],
)
self.locks = await self.hass.async_add_executor_job(self.yale.get_locks)
except AuthenticationError as error:

View File

@ -25,7 +25,7 @@ class YaleEntity(CoordinatorEntity[YaleDataUpdateCoordinator]):
manufacturer=MANUFACTURER,
model=MODEL,
identifiers={(DOMAIN, data["address"])},
via_device=(DOMAIN, coordinator.entry.data[CONF_USERNAME]),
via_device=(DOMAIN, coordinator.config_entry.data[CONF_USERNAME]),
)
@ -43,7 +43,7 @@ class YaleLockEntity(CoordinatorEntity[YaleDataUpdateCoordinator]):
manufacturer=MANUFACTURER,
model=MODEL,
identifiers={(DOMAIN, lock.sid())},
via_device=(DOMAIN, coordinator.entry.data[CONF_USERNAME]),
via_device=(DOMAIN, coordinator.config_entry.data[CONF_USERNAME]),
)
self.lock_data = lock
@ -58,10 +58,10 @@ class YaleAlarmEntity(CoordinatorEntity[YaleDataUpdateCoordinator], Entity):
super().__init__(coordinator)
panel_info = coordinator.data["panel_info"]
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, coordinator.entry.data[CONF_USERNAME])},
identifiers={(DOMAIN, coordinator.config_entry.data[CONF_USERNAME])},
manufacturer=MANUFACTURER,
model=MODEL,
name=coordinator.entry.data[CONF_NAME],
name=coordinator.config_entry.data[CONF_NAME],
connections={(CONNECTION_NETWORK_MAC, panel_info["mac"])},
sw_version=panel_info["version"],
)