diff --git a/src/EspFileSystem.cpp b/src/EspFileSystem.cpp index aee94a2c..67349961 100644 --- a/src/EspFileSystem.cpp +++ b/src/EspFileSystem.cpp @@ -12,6 +12,11 @@ bool fileSystemInit() { void globalVarsSync() { settingsFlashJson = readFile(F("settings.json"), 4096); settingsFlashJson.replace("\r\n", ""); + + mqttPrefix = jsonReadStr(settingsFlashJson, F("mqttPrefix")); + mqttRootDevice = mqttPrefix + "/" + chipId; + jsonWriteStr_(settingsFlashJson, "root", mqttRootDevice); + saveSettingsFlashJson(); } void saveSettingsFlashJson() { diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 78023b62..ca7dc738 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -89,20 +89,18 @@ void getMqttData1() { currentBroker = 1; mqttServer = jsonReadStr(settingsFlashJson, F("mqttServer")); mqttPort = jsonReadInt(settingsFlashJson, F("mqttPort")); - mqttPrefix = jsonReadStr(settingsFlashJson, F("mqttPrefix")); mqttUser = jsonReadStr(settingsFlashJson, F("mqttUser")); mqttPass = jsonReadStr(settingsFlashJson, F("mqttPass")); - prex = mqttPrefix + "/" + chipId; + // prex = mqttPrefix + "/" + chipId; } void getMqttData2() { currentBroker = 2; mqttServer = jsonReadStr(settingsFlashJson, F("mqttServer2")); mqttPort = jsonReadInt(settingsFlashJson, F("mqttPort2")); - mqttPrefix = jsonReadStr(settingsFlashJson, F("mqttPrefix2")); mqttUser = jsonReadStr(settingsFlashJson, F("mqttUser2")); mqttPass = jsonReadStr(settingsFlashJson, F("mqttPass2")); - prex = mqttPrefix + "/" + chipId; + // prex = mqttPrefix + "/" + chipId; } bool isSecondBrokerSet() { @@ -125,8 +123,6 @@ boolean mqttConnect() { } SerialPrint("I", "MQTT", "connection started to broker No " + String(currentBroker)); - mqttRootDevice = mqttPrefix + "/" + chipId; - SerialPrint("I", "MQTT", "broker " + mqttServer + ":" + String(mqttPort, DEC)); SerialPrint("I", "MQTT", "topic " + mqttRootDevice); // setLedStatus(LED_FAST); @@ -147,16 +143,16 @@ boolean mqttConnect() { if (connected) { SerialPrint("I", F("MQTT"), F("✔ connected")); - if (currentBroker == 1) jsonWriteStr(settingsFlashJson, F("warning4"), F("

Подключено к основному брокеру

")); - if (currentBroker == 2) jsonWriteStr(settingsFlashJson, F("warning4"), F("

Подключено к резервному брокеру

")); - // setLedStatus(LED_OFF); + // if (currentBroker == 1) jsonWriteStr(settingsFlashJson, F("warning4"), F("

Подключено к основному брокеру

")); + // if (currentBroker == 2) jsonWriteStr(settingsFlashJson, F("warning4"), F("

Подключено к резервному брокеру

")); + // setLedStatus(LED_OFF); mqttSubscribe(); res = true; } else { mqttConnectAttempts++; SerialPrint("E", F("MQTT"), "🡆 Attempt No: " + String(mqttConnectAttempts) + " could't connect, retry in " + String(MQTT_RECONNECT_INTERVAL / 1000) + "s"); // setLedStatus(LED_FAST); - jsonWriteStr(settingsFlashJson, F("warning4"), F("

Не подключено брокеру

")); + // jsonWriteStr(settingsFlashJson, F("warning4"), F("

Не подключено брокеру

")); if (mqttConnectAttempts >= CHANGE_BROKER_AFTER) { mqttConnectAttempts = 0; if (isSecondBrokerSet()) { diff --git a/src/WsServer.cpp b/src/WsServer.cpp index f64974b8..8bd71819 100644 --- a/src/WsServer.cpp +++ b/src/WsServer.cpp @@ -41,6 +41,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) sendFileToWs5("/items.json", num, 1024); sendFileToWs5("/widgets.json", num, 1024); sendFileToWs5("/config.json", num, 1024); + sendFileToWs5("/settings.json", num, 1024); } if (headerStr == "/gifnoc") { writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256); @@ -129,7 +130,7 @@ void sendFileToWs5(const char* filename, uint8_t num, size_t frameSize) { } void publishStatusWs(const String& topic, const String& data) { - String path = mqttRootDevice + "/" + topic + "/status"; + String path = mqttRootDevice + "/" + topic; //+ "/status"; String json = "{}"; jsonWriteStr(json, "status", data); jsonWriteStr(json, "topic", path);