Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants used by insteon component."""
2 
3 import re
4 
5 from pyinsteon.groups import (
6  CO_SENSOR,
7  COVER,
8  DIMMABLE_FAN,
9  DIMMABLE_LIGHT,
10  DIMMABLE_LIGHT_MAIN,
11  DIMMABLE_OUTLET,
12  DOOR_SENSOR,
13  HEARTBEAT,
14  LEAK_SENSOR_WET,
15  LIGHT_SENSOR,
16  LOW_BATTERY,
17  MOTION_SENSOR,
18  NEW_SENSOR,
19  ON_OFF_OUTLET_BOTTOM,
20  ON_OFF_OUTLET_TOP,
21  ON_OFF_SWITCH,
22  ON_OFF_SWITCH_A,
23  ON_OFF_SWITCH_B,
24  ON_OFF_SWITCH_C,
25  ON_OFF_SWITCH_D,
26  ON_OFF_SWITCH_E,
27  ON_OFF_SWITCH_F,
28  ON_OFF_SWITCH_G,
29  ON_OFF_SWITCH_H,
30  ON_OFF_SWITCH_MAIN,
31  OPEN_CLOSE_SENSOR,
32  RELAY,
33  SENSOR_MALFUNCTION,
34  SMOKE_SENSOR,
35  TEST_SENSOR,
36 )
37 
38 from homeassistant.const import Platform
39 
40 DOMAIN = "insteon"
41 
42 INSTEON_PLATFORMS = [
43  Platform.BINARY_SENSOR,
44  Platform.CLIMATE,
45  Platform.COVER,
46  Platform.FAN,
47  Platform.LIGHT,
48  Platform.LOCK,
49  Platform.SWITCH,
50 ]
51 
52 X10_PLATFORMS = [
53  Platform.BINARY_SENSOR,
54  Platform.SWITCH,
55  Platform.LIGHT,
56 ]
57 
58 CONF_IP_PORT = "ip_port"
59 CONF_HUB_USERNAME = "username"
60 CONF_HUB_PASSWORD = "password"
61 CONF_HUB_VERSION = "hub_version"
62 CONF_OVERRIDE = "device_override"
63 CONF_PLM_HUB_MSG = "Must configure either a PLM port or a Hub host"
64 CONF_CAT = "cat"
65 CONF_SUBCAT = "subcat"
66 CONF_FIRMWARE = "firmware"
67 CONF_PRODUCT_KEY = "product_key"
68 CONF_X10 = "x10_devices"
69 CONF_HOUSECODE = "housecode"
70 CONF_UNITCODE = "unitcode"
71 CONF_DIM_STEPS = "dim_steps"
72 CONF_X10_ALL_UNITS_OFF = "x10_all_units_off"
73 CONF_X10_ALL_LIGHTS_ON = "x10_all_lights_on"
74 CONF_X10_ALL_LIGHTS_OFF = "x10_all_lights_off"
75 CONF_DEV_PATH = "dev_path"
76 
77 PORT_HUB_V1 = 9761
78 PORT_HUB_V2 = 25105
79 
80 SRV_ADD_ALL_LINK = "add_all_link"
81 SRV_DEL_ALL_LINK = "delete_all_link"
82 SRV_LOAD_ALDB = "load_all_link_database"
83 SRV_PRINT_ALDB = "print_all_link_database"
84 SRV_PRINT_IM_ALDB = "print_im_all_link_database"
85 SRV_X10_ALL_UNITS_OFF = "x10_all_units_off"
86 SRV_X10_ALL_LIGHTS_OFF = "x10_all_lights_off"
87 SRV_X10_ALL_LIGHTS_ON = "x10_all_lights_on"
88 SRV_ALL_LINK_GROUP = "group"
89 SRV_ALL_LINK_MODE = "mode"
90 SRV_LOAD_DB_RELOAD = "reload"
91 SRV_CONTROLLER = "controller"
92 SRV_RESPONDER = "responder"
93 SRV_HOUSECODE = "housecode"
94 SRV_SCENE_ON = "scene_on"
95 SRV_SCENE_OFF = "scene_off"
96 SRV_ADD_DEFAULT_LINKS = "add_default_links"
97 
98 SIGNAL_LOAD_ALDB = "load_aldb"
99 SIGNAL_PRINT_ALDB = "print_aldb"
100 SIGNAL_SAVE_DEVICES = "save_devices"
101 SIGNAL_ADD_ENTITIES = "insteon_add_entities"
102 SIGNAL_ADD_DEFAULT_LINKS = "add_default_links"
103 SIGNAL_ADD_DEVICE_OVERRIDE = "add_device_override"
104 SIGNAL_REMOVE_HA_DEVICE = "insteon_remove_ha_device"
105 SIGNAL_REMOVE_INSTEON_DEVICE = "insteon_remove_insteon_device"
106 SIGNAL_REMOVE_DEVICE_OVERRIDE = "insteon_remove_device_override"
107 SIGNAL_REMOVE_ENTITY = "insteon_remove_entity"
108 SIGNAL_ADD_X10_DEVICE = "insteon_add_x10_device"
109 SIGNAL_REMOVE_X10_DEVICE = "insteon_remove_x10_device"
110 SIGNAL_ADD_DEFAULT_LINKS = "add_default_links"
111 
112 HOUSECODES = [
113  "a",
114  "b",
115  "c",
116  "d",
117  "e",
118  "f",
119  "g",
120  "h",
121  "i",
122  "j",
123  "k",
124  "l",
125  "m",
126  "n",
127  "o",
128  "p",
129 ]
130 
131 EVENT_GROUP_ON = "insteon.button_on"
132 EVENT_GROUP_OFF = "insteon.button_off"
133 EVENT_GROUP_ON_FAST = "insteon.button_on_fast"
134 EVENT_GROUP_OFF_FAST = "insteon.button_off_fast"
135 EVENT_CONF_BUTTON = "button"
136 
137 STATE_NAME_LABEL_MAP = {
138  DIMMABLE_LIGHT_MAIN: "Main",
139  ON_OFF_SWITCH_A: "Button A",
140  ON_OFF_SWITCH_B: "Button B",
141  ON_OFF_SWITCH_C: "Button C",
142  ON_OFF_SWITCH_D: "Button D",
143  ON_OFF_SWITCH_E: "Button E",
144  ON_OFF_SWITCH_F: "Button F",
145  ON_OFF_SWITCH_G: "Button G",
146  ON_OFF_SWITCH_H: "Button H",
147  ON_OFF_SWITCH_MAIN: "Main",
148  DIMMABLE_FAN: "Fan",
149  DIMMABLE_LIGHT: "Light",
150  DIMMABLE_OUTLET: "Outlet",
151  MOTION_SENSOR: "Motion",
152  LIGHT_SENSOR: "Light",
153  LOW_BATTERY: "Battery",
154  LEAK_SENSOR_WET: "Wet",
155  DOOR_SENSOR: "Door",
156  SMOKE_SENSOR: "Smoke",
157  CO_SENSOR: "Carbon Monoxide",
158  TEST_SENSOR: "Test",
159  NEW_SENSOR: "New",
160  SENSOR_MALFUNCTION: "Malfunction",
161  HEARTBEAT: "Heartbeat",
162  OPEN_CLOSE_SENSOR: "Sensor",
163  ON_OFF_SWITCH: "Light",
164  ON_OFF_OUTLET_TOP: "Top",
165  ON_OFF_OUTLET_BOTTOM: "Bottom",
166  COVER: "Cover",
167  RELAY: "Relay",
168 }
169 
170 TYPE = "type"
171 ID = "id"
172 DEVICE_ID = "device_id"
173 DEVICE_ADDRESS = "device_address"
174 ALDB_RECORD = "record"
175 PROPERTY_NAME = "name"
176 PROPERTY_VALUE = "value"
177 HA_DEVICE_NOT_FOUND = "ha_device_not_found"
178 INSTEON_DEVICE_NOT_FOUND = "insteon_device_not_found"
179 MULTIPLE = "multiple"
180 
181 INSTEON_ADDR_REGEX = re.compile(r"([A-Fa-f0-9]{2}\.?[A-Fa-f0-9]{2}\.?[A-Fa-f0-9]{2})$")