Home Assistant Unofficial Reference 2024.12.1
homeassistant.components.mqtt.schemas Namespace Reference

Functions

dict[str, Any] check_unique_id (dict[str, Any] config)
 
ConfigType validate_device_has_at_least_one_identifier (ConfigType value)
 

Variables

 _COMPONENT_CONFIG_SCHEMA
 
 _MQTT_AVAILABILITY_LIST_SCHEMA
 
 _MQTT_AVAILABILITY_SCHEMA
 
 _MQTT_AVAILABILITY_SINGLE_SCHEMA
 
 _UNIQUE_ID_SCHEMA
 
 DEVICE_DISCOVERY_SCHEMA
 
 MQTT_ENTITY_COMMON_SCHEMA
 
 MQTT_ENTITY_DEVICE_INFO_SCHEMA
 
 MQTT_ORIGIN_INFO_SCHEMA
 
list SHARED_OPTIONS
 

Detailed Description

Shared schemas for MQTT discovery and YAML config items.

Function Documentation

◆ check_unique_id()

dict[str, Any] homeassistant.components.mqtt.schemas.check_unique_id ( dict[str, Any]  config)
Check if a unique ID is set in case an entity platform is configured.

Definition at line 193 of file schemas.py.

◆ validate_device_has_at_least_one_identifier()

ConfigType homeassistant.components.mqtt.schemas.validate_device_has_at_least_one_identifier ( ConfigType  value)
Validate that a device info entry has at least one identifying value.

Definition at line 127 of file schemas.py.

Variable Documentation

◆ _COMPONENT_CONFIG_SCHEMA

homeassistant.components.mqtt.schemas._COMPONENT_CONFIG_SCHEMA
private
Initial value:
1 = vol.All(
2  vol.Schema(
3  {vol.Required(CONF_PLATFORM): vol.In(SUPPORTED_COMPONENTS)},
4  ).extend({}, extra=True),
5  check_unique_id,
6 )

Definition at line 201 of file schemas.py.

◆ _MQTT_AVAILABILITY_LIST_SCHEMA

homeassistant.components.mqtt.schemas._MQTT_AVAILABILITY_LIST_SCHEMA
private
Initial value:
1 = vol.Schema(
2  {
3  vol.Optional(CONF_AVAILABILITY_MODE, default=AVAILABILITY_LATEST): vol.All(
4  cv.string, vol.In(AVAILABILITY_MODES)
5  ),
6  vol.Exclusive(CONF_AVAILABILITY, "availability"): vol.All(
7  cv.ensure_list,
8  [
9  {
10  vol.Required(CONF_TOPIC): valid_subscribe_topic,
11  vol.Optional(
12  CONF_PAYLOAD_AVAILABLE, default=DEFAULT_PAYLOAD_AVAILABLE
13  ): cv.string,
14  vol.Optional(
15  CONF_PAYLOAD_NOT_AVAILABLE,
16  default=DEFAULT_PAYLOAD_NOT_AVAILABLE,
17  ): cv.string,
18  vol.Optional(CONF_VALUE_TEMPLATE): cv.template,
19  }
20  ],
21  ),
22  }
23 )

Definition at line 98 of file schemas.py.

◆ _MQTT_AVAILABILITY_SCHEMA

homeassistant.components.mqtt.schemas._MQTT_AVAILABILITY_SCHEMA
private
Initial value:
1 = _MQTT_AVAILABILITY_SINGLE_SCHEMA.extend(
2  _MQTT_AVAILABILITY_LIST_SCHEMA.schema
3 )

Definition at line 122 of file schemas.py.

◆ _MQTT_AVAILABILITY_SINGLE_SCHEMA

homeassistant.components.mqtt.schemas._MQTT_AVAILABILITY_SINGLE_SCHEMA
private
Initial value:
1 = vol.Schema(
2  {
3  vol.Exclusive(CONF_AVAILABILITY_TOPIC, "availability"): valid_subscribe_topic,
4  vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
5  vol.Optional(
6  CONF_PAYLOAD_AVAILABLE, default=DEFAULT_PAYLOAD_AVAILABLE
7  ): cv.string,
8  vol.Optional(
9  CONF_PAYLOAD_NOT_AVAILABLE, default=DEFAULT_PAYLOAD_NOT_AVAILABLE
10  ): cv.string,
11  }
12 )

Definition at line 85 of file schemas.py.

◆ _UNIQUE_ID_SCHEMA

homeassistant.components.mqtt.schemas._UNIQUE_ID_SCHEMA
private
Initial value:
1 = vol.Schema(
2  {vol.Required(CONF_UNIQUE_ID): cv.string},
3 ).extend({}, extra=True)

Definition at line 188 of file schemas.py.

◆ DEVICE_DISCOVERY_SCHEMA

homeassistant.components.mqtt.schemas.DEVICE_DISCOVERY_SCHEMA
Initial value:
1 = _MQTT_AVAILABILITY_SCHEMA.extend(
2  {
3  vol.Required(CONF_DEVICE): MQTT_ENTITY_DEVICE_INFO_SCHEMA,
4  vol.Required(CONF_COMPONENTS): vol.Schema({str: _COMPONENT_CONFIG_SCHEMA}),
5  vol.Required(CONF_ORIGIN): MQTT_ORIGIN_INFO_SCHEMA,
6  vol.Optional(CONF_STATE_TOPIC): valid_subscribe_topic,
7  vol.Optional(CONF_COMMAND_TOPIC): valid_publish_topic,
8  vol.Optional(CONF_QOS): valid_qos_schema,
9  vol.Optional(CONF_ENCODING): cv.string,
10  }
11 )

Definition at line 208 of file schemas.py.

◆ MQTT_ENTITY_COMMON_SCHEMA

homeassistant.components.mqtt.schemas.MQTT_ENTITY_COMMON_SCHEMA
Initial value:
1 = _MQTT_AVAILABILITY_SCHEMA.extend(
2  {
3  vol.Optional(CONF_DEVICE): MQTT_ENTITY_DEVICE_INFO_SCHEMA,
4  vol.Optional(CONF_ENTITY_PICTURE): cv.url,
5  vol.Optional(CONF_ORIGIN): MQTT_ORIGIN_INFO_SCHEMA,
6  vol.Optional(CONF_ENABLED_BY_DEFAULT, default=True): cv.boolean,
7  vol.Optional(CONF_ENTITY_CATEGORY): ENTITY_CATEGORIES_SCHEMA,
8  vol.Optional(CONF_ICON): cv.icon,
9  vol.Optional(CONF_JSON_ATTRS_TOPIC): valid_subscribe_topic,
10  vol.Optional(CONF_JSON_ATTRS_TEMPLATE): cv.template,
11  vol.Optional(CONF_OBJECT_ID): cv.string,
12  vol.Optional(CONF_UNIQUE_ID): cv.string,
13  }
14 )

Definition at line 173 of file schemas.py.

◆ MQTT_ENTITY_DEVICE_INFO_SCHEMA

homeassistant.components.mqtt.schemas.MQTT_ENTITY_DEVICE_INFO_SCHEMA
Initial value:
1 = vol.All(
2  cv.deprecated(CONF_DEPRECATED_VIA_HUB, CONF_VIA_DEVICE),
3  vol.Schema(
4  {
5  vol.Optional(CONF_IDENTIFIERS, default=list): vol.All(
6  cv.ensure_list, [cv.string]
7  ),
8  vol.Optional(CONF_CONNECTIONS, default=list): vol.All(
9  cv.ensure_list, [vol.All(vol.Length(2), [cv.string])]
10  ),
11  vol.Optional(CONF_MANUFACTURER): cv.string,
12  vol.Optional(CONF_MODEL): cv.string,
13  vol.Optional(CONF_MODEL_ID): cv.string,
14  vol.Optional(CONF_NAME): cv.string,
15  vol.Optional(CONF_HW_VERSION): cv.string,
16  vol.Optional(CONF_SERIAL_NUMBER): cv.string,
17  vol.Optional(CONF_SW_VERSION): cv.string,
18  vol.Optional(CONF_VIA_DEVICE): cv.string,
19  vol.Optional(CONF_SUGGESTED_AREA): cv.string,
20  vol.Optional(CONF_CONFIGURATION_URL): cv.configuration_url,
21  }
22  ),
23  validate_device_has_at_least_one_identifier,
24 )

Definition at line 137 of file schemas.py.

◆ MQTT_ORIGIN_INFO_SCHEMA

homeassistant.components.mqtt.schemas.MQTT_ORIGIN_INFO_SCHEMA
Initial value:
1 = vol.All(
2  vol.Schema(
3  {
4  vol.Required(CONF_NAME): cv.string,
5  vol.Optional(CONF_SW_VERSION): cv.string,
6  vol.Optional(CONF_SUPPORT_URL): cv.configuration_url,
7  }
8  ),
9 )

Definition at line 75 of file schemas.py.

◆ SHARED_OPTIONS

list homeassistant.components.mqtt.schemas.SHARED_OPTIONS
Initial value:
1 = [
2  CONF_AVAILABILITY,
3  CONF_AVAILABILITY_MODE,
4  CONF_AVAILABILITY_TEMPLATE,
5  CONF_AVAILABILITY_TOPIC,
6  CONF_COMMAND_TOPIC,
7  CONF_PAYLOAD_AVAILABLE,
8  CONF_PAYLOAD_NOT_AVAILABLE,
9  CONF_STATE_TOPIC,
10 ]

Definition at line 64 of file schemas.py.