[DISC] Add ability to change Discovery Prefix via WebUI or via mosquitto_pub (#2007)
Add discovery_prefix change at runtime --------- Co-authored-by: Florian <1technophile@users.noreply.github.com>
This commit is contained in:
1 parent
36945dae42
commit
57fbca8f88
6 files changed
+58
-14
No files matched your search
+19
-2
@@ -692,7 +692,8 @@ void handleWI() {
|
||||
* T: handleMQ Arg: 4, sc=on
|
||||
* T: handleMQ Arg: 5, h=
|
||||
* T: handleMQ Arg: 6, mt=home/
|
||||
* T: handleMQ Arg: 7, save=
|
||||
* T: handleMQ Arg: 7 dp=homeassistant (#ifdef ZmqttDiscovery)
|
||||
* T: handleMQ Arg: 8, save=
|
||||
*/
|
||||
void handleMQ() {
|
||||
WEBUI_TRACE_LOG(F("handleMQ: uri: %s, args: %d, method: %d" CR), server.uri(), server.args(), server.method());
|
||||
@@ -762,6 +763,14 @@ void handleMQ() {
|
||||
update = true;
|
||||
}
|
||||
}
|
||||
# ifdef ZmqttDiscovery
|
||||
if (server.hasArg("dp")) {
|
||||
WEBtoSYS["discovery_prefix"] = server.arg("dp");
|
||||
if (strncmp(discovery_prefix, server.arg("dp").c_str(), parameters_size)) {
|
||||
update = true;
|
||||
}
|
||||
}
|
||||
# endif
|
||||
|
||||
# ifndef ESPWifiManualSetup
|
||||
if (update) {
|
||||
@@ -803,11 +812,19 @@ void handleMQ() {
|
||||
String response = String(buffer);
|
||||
response += String(script);
|
||||
response += String(style);
|
||||
// mqtt server (mh), mqtt port (ml), mqtt username (mu), mqtt password (mp), secure connection (sc), server certificate (msc), topic (mt)
|
||||
// mqtt server (mh), mqtt port (ml), mqtt username (mu), mqtt password (mp), secure connection (sc), server certificate (msc), mqtt topic (mt), discovery prefix (dp) (last one only #ifdef ZmqttDiscovery)
|
||||
# if MQTT_BROKER_MODE
|
||||
# ifdef ZmqttDiscovery
|
||||
snprintf(buffer, WEB_TEMPLATE_BUFFER_MAX_SIZE, config_mqtt_body, jsonChar, gateway_name, "", "1883", "", "", gateway_name, mqtt_topic, discovery_prefix);
|
||||
# else
|
||||
snprintf(buffer, WEB_TEMPLATE_BUFFER_MAX_SIZE, config_mqtt_body, jsonChar, gateway_name, "", "1883", "", "", gateway_name, mqtt_topic);
|
||||
# endif
|
||||
# else
|
||||
# ifdef ZmqttDiscovery
|
||||
snprintf(buffer, WEB_TEMPLATE_BUFFER_MAX_SIZE, config_mqtt_body, jsonChar, gateway_name, cnt_parameters_array[CNT_DEFAULT_INDEX].mqtt_server, cnt_parameters_array[CNT_DEFAULT_INDEX].mqtt_port, cnt_parameters_array[CNT_DEFAULT_INDEX].mqtt_user, (cnt_parameters_array[CNT_DEFAULT_INDEX].isConnectionSecure ? "checked" : ""), gateway_name, mqtt_topic, discovery_prefix);
|
||||
# else
|
||||
snprintf(buffer, WEB_TEMPLATE_BUFFER_MAX_SIZE, config_mqtt_body, jsonChar, gateway_name, cnt_parameters_array[CNT_DEFAULT_INDEX].mqtt_server, cnt_parameters_array[CNT_DEFAULT_INDEX].mqtt_port, cnt_parameters_array[CNT_DEFAULT_INDEX].mqtt_user, (cnt_parameters_array[CNT_DEFAULT_INDEX].isConnectionSecure ? "checked" : ""), gateway_name, mqtt_topic);
|
||||
# endif
|
||||
# endif
|
||||
response += String(buffer);
|
||||
snprintf(buffer, WEB_TEMPLATE_BUFFER_MAX_SIZE, footer, OMG_VERSION);
|
||||
|
||||
Reference in new issue
Block a user