1
0
mirror of https://github.com/home-assistant/core.git synced 2026-04-18 07:56:03 +01:00

Use runtime_data in obihai integration (#167037)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
epenet
2026-04-01 09:47:03 +02:00
committed by GitHub
parent c7cf78952e
commit 6dc391e169
3 changed files with 17 additions and 15 deletions

View File

@@ -6,10 +6,12 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import format_mac from homeassistant.helpers.device_registry import format_mac
from .connectivity import ObihaiConnection from .connectivity import ObihaiConnection
from .const import DOMAIN, LOGGER, PLATFORMS from .const import LOGGER, PLATFORMS
type ObihaiConfigEntry = ConfigEntry[ObihaiConnection]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_setup_entry(hass: HomeAssistant, entry: ObihaiConfigEntry) -> bool:
"""Set up from a config entry.""" """Set up from a config entry."""
requester = ObihaiConnection( requester = ObihaiConnection(
@@ -18,20 +20,20 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
password=entry.data[CONF_PASSWORD], password=entry.data[CONF_PASSWORD],
) )
await hass.async_add_executor_job(requester.update) await hass.async_add_executor_job(requester.update)
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = requester entry.runtime_data = requester
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True return True
async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_migrate_entry(hass: HomeAssistant, entry: ObihaiConfigEntry) -> bool:
"""Migrate old entry.""" """Migrate old entry."""
version = entry.version version = entry.version
LOGGER.debug("Migrating from version %s", version) LOGGER.debug("Migrating from version %s", version)
if version != 2: if version != 2:
requester: ObihaiConnection = hass.data[DOMAIN][entry.entry_id] requester = entry.runtime_data
device_mac = await hass.async_add_executor_job( device_mac = await hass.async_add_executor_job(
requester.pyobihai.get_device_mac requester.pyobihai.get_device_mac
@@ -45,6 +47,6 @@ async def async_migrate_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: ObihaiConfigEntry) -> 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)

View File

@@ -7,14 +7,14 @@ from homeassistant.components.button import (
ButtonEntity, ButtonEntity,
ButtonEntityDescription, 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.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import entity_platform from homeassistant.helpers import entity_platform
from . import ObihaiConfigEntry
from .connectivity import ObihaiConnection from .connectivity import ObihaiConnection
from .const import DOMAIN, OBIHAI from .const import OBIHAI
BUTTON_DESCRIPTION = ButtonEntityDescription( BUTTON_DESCRIPTION = ButtonEntityDescription(
key="reboot", key="reboot",
@@ -26,12 +26,12 @@ BUTTON_DESCRIPTION = ButtonEntityDescription(
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
entry: ConfigEntry, entry: ObihaiConfigEntry,
async_add_entities: entity_platform.AddConfigEntryEntitiesCallback, async_add_entities: entity_platform.AddConfigEntryEntitiesCallback,
) -> None: ) -> None:
"""Set up the Obihai sensor entries.""" """Set up the Obihai button entries."""
requester: ObihaiConnection = hass.data[DOMAIN][entry.entry_id] requester = entry.runtime_data
buttons = [ObihaiButton(requester)] buttons = [ObihaiButton(requester)]
async_add_entities(buttons, update_before_add=True) async_add_entities(buttons, update_before_add=True)

View File

@@ -7,24 +7,24 @@ import datetime
from requests.exceptions import RequestException from requests.exceptions import RequestException
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import ObihaiConfigEntry
from .connectivity import ObihaiConnection from .connectivity import ObihaiConnection
from .const import DOMAIN, LOGGER, OBIHAI from .const import LOGGER, OBIHAI
SCAN_INTERVAL = datetime.timedelta(seconds=5) SCAN_INTERVAL = datetime.timedelta(seconds=5)
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
entry: ConfigEntry, entry: ObihaiConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback, async_add_entities: AddConfigEntryEntitiesCallback,
) -> None: ) -> None:
"""Set up the Obihai sensor entries.""" """Set up the Obihai sensor entries."""
requester: ObihaiConnection = hass.data[DOMAIN][entry.entry_id] requester = entry.runtime_data
sensors = [ObihaiServiceSensors(requester, key) for key in requester.services] sensors = [ObihaiServiceSensors(requester, key) for key in requester.services]