Skip to content

Commit

Permalink
reboot after power meter settings
Browse files Browse the repository at this point in the history
  • Loading branch information
helgeerbe committed Mar 23, 2023
1 parent 55dc4db commit 0832ef8
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 47 deletions.
4 changes: 0 additions & 4 deletions include/PowerMeter.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,6 @@ class PowerMeterClass {
float _PowerMeterExport = 0.0;

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;
36 changes: 5 additions & 31 deletions src/PowerMeter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,39 +26,14 @@ void PowerMeterClass::init()
_lastPowerMeterUpdate = 0;

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_MqttTopicPowerMeter2, 0, std::bind(&PowerMeterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6));
strlcpy(PowerMeter_MqttTopicPowerMeter2old, config.PowerMeter_MqttTopicPowerMeter2, sizeof(config.PowerMeter_MqttTopicPowerMeter3));
}

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));
}
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_MqttTopicPowerMeter3, 0, std::bind(&PowerMeterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6));
mqttInitDone = true;
//}
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");
}*/

sdm.begin();
}

void PowerMeterClass::onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total)
Expand Down Expand Up @@ -141,6 +116,5 @@ void PowerMeterClass::loop()
mqtt();

_lastPowerMeterUpdate = millis();

}
}
6 changes: 0 additions & 6 deletions src/WebApi_powerlimiter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,10 +142,4 @@ void WebApiPowerLimiterClass::onAdminPost(AsyncWebServerRequest* request)

response->setLength();
request->send(response);

MqttSettings.performReconnect();
PowerLimiter.init();
PowerMeter.init();
MqttHandleHass.forceUpdate();
MqttHandleVedirectHass.forceUpdate();
}
10 changes: 4 additions & 6 deletions src/WebApi_powermeter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,8 @@ void WebApiPowerMeterClass::onAdminPost(AsyncWebServerRequest* request)
response->setLength();
request->send(response);


MqttSettings.performReconnect();
PowerMeter.init();
PowerLimiter.init();
MqttHandleHass.forceUpdate();
MqttHandleVedirectHass.forceUpdate();
yield();
delay(1000);
yield();
ESP.restart();
}

0 comments on commit 0832ef8

Please sign in to comment.