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:
Florian authored and GitHub committed 2019-12-14 19:17:09 +01:00
1 parent 3948a14db9
commit ae33ea7458
3 files changed
+18 -23

No files matched your search

+16 -6
View File
@@ -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)