reboot after power meter settings

This commit is contained in:
helgeerbe 2023-03-23 19:10:29 +01:00
parent 55dc4dbdfc
commit 0832ef86e4
4 changed files with 9 additions and 47 deletions

View File

@ -40,10 +40,6 @@ private:
float _PowerMeterExport = 0.0; float _PowerMeterExport = 0.0;
bool mqttInitDone = false; bool mqttInitDone = false;
char PowerMeter_MqttTopicPowerMeter1old[MQTT_MAX_TOPIC_STRLEN + 1];
char PowerMeter_MqttTopicPowerMeter2old[MQTT_MAX_TOPIC_STRLEN + 1];
char PowerMeter_MqttTopicPowerMeter3old[MQTT_MAX_TOPIC_STRLEN + 1];
}; };
extern PowerMeterClass PowerMeter; extern PowerMeterClass PowerMeter;

View File

@ -26,39 +26,14 @@ void PowerMeterClass::init()
_lastPowerMeterUpdate = 0; _lastPowerMeterUpdate = 0;
CONFIG_T& config = Configuration.get(); CONFIG_T& config = Configuration.get();
//if(!mqttInitDone){
if (strlen(config.PowerMeter_MqttTopicPowerMeter1) != 0 && strcmp(PowerMeter_MqttTopicPowerMeter1old, config.PowerMeter_MqttTopicPowerMeter1)) {
MqttSettings.subscribe(config.PowerMeter_MqttTopicPowerMeter1, 0, std::bind(&PowerMeterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6));
strlcpy(PowerMeter_MqttTopicPowerMeter1old, config.PowerMeter_MqttTopicPowerMeter1, sizeof(config.PowerMeter_MqttTopicPowerMeter3));
}
if (strlen(config.PowerMeter_MqttTopicPowerMeter2) != 0 && strcmp(PowerMeter_MqttTopicPowerMeter2old, config.PowerMeter_MqttTopicPowerMeter2)) { MqttSettings.subscribe(config.PowerMeter_MqttTopicPowerMeter1, 0, std::bind(&PowerMeterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6));
MqttSettings.subscribe(config.PowerMeter_MqttTopicPowerMeter2, 0, std::bind(&PowerMeterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); MqttSettings.subscribe(config.PowerMeter_MqttTopicPowerMeter2, 0, std::bind(&PowerMeterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6));
strlcpy(PowerMeter_MqttTopicPowerMeter2old, config.PowerMeter_MqttTopicPowerMeter2, sizeof(config.PowerMeter_MqttTopicPowerMeter3)); MqttSettings.subscribe(config.PowerMeter_MqttTopicPowerMeter3, 0, std::bind(&PowerMeterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6));
}
if (strlen(config.PowerMeter_MqttTopicPowerMeter3) != 0 && strcmp(PowerMeter_MqttTopicPowerMeter3old, config.PowerMeter_MqttTopicPowerMeter3)) {
MqttSettings.subscribe(config.PowerMeter_MqttTopicPowerMeter3, 0, std::bind(&PowerMeterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6));
strlcpy(PowerMeter_MqttTopicPowerMeter3old, config.PowerMeter_MqttTopicPowerMeter3, sizeof(config.PowerMeter_MqttTopicPowerMeter3));
}
mqttInitDone = true; mqttInitDone = true;
//}
sdm.begin(); sdm.begin();
/*if(config.PowerMeter_Source != 0){
if (strlen(config.PowerMeter_MqttTopicPowerMeter1) != 0) {
MqttSettings.unsubscribe(config.PowerMeter_MqttTopicPowerMeter1);
}
if (strlen(config.PowerMeter_MqttTopicPowerMeter2) != 0) {
MqttSettings.unsubscribe(config.PowerMeter_MqttTopicPowerMeter2);
}
if (strlen(config.PowerMeter_MqttTopicPowerMeter3) != 0) {
MqttSettings.unsubscribe(config.PowerMeter_MqttTopicPowerMeter3);
}
Hoymiles.getMessageOutput()->printf("PowerMeterClass: MQTT unsubscribed\n");
}*/
} }
void PowerMeterClass::onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total) void PowerMeterClass::onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total)
@ -141,6 +116,5 @@ void PowerMeterClass::loop()
mqtt(); mqtt();
_lastPowerMeterUpdate = millis(); _lastPowerMeterUpdate = millis();
} }
} }

View File

@ -142,10 +142,4 @@ void WebApiPowerLimiterClass::onAdminPost(AsyncWebServerRequest* request)
response->setLength(); response->setLength();
request->send(response); request->send(response);
MqttSettings.performReconnect();
PowerLimiter.init();
PowerMeter.init();
MqttHandleHass.forceUpdate();
MqttHandleVedirectHass.forceUpdate();
} }

View File

@ -118,10 +118,8 @@ void WebApiPowerMeterClass::onAdminPost(AsyncWebServerRequest* request)
response->setLength(); response->setLength();
request->send(response); request->send(response);
yield();
MqttSettings.performReconnect(); delay(1000);
PowerMeter.init(); yield();
PowerLimiter.init(); ESP.restart();
MqttHandleHass.forceUpdate();
MqttHandleVedirectHass.forceUpdate();
} }