diff --git a/code/components/jomjol_flowcontroll/ClassFlowMQTT.cpp b/code/components/jomjol_flowcontroll/ClassFlowMQTT.cpp index c8489ee9..2892b648 100644 --- a/code/components/jomjol_flowcontroll/ClassFlowMQTT.cpp +++ b/code/components/jomjol_flowcontroll/ClassFlowMQTT.cpp @@ -24,6 +24,7 @@ extern const char* libfive_git_revision(void); extern const char* libfive_git_branch(void); std::vector* NUMBERS; +bool HomeassistantDiscovery = false; void sendHomeAssistantDiscoveryTopic(std::string maintopic, std::string group, std::string field, std::string name, std::string icon, std::string unit, std::string deviceClass, std::string stateClass) { @@ -151,7 +152,9 @@ void publishRuntimeData(std::string maintopic, int SetRetainFlag) { } void GotConnected(std::string maintopic, int SetRetainFlag) { - MQTThomeassistantDiscovery(maintopic); + if (HomeassistantDiscovery) { + MQTThomeassistantDiscovery(maintopic); + } MQTTPublish(maintopic + "/" + "MAC", getMac(), SetRetainFlag); MQTTPublish(maintopic + "/" + "IP", *getIPAddress(), SetRetainFlag); @@ -180,7 +183,7 @@ void ClassFlowMQTT::SetInitialParameter(void) flowpostprocessing = NULL; user = ""; password = ""; - SetRetainFlag = 0; + SetRetainFlag = 0; previousElement = NULL; ListFlowControll = NULL; disabled = false; @@ -268,6 +271,11 @@ bool ClassFlowMQTT::ReadParameter(FILE* pfile, string& aktparamgraph) if (toUpper(zerlegt[1]) == "TRUE") SetRetainFlag = 1; } + if ((toUpper(zerlegt[0]) == "HOMEASSISTANTDISCOVERY") && (zerlegt.size() > 1)) + { + if (toUpper(zerlegt[1]) == "TRUE") + HomeassistantDiscovery = true; + } if ((toUpper(zerlegt[0]) == "CLIENTID") && (zerlegt.size() > 1)) { diff --git a/sd-card/html/edit_config_param.html b/sd-card/html/edit_config_param.html index ac6b5a46..b58d23dd 100644 --- a/sd-card/html/edit_config_param.html +++ b/sd-card/html/edit_config_param.html @@ -625,7 +625,23 @@ textarea { Enable or disable the retain flag for all MQTT entries - + + + + + + + + + + Enable or disable the Homeassistand Discovery + + + +

@@ -1715,6 +1731,7 @@ function UpdateInput() { WriteParameter(param, category, "MQTT", "user", true); WriteParameter(param, category, "MQTT", "password", true); WriteParameter(param, category, "MQTT", "SetRetainFlag", true); + WriteParameter(param, category, "MQTT", "HomeassistantDiscovery", true); WriteParameter(param, category, "InfluxDB", "Uri", true); WriteParameter(param, category, "InfluxDB", "Database", true); @@ -1831,6 +1848,7 @@ function ReadParameterAll() ReadParameter(param, "MQTT", "user", true); ReadParameter(param, "MQTT", "password", true); ReadParameter(param, "MQTT", "SetRetainFlag", true); + ReadParameter(param, "MQTT", "HomeassistantDiscovery", true); ReadParameter(param, "InfluxDB", "Uri", true); ReadParameter(param, "InfluxDB", "Database", true); diff --git a/sd-card/html/readconfigparam.js b/sd-card/html/readconfigparam.js index ffacacf8..60c57ba9 100644 --- a/sd-card/html/readconfigparam.js +++ b/sd-card/html/readconfigparam.js @@ -187,6 +187,7 @@ function ParseConfig() { ParamAddValue(param, catname, "user"); ParamAddValue(param, catname, "password"); ParamAddValue(param, catname, "SetRetainFlag"); + ParamAddValue(param, catname, "HomeassistantDiscovery"); var catname = "InfluxDB"; category[catname] = new Object();