30 lines
727 B
Python
30 lines
727 B
Python
"""Common vera code."""
|
|
import logging
|
|
from typing import DefaultDict, List, NamedTuple, Set
|
|
|
|
import pyvera as pv
|
|
|
|
from homeassistant.components.scene import DOMAIN as SCENE_DOMAIN
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
class ControllerData(NamedTuple):
|
|
"""Controller data."""
|
|
|
|
controller: pv.VeraController
|
|
devices: DefaultDict[str, List[pv.VeraDevice]]
|
|
scenes: List[pv.VeraScene]
|
|
|
|
|
|
def get_configured_platforms(controller_data: ControllerData) -> Set[str]:
|
|
"""Get configured platforms for a controller."""
|
|
platforms = []
|
|
for platform in controller_data.devices:
|
|
platforms.append(platform)
|
|
|
|
if controller_data.scenes:
|
|
platforms.append(SCENE_DOMAIN)
|
|
|
|
return set(platforms)
|