Add support for multiple vera controller hubs (#33613)
This commit is contained in:
parent
938e06c00e
commit
903afb62d0
24 changed files with 323 additions and 149 deletions
|
@ -5,9 +5,12 @@ from typing import DefaultDict, List, NamedTuple, Set
|
|||
import pyvera as pv
|
||||
|
||||
from homeassistant.components.scene import DOMAIN as SCENE_DOMAIN
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.event import call_later
|
||||
|
||||
from .const import DOMAIN
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -17,6 +20,7 @@ class ControllerData(NamedTuple):
|
|||
controller: pv.VeraController
|
||||
devices: DefaultDict[str, List[pv.VeraDevice]]
|
||||
scenes: List[pv.VeraScene]
|
||||
config_entry: ConfigEntry
|
||||
|
||||
|
||||
def get_configured_platforms(controller_data: ControllerData) -> Set[str]:
|
||||
|
@ -31,6 +35,20 @@ def get_configured_platforms(controller_data: ControllerData) -> Set[str]:
|
|||
return set(platforms)
|
||||
|
||||
|
||||
def get_controller_data(
|
||||
hass: HomeAssistant, config_entry: ConfigEntry
|
||||
) -> ControllerData:
|
||||
"""Get controller data from hass data."""
|
||||
return hass.data[DOMAIN][config_entry.entry_id]
|
||||
|
||||
|
||||
def set_controller_data(
|
||||
hass: HomeAssistant, config_entry: ConfigEntry, data: ControllerData
|
||||
) -> None:
|
||||
"""Set controller data in hass data."""
|
||||
hass.data[DOMAIN][config_entry.entry_id] = data
|
||||
|
||||
|
||||
class SubscriptionRegistry(pv.AbstractSubscriptionRegistry):
|
||||
"""Manages polling for data from vera."""
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue