1 """Support for MQTT notify."""
3 from __future__
import annotations
5 import voluptuous
as vol
16 from .config
import DEFAULT_RETAIN, MQTT_BASE_SCHEMA
17 from .const
import CONF_COMMAND_TEMPLATE, CONF_COMMAND_TOPIC, CONF_RETAIN
18 from .entity
import MqttEntity, async_setup_entity_entry_helper
19 from .models
import MqttCommandTemplate
20 from .schemas
import MQTT_ENTITY_COMMON_SCHEMA
21 from .util
import valid_publish_topic
25 DEFAULT_NAME =
"MQTT notify"
27 PLATFORM_SCHEMA_MODERN = MQTT_BASE_SCHEMA.extend(
29 vol.Optional(CONF_COMMAND_TEMPLATE): cv.template,
30 vol.Required(CONF_COMMAND_TOPIC): valid_publish_topic,
31 vol.Optional(CONF_NAME): vol.Any(cv.string,
None),
32 vol.Optional(CONF_RETAIN, default=DEFAULT_RETAIN): cv.boolean,
34 ).extend(MQTT_ENTITY_COMMON_SCHEMA.schema)
36 DISCOVERY_SCHEMA = PLATFORM_SCHEMA_MODERN.extend({}, extra=vol.REMOVE_EXTRA)
41 config_entry: ConfigEntry,
42 async_add_entities: AddEntitiesCallback,
44 """Set up MQTT notify through YAML and through MQTT discovery."""
52 PLATFORM_SCHEMA_MODERN,
57 """Representation of a notification entity service that can send messages using MQTT."""
59 _default_name = DEFAULT_NAME
60 _entity_id_format = notify.ENTITY_ID_FORMAT
64 """Return the config schema."""
65 return DISCOVERY_SCHEMA
68 """(Re)Setup the entity."""
70 config.get(CONF_COMMAND_TEMPLATE), entity=self
75 """(Re)Subscribe to topics."""
78 """(Re)Subscribe to topics."""
82 payload = self._command_template(message)
83 await self.async_publish_with_config(self._config[CONF_COMMAND_TOPIC], payload)
vol.Schema config_schema()
None async_send_message(self, str message, str|None title=None)
None _setup_from_config(self, ConfigType config)
None _prepare_subscribe_topics(self)
None _subscribe_topics(self)
None async_setup_entity_entry_helper(HomeAssistant hass, ConfigEntry entry, type[MqttEntity]|None entity_class, str domain, AddEntitiesCallback async_add_entities, VolSchemaType discovery_schema, VolSchemaType platform_schema_modern, dict[str, type[MqttEntity]]|None schema_class_mapping=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)