Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Support the ElkM1 Gold and ElkM1 EZ8 alarm/integration panels."""
2 
3 from datetime import timedelta
4 
5 from elkm1_lib.const import Max
6 import voluptuous as vol
7 
8 from homeassistant.const import ATTR_CODE, CONF_ZONE
9 from homeassistant.helpers.typing import VolDictType
10 
11 DOMAIN = "elkm1"
12 
13 LOGIN_TIMEOUT = 20
14 
15 CONF_AUTO_CONFIGURE = "auto_configure"
16 CONF_AREA = "area"
17 CONF_COUNTER = "counter"
18 CONF_KEYPAD = "keypad"
19 CONF_OUTPUT = "output"
20 CONF_PLC = "plc"
21 CONF_SETTING = "setting"
22 CONF_TASK = "task"
23 CONF_THERMOSTAT = "thermostat"
24 
25 DISCOVER_SCAN_TIMEOUT = 10
26 DISCOVERY_INTERVAL = timedelta(minutes=15)
27 
28 ELK_ELEMENTS = {
29  CONF_AREA: Max.AREAS.value,
30  CONF_COUNTER: Max.COUNTERS.value,
31  CONF_KEYPAD: Max.KEYPADS.value,
32  CONF_OUTPUT: Max.OUTPUTS.value,
33  CONF_PLC: Max.LIGHTS.value,
34  CONF_SETTING: Max.SETTINGS.value,
35  CONF_TASK: Max.TASKS.value,
36  CONF_THERMOSTAT: Max.THERMOSTATS.value,
37  CONF_ZONE: Max.ZONES.value,
38 }
39 
40 EVENT_ELKM1_KEYPAD_KEY_PRESSED = "elkm1.keypad_key_pressed"
41 
42 
43 ATTR_KEYPAD_ID = "keypad_id"
44 ATTR_KEY = "key"
45 ATTR_KEY_NAME = "key_name"
46 ATTR_KEYPAD_NAME = "keypad_name"
47 ATTR_CHANGED_BY_KEYPAD = "changed_by_keypad"
48 ATTR_CHANGED_BY_ID = "changed_by_id"
49 ATTR_CHANGED_BY_TIME = "changed_by_time"
50 ATTR_VALUE = "value"
51 
52 ELK_USER_CODE_SERVICE_SCHEMA: VolDictType = {
53  vol.Required(ATTR_CODE): vol.All(vol.Coerce(int), vol.Range(0, 999999))
54 }