ESPHome
2024.10.2
|
#include <mqtt_client.h>
Public Member Functions | |
MQTTClientComponent () | |
void | set_last_will (MQTTMessage &&message) |
Set the last will testament message. More... | |
void | disable_last_will () |
Remove the last will testament message. More... | |
void | set_birth_message (MQTTMessage &&message) |
Set the birth message. More... | |
void | disable_birth_message () |
Remove the birth message. More... | |
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. More... | |
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. More... | |
const MQTTDiscoveryInfo & | get_discovery_info () const |
Get Home Assistant discovery info. More... | |
void | disable_discovery () |
Globally disable Home Assistant discovery. More... | |
bool | is_discovery_enabled () const |
bool | is_discovery_ip_enabled () const |
void | add_ssl_fingerprint (const std::array< uint8_t, SHA1_SIZE > &fingerprint) |
Add a SSL fingerprint to use for TCP SSL connections to the MQTT broker. More... | |
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) |
Set the topic prefix that will be prepended to all topics together with "/". More... | |
const std::string & | get_topic_prefix () const |
Get the topic prefix of this device, using default if necessary. More... | |
void | set_log_message_template (MQTTMessage &&message) |
Manually set the topic used for logging. More... | |
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. More... | |
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. More... | |
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. More... | |
void | unsubscribe (const std::string &topic) |
Unsubscribe from an MQTT topic. More... | |
bool | publish (const MQTTMessage &message) |
Publish a MQTTMessage. More... | |
bool | publish (const std::string &topic, const std::string &payload, uint8_t qos=0, bool retain=false) |
Publish a MQTT message. More... | |
bool | publish (const std::string &topic, const char *payload, size_t payload_length, uint8_t qos=0, bool retain=false) |
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. More... | |
void | setup () override |
Setup the MQTT client, registering a bunch of callbacks and attempting to connect. More... | |
void | dump_config () override |
void | loop () override |
Reconnect if required. More... | |
float | get_setup_priority () const override |
MQTT client setup priority. More... | |
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 | 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) |
Public Member Functions inherited from esphome::Component | |
float | get_actual_setup_priority () const |
void | set_setup_priority (float priority) |
virtual float | get_loop_priority () const |
priority of loop(). More... | |
void | call () |
virtual void | on_safe_shutdown () |
uint32_t | get_component_state () const |
virtual void | mark_failed () |
Mark this component as failed. More... | |
bool | is_failed () const |
bool | is_ready () const |
bool | status_has_warning () const |
bool | status_has_error () const |
void | status_set_warning (const char *message="unspecified") |
void | status_set_error (const char *message="unspecified") |
void | status_clear_warning () |
void | status_clear_error () |
void | status_momentary_warning (const std::string &name, uint32_t length=5000) |
void | status_momentary_error (const std::string &name, uint32_t length=5000) |
bool | has_overridden_loop () const |
void | set_component_source (const char *source) |
Set where this component was loaded from for some debug messages. More... | |
const char * | get_component_source () const |
Get the integration where this component was declared as a string. More... | |
Protected Member Functions | |
void | send_device_info_ () |
void | start_connect_ () |
Reconnect to the MQTT broker if not already connected. More... | |
void | start_dnslookup_ () |
void | check_dnslookup_ () |
void | recalculate_availability_ () |
Re-calculate the availability property. More... | |
bool | subscribe_ (const char *topic, uint8_t qos) |
void | resubscribe_subscription_ (MQTTSubscription *sub) |
void | resubscribe_subscriptions_ () |
Protected Member Functions inherited from esphome::Component | |
virtual void | call_loop () |
virtual void | call_setup () |
virtual void | call_dump_config () |
void | set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f) |
Set an interval function with a unique name. More... | |
void | set_interval (uint32_t interval, std::function< void()> &&f) |
bool | cancel_interval (const std::string &name) |
Cancel an interval function. More... | |
void | set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
Set an retry function with a unique name. More... | |
void | set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
bool | cancel_retry (const std::string &name) |
Cancel a retry function. More... | |
void | set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f) |
Set a timeout function with a unique name. More... | |
void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
bool | cancel_timeout (const std::string &name) |
Cancel a timeout function. More... | |
void | defer (const std::string &name, std::function< void()> &&f) |
Defer a callback to the next loop() call. More... | |
void | defer (std::function< void()> &&f) |
Defer a callback to the next loop() call. More... | |
bool | cancel_defer (const std::string &name) |
Cancel a defer callback using the specified name, name must not be empty. More... | |
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) |
Definition at line 98 of file mqtt_client.h.
esphome::mqtt::MQTTClientComponent::MQTTClientComponent | ( | ) |
void esphome::mqtt::MQTTClientComponent::add_ssl_fingerprint | ( | const std::array< uint8_t, SHA1_SIZE > & | fingerprint | ) |
Add a SSL fingerprint to use for TCP SSL connections to the MQTT broker.
To use this feature you first have to globally enable the ASYNC_TCP_SSL_ENABLED
define flag. This function can be called multiple times and any certificate that matches any of the provided fingerprints will match. Calling this method will also automatically disable all non-ssl connections.
fingerprint | The SSL fingerprint as a 20 value long std::array. |
|
overridevirtual |
Reimplemented from esphome::Component.
void esphome::mqtt::MQTTClientComponent::check_connected | ( | ) |
|
protected |
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.
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 |
|
overridevirtual |
Reconnect if required.
Reimplemented from esphome::Component.
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 MQTTMessage & | message | ) |
Publish a MQTTMessage.
message | The message. |
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 | ( | const std::string & | topic, |
const char * | payload, | ||
size_t | payload_length, | ||
uint8_t | qos = 0 , |
||
bool | retain = false |
||
) |
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 253 of file mqtt_client.h.
|
inline |
Definition at line 254 of file mqtt_client.h.
|
inline |
Definition at line 152 of file mqtt_client.h.
|
inline |
Definition at line 153 of file mqtt_client.h.
|
inline |
Definition at line 154 of file mqtt_client.h.
|
inline |
Definition at line 258 of file mqtt_client.h.
|
inline |
Definition at line 257 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. |
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 256 of file mqtt_client.h.
void esphome::mqtt::MQTTClientComponent::set_reboot_timeout | ( | uint32_t | reboot_timeout | ) |
void esphome::mqtt::MQTTClientComponent::set_shutdown_message | ( | MQTTMessage && | message | ) |
|
inline |
Definition at line 155 of file mqtt_client.h.
void esphome::mqtt::MQTTClientComponent::set_topic_prefix | ( | const std::string & | 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 255 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 292 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 288 of file mqtt_client.h.
|
protected |
Definition at line 321 of file mqtt_client.h.
|
protected |
Definition at line 323 of file mqtt_client.h.
|
protected |
Definition at line 282 of file mqtt_client.h.
|
protected |
Definition at line 325 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 295 of file mqtt_client.h.
|
protected |
Definition at line 320 of file mqtt_client.h.
|
protected |
Definition at line 319 of file mqtt_client.h.
|
protected |
Definition at line 318 of file mqtt_client.h.
|
protected |
Definition at line 324 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 285 of file mqtt_client.h.
|
protected |
Definition at line 306 of file mqtt_client.h.
|
protected |
Definition at line 304 of file mqtt_client.h.
|
protected |
Definition at line 310 of file mqtt_client.h.
|
protected |
Definition at line 312 of file mqtt_client.h.
|
protected |
Definition at line 314 of file mqtt_client.h.
|
protected |
Definition at line 305 of file mqtt_client.h.
|
protected |
Definition at line 322 of file mqtt_client.h.
|
protected |
Definition at line 289 of file mqtt_client.h.
|
protected |
Definition at line 290 of file mqtt_client.h.
|
protected |
Definition at line 317 of file mqtt_client.h.
|
protected |
Definition at line 308 of file mqtt_client.h.
|
protected |
Definition at line 303 of file mqtt_client.h.