1 """Support for Vanderbilt (formerly Siemens) SPC alarm systems."""
5 from pyspcwebgw
import SpcWebGateway
6 from pyspcwebgw.area
import Area
7 from pyspcwebgw.zone
import Zone
8 import voluptuous
as vol
17 _LOGGER = logging.getLogger(__name__)
19 CONF_WS_URL =
"ws_url"
20 CONF_API_URL =
"api_url"
25 SIGNAL_UPDATE_ALARM =
"spc_update_alarm_{}"
26 SIGNAL_UPDATE_SENSOR =
"spc_update_sensor_{}"
28 CONFIG_SCHEMA = vol.Schema(
32 vol.Required(CONF_WS_URL): cv.string,
33 vol.Required(CONF_API_URL): cv.string,
37 extra=vol.ALLOW_EXTRA,
41 async
def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
42 """Set up the SPC component."""
45 if isinstance(spc_object, Area):
47 elif isinstance(spc_object, Zone):
50 session = aiohttp_client.async_get_clientsession(hass)
55 api_url=config[DOMAIN].
get(CONF_API_URL),
56 ws_url=config[DOMAIN].
get(CONF_WS_URL),
57 async_callback=async_update_callback,
60 hass.data[DATA_API] = spc
62 if not await spc.async_load_parameters():
63 _LOGGER.error(
"Failed to load area/zone information from SPC")
67 hass.async_create_task(
68 discovery.async_load_platform(hass, Platform.BINARY_SENSOR, DOMAIN, {}, config)
72 hass.async_create_task(
73 discovery.async_load_platform(
74 hass, Platform.ALARM_CONTROL_PANEL, DOMAIN, {}, config
web.Response get(self, web.Request request, str config_key)
None async_update_callback(self)
bool async_setup(HomeAssistant hass, ConfigType config)
None async_dispatcher_send(HomeAssistant hass, str signal, *Any args)