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)
|