update mqtt config setting on the fly

This commit is contained in:
proddy
2020-08-28 00:29:18 +02:00
parent b1e094293f
commit ae55789679
2 changed files with 9 additions and 3 deletions

View File

@@ -4,8 +4,9 @@
namespace emsesp { namespace emsesp {
class EMSESP { class EMSESP {
public: public:
static System system_; static System system_;
static Mqtt mqtt_; static Mqtt mqtt_;
static Sensors sensors_;
}; };
} // namespace emsesp } // namespace emsesp
@@ -112,6 +113,9 @@ void MqttSettingsService::onMqttDisconnect(AsyncMqttClientDisconnectReason reaso
void MqttSettingsService::onConfigUpdated() { void MqttSettingsService::onConfigUpdated() {
_reconfigureMqtt = true; _reconfigureMqtt = true;
_disconnectedAt = 0; _disconnectedAt = 0;
// added by proddy
// reload EMS-ESP MQTT settings
} }
#ifdef ESP32 #ifdef ESP32
@@ -164,6 +168,8 @@ void MqttSettingsService::configureMqtt() {
_mqttClient.setMaxTopicLength(_state.maxTopicLength); _mqttClient.setMaxTopicLength(_state.maxTopicLength);
_mqttClient.connect(); _mqttClient.connect();
} }
emsesp::EMSESP::sensors_.reload();
} }
void MqttSettings::read(MqttSettings & settings, JsonObject & root) { void MqttSettings::read(MqttSettings & settings, JsonObject & root) {
@@ -208,7 +214,6 @@ StateUpdateResult MqttSettings::update(JsonObject & root, MqttSettings & setting
if (newSettings.mqtt_qos != settings.mqtt_qos) { if (newSettings.mqtt_qos != settings.mqtt_qos) {
emsesp::EMSESP::mqtt_.set_qos(newSettings.mqtt_qos); emsesp::EMSESP::mqtt_.set_qos(newSettings.mqtt_qos);
emsesp::EMSESP::mqtt_.disconnect(); // force a disconnect & reconnect
} }
if (newSettings.publish_time != settings.publish_time) { if (newSettings.publish_time != settings.publish_time) {

View File

@@ -9,6 +9,7 @@
#include "../../src/system.h" #include "../../src/system.h"
#include "../../src/mqtt.h" #include "../../src/mqtt.h"
#include "../../src/sensors.h"
#define MQTT_RECONNECTION_DELAY 5000 #define MQTT_RECONNECTION_DELAY 5000