From e6eae8b39180ab6d5bec53fade06fdecda84d104 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Thu, 22 Aug 2024 14:29:40 +0200 Subject: [PATCH] Add retain flag to mqtt_send_state #781 --- src/mqtt/hasp_mqtt.h | 2 +- src/mqtt/hasp_mqtt_esp.cpp | 4 ++-- src/mqtt/hasp_mqtt_paho_async.cpp | 4 ++-- src/mqtt/hasp_mqtt_paho_single.cpp | 4 ++-- src/mqtt/hasp_mqtt_pubsubclient.cpp | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/mqtt/hasp_mqtt.h b/src/mqtt/hasp_mqtt.h index 89ced6c1..5aba7497 100644 --- a/src/mqtt/hasp_mqtt.h +++ b/src/mqtt/hasp_mqtt.h @@ -24,7 +24,7 @@ void mqttStart(); void mqttStop(); // int mqtt_send_object_state(uint8_t pageid, uint8_t btnid, const char* payload); -int mqtt_send_state(const char* subtopic, const char* payload); +int mqtt_send_state(const char* subtopic, const char* payload, bool retain=false); int mqtt_send_discovery(const char* payload, size_t len); int mqttPublish(const char* topic, const char* payload, size_t len, bool retain); diff --git a/src/mqtt/hasp_mqtt_esp.cpp b/src/mqtt/hasp_mqtt_esp.cpp index 8864c107..f19f3c5d 100644 --- a/src/mqtt/hasp_mqtt_esp.cpp +++ b/src/mqtt/hasp_mqtt_esp.cpp @@ -165,7 +165,7 @@ bool mqtt_send_lwt(bool online) // return mqttPublish(tmp_topic, payload, false); // } -int mqtt_send_state(const char* subtopic, const char* payload) +int mqtt_send_state(const char* subtopic, const char* payload, bool retain) { String tmp_topic((char*)0); tmp_topic.reserve(128); @@ -174,7 +174,7 @@ int mqtt_send_state(const char* subtopic, const char* payload) // tmp_topic += "/"; tmp_topic += subtopic; - return mqttPublish(tmp_topic.c_str(), payload, false); + return mqttPublish(tmp_topic.c_str(), payload, retain); } int mqtt_send_discovery(const char* payload, size_t len) diff --git a/src/mqtt/hasp_mqtt_paho_async.cpp b/src/mqtt/hasp_mqtt_paho_async.cpp index 28b81d10..a75bb699 100644 --- a/src/mqtt/hasp_mqtt_paho_async.cpp +++ b/src/mqtt/hasp_mqtt_paho_async.cpp @@ -284,11 +284,11 @@ bool mqttIsConnected() return mqttConnected; // MQTTAsync_isConnected(mqtt_client); // <- deadlocking on Linux } -int mqtt_send_state(const __FlashStringHelper* subtopic, const char* payload) +int mqtt_send_state(const __FlashStringHelper* subtopic, const char* payload, bool retain) { char tmp_topic[mqttNodeTopic.length() + 20]; snprintf_P(tmp_topic, sizeof(tmp_topic), ("%s" MQTT_TOPIC_STATE "/%s"), mqttNodeTopic.c_str(), subtopic); - return mqttPublish(tmp_topic, payload, strlen(payload), false); + return mqttPublish(tmp_topic, payload, strlen(payload), retain); } int mqtt_send_discovery(const char* payload, size_t len) diff --git a/src/mqtt/hasp_mqtt_paho_single.cpp b/src/mqtt/hasp_mqtt_paho_single.cpp index 50044044..2d1565b3 100644 --- a/src/mqtt/hasp_mqtt_paho_single.cpp +++ b/src/mqtt/hasp_mqtt_paho_single.cpp @@ -226,11 +226,11 @@ bool mqttIsConnected() return MQTTClient_isConnected(mqtt_client); } -int mqtt_send_state(const __FlashStringHelper* subtopic, const char* payload) +int mqtt_send_state(const __FlashStringHelper* subtopic, const char* payload, bool retain) { char tmp_topic[mqttNodeTopic.length() + 20]; snprintf_P(tmp_topic, sizeof(tmp_topic), ("%s" MQTT_TOPIC_STATE "/%s"), mqttNodeTopic.c_str(), subtopic); - return mqttPublish(tmp_topic, payload, strlen(payload), false); + return mqttPublish(tmp_topic, payload, strlen(payload), retain); } int mqtt_send_discovery(const char* payload, size_t len) diff --git a/src/mqtt/hasp_mqtt_pubsubclient.cpp b/src/mqtt/hasp_mqtt_pubsubclient.cpp index 9acd5ce8..84e2a2b5 100644 --- a/src/mqtt/hasp_mqtt_pubsubclient.cpp +++ b/src/mqtt/hasp_mqtt_pubsubclient.cpp @@ -117,11 +117,11 @@ bool mqtt_send_lwt(bool online) // return mqttPublish(tmp_topic, payload, false); // } -int mqtt_send_state(const char* subtopic, const char* payload) +int mqtt_send_state(const char* subtopic, const char* payload, bool retain) { char tmp_topic[strlen(mqttNodeTopic) + strlen(subtopic) + 16]; snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" MQTT_TOPIC_STATE "/%s"), mqttNodeTopic, subtopic); - return mqttPublish(tmp_topic, payload, false); + return mqttPublish(tmp_topic, payload, retain); } int mqtt_send_discovery(const char* payload, size_t len)