ESPHome 2025.8.0b2
|
#include <mqtt_sensor.h>
Public Member Functions | |
MQTTSensorComponent (sensor::Sensor *sensor) | |
Construct this MQTTSensorComponent instance with the provided friendly_name and sensor. | |
void | set_expire_after (uint32_t expire_after) |
Setup an expiry, 0 disables it. | |
void | disable_expire_after () |
Disable Home Assistant value expiry. | |
void | send_discovery (JsonObject root, mqtt::SendDiscoveryConfig &config) override |
void | setup () override |
Override setup. | |
void | dump_config () override |
uint32_t | get_expire_after () const |
Get the expire_after in milliseconds used for Home Assistant discovery, first checks override. | |
bool | publish_state (float value) |
bool | send_initial_state () override |
![]() | |
MQTTComponent () | |
Constructs a MQTTComponent. | |
void | call_setup () override |
Override setup_ so that we can call send_discovery() when needed. | |
void | call_loop () override |
void | call_dump_config () override |
virtual bool | is_internal () |
void | set_qos (uint8_t qos) |
Set QOS for state messages. | |
uint8_t | get_qos () const |
void | set_retain (bool retain) |
Set whether state message should be retained. | |
bool | get_retain () const |
void | disable_discovery () |
Disable discovery. Sets friendly name to "". | |
bool | is_discovery_enabled () const |
void | set_subscribe_qos (uint8_t qos) |
Set the QOS for subscribe messages (used in discovery). | |
void | set_custom_state_topic (const char *custom_state_topic) |
Set a custom state topic. Set to "" for default behavior. | |
void | set_custom_command_topic (const char *custom_command_topic) |
Set a custom command topic. Set to "" for default behavior. | |
void | set_command_retain (bool command_retain) |
Set whether command message should be retained. | |
float | get_setup_priority () const override |
MQTT_COMPONENT setup priority. | |
void | set_availability (std::string topic, std::string payload_available, std::string payload_not_available) |
Set the Home Assistant availability data. | |
void | disable_availability () |
void | schedule_resend_state () |
Internal method for the MQTT client base to schedule a resend of the state on reconnect. | |
bool | publish (const std::string &topic, const std::string &payload) |
Send a MQTT message. | |
bool | publish_json (const std::string &topic, const json::json_build_t &f) |
Construct and send a JSON MQTT message. | |
void | subscribe (const std::string &topic, mqtt_callback_t callback, uint8_t qos=0) |
Subscribe to a MQTT topic. | |
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. | |
![]() | |
virtual void | loop () |
This method will be called repeatedly. | |
float | get_actual_setup_priority () const |
void | set_setup_priority (float priority) |
virtual float | get_loop_priority () const |
priority of loop(). | |
void | call () |
virtual void | on_shutdown () |
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. | |
virtual void | mark_failed () |
Mark this component as failed. | |
void | mark_failed (const char *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 |
virtual bool | can_proceed () |
bool | status_has_warning () const |
bool | status_has_error () const |
void | status_set_warning (const char *message=nullptr) |
void | status_set_error (const char *message=nullptr) |
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. | |
const char * | get_component_source () const |
Get the integration where this component was declared as a string. | |
bool | should_warn_of_blocking (uint32_t blocking_time) |
Protected Member Functions | |
std::string | component_type () const override |
Override for MQTTComponent, returns "sensor". | |
const EntityBase * | get_entity () const override |
![]() | |
std::string | get_discovery_topic_ (const MQTTDiscoveryInfo &discovery_info) const |
Helper method to get the discovery topic for this component. | |
std::string | get_default_topic_for_ (const std::string &suffix) const |
Get this components state/command/... topic. | |
virtual std::string | friendly_name () const |
Get the friendly name of this MQTT component. | |
virtual std::string | get_icon () const |
Get the icon field of this component. | |
virtual bool | is_disabled_by_default () const |
Get whether the underlying Entity is disabled by default. | |
std::string | get_state_topic_ () const |
Get the MQTT topic that new states will be shared to. | |
std::string | get_command_topic_ () const |
Get the MQTT topic for listening to commands. | |
bool | is_connected_ () const |
bool | send_discovery_ () |
Internal method to start sending discovery info, this will call send_discovery(). | |
std::string | get_default_object_id_ () const |
Generate the Home Assistant MQTT discovery object id by automatically transforming the friendly name. | |
![]() | |
void | set_component_state_ (uint8_t state) |
Helper to set component state (clears state bits and sets new state) | |
void | set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f) |
Set an interval function with a unique name. | |
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 interval, std::function< void()> &&f) |
bool | cancel_interval (const std::string &name) |
Cancel an interval function. | |
bool | cancel_interval (const char *name) |
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. | |
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. | |
void | set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f) |
Set a timeout function with a unique name. | |
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 timeout, std::function< void()> &&f) |
bool | cancel_timeout (const std::string &name) |
Cancel a timeout function. | |
bool | cancel_timeout (const char *name) |
void | defer (const std::string &name, std::function< void()> &&f) |
Defer a callback to the next loop() call. | |
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. | |
bool | cancel_defer (const std::string &name) |
Cancel a defer callback using the specified name, name must not be empty. | |
Protected Attributes | |
sensor::Sensor * | sensor_ |
optional< uint32_t > | expire_after_ |
![]() | |
StringRef | custom_state_topic_ {} |
StringRef | custom_command_topic_ {} |
std::unique_ptr< Availability > | availability_ |
bool | has_custom_state_topic_ {false} |
bool | has_custom_command_topic_ {false} |
bool | command_retain_ {false} |
bool | retain_ {true} |
uint8_t | qos_ {0} |
uint8_t | subscribe_qos_ {0} |
bool | discovery_enabled_ {true} |
bool | resend_state_ {false} |
![]() | |
const char * | component_source_ {nullptr} |
uint16_t | warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS} |
Warn if blocked for this many ms (max 65.5s) | |
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 Bits 5-7: Unused - reserved for future expansion. | |
volatile bool | pending_enable_loop_ {false} |
ISR-safe flag for enable_loop_soon_any_context. | |
Definition at line 14 of file mqtt_sensor.h.
|
explicit |
Construct this MQTTSensorComponent instance with the provided friendly_name and sensor.
Note the sensor is never stored and is only used for initializing some values of this class. If sensor is nullptr, then automatic initialization of these fields is disabled.
sensor | The sensor, this can be null to disable automatic setup. |
Definition at line 21 of file mqtt_sensor.cpp.
|
overrideprotectedvirtual |
Override for MQTTComponent, returns "sensor".
Implements esphome::mqtt::MQTTComponent.
Definition at line 35 of file mqtt_sensor.cpp.
void esphome::mqtt::MQTTSensorComponent::disable_expire_after | ( | ) |
Disable Home Assistant value expiry.
Definition at line 44 of file mqtt_sensor.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 27 of file mqtt_sensor.cpp.
|
overrideprotectedvirtual |
Implements esphome::mqtt::MQTTComponent.
Definition at line 36 of file mqtt_sensor.cpp.
uint32_t esphome::mqtt::MQTTSensorComponent::get_expire_after | ( | ) | const |
Get the expire_after in milliseconds used for Home Assistant discovery, first checks override.
Definition at line 38 of file mqtt_sensor.cpp.
bool esphome::mqtt::MQTTSensorComponent::publish_state | ( | float | value | ) |
Definition at line 73 of file mqtt_sensor.cpp.
|
overridevirtual |
Implements esphome::mqtt::MQTTComponent.
Definition at line 46 of file mqtt_sensor.cpp.
|
overridevirtual |
Implements esphome::mqtt::MQTTComponent.
Definition at line 66 of file mqtt_sensor.cpp.
void esphome::mqtt::MQTTSensorComponent::set_expire_after | ( | uint32_t | expire_after | ) |
Setup an expiry, 0 disables it.
Definition at line 43 of file mqtt_sensor.cpp.
|
overridevirtual |
Override setup.
Reimplemented from esphome::Component.
Definition at line 23 of file mqtt_sensor.cpp.
Definition at line 51 of file mqtt_sensor.h.
|
protected |
Definition at line 50 of file mqtt_sensor.h.