Home Assistant Unofficial Reference 2024.12.1
config_integration.py
Go to the documentation of this file.
1 """Support for MQTT platform config setup."""
2 
3 from __future__ import annotations
4 
5 import voluptuous as vol
6 
7 from homeassistant.const import (
8  CONF_CLIENT_ID,
9  CONF_DISCOVERY,
10  CONF_PASSWORD,
11  CONF_PORT,
12  CONF_PROTOCOL,
13  CONF_USERNAME,
14  Platform,
15 )
16 from homeassistant.helpers import config_validation as cv
17 
18 from .const import (
19  CONF_BIRTH_MESSAGE,
20  CONF_BROKER,
21  CONF_CERTIFICATE,
22  CONF_CLIENT_CERT,
23  CONF_CLIENT_KEY,
24  CONF_DISCOVERY_PREFIX,
25  CONF_KEEPALIVE,
26  CONF_TLS_INSECURE,
27  CONF_WILL_MESSAGE,
28 )
29 
30 DEFAULT_TLS_PROTOCOL = "auto"
31 
32 CONFIG_SCHEMA_BASE = vol.Schema(
33  {
34  Platform.ALARM_CONTROL_PANEL.value: vol.All(cv.ensure_list, [dict]),
35  Platform.BINARY_SENSOR.value: vol.All(cv.ensure_list, [dict]),
36  Platform.BUTTON.value: vol.All(cv.ensure_list, [dict]),
37  Platform.CAMERA.value: vol.All(cv.ensure_list, [dict]),
38  Platform.CLIMATE.value: vol.All(cv.ensure_list, [dict]),
39  Platform.COVER.value: vol.All(cv.ensure_list, [dict]),
40  Platform.DEVICE_TRACKER.value: vol.All(cv.ensure_list, [dict]),
41  Platform.EVENT.value: vol.All(cv.ensure_list, [dict]),
42  Platform.FAN.value: vol.All(cv.ensure_list, [dict]),
43  Platform.HUMIDIFIER.value: vol.All(cv.ensure_list, [dict]),
44  Platform.IMAGE.value: vol.All(cv.ensure_list, [dict]),
45  Platform.LAWN_MOWER.value: vol.All(cv.ensure_list, [dict]),
46  Platform.LIGHT.value: vol.All(cv.ensure_list, [dict]),
47  Platform.LOCK.value: vol.All(cv.ensure_list, [dict]),
48  Platform.NOTIFY.value: vol.All(cv.ensure_list, [dict]),
49  Platform.NUMBER.value: vol.All(cv.ensure_list, [dict]),
50  Platform.SCENE.value: vol.All(cv.ensure_list, [dict]),
51  Platform.SELECT.value: vol.All(cv.ensure_list, [dict]),
52  Platform.SENSOR.value: vol.All(cv.ensure_list, [dict]),
53  Platform.SIREN.value: vol.All(cv.ensure_list, [dict]),
54  Platform.SWITCH.value: vol.All(cv.ensure_list, [dict]),
55  Platform.TEXT.value: vol.All(cv.ensure_list, [dict]),
56  Platform.UPDATE.value: vol.All(cv.ensure_list, [dict]),
57  Platform.VACUUM.value: vol.All(cv.ensure_list, [dict]),
58  Platform.VALVE.value: vol.All(cv.ensure_list, [dict]),
59  Platform.WATER_HEATER.value: vol.All(cv.ensure_list, [dict]),
60  }
61 )
62 
63 
64 CLIENT_KEY_AUTH_MSG = (
65  "client_key and client_cert must both be present in the MQTT broker configuration"
66 )
67 
68 DEPRECATED_CONFIG_KEYS = [
69  CONF_BIRTH_MESSAGE,
70  CONF_BROKER,
71  CONF_CLIENT_ID,
72  CONF_DISCOVERY,
73  CONF_DISCOVERY_PREFIX,
74  CONF_KEEPALIVE,
75  CONF_PASSWORD,
76  CONF_PORT,
77  CONF_PROTOCOL,
78  CONF_TLS_INSECURE,
79  CONF_USERNAME,
80  CONF_WILL_MESSAGE,
81 ]
82 
83 DEPRECATED_CERTIFICATE_CONFIG_KEYS = [
84  CONF_CERTIFICATE,
85  CONF_CLIENT_CERT,
86  CONF_CLIENT_KEY,
87 ]