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