|
ESPHome 2026.8.0-dev
|
#include <mqtt_client.h>
Public Member Functions | |
| MQTTClientComponent () | |
| void | set_last_will (MQTTMessage &&message) |
| Set the last will testament message. | |
| void | disable_last_will () |
| Remove the last will testament message. | |
| void | set_birth_message (MQTTMessage &&message) |
| Set the birth message. | |
| void | disable_birth_message () |
| Remove the birth message. | |
| void | set_shutdown_message (MQTTMessage &&message) |
| void | disable_shutdown_message () |
| void | set_keep_alive (uint16_t keep_alive_s) |
| Set the keep alive time in seconds, every 0.7*keep_alive a ping will be sent. | |
| void | set_discovery_info (std::string &&prefix, MQTTDiscoveryUniqueIdGenerator unique_id_generator, MQTTDiscoveryObjectIdGenerator object_id_generator, bool retain, bool discover_ip, bool clean=false) |
| Set the Home Assistant discovery info. | |
| const MQTTDiscoveryInfo & | get_discovery_info () const |
| Get Home Assistant discovery info. | |
| void | disable_discovery () |
| Globally disable Home Assistant discovery. | |
| bool | is_discovery_enabled () const |
| bool | is_discovery_ip_enabled () const |
| void | set_ca_certificate (const char *cert) |
| void | set_cl_certificate (const char *cert) |
| void | set_cl_key (const char *key) |
| void | set_skip_cert_cn_check (bool skip_check) |
| const Availability & | get_availability () |
| void | set_topic_prefix (const std::string &topic_prefix, const std::string &check_topic_prefix) |
| Set the topic prefix that will be prepended to all topics together with "/". | |
| const std::string & | get_topic_prefix () const |
| Get the topic prefix of this device, using default if necessary. | |
| void | set_log_message_template (MQTTMessage &&message) |
| Manually set the topic used for logging. | |
| void | set_log_level (int level) |
| void | disable_log_message () |
| Get the topic used for logging. Defaults to "<topic_prefix>/debug" and the value is cached for speed. | |
| bool | is_log_message_enabled () const |
| void | subscribe (const std::string &topic, mqtt_callback_t callback, uint8_t qos=0) |
| Subscribe to an MQTT topic and call callback when a message is received. | |
| void | subscribe_json (const std::string &topic, const mqtt_json_callback_t &callback, uint8_t qos=0) |
| Subscribe to a MQTT topic and automatically parse JSON payload. | |
| void | unsubscribe (const std::string &topic) |
| Unsubscribe from an MQTT topic. | |
| bool | publish (const MQTTMessage &message) |
| Publish a MQTTMessage. | |
| bool | publish (const std::string &topic, const std::string &payload, uint8_t qos=0, bool retain=false) |
| Publish a MQTT message. | |
| bool | publish (const std::string &topic, const char *payload, size_t payload_length, uint8_t qos=0, bool retain=false) |
| bool | publish (const char *topic, const char *payload, size_t payload_length, uint8_t qos=0, bool retain=false) |
| Publish directly without creating MQTTMessage (avoids heap allocation for topic) | |
| bool | publish_json (const std::string &topic, const json::json_build_t &f, uint8_t qos=0, bool retain=false) |
| Construct and send a JSON MQTT message. | |
| bool | publish_json (const char *topic, const json::json_build_t &f, uint8_t qos=0, bool retain=false) |
| Publish JSON directly without heap allocation for topic. | |
| void | setup () override |
| Setup the MQTT client, registering a bunch of callbacks and attempting to connect. | |
| void | dump_config () override |
| void | loop () override |
| Reconnect if required. | |
| float | get_setup_priority () const override |
| MQTT client setup priority. | |
| void | on_log (uint8_t level, const char *tag, const char *message, size_t message_len) |
| void | on_message (const std::string &topic, const std::string &payload) |
| bool | can_proceed () override |
| void | check_connected () |
| void | set_reboot_timeout (uint32_t reboot_timeout) |
| void | register_mqtt_component (MQTTComponent *component) |
| bool | is_connected () |
| void | set_enable_on_boot (bool enable_on_boot) |
| void | enable () |
| void | disable () |
| void | on_shutdown () override |
| void | set_broker_address (const std::string &address) |
| void | set_broker_port (uint16_t port) |
| void | set_username (const std::string &username) |
| void | set_password (const std::string &password) |
| void | set_client_id (const std::string &client_id) |
| void | set_clean_session (const bool &clean_session) |
| void | set_on_connect (mqtt_on_connect_callback_t &&callback) |
| void | set_on_disconnect (mqtt_on_disconnect_callback_t &&callback) |
| void | set_publish_nan_as_none (bool publish_nan_as_none) |
| bool | is_publish_nan_as_none () const |
| void | set_wait_for_connection (bool wait_for_connection) |
Public Member Functions inherited from esphome::Component | |
| float | get_actual_setup_priority () const |
| void | set_setup_priority (float priority) |
| void | call () |
| virtual void | on_safe_shutdown () |
| virtual bool | teardown () |
| Called during teardown to allow component to gracefully finish operations. | |
| virtual void | on_powerdown () |
| Called after teardown is complete to power down hardware. | |
| uint8_t | get_component_state () const |
| void | reset_to_construction_state () |
| Reset this component back to the construction state to allow setup to run again. | |
| bool | is_in_loop_state () const |
| Check if this component has completed setup and is in the loop state. | |
| bool | is_idle () const |
| Check if this component is idle. | |
| void | mark_failed () |
| Mark this component as failed. | |
| void | mark_failed (const LogString *message) |
| void | disable_loop () |
| Disable this component's loop. | |
| void | enable_loop () |
| Enable this component's loop. | |
| void | enable_loop_soon_any_context () |
| Thread and ISR-safe version of enable_loop() that can be called from any context. | |
| bool | is_failed () const |
| bool | is_ready () const |
| bool | status_has_warning () const |
| bool | status_has_error () const |
| void | status_set_warning () |
| void | status_set_warning (const char *message) |
| void | status_set_warning (const LogString *message) |
| void | status_set_error () |
| void | status_set_error (const LogString *message) |
| void | status_clear_warning () |
| void | status_clear_error () |
| void | status_momentary_warning (const char *name, uint32_t length=5000) |
| Set warning status flag and automatically clear it after a timeout. | |
| void | status_momentary_error (const char *name, uint32_t length=5000) |
| Set error status flag and automatically clear it after a timeout. | |
| bool | has_overridden_loop () const |
| const LogString * | get_component_log_str () const ESPHOME_ALWAYS_INLINE |
| Get the integration where this component was declared as a LogString for logging. | |
| bool | should_warn_of_blocking (uint32_t blocking_time, uint32_t &threshold_ms_out) |
Protected Member Functions | |
| void | send_device_info_ () |
| void | start_connect_ () |
| Reconnect to the MQTT broker if not already connected. | |
| void | start_dnslookup_ () |
| void | check_dnslookup_ () |
| void | recalculate_availability_ () |
| Re-calculate the availability property. | |
| bool | subscribe_ (const char *topic, uint8_t qos) |
| void | resubscribe_subscription_ (MQTTSubscription *sub) |
| void | resubscribe_subscriptions_ () |
Protected Member Functions inherited from esphome::Component | |
| friend | void::setup () |
| friend | void::original_setup () |
| void | set_component_source_ (uint8_t index) |
| Set where this component was loaded from for some debug messages. | |
| virtual void | call_setup () |
| void | call_dump_config_ () |
| void | enable_loop_slow_path_ () |
| void | set_component_state_ (uint8_t state) |
| Helper to set component state (clears state bits and sets new state) | |
| bool | set_status_flag_ (uint8_t flag) |
| Helper to set a status LED flag on both this component and the app. | |
| void | set_interval (const char *name, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a const char* name. | |
| void | set_interval (uint32_t id, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a numeric ID (zero heap allocation). | |
| void | set_interval (InternalSchedulerID id, uint32_t interval, std::function< void()> &&f) |
| void | set_interval (uint32_t interval, std::function< void()> &&f) |
| bool | cancel_interval (const char *name) |
| Cancel an interval function. | |
| bool | cancel_interval (uint32_t id) |
| bool | cancel_interval (InternalSchedulerID id) |
| void | set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a const char* name. | |
| void | set_timeout (uint32_t id, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a numeric ID (zero heap allocation). | |
| void | set_timeout (InternalSchedulerID id, uint32_t timeout, std::function< void()> &&f) |
| void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
| bool | cancel_timeout (const char *name) |
| Cancel a timeout function. | |
| bool | cancel_timeout (uint32_t id) |
| bool | cancel_timeout (InternalSchedulerID id) |
| void | defer (const char *name, std::function< void()> &&f) |
| Defer a callback to the next loop() call with a const char* name. | |
| void | defer (std::function< void()> &&f) |
| Defer a callback to the next loop() call. | |
| void | defer (uint32_t id, std::function< void()> &&f) |
| Defer a callback with a numeric ID (zero heap allocation) | |
| bool | cancel_defer (const char *name) |
| Cancel a defer callback using the specified name, name must not be empty. | |
| bool | cancel_defer (uint32_t id) |
| void | status_clear_warning_slow_path_ () |
| void | status_clear_error_slow_path_ () |
Static Protected Member Functions | |
| static void | dns_found_callback (const char *name, ip_addr_t *ipaddr, void *callback_arg) |
| static void | dns_found_callback (const char *name, const ip_addr_t *ipaddr, void *callback_arg) |
Protected Attributes | |
| MQTTCredentials | credentials_ |
| MQTTMessage | last_will_ |
| The last will message. | |
| MQTTMessage | birth_message_ |
| The birth message (e.g. | |
| bool | sent_birth_message_ {false} |
| MQTTMessage | shutdown_message_ |
| Availability | availability_ {} |
| Caches availability. | |
| MQTTDiscoveryInfo | discovery_info_ |
| The discovery info options for Home Assistant. | |
| std::string | topic_prefix_ {} |
| MQTTMessage | log_message_ |
| std::string | payload_buffer_ |
| int | log_level_ {ESPHOME_LOG_LEVEL} |
| std::vector< MQTTSubscription > | subscriptions_ |
| MQTTBackendESP32 | mqtt_backend_ |
| MQTTBackendESP8266 | mqtt_backend_ |
| MQTTBackendLibreTiny | mqtt_backend_ |
| MQTTClientState | state_ {MQTT_CLIENT_DISABLED} |
| network::IPAddress | ip_ |
| bool | dns_resolved_ {false} |
| bool | dns_resolve_error_ {false} |
| bool | enable_on_boot_ {true} |
| std::vector< MQTTComponent * > | children_ |
| uint32_t | reboot_timeout_ {300000} |
| uint32_t | connect_begin_ |
| uint32_t | last_connected_ {0} |
| optional< MQTTClientDisconnectReason > | disconnect_reason_ {} |
| CallbackManager< MQTTBackend::on_disconnect_callback_t > | on_disconnect_ |
| bool | publish_nan_as_none_ {false} |
| bool | wait_for_connection_ {false} |
Protected Attributes inherited from esphome::Component | |
| uint8_t | component_source_index_ {0} |
| Index into component source PROGMEM lookup table (0 = not set) | |
| uint8_t | warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_CS} |
| Warn threshold in centiseconds (max 2550ms) | |
| uint8_t | component_state_ {0x00} |
| State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bit 5: Has overridden loop() (set at registration time) Bits 6-7: Unused - reserved for future expansion. | |
| volatile bool | pending_enable_loop_ {false} |
| ISR-safe flag for enable_loop_soon_any_context. | |
| ComponentRuntimeStats | runtime_stats_ |
Definition at line 102 of file mqtt_client.h.
| esphome::mqtt::MQTTClientComponent::MQTTClientComponent | ( | ) |
|
overridevirtual |
Reimplemented from esphome::Component.
| void esphome::mqtt::MQTTClientComponent::check_connected | ( | ) |
|
protected |
| void esphome::mqtt::MQTTClientComponent::disable | ( | ) |
| void esphome::mqtt::MQTTClientComponent::disable_birth_message | ( | ) |
Remove the birth message.
| void esphome::mqtt::MQTTClientComponent::disable_discovery | ( | ) |
Globally disable Home Assistant discovery.
| void esphome::mqtt::MQTTClientComponent::disable_last_will | ( | ) |
Remove the last will testament message.
| void esphome::mqtt::MQTTClientComponent::disable_log_message | ( | ) |
Get the topic used for logging. Defaults to "<topic_prefix>/debug" and the value is cached for speed.
| void esphome::mqtt::MQTTClientComponent::disable_shutdown_message | ( | ) |
|
staticprotected |
|
staticprotected |
|
overridevirtual |
Reimplemented from esphome::Component.
| void esphome::mqtt::MQTTClientComponent::enable | ( | ) |
| const Availability & esphome::mqtt::MQTTClientComponent::get_availability | ( | ) |
| const MQTTDiscoveryInfo & esphome::mqtt::MQTTClientComponent::get_discovery_info | ( | ) | const |
Get Home Assistant discovery info.
|
overridevirtual |
MQTT client setup priority.
Reimplemented from esphome::Component.
| const std::string & esphome::mqtt::MQTTClientComponent::get_topic_prefix | ( | ) | const |
Get the topic prefix of this device, using default if necessary.
| bool esphome::mqtt::MQTTClientComponent::is_connected | ( | ) |
| bool esphome::mqtt::MQTTClientComponent::is_discovery_enabled | ( | ) | const |
| bool esphome::mqtt::MQTTClientComponent::is_discovery_ip_enabled | ( | ) | const |
| bool esphome::mqtt::MQTTClientComponent::is_log_message_enabled | ( | ) | const |
| bool esphome::mqtt::MQTTClientComponent::is_publish_nan_as_none | ( | ) | const |
|
overridevirtual |
Reconnect if required.
Reimplemented from esphome::Component.
| void esphome::mqtt::MQTTClientComponent::on_log | ( | uint8_t | level, |
| const char * | tag, | ||
| const char * | message, | ||
| size_t | message_len ) |
| void esphome::mqtt::MQTTClientComponent::on_message | ( | const std::string & | topic, |
| const std::string & | payload ) |
|
overridevirtual |
Reimplemented from esphome::Component.
| bool esphome::mqtt::MQTTClientComponent::publish | ( | const char * | topic, |
| const char * | payload, | ||
| size_t | payload_length, | ||
| uint8_t | qos = 0, | ||
| bool | retain = false ) |
Publish directly without creating MQTTMessage (avoids heap allocation for topic)
| bool esphome::mqtt::MQTTClientComponent::publish | ( | const MQTTMessage & | message | ) |
Publish a MQTTMessage.
| message | The message. |
| bool esphome::mqtt::MQTTClientComponent::publish | ( | const std::string & | topic, |
| const char * | payload, | ||
| size_t | payload_length, | ||
| uint8_t | qos = 0, | ||
| bool | retain = false ) |
| bool esphome::mqtt::MQTTClientComponent::publish | ( | const std::string & | topic, |
| const std::string & | payload, | ||
| uint8_t | qos = 0, | ||
| bool | retain = false ) |
Publish a MQTT message.
| topic | The topic. |
| payload | The payload. |
| retain | Whether to retain the message. |
| bool esphome::mqtt::MQTTClientComponent::publish_json | ( | const char * | topic, |
| const json::json_build_t & | f, | ||
| uint8_t | qos = 0, | ||
| bool | retain = false ) |
Publish JSON directly without heap allocation for topic.
| bool esphome::mqtt::MQTTClientComponent::publish_json | ( | const std::string & | topic, |
| const json::json_build_t & | f, | ||
| uint8_t | qos = 0, | ||
| bool | retain = false ) |
Construct and send a JSON MQTT message.
| topic | The topic. |
| f | The Json Message builder. |
| retain | Whether to retain the message. |
|
protected |
Re-calculate the availability property.
| void esphome::mqtt::MQTTClientComponent::register_mqtt_component | ( | MQTTComponent * | component | ) |
|
protected |
|
protected |
|
protected |
| void esphome::mqtt::MQTTClientComponent::set_birth_message | ( | MQTTMessage && | message | ) |
Set the birth message.
|
inline |
Definition at line 255 of file mqtt_client.h.
|
inline |
Definition at line 256 of file mqtt_client.h.
|
inline |
Definition at line 141 of file mqtt_client.h.
|
inline |
Definition at line 142 of file mqtt_client.h.
|
inline |
Definition at line 143 of file mqtt_client.h.
|
inline |
Definition at line 260 of file mqtt_client.h.
|
inline |
Definition at line 259 of file mqtt_client.h.
| void esphome::mqtt::MQTTClientComponent::set_discovery_info | ( | std::string && | prefix, |
| MQTTDiscoveryUniqueIdGenerator | unique_id_generator, | ||
| MQTTDiscoveryObjectIdGenerator | object_id_generator, | ||
| bool | retain, | ||
| bool | discover_ip, | ||
| bool | clean = false ) |
Set the Home Assistant discovery info.
See MQTT Discovery.
| prefix | The Home Assistant discovery prefix. |
| unique_id_generator | Controls how UniqueId is generated. |
| object_id_generator | Controls how ObjectId is generated. |
| retain | Whether to retain discovery messages. |
|
inline |
Definition at line 249 of file mqtt_client.h.
| void esphome::mqtt::MQTTClientComponent::set_keep_alive | ( | uint16_t | keep_alive_s | ) |
Set the keep alive time in seconds, every 0.7*keep_alive a ping will be sent.
| void esphome::mqtt::MQTTClientComponent::set_last_will | ( | MQTTMessage && | message | ) |
Set the last will testament message.
| void esphome::mqtt::MQTTClientComponent::set_log_level | ( | int | level | ) |
| void esphome::mqtt::MQTTClientComponent::set_log_message_template | ( | MQTTMessage && | message | ) |
Manually set the topic used for logging.
| void esphome::mqtt::MQTTClientComponent::set_on_connect | ( | mqtt_on_connect_callback_t && | callback | ) |
| void esphome::mqtt::MQTTClientComponent::set_on_disconnect | ( | mqtt_on_disconnect_callback_t && | callback | ) |
|
inline |
Definition at line 258 of file mqtt_client.h.
| void esphome::mqtt::MQTTClientComponent::set_publish_nan_as_none | ( | bool | publish_nan_as_none | ) |
| void esphome::mqtt::MQTTClientComponent::set_reboot_timeout | ( | uint32_t | reboot_timeout | ) |
| void esphome::mqtt::MQTTClientComponent::set_shutdown_message | ( | MQTTMessage && | message | ) |
|
inline |
Definition at line 144 of file mqtt_client.h.
| void esphome::mqtt::MQTTClientComponent::set_topic_prefix | ( | const std::string & | topic_prefix, |
| const std::string & | check_topic_prefix ) |
Set the topic prefix that will be prepended to all topics together with "/".
This will, in most cases, be the name of your Application.
For example, if "livingroom" is passed to this method, all state topics will, by default, look like "livingroom/.../state"
| topic_prefix | The topic prefix. The last "/" is appended automatically. |
|
inline |
Definition at line 257 of file mqtt_client.h.
|
inline |
Definition at line 268 of file mqtt_client.h.
|
overridevirtual |
Setup the MQTT client, registering a bunch of callbacks and attempting to connect.
Reimplemented from esphome::Component.
|
protected |
Reconnect to the MQTT broker if not already connected.
|
protected |
| void esphome::mqtt::MQTTClientComponent::subscribe | ( | const std::string & | topic, |
| mqtt_callback_t | callback, | ||
| uint8_t | qos = 0 ) |
Subscribe to an MQTT topic and call callback when a message is received.
| topic | The topic. Wildcards are currently not supported. |
| callback | The callback function. |
| qos | The QoS of this subscription. |
|
protected |
| void esphome::mqtt::MQTTClientComponent::subscribe_json | ( | const std::string & | topic, |
| const mqtt_json_callback_t & | callback, | ||
| uint8_t | qos = 0 ) |
Subscribe to a MQTT topic and automatically parse JSON payload.
If an invalid JSON payload is received, the callback will not be called.
| topic | The topic. Wildcards are currently not supported. |
| callback | The callback with a parsed JsonObject that will be called when a message with matching topic is received. |
| qos | The QoS of this subscription. |
| void esphome::mqtt::MQTTClientComponent::unsubscribe | ( | const std::string & | topic | ) |
Unsubscribe from an MQTT topic.
If multiple existing subscriptions to the same topic exist, all of them will be removed.
| topic | The topic to unsubscribe from. Must match the topic in the original subscribe or subscribe_json call exactly. |
|
protected |
Caches availability.
Definition at line 300 of file mqtt_client.h.
|
protected |
The birth message (e.g.
the message that's send on an established connection. See last_will_ for what different values denote.
Definition at line 296 of file mqtt_client.h.
|
protected |
Definition at line 330 of file mqtt_client.h.
|
protected |
Definition at line 332 of file mqtt_client.h.
|
protected |
Definition at line 290 of file mqtt_client.h.
|
protected |
Definition at line 334 of file mqtt_client.h.
|
protected |
The discovery info options for Home Assistant.
Undefined optional means default and empty prefix means disabled.
Definition at line 303 of file mqtt_client.h.
|
protected |
Definition at line 328 of file mqtt_client.h.
|
protected |
Definition at line 327 of file mqtt_client.h.
|
protected |
Definition at line 329 of file mqtt_client.h.
|
protected |
Definition at line 326 of file mqtt_client.h.
|
protected |
Definition at line 333 of file mqtt_client.h.
|
protected |
The last will message.
Disabled optional denotes it being default and an empty topic denotes the the feature being disabled.
Definition at line 293 of file mqtt_client.h.
|
protected |
Definition at line 314 of file mqtt_client.h.
|
protected |
Definition at line 312 of file mqtt_client.h.
|
protected |
Definition at line 318 of file mqtt_client.h.
|
protected |
Definition at line 320 of file mqtt_client.h.
|
protected |
Definition at line 322 of file mqtt_client.h.
|
protected |
Definition at line 335 of file mqtt_client.h.
|
protected |
Definition at line 313 of file mqtt_client.h.
|
protected |
Definition at line 337 of file mqtt_client.h.
|
protected |
Definition at line 331 of file mqtt_client.h.
|
protected |
Definition at line 297 of file mqtt_client.h.
|
protected |
Definition at line 298 of file mqtt_client.h.
|
protected |
Definition at line 325 of file mqtt_client.h.
|
protected |
Definition at line 316 of file mqtt_client.h.
|
protected |
Definition at line 311 of file mqtt_client.h.
|
protected |
Definition at line 338 of file mqtt_client.h.