1 """Support the ElkM1 Gold and ElkM1 EZ8 alarm/integration panels."""
3 from datetime
import timedelta
5 from elkm1_lib.const
import Max
6 import voluptuous
as vol
15 CONF_AUTO_CONFIGURE =
"auto_configure"
17 CONF_COUNTER =
"counter"
18 CONF_KEYPAD =
"keypad"
19 CONF_OUTPUT =
"output"
21 CONF_SETTING =
"setting"
23 CONF_THERMOSTAT =
"thermostat"
25 DISCOVER_SCAN_TIMEOUT = 10
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,
40 EVENT_ELKM1_KEYPAD_KEY_PRESSED =
"elkm1.keypad_key_pressed"
43 ATTR_KEYPAD_ID =
"keypad_id"
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"
52 ELK_USER_CODE_SERVICE_SCHEMA: VolDictType = {
53 vol.Required(ATTR_CODE): vol.All(vol.Coerce(int), vol.Range(0, 999999))