mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 01:08:12 +00:00
Use entry.runtime_data in fibaro (#133235)
This commit is contained in:
parent
314076b85f
commit
14a61d94e2
@ -28,8 +28,9 @@ from homeassistant.util import slugify
|
||||
|
||||
from .const import CONF_IMPORT_PLUGINS, DOMAIN
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
type FibaroConfigEntry = ConfigEntry[FibaroController]
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
PLATFORMS = [
|
||||
Platform.BINARY_SENSOR,
|
||||
@ -381,7 +382,7 @@ def init_controller(data: Mapping[str, Any]) -> FibaroController:
|
||||
return controller
|
||||
|
||||
|
||||
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
async def async_setup_entry(hass: HomeAssistant, entry: FibaroConfigEntry) -> bool:
|
||||
"""Set up the Fibaro Component.
|
||||
|
||||
The unique id of the config entry is the serial number of the home center.
|
||||
@ -395,7 +396,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
except FibaroAuthFailed as auth_ex:
|
||||
raise ConfigEntryAuthFailed from auth_ex
|
||||
|
||||
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = controller
|
||||
entry.runtime_data = controller
|
||||
|
||||
# register the hub device info separately as the hub has sometimes no entities
|
||||
device_registry = dr.async_get(hass)
|
||||
@ -417,25 +418,24 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
return True
|
||||
|
||||
|
||||
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
async def async_unload_entry(hass: HomeAssistant, entry: FibaroConfigEntry) -> bool:
|
||||
"""Unload a config entry."""
|
||||
_LOGGER.debug("Shutting down Fibaro connection")
|
||||
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
||||
|
||||
hass.data[DOMAIN][entry.entry_id].disable_state_handler()
|
||||
hass.data[DOMAIN].pop(entry.entry_id)
|
||||
entry.runtime_data.disable_state_handler()
|
||||
|
||||
return unload_ok
|
||||
|
||||
|
||||
async def async_remove_config_entry_device(
|
||||
hass: HomeAssistant, config_entry: ConfigEntry, device_entry: DeviceEntry
|
||||
hass: HomeAssistant, config_entry: FibaroConfigEntry, device_entry: DeviceEntry
|
||||
) -> bool:
|
||||
"""Remove a device entry from fibaro integration.
|
||||
|
||||
Only removing devices which are not present anymore are eligible to be removed.
|
||||
"""
|
||||
controller: FibaroController = hass.data[DOMAIN][config_entry.entry_id]
|
||||
controller = config_entry.runtime_data
|
||||
for identifiers in controller.get_all_device_identifiers():
|
||||
if device_entry.identifiers == identifiers:
|
||||
# Fibaro device is still served by the controller,
|
||||
|
@ -12,13 +12,11 @@ from homeassistant.components.binary_sensor import (
|
||||
BinarySensorDeviceClass,
|
||||
BinarySensorEntity,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import FibaroController
|
||||
from .const import DOMAIN
|
||||
from . import FibaroConfigEntry
|
||||
from .entity import FibaroEntity
|
||||
|
||||
SENSOR_TYPES = {
|
||||
@ -43,11 +41,11 @@ SENSOR_TYPES = {
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Perform the setup for Fibaro controller devices."""
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
async_add_entities(
|
||||
[
|
||||
FibaroBinarySensor(device)
|
||||
|
@ -17,13 +17,11 @@ from homeassistant.components.climate import (
|
||||
HVACAction,
|
||||
HVACMode,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import ATTR_TEMPERATURE, Platform, UnitOfTemperature
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import FibaroController
|
||||
from .const import DOMAIN
|
||||
from . import FibaroConfigEntry
|
||||
from .entity import FibaroEntity
|
||||
|
||||
PRESET_RESUME = "resume"
|
||||
@ -111,11 +109,11 @@ OP_MODE_ACTIONS = ("setMode", "setOperatingMode", "setThermostatMode")
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Perform the setup for Fibaro controller devices."""
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
async_add_entities(
|
||||
[
|
||||
FibaroThermostat(device)
|
||||
|
@ -13,23 +13,21 @@ from homeassistant.components.cover import (
|
||||
CoverEntity,
|
||||
CoverEntityFeature,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import FibaroController
|
||||
from .const import DOMAIN
|
||||
from . import FibaroConfigEntry
|
||||
from .entity import FibaroEntity
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up the Fibaro covers."""
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
async_add_entities(
|
||||
[FibaroCover(device) for device in controller.fibaro_devices[Platform.COVER]],
|
||||
True,
|
||||
|
@ -10,23 +10,21 @@ from homeassistant.components.event import (
|
||||
EventDeviceClass,
|
||||
EventEntity,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import FibaroController
|
||||
from .const import DOMAIN
|
||||
from . import FibaroConfigEntry
|
||||
from .entity import FibaroEntity
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up the Fibaro event entities."""
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
|
||||
# Each scene event represents a button on a device
|
||||
async_add_entities(
|
||||
|
@ -17,13 +17,11 @@ from homeassistant.components.light import (
|
||||
brightness_supported,
|
||||
color_supported,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import FibaroController
|
||||
from .const import DOMAIN
|
||||
from . import FibaroConfigEntry
|
||||
from .entity import FibaroEntity
|
||||
|
||||
PARALLEL_UPDATES = 2
|
||||
@ -52,11 +50,11 @@ def scaleto99(value: int | None) -> int:
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Perform the setup for Fibaro controller devices."""
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
async_add_entities(
|
||||
[FibaroLight(device) for device in controller.fibaro_devices[Platform.LIGHT]],
|
||||
True,
|
||||
|
@ -7,23 +7,21 @@ from typing import Any
|
||||
from pyfibaro.fibaro_device import DeviceModel
|
||||
|
||||
from homeassistant.components.lock import ENTITY_ID_FORMAT, LockEntity
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import FibaroController
|
||||
from .const import DOMAIN
|
||||
from . import FibaroConfigEntry
|
||||
from .entity import FibaroEntity
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up the Fibaro locks."""
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
async_add_entities(
|
||||
[FibaroLock(device) for device in controller.fibaro_devices[Platform.LOCK]],
|
||||
True,
|
||||
|
@ -7,23 +7,22 @@ from typing import Any
|
||||
from pyfibaro.fibaro_scene import SceneModel
|
||||
|
||||
from homeassistant.components.scene import Scene
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.device_registry import DeviceInfo
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.util import slugify
|
||||
|
||||
from . import FibaroController
|
||||
from . import FibaroConfigEntry, FibaroController
|
||||
from .const import DOMAIN
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Perform the setup for Fibaro scenes."""
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
async_add_entities(
|
||||
[FibaroScene(scene, controller) for scene in controller.read_scenes()],
|
||||
True,
|
||||
|
@ -13,7 +13,6 @@ from homeassistant.components.sensor import (
|
||||
SensorEntityDescription,
|
||||
SensorStateClass,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import (
|
||||
CONCENTRATION_PARTS_PER_MILLION,
|
||||
LIGHT_LUX,
|
||||
@ -27,8 +26,7 @@ from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.util import convert
|
||||
|
||||
from . import FibaroController
|
||||
from .const import DOMAIN
|
||||
from . import FibaroConfigEntry
|
||||
from .entity import FibaroEntity
|
||||
|
||||
# List of known sensors which represents a fibaro device
|
||||
@ -103,12 +101,12 @@ FIBARO_TO_HASS_UNIT: dict[str, str] = {
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up the Fibaro controller devices."""
|
||||
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
entities: list[SensorEntity] = [
|
||||
FibaroSensor(device, MAIN_SENSOR_TYPES.get(device.type))
|
||||
for device in controller.fibaro_devices[Platform.SENSOR]
|
||||
|
@ -7,23 +7,21 @@ from typing import Any
|
||||
from pyfibaro.fibaro_device import DeviceModel
|
||||
|
||||
from homeassistant.components.switch import ENTITY_ID_FORMAT, SwitchEntity
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import FibaroController
|
||||
from .const import DOMAIN
|
||||
from . import FibaroConfigEntry
|
||||
from .entity import FibaroEntity
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ConfigEntry,
|
||||
entry: FibaroConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up the Fibaro switches."""
|
||||
controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
|
||||
controller = entry.runtime_data
|
||||
async_add_entities(
|
||||
[FibaroSwitch(device) for device in controller.fibaro_devices[Platform.SWITCH]],
|
||||
True,
|
||||
|
Loading…
x
Reference in New Issue
Block a user