1 """Support for MQTT message handling."""
3 from __future__
import annotations
5 import voluptuous
as vol
21 from .util
import valid_publish_topic, valid_qos_schema, valid_subscribe_topic
24 vol.Optional(CONF_QOS, default=DEFAULT_QOS): valid_qos_schema,
25 vol.Optional(CONF_ENCODING, default=DEFAULT_ENCODING): cv.string,
28 MQTT_BASE_SCHEMA = vol.Schema(SCHEMA_BASE)
31 MQTT_RO_SCHEMA = MQTT_BASE_SCHEMA.extend(
33 vol.Required(CONF_STATE_TOPIC): valid_subscribe_topic,
34 vol.Optional(CONF_VALUE_TEMPLATE): cv.template,
39 MQTT_RW_SCHEMA = MQTT_BASE_SCHEMA.extend(
41 vol.Required(CONF_COMMAND_TOPIC): valid_publish_topic,
42 vol.Optional(CONF_OPTIMISTIC, default=DEFAULT_OPTIMISTIC): cv.boolean,
43 vol.Optional(CONF_RETAIN, default=DEFAULT_RETAIN): cv.boolean,
44 vol.Optional(CONF_STATE_TOPIC): valid_subscribe_topic,