mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-11 10:44:29 +05:00
refactoring: timings
This commit is contained in:
@@ -285,7 +285,7 @@ protected:
|
||||
}
|
||||
|
||||
if (vars.externalPump.enable && !this->heatingEnabled) {
|
||||
if (this->externalPumpStartReason == MainTask::REASON_PUMP_START_HEATING && millis() - this->heatingDisabledTime > (unsigned long) settings.externalPump.postCirculationTime * 1000) {
|
||||
if (this->externalPumpStartReason == MainTask::REASON_PUMP_START_HEATING && millis() - this->heatingDisabledTime > ((unsigned int) settings.externalPump.postCirculationTime * 1000)) {
|
||||
digitalWrite(settings.externalPump.pin, false);
|
||||
|
||||
vars.externalPump.enable = false;
|
||||
@@ -293,7 +293,7 @@ protected:
|
||||
|
||||
Log.sinfoln("EXTPUMP", F("Disabled: expired post circulation time"));
|
||||
|
||||
} else if (this->externalPumpStartReason == MainTask::REASON_PUMP_START_ANTISTUCK && millis() - this->externalPumpStartTime >= (unsigned long) settings.externalPump.antiStuckTime * 1000) {
|
||||
} else if (this->externalPumpStartReason == MainTask::REASON_PUMP_START_ANTISTUCK && millis() - this->externalPumpStartTime >= ((unsigned int) settings.externalPump.antiStuckTime * 1000)) {
|
||||
digitalWrite(settings.externalPump.pin, false);
|
||||
|
||||
vars.externalPump.enable = false;
|
||||
@@ -314,7 +314,7 @@ protected:
|
||||
|
||||
Log.sinfoln("EXTPUMP", F("Enabled: heating on"));
|
||||
|
||||
} else if (!vars.externalPump.enable && millis() - vars.externalPump.lastEnableTime >= (unsigned long) settings.externalPump.antiStuckInterval * 1000) {
|
||||
} else if (!vars.externalPump.enable && (vars.externalPump.lastEnableTime == 0 || millis() - vars.externalPump.lastEnableTime >= ((unsigned long) settings.externalPump.antiStuckInterval * 1000))) {
|
||||
vars.externalPump.enable = true;
|
||||
this->externalPumpStartTime = millis();
|
||||
this->externalPumpStartReason = MainTask::REASON_PUMP_START_ANTISTUCK;
|
||||
|
||||
@@ -129,6 +129,11 @@ protected:
|
||||
}
|
||||
|
||||
void loop() {
|
||||
if (settings.mqtt.interval > 120) {
|
||||
settings.mqtt.interval = 5;
|
||||
eeSettings.update();
|
||||
}
|
||||
|
||||
if (!this->client->connected() && this->connected) {
|
||||
this->connected = false;
|
||||
this->onDisconnect();
|
||||
@@ -174,7 +179,7 @@ protected:
|
||||
#endif
|
||||
|
||||
// publish variables and status
|
||||
if (this->newConnection || millis() - this->prevPubVarsTime > settings.mqtt.interval) {
|
||||
if (this->newConnection || millis() - this->prevPubVarsTime > ((unsigned int) settings.mqtt.interval * 1000)) {
|
||||
this->writer->publish(
|
||||
this->haHelper->getDeviceTopic("status").c_str(),
|
||||
!vars.states.otStatus ? "offline" : vars.states.fault ? "fault" : "online",
|
||||
@@ -186,7 +191,7 @@ protected:
|
||||
}
|
||||
|
||||
// publish settings
|
||||
if (this->newConnection || millis() - this->prevPubSettingsTime > settings.mqtt.interval * 10) {
|
||||
if (this->newConnection || millis() - this->prevPubSettingsTime > ((unsigned int) settings.mqtt.interval * 10000)) {
|
||||
this->publishSettings(this->haHelper->getDeviceTopic("settings").c_str());
|
||||
this->prevPubSettingsTime = millis();
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ struct Settings {
|
||||
char user[32];
|
||||
char password[32];
|
||||
char prefix[80] = "opentherm";
|
||||
unsigned int interval = 5000;
|
||||
unsigned short interval = 5;
|
||||
} mqtt;
|
||||
|
||||
struct {
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
wmMqttPrefix = new WiFiManagerParameter("mqtt_prefix", "Prefix", settings.mqtt.prefix, 32);
|
||||
wm.addParameter(wmMqttPrefix);
|
||||
|
||||
wmMqttPublishInterval = new UnsignedIntParameter("mqtt_publish_interval", "Publish interval", settings.mqtt.interval, 5);
|
||||
wmMqttPublishInterval = new UnsignedIntParameter("mqtt_publish_interval", "Publish interval (sec)", settings.mqtt.interval, 3);
|
||||
wm.addParameter(wmMqttPublishInterval);
|
||||
|
||||
wmOtHeader = new HeaderParameter("OpenTherm");
|
||||
@@ -144,13 +144,13 @@ public:
|
||||
wmExtPumpPin = new UnsignedIntParameter("ext_pump_pin", "Relay GPIO", settings.externalPump.pin, 2);
|
||||
wm.addParameter(wmExtPumpPin);
|
||||
|
||||
wmExtPumpPostCirculationTime = new UnsignedShortParameter("ext_pump_ps_time", "Post circulation time", settings.externalPump.postCirculationTime, 5);
|
||||
wmExtPumpPostCirculationTime = new UnsignedShortParameter("ext_pump_ps_time", "Post circulation time (min)", (settings.externalPump.postCirculationTime / 60), 5);
|
||||
wm.addParameter(wmExtPumpPostCirculationTime);
|
||||
|
||||
wmExtPumpAntiStuckInterval = new UnsignedIntParameter("ext_pump_as_interval", "Anti stuck interval", settings.externalPump.antiStuckInterval, 7);
|
||||
wmExtPumpAntiStuckInterval = new UnsignedIntParameter("ext_pump_as_interval", "Anti stuck interval (days)", (settings.externalPump.antiStuckInterval / 86400), 7);
|
||||
wm.addParameter(wmExtPumpAntiStuckInterval);
|
||||
|
||||
wmExtPumpAntiStuckTime = new UnsignedShortParameter("ext_pump_as_time", "Anti stuck time", settings.externalPump.antiStuckTime, 5);
|
||||
wmExtPumpAntiStuckTime = new UnsignedShortParameter("ext_pump_as_time", "Anti stuck time (min)", (settings.externalPump.antiStuckTime / 60), 5);
|
||||
wm.addParameter(wmExtPumpAntiStuckTime);
|
||||
}
|
||||
|
||||
@@ -507,23 +507,23 @@ protected:
|
||||
Log.sinfoln(FPSTR(S_WIFI_SETTINGS), F("New externalPump.pin: %hhu"), settings.externalPump.pin);
|
||||
}
|
||||
|
||||
if (wmExtPumpPostCirculationTime->getValue() != settings.externalPump.postCirculationTime) {
|
||||
if ((wmExtPumpPostCirculationTime->getValue() * 60) != settings.externalPump.postCirculationTime) {
|
||||
changed = true;
|
||||
settings.externalPump.postCirculationTime = wmExtPumpPostCirculationTime->getValue();
|
||||
settings.externalPump.postCirculationTime = wmExtPumpPostCirculationTime->getValue() * 60;
|
||||
|
||||
Log.sinfoln(FPSTR(S_WIFI_SETTINGS), F("New externalPump.postCirculationTime: %hu"), settings.externalPump.postCirculationTime);
|
||||
}
|
||||
|
||||
if (wmExtPumpAntiStuckInterval->getValue() != settings.externalPump.antiStuckInterval) {
|
||||
if ((wmExtPumpAntiStuckInterval->getValue() * 86400) != settings.externalPump.antiStuckInterval) {
|
||||
changed = true;
|
||||
settings.externalPump.antiStuckInterval = wmExtPumpAntiStuckInterval->getValue();
|
||||
settings.externalPump.antiStuckInterval = wmExtPumpAntiStuckInterval->getValue() * 86400;
|
||||
|
||||
Log.sinfoln(FPSTR(S_WIFI_SETTINGS), F("New externalPump.antiStuckInterval: %du"), settings.externalPump.antiStuckInterval);
|
||||
}
|
||||
|
||||
if (wmExtPumpAntiStuckTime->getValue() != settings.externalPump.antiStuckTime) {
|
||||
if ((wmExtPumpAntiStuckTime->getValue() * 60) != settings.externalPump.antiStuckTime) {
|
||||
changed = true;
|
||||
settings.externalPump.antiStuckTime = wmExtPumpAntiStuckTime->getValue();
|
||||
settings.externalPump.antiStuckTime = wmExtPumpAntiStuckTime->getValue() * 60;
|
||||
|
||||
Log.sinfoln(FPSTR(S_WIFI_SETTINGS), F("New externalPump.antiStuckTime: %hu"), settings.externalPump.antiStuckTime);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user