implement settingMQTTuniqueid
This commit is contained in:
parent
c2df021f8c
commit
8683739ba2
|
@ -35,16 +35,16 @@
|
|||
String MQTTclientId;
|
||||
String MQTTPubNamespace = "";
|
||||
String MQTTSubNamespace = "";
|
||||
String NodeId = "";
|
||||
// String NodeId = "";
|
||||
//===========================================================================================
|
||||
void startMQTT()
|
||||
{
|
||||
if (!settingMQTTenable) return;
|
||||
stateMQTT = MQTT_STATE_INIT;
|
||||
//setup for mqtt discovery
|
||||
NodeId = getUniqueId();
|
||||
MQTTPubNamespace = settingMQTTtopTopic + "/value/" + NodeId;
|
||||
MQTTSubNamespace = settingMQTTtopTopic + "/set/" + NodeId;
|
||||
// NodeId = getUniqueId();
|
||||
MQTTPubNamespace = settingMQTTtopTopic + "/value/" + settingMQTTuniqueid;
|
||||
MQTTSubNamespace = settingMQTTtopTopic + "/set/" + settingMQTTuniqueid;
|
||||
handleMQTT(); //initialize the MQTT statemachine
|
||||
// handleMQTT(); //then try to connect to MQTT
|
||||
// handleMQTT(); //now you should be connected to MQTT ready to send
|
||||
|
@ -355,14 +355,14 @@ void doAutoConfigure(){
|
|||
sTopic.replace("%homeassistant%", CSTR(settingMQTThaprefix));
|
||||
|
||||
/// node
|
||||
sTopic.replace("%node_id%", CSTR(NodeId));
|
||||
sTopic.replace("%node_id%", CSTR(settingMQTTuniqueid));
|
||||
MQTTDebugf("[%s]\r\n", CSTR(sTopic));
|
||||
/// ----------------------
|
||||
|
||||
MQTTDebugTf("sMsg[%s]==>", CSTR(sMsg));
|
||||
|
||||
/// node
|
||||
sMsg.replace("%node_id%", CSTR(NodeId));
|
||||
sMsg.replace("%node_id%", CSTR(settingMQTTuniqueid));
|
||||
|
||||
/// hostname
|
||||
sMsg.replace("%hostname%", CSTR(settingHostname));
|
||||
|
|
|
@ -88,6 +88,7 @@ String settingMQTTuser = "";
|
|||
String settingMQTTpasswd = "";
|
||||
String settingMQTThaprefix = HOME_ASSISTANT_DISCOVERY_PREFIX;
|
||||
String settingMQTTtopTopic = "otgw";
|
||||
String settingMQTTuniqueid = ""; // Intialized in readsettings
|
||||
bool settingMQTTOTmessage = false;
|
||||
bool settingNTPenable = true;
|
||||
String settingNTPtimezone = DEFAULT_TIMEZONE;
|
||||
|
|
|
@ -492,7 +492,12 @@
|
|||
//----document.getElementById("setFld_"+data[i].name).style.background = "white";
|
||||
document.getElementById(data[i].name).style.background = "white";
|
||||
//----document.getElementById("setFld_"+data[i].name).value = data[i].value;
|
||||
document.getElementById(data[i].name).value = data[i].value;
|
||||
// document.getElementById(data[i].name).value = data[i].value;
|
||||
// FIX If checkbox change checked iso value
|
||||
if (data[i].type == "b")
|
||||
document.getElementById(data[i].name).checked = strToBool(data[i].value);
|
||||
else document.getElementById(data[i].name).value = data[i].value;
|
||||
|
||||
}
|
||||
}
|
||||
//console.log("-->done..");
|
||||
|
@ -637,6 +642,7 @@
|
|||
,[ "mqttuser", "MQTT User" ]
|
||||
,[ "mqttpasswd", "Password MQTT User" ]
|
||||
,[ "mqtttoptopic", "MQTT Top Topic" ]
|
||||
,[ "mqttuniqueid", "MQTT Uniqueid" ]
|
||||
,[ "influxdbhostname", "InfluxDB hostname"]
|
||||
,[ "influxdbport", "InfluxDB port (default: 8086)"]
|
||||
,[ "influxdbdatabasename", "InfluxDB database name"]
|
||||
|
|
|
@ -408,6 +408,7 @@ void sendDeviceSettings()
|
|||
sendJsonSettingObj("mqttpasswd", CSTR(settingMQTTpasswd), "s", 100);
|
||||
sendJsonSettingObj("mqtttoptopic", CSTR(settingMQTTtopTopic), "s", 15);
|
||||
sendJsonSettingObj("mqtthaprefix", CSTR(settingMQTThaprefix), "s", 20);
|
||||
sendJsonSettingObj("mqttuniqueid", CSTR(settingMQTTuniqueid), "s", 20);
|
||||
sendJsonSettingObj("mqttotmessage", settingMQTTOTmessage, "b");
|
||||
sendJsonSettingObj("ntpenable", settingNTPenable, "b");
|
||||
sendJsonSettingObj("ntptimezone", CSTR(settingNTPtimezone), "s", 50);
|
||||
|
|
|
@ -37,6 +37,7 @@ void writeSettings(bool show)
|
|||
root["MQTTpasswd"] = settingMQTTpasswd;
|
||||
root["MQTTtoptopic"] = settingMQTTtopTopic;
|
||||
root["MQTThaprefix"] = settingMQTThaprefix;
|
||||
root["MQTTuniqueid"] = settingMQTTuniqueid;
|
||||
root["MQTTOTmessage"] = settingMQTTOTmessage;
|
||||
root["NTPenable"] = settingNTPenable;
|
||||
root["NTPtimezone"] = settingNTPtimezone;
|
||||
|
@ -76,6 +77,7 @@ void readSettings(bool show)
|
|||
if (error)
|
||||
{
|
||||
DebugTln(F("Failed to read file, use existing defaults."));
|
||||
DebugTf("Settings Deserialisation error: %s \r\n", error.c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -94,6 +96,9 @@ void readSettings(bool show)
|
|||
}
|
||||
settingMQTThaprefix = doc["MQTThaprefix"].as<String>();
|
||||
if (settingMQTThaprefix=="null") settingMQTThaprefix = HOME_ASSISTANT_DISCOVERY_PREFIX;
|
||||
settingMQTTuniqueid = doc["MQTTuniqueid"].as<String>();
|
||||
if (settingMQTTuniqueid=="null") settingMQTTuniqueid = getUniqueId();
|
||||
|
||||
settingMQTTOTmessage = doc["MQTTOTmessage"]|settingMQTTOTmessage;
|
||||
settingNTPenable = doc["NTPenable"];
|
||||
settingNTPtimezone = doc["NTPtimezone"].as<String>();
|
||||
|
@ -121,6 +126,7 @@ void readSettings(bool show)
|
|||
Debugf("MQTT password : %s\r\n", CSTR(settingMQTTpasswd));
|
||||
Debugf("MQTT toptopic : %s\r\n", CSTR(settingMQTTtopTopic));
|
||||
Debugf("HA prefix : %s\r\n", CSTR(settingMQTThaprefix));
|
||||
Debugf("MQTT uniqueid : %s\r\n", CSTR(settingMQTTuniqueid));
|
||||
Debugf("NTP enabled : %s\r\n", CBOOLEAN(settingNTPenable));
|
||||
Debugf("NPT timezone : %s\r\n", CSTR(settingNTPtimezone));
|
||||
Debugf("Led Blink : %s\r\n", CBOOLEAN(settingLEDblink));
|
||||
|
@ -154,7 +160,7 @@ void updateSetting(const char *field, const char *newValue)
|
|||
startMDNS(CSTR(settingHostname));
|
||||
startLLMNR(CSTR(settingHostname));
|
||||
|
||||
//Resetart MQTT connection every "save settings"
|
||||
//Restart MQTT connection every "save settings"
|
||||
startMQTT();
|
||||
|
||||
Debugln();
|
||||
|
@ -176,6 +182,10 @@ void updateSetting(const char *field, const char *newValue)
|
|||
settingMQTThaprefix = String(newValue);
|
||||
if (settingMQTThaprefix.length()==0) settingMQTThaprefix = HOME_ASSISTANT_DISCOVERY_PREFIX;
|
||||
}
|
||||
if (stricmp(field, "MQTTuniqueid") == 0) {
|
||||
settingMQTTuniqueid = String(newValue);
|
||||
if (settingMQTTuniqueid.length() == 0) settingMQTTuniqueid = getUniqueId();
|
||||
}
|
||||
if (stricmp(field, "MQTTOTmessage")==0) settingMQTTOTmessage = EVALBOOLEAN(newValue);
|
||||
if (strstr(field, "mqtt") != NULL) startMQTT();//restart MQTT on change of any setting
|
||||
|
||||
|
@ -206,6 +216,10 @@ void updateSetting(const char *field, const char *newValue)
|
|||
|
||||
//finally update write settings
|
||||
writeSettings(false);
|
||||
|
||||
//Restart MQTT connection every "save settings" (this seems to be save to do, but is called for each changed field now )
|
||||
if (settingMQTTenable) startMQTT();
|
||||
|
||||
// if (strstr(field, "hostname")!= NULL) {
|
||||
// //restart wifi
|
||||
// startWIFI( CSTR(settingHostname), 240)
|
||||
|
|
Loading…
Reference in New Issue