1 """Common vera code."""
3 from __future__
import annotations
5 from collections
import defaultdict
6 from datetime
import datetime
7 from typing
import NamedTuple
16 from .const
import DOMAIN
20 """Controller data."""
22 controller: pv.VeraController
23 devices: defaultdict[Platform, list[pv.VeraDevice]]
24 scenes: list[pv.VeraScene]
25 config_entry: ConfigEntry
29 """Get configured platforms for a controller."""
30 platforms: list[Platform] =
list(controller_data.devices)
32 if controller_data.scenes:
33 platforms.append(Platform.SCENE)
39 hass: HomeAssistant, config_entry: ConfigEntry
41 """Get controller data from hass data."""
42 return hass.data[DOMAIN][config_entry.entry_id]
46 hass: HomeAssistant, config_entry: ConfigEntry, data: ControllerData
48 """Set controller data in hass data."""
49 hass.data[DOMAIN][config_entry.entry_id] = data
53 """Manages polling for data from vera."""
55 def __init__(self, hass: HomeAssistant) ->
None:
56 """Initialize the object."""
59 self.
_cancel_poll_cancel_poll: CALLBACK_TYPE |
None =
None
62 """Start polling for data."""
67 """Stop polling for data."""
80 if not self.poll_server_once():
None _schedule_poll(self, float delay)
None _run_poll_server(self, datetime now)
None __init__(self, HomeAssistant hass)
None set_controller_data(HomeAssistant hass, ConfigEntry config_entry, ControllerData data)
set[Platform] get_configured_platforms(ControllerData controller_data)
ControllerData get_controller_data(HomeAssistant hass, ConfigEntry config_entry)