Replace EVERY_N_SECONDS with millis

EVERY_N_SECONDS is not updated without a reboot of the controller
This commit is contained in:
Thomas Basler 2022-06-15 22:15:02 +02:00
parent a4212f8aed
commit c9e603b2de
4 changed files with 8 additions and 4 deletions

View File

@ -14,6 +14,7 @@ private:
void publishField(String subtopic, std::shared_ptr<InverterAbstract> inv, uint8_t channel, uint8_t fieldId); void publishField(String subtopic, std::shared_ptr<InverterAbstract> inv, uint8_t channel, uint8_t fieldId);
uint32_t _lastPublishStats[INV_MAX_COUNT]; uint32_t _lastPublishStats[INV_MAX_COUNT];
uint32_t _lastPublish;
}; };
extern MqttPublishingClass MqttPublishing; extern MqttPublishingClass MqttPublishing;

View File

@ -19,8 +19,7 @@ void HoymilesClass::loop()
_radio->loop(); _radio->loop();
if (getNumInverters() > 0) { if (getNumInverters() > 0) {
EVERY_N_SECONDS(_pollInterval) if (millis() - _lastPoll > (_pollInterval * 1000)) {
{
static uint8_t inverterPos = 0; static uint8_t inverterPos = 0;
std::shared_ptr<InverterAbstract> iv = getInverterByPos(inverterPos); std::shared_ptr<InverterAbstract> iv = getInverterByPos(inverterPos);
@ -42,6 +41,8 @@ void HoymilesClass::loop()
if (++inverterPos >= getNumInverters()) { if (++inverterPos >= getNumInverters()) {
inverterPos = 0; inverterPos = 0;
} }
_lastPoll = millis();
} }
} }
} }

View File

@ -29,6 +29,7 @@ private:
std::unique_ptr<HoymilesRadio> _radio; std::unique_ptr<HoymilesRadio> _radio;
uint32_t _pollInterval; uint32_t _pollInterval;
uint32_t _lastPoll = 0;
}; };
extern HoymilesClass Hoymiles; extern HoymilesClass Hoymiles;

View File

@ -16,8 +16,7 @@ void MqttPublishingClass::loop()
CONFIG_T& config = Configuration.get(); CONFIG_T& config = Configuration.get();
EVERY_N_SECONDS(config.Dtu_PollInterval) if (millis() - _lastPublish > (config.Dtu_PollInterval * 1000)) {
{
MqttSettings.publish("dtu/uptime", String(millis() / 1000)); MqttSettings.publish("dtu/uptime", String(millis() / 1000));
MqttSettings.publish("dtu/ip", WiFi.localIP().toString()); MqttSettings.publish("dtu/ip", WiFi.localIP().toString());
@ -58,6 +57,8 @@ void MqttPublishingClass::loop()
yield(); yield();
} }
_lastPublish = millis();
} }
} }