mirror of
https://github.com/home-assistant/core.git
synced 2025-07-30 08:47:09 +00:00
Move velux base entity to separate module (#126185)
This commit is contained in:
parent
da4f401d17
commit
93de46b50e
@ -1,11 +1,10 @@
|
|||||||
"""Support for VELUX KLF 200 devices."""
|
"""Support for VELUX KLF 200 devices."""
|
||||||
|
|
||||||
from pyvlx import Node, PyVLX, PyVLXException
|
from pyvlx import PyVLX, PyVLXException
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import CONF_HOST, CONF_PASSWORD, EVENT_HOMEASSISTANT_STOP
|
from homeassistant.const import CONF_HOST, CONF_PASSWORD, EVENT_HOMEASSISTANT_STOP
|
||||||
from homeassistant.core import HomeAssistant, ServiceCall, callback
|
from homeassistant.core import HomeAssistant, ServiceCall
|
||||||
from homeassistant.helpers.entity import Entity
|
|
||||||
|
|
||||||
from .const import DOMAIN, LOGGER, PLATFORMS
|
from .const import DOMAIN, LOGGER, PLATFORMS
|
||||||
|
|
||||||
@ -67,33 +66,3 @@ class VeluxModule:
|
|||||||
LOGGER.debug("Velux interface started")
|
LOGGER.debug("Velux interface started")
|
||||||
await self.pyvlx.load_scenes()
|
await self.pyvlx.load_scenes()
|
||||||
await self.pyvlx.load_nodes()
|
await self.pyvlx.load_nodes()
|
||||||
|
|
||||||
|
|
||||||
class VeluxEntity(Entity):
|
|
||||||
"""Abstraction for al Velux entities."""
|
|
||||||
|
|
||||||
_attr_should_poll = False
|
|
||||||
|
|
||||||
def __init__(self, node: Node, config_entry_id: str) -> None:
|
|
||||||
"""Initialize the Velux device."""
|
|
||||||
self.node = node
|
|
||||||
self._attr_unique_id = (
|
|
||||||
node.serial_number
|
|
||||||
if node.serial_number
|
|
||||||
else f"{config_entry_id}_{node.node_id}"
|
|
||||||
)
|
|
||||||
self._attr_name = node.name if node.name else f"#{node.node_id}"
|
|
||||||
|
|
||||||
@callback
|
|
||||||
def async_register_callbacks(self):
|
|
||||||
"""Register callbacks to update hass after device was changed."""
|
|
||||||
|
|
||||||
async def after_update_callback(device):
|
|
||||||
"""Call after device was updated."""
|
|
||||||
self.async_write_ha_state()
|
|
||||||
|
|
||||||
self.node.register_device_updated_cb(after_update_callback)
|
|
||||||
|
|
||||||
async def async_added_to_hass(self):
|
|
||||||
"""Store register state change callback."""
|
|
||||||
self.async_register_callbacks()
|
|
||||||
|
@ -18,7 +18,8 @@ from homeassistant.config_entries import ConfigEntry
|
|||||||
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 DOMAIN, VeluxEntity
|
from .const import DOMAIN
|
||||||
|
from .entity import VeluxEntity
|
||||||
|
|
||||||
PARALLEL_UPDATES = 1
|
PARALLEL_UPDATES = 1
|
||||||
|
|
||||||
|
36
homeassistant/components/velux/entity.py
Normal file
36
homeassistant/components/velux/entity.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
"""Support for VELUX KLF 200 devices."""
|
||||||
|
|
||||||
|
from pyvlx import Node
|
||||||
|
|
||||||
|
from homeassistant.core import callback
|
||||||
|
from homeassistant.helpers.entity import Entity
|
||||||
|
|
||||||
|
|
||||||
|
class VeluxEntity(Entity):
|
||||||
|
"""Abstraction for al Velux entities."""
|
||||||
|
|
||||||
|
_attr_should_poll = False
|
||||||
|
|
||||||
|
def __init__(self, node: Node, config_entry_id: str) -> None:
|
||||||
|
"""Initialize the Velux device."""
|
||||||
|
self.node = node
|
||||||
|
self._attr_unique_id = (
|
||||||
|
node.serial_number
|
||||||
|
if node.serial_number
|
||||||
|
else f"{config_entry_id}_{node.node_id}"
|
||||||
|
)
|
||||||
|
self._attr_name = node.name if node.name else f"#{node.node_id}"
|
||||||
|
|
||||||
|
@callback
|
||||||
|
def async_register_callbacks(self):
|
||||||
|
"""Register callbacks to update hass after device was changed."""
|
||||||
|
|
||||||
|
async def after_update_callback(device):
|
||||||
|
"""Call after device was updated."""
|
||||||
|
self.async_write_ha_state()
|
||||||
|
|
||||||
|
self.node.register_device_updated_cb(after_update_callback)
|
||||||
|
|
||||||
|
async def async_added_to_hass(self):
|
||||||
|
"""Store register state change callback."""
|
||||||
|
self.async_register_callbacks()
|
@ -11,7 +11,8 @@ from homeassistant.config_entries import ConfigEntry
|
|||||||
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 DOMAIN, VeluxEntity
|
from .const import DOMAIN
|
||||||
|
from .entity import VeluxEntity
|
||||||
|
|
||||||
PARALLEL_UPDATES = 1
|
PARALLEL_UPDATES = 1
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ from homeassistant.config_entries import ConfigEntry
|
|||||||
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 DOMAIN
|
from .const import DOMAIN
|
||||||
|
|
||||||
PARALLEL_UPDATES = 1
|
PARALLEL_UPDATES = 1
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user