publish discovery once at each MQTT connection with retain flag set true (#507)
* publish discovery once at each MQTT connection with retain flag set to true #448
This commit is contained in:
1 parent
3948a14db9
commit
ae33ea7458
3 files changed
+18
-23
No files matched your search
+16
-6
@@ -385,7 +385,7 @@ void pub(char *topicori, char *payload)
|
||||
}
|
||||
}
|
||||
|
||||
void pub_custom_topic(char *topicori, JsonObject &data)
|
||||
void pub_custom_topic(char *topicori, JsonObject &data, boolean retain)
|
||||
{
|
||||
if (client.connected())
|
||||
{
|
||||
@@ -394,7 +394,7 @@ void pub_custom_topic(char *topicori, JsonObject &data)
|
||||
trc(topicori);
|
||||
data.printTo(JSONmessageBuffer, sizeof(JSONmessageBuffer));
|
||||
trc(JSONmessageBuffer);
|
||||
pubMQTT(topicori, JSONmessageBuffer);
|
||||
pubMQTT(topicori, JSONmessageBuffer, retain);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -402,14 +402,20 @@ void pub_custom_topic(char *topicori, JsonObject &data)
|
||||
}
|
||||
}
|
||||
|
||||
void pubMQTT(char *topic, char *payload)
|
||||
// Low level MQTT functions
|
||||
void pubMQTT(char * topic, char * payload)
|
||||
{
|
||||
client.publish(topic, payload);
|
||||
client.publish(topic, payload);
|
||||
}
|
||||
|
||||
void pubMQTT(String topic, char *payload)
|
||||
void pubMQTT(char * topicori, char * payload, bool retainFlag)
|
||||
{
|
||||
client.publish((char *)topic.c_str(), payload);
|
||||
client.publish(topicori, payload, retainFlag);
|
||||
}
|
||||
|
||||
void pubMQTT(String topic, char * payload)
|
||||
{
|
||||
client.publish((char *)topic.c_str(),payload);
|
||||
}
|
||||
|
||||
void pubMQTT(char *topic, unsigned long payload)
|
||||
@@ -1085,6 +1091,10 @@ void loop()
|
||||
// MQTT loop
|
||||
connectedOnce = true;
|
||||
lastMQTTReconnectAttempt = 0;
|
||||
|
||||
#ifdef ZmqttDiscovery
|
||||
if(!connectedOnce) pubMqttDiscovery(); // at first connection we publish the discovery payloads
|
||||
#endif
|
||||
client.loop();
|
||||
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
|
||||
Reference in new issue
Block a user