mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 16:57:10 +00:00
Explicitly pass in the config_entry in emoncms coordinator (#137743)
This commit is contained in:
parent
7fc92e4c25
commit
e9bfb6baee
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
from pyemoncms import EmoncmsClient
|
from pyemoncms import EmoncmsClient
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import CONF_API_KEY, CONF_URL, Platform
|
from homeassistant.const import CONF_API_KEY, CONF_URL, Platform
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_registry as er
|
||||||
@ -10,12 +9,10 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
|||||||
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
|
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
|
||||||
|
|
||||||
from .const import DOMAIN, EMONCMS_UUID_DOC_URL, LOGGER
|
from .const import DOMAIN, EMONCMS_UUID_DOC_URL, LOGGER
|
||||||
from .coordinator import EmoncmsCoordinator
|
from .coordinator import EmonCMSConfigEntry, EmoncmsCoordinator
|
||||||
|
|
||||||
PLATFORMS: list[Platform] = [Platform.SENSOR]
|
PLATFORMS: list[Platform] = [Platform.SENSOR]
|
||||||
|
|
||||||
type EmonCMSConfigEntry = ConfigEntry[EmoncmsCoordinator]
|
|
||||||
|
|
||||||
|
|
||||||
def _migrate_unique_id(
|
def _migrate_unique_id(
|
||||||
hass: HomeAssistant, entry: EmonCMSConfigEntry, emoncms_unique_id: str
|
hass: HomeAssistant, entry: EmonCMSConfigEntry, emoncms_unique_id: str
|
||||||
@ -68,7 +65,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: EmonCMSConfigEntry) -> b
|
|||||||
session=async_get_clientsession(hass),
|
session=async_get_clientsession(hass),
|
||||||
)
|
)
|
||||||
await _check_unique_id_migration(hass, entry, emoncms_client)
|
await _check_unique_id_migration(hass, entry, emoncms_client)
|
||||||
coordinator = EmoncmsCoordinator(hass, emoncms_client)
|
coordinator = EmoncmsCoordinator(hass, entry, emoncms_client)
|
||||||
await coordinator.async_config_entry_first_refresh()
|
await coordinator.async_config_entry_first_refresh()
|
||||||
entry.runtime_data = coordinator
|
entry.runtime_data = coordinator
|
||||||
|
|
||||||
@ -77,11 +74,11 @@ async def async_setup_entry(hass: HomeAssistant, entry: EmonCMSConfigEntry) -> b
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
async def update_listener(hass: HomeAssistant, entry: ConfigEntry):
|
async def update_listener(hass: HomeAssistant, entry: EmonCMSConfigEntry):
|
||||||
"""Handle options update."""
|
"""Handle options update."""
|
||||||
await hass.config_entries.async_reload(entry.entry_id)
|
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: EmonCMSConfigEntry) -> bool:
|
||||||
"""Unload a config entry."""
|
"""Unload a config entry."""
|
||||||
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
||||||
|
@ -5,24 +5,31 @@ from typing import Any
|
|||||||
|
|
||||||
from pyemoncms import EmoncmsClient
|
from pyemoncms import EmoncmsClient
|
||||||
|
|
||||||
|
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 CONF_MESSAGE, CONF_SUCCESS, LOGGER
|
from .const import CONF_MESSAGE, CONF_SUCCESS, LOGGER
|
||||||
|
|
||||||
|
type EmonCMSConfigEntry = ConfigEntry[EmoncmsCoordinator]
|
||||||
|
|
||||||
|
|
||||||
class EmoncmsCoordinator(DataUpdateCoordinator[list[dict[str, Any]] | None]):
|
class EmoncmsCoordinator(DataUpdateCoordinator[list[dict[str, Any]] | None]):
|
||||||
"""Emoncms Data Update Coordinator."""
|
"""Emoncms Data Update Coordinator."""
|
||||||
|
|
||||||
|
config_entry: EmonCMSConfigEntry
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
|
config_entry: EmonCMSConfigEntry,
|
||||||
emoncms_client: EmoncmsClient,
|
emoncms_client: EmoncmsClient,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize the emoncms data coordinator."""
|
"""Initialize the emoncms data coordinator."""
|
||||||
super().__init__(
|
super().__init__(
|
||||||
hass,
|
hass,
|
||||||
LOGGER,
|
LOGGER,
|
||||||
|
config_entry=config_entry,
|
||||||
name="emoncms_coordinator",
|
name="emoncms_coordinator",
|
||||||
update_interval=timedelta(seconds=60),
|
update_interval=timedelta(seconds=60),
|
||||||
)
|
)
|
||||||
|
@ -13,7 +13,7 @@ from homeassistant.components.sensor import (
|
|||||||
SensorEntityDescription,
|
SensorEntityDescription,
|
||||||
SensorStateClass,
|
SensorStateClass,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
|
from homeassistant.config_entries import SOURCE_IMPORT
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
CONCENTRATION_PARTS_PER_MILLION,
|
CONCENTRATION_PARTS_PER_MILLION,
|
||||||
@ -53,7 +53,7 @@ from .const import (
|
|||||||
FEED_NAME,
|
FEED_NAME,
|
||||||
FEED_TAG,
|
FEED_TAG,
|
||||||
)
|
)
|
||||||
from .coordinator import EmoncmsCoordinator
|
from .coordinator import EmonCMSConfigEntry, EmoncmsCoordinator
|
||||||
|
|
||||||
SENSORS: dict[str | None, SensorEntityDescription] = {
|
SENSORS: dict[str | None, SensorEntityDescription] = {
|
||||||
"kWh": SensorEntityDescription(
|
"kWh": SensorEntityDescription(
|
||||||
@ -288,7 +288,7 @@ async def async_setup_platform(
|
|||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: EmonCMSConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up the emoncms sensors."""
|
"""Set up the emoncms sensors."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user