1 """Constants used by multiple MQTT modules."""
10 ATTR_DISCOVERY_HASH =
"discovery_hash"
11 ATTR_DISCOVERY_PAYLOAD =
"discovery_payload"
12 ATTR_DISCOVERY_TOPIC =
"discovery_topic"
13 ATTR_PAYLOAD =
"payload"
15 ATTR_RETAIN =
"retain"
16 ATTR_SERIAL_NUMBER =
"serial_number"
19 AVAILABILITY_ALL =
"all"
20 AVAILABILITY_ANY =
"any"
21 AVAILABILITY_LATEST =
"latest"
23 AVAILABILITY_MODES = [AVAILABILITY_ALL, AVAILABILITY_ANY, AVAILABILITY_LATEST]
25 CONF_PAYLOAD_AVAILABLE =
"payload_available"
26 CONF_PAYLOAD_NOT_AVAILABLE =
"payload_not_available"
28 CONF_AVAILABILITY =
"availability"
30 CONF_AVAILABILITY_MODE =
"availability_mode"
31 CONF_AVAILABILITY_TEMPLATE =
"availability_template"
32 CONF_AVAILABILITY_TOPIC =
"availability_topic"
33 CONF_BROKER =
"broker"
34 CONF_BIRTH_MESSAGE =
"birth_message"
35 CONF_COMMAND_TEMPLATE =
"command_template"
36 CONF_COMMAND_TOPIC =
"command_topic"
37 CONF_DISCOVERY_PREFIX =
"discovery_prefix"
38 CONF_ENCODING =
"encoding"
39 CONF_JSON_ATTRS_TOPIC =
"json_attributes_topic"
40 CONF_JSON_ATTRS_TEMPLATE =
"json_attributes_template"
41 CONF_KEEPALIVE =
"keepalive"
42 CONF_OPTIONS =
"options"
43 CONF_ORIGIN =
"origin"
45 CONF_RETAIN = ATTR_RETAIN
46 CONF_SCHEMA =
"schema"
47 CONF_STATE_TOPIC =
"state_topic"
48 CONF_STATE_VALUE_TEMPLATE =
"state_value_template"
50 CONF_TRANSPORT =
"transport"
51 CONF_WS_PATH =
"ws_path"
52 CONF_WS_HEADERS =
"ws_headers"
53 CONF_WILL_MESSAGE =
"will_message"
54 CONF_PAYLOAD_RESET =
"payload_reset"
55 CONF_SUPPORTED_FEATURES =
"supported_features"
57 CONF_ACTION_TEMPLATE =
"action_template"
58 CONF_ACTION_TOPIC =
"action_topic"
59 CONF_CURRENT_HUMIDITY_TEMPLATE =
"current_humidity_template"
60 CONF_CURRENT_HUMIDITY_TOPIC =
"current_humidity_topic"
61 CONF_CURRENT_TEMP_TEMPLATE =
"current_temperature_template"
62 CONF_CURRENT_TEMP_TOPIC =
"current_temperature_topic"
63 CONF_ENABLED_BY_DEFAULT =
"enabled_by_default"
64 CONF_ENTITY_PICTURE =
"entity_picture"
65 CONF_MODE_COMMAND_TEMPLATE =
"mode_command_template"
66 CONF_MODE_COMMAND_TOPIC =
"mode_command_topic"
67 CONF_MODE_LIST =
"modes"
68 CONF_MODE_STATE_TEMPLATE =
"mode_state_template"
69 CONF_MODE_STATE_TOPIC =
"mode_state_topic"
70 CONF_PAYLOAD_CLOSE =
"payload_close"
71 CONF_PAYLOAD_OPEN =
"payload_open"
72 CONF_PAYLOAD_STOP =
"payload_stop"
73 CONF_POSITION_CLOSED =
"position_closed"
74 CONF_POSITION_OPEN =
"position_open"
75 CONF_POWER_COMMAND_TOPIC =
"power_command_topic"
76 CONF_POWER_COMMAND_TEMPLATE =
"power_command_template"
77 CONF_PRECISION =
"precision"
78 CONF_STATE_CLOSED =
"state_closed"
79 CONF_STATE_CLOSING =
"state_closing"
80 CONF_STATE_OPEN =
"state_open"
81 CONF_STATE_OPENING =
"state_opening"
82 CONF_TEMP_COMMAND_TEMPLATE =
"temperature_command_template"
83 CONF_TEMP_COMMAND_TOPIC =
"temperature_command_topic"
84 CONF_TEMP_STATE_TEMPLATE =
"temperature_state_template"
85 CONF_TEMP_STATE_TOPIC =
"temperature_state_topic"
86 CONF_TEMP_INITIAL =
"initial"
87 CONF_TEMP_MAX =
"max_temp"
88 CONF_TEMP_MIN =
"min_temp"
90 CONF_CERTIFICATE =
"certificate"
91 CONF_CLIENT_KEY =
"client_key"
92 CONF_CLIENT_CERT =
"client_cert"
93 CONF_COMPONENTS =
"components"
94 CONF_TLS_INSECURE =
"tls_insecure"
97 CONF_IDENTIFIERS =
"identifiers"
98 CONF_CONNECTIONS =
"connections"
99 CONF_MANUFACTURER =
"manufacturer"
100 CONF_HW_VERSION =
"hw_version"
101 CONF_SW_VERSION =
"sw_version"
102 CONF_SERIAL_NUMBER =
"serial_number"
103 CONF_VIA_DEVICE =
"via_device"
104 CONF_DEPRECATED_VIA_HUB =
"via_hub"
105 CONF_SUGGESTED_AREA =
"suggested_area"
106 CONF_CONFIGURATION_URL =
"configuration_url"
107 CONF_OBJECT_ID =
"object_id"
108 CONF_SUPPORT_URL =
"support_url"
110 DEFAULT_PREFIX =
"homeassistant"
111 DEFAULT_BIRTH_WILL_TOPIC = DEFAULT_PREFIX +
"/status"
112 DEFAULT_DISCOVERY =
True
113 DEFAULT_ENCODING =
"utf-8"
114 DEFAULT_OPTIMISTIC =
False
116 DEFAULT_PAYLOAD_AVAILABLE =
"online"
117 DEFAULT_PAYLOAD_CLOSE =
"CLOSE"
118 DEFAULT_PAYLOAD_NOT_AVAILABLE =
"offline"
119 DEFAULT_PAYLOAD_OPEN =
"OPEN"
121 DEFAULT_RETAIN =
False
122 DEFAULT_WS_HEADERS: dict[str, str] = {}
123 DEFAULT_WS_PATH =
"/"
124 DEFAULT_POSITION_CLOSED = 0
125 DEFAULT_POSITION_OPEN = 100
126 DEFAULT_RETAIN =
False
129 PROTOCOL_311 =
"3.1.1"
131 SUPPORTED_PROTOCOLS = [PROTOCOL_31, PROTOCOL_311, PROTOCOL_5]
133 TRANSPORT_TCP =
"tcp"
134 TRANSPORT_WEBSOCKETS =
"websockets"
137 DEFAULT_KEEPALIVE = 60
138 DEFAULT_PROTOCOL = PROTOCOL_311
139 DEFAULT_TRANSPORT = TRANSPORT_TCP
142 ATTR_TOPIC: DEFAULT_BIRTH_WILL_TOPIC,
143 CONF_PAYLOAD: DEFAULT_PAYLOAD_AVAILABLE,
144 ATTR_QOS: DEFAULT_QOS,
145 ATTR_RETAIN: DEFAULT_RETAIN,
149 ATTR_TOPIC: DEFAULT_BIRTH_WILL_TOPIC,
150 CONF_PAYLOAD: DEFAULT_PAYLOAD_NOT_AVAILABLE,
151 ATTR_QOS: DEFAULT_QOS,
152 ATTR_RETAIN: DEFAULT_RETAIN,
156 LOGGER = logging.getLogger(__package__)
158 MQTT_CONNECTION_STATE =
"mqtt_connection_state"
160 PAYLOAD_EMPTY_JSON =
"{}"
161 PAYLOAD_NONE =
"None"
164 Platform.ALARM_CONTROL_PANEL,
165 Platform.BINARY_SENSOR,
170 Platform.DEVICE_TRACKER,
189 Platform.WATER_HEATER,
192 TEMPLATE_ERRORS = (jinja2.TemplateError, TemplateError, TypeError, ValueError)
194 SUPPORTED_COMPONENTS = (
195 "alarm_control_panel",