Moved reset of reboot reason to main program (#1153)

* Moved reset of reboot reason to main program

* Allow up to 8 cycles to charge capacitor
This commit is contained in:
Gunnar Skjold
2026-04-09 09:46:23 +02:00
committed by GitHub
parent 3cb6e09341
commit df5611844f
2 changed files with 12 additions and 11 deletions

View File

@@ -61,14 +61,6 @@ AmsWebServer::AmsWebServer(uint8_t* buf, Stream* Debug, HwTools* hw, ResetDataCo
this->hw = hw;
this->buf = (char*) buf;
this->rdc = rdc;
if(rdc->magic != 0x4a) {
rdc->last_cause = 0;
rdc->cause = 0;
rdc->magic = 0x4a;
} else {
rdc->last_cause = rdc->cause;
rdc->cause = 0;
}
}
void AmsWebServer::setup(AmsConfiguration* config, GpioConfig* gpioConfig, AmsData* meterState, AmsDataStorage* ds, EnergyAccounting* ea, RealtimePlot* rtp, AmsFirmwareUpdater* updater) {

View File

@@ -30,6 +30,7 @@ ADC_MODE(ADC_VCC);
#include "ZmartChargeCloudConnector.h"
#endif
#define MAX_BOOT_CYCLES 8
#define WDT_TIMEOUT 120
#if defined(SLOW_PROC_TRIGGER_MS)
#warning "Using predefined slow process trigger"
@@ -191,8 +192,6 @@ CloudConnector *cloud = NULL;
ZmartChargeCloudConnector *zcloud = NULL;
#endif
#define MAX_BOOT_CYCLES 6
#if defined(ESP32)
__NOINIT_ATTR EnergyAccountingRealtimeData rtd;
RTC_DATA_ATTR uint8_t bootcount = 0;
@@ -470,7 +469,7 @@ void setup() {
float vcc = hw.getVcc();
debugI_P(PSTR("Voltage: %.2fV"), vcc);
bool deepSleep = true;
bool deepSleep = false; // Disable for now, as it makes it difficult to debug why devices rebooted
#if defined(ESP32)
float allowedDrift = bootcount * 0.01;
#else
@@ -504,6 +503,16 @@ void setup() {
#if defined(ESP8266)
resetBootCycleCounter(deepSleep);
#endif
if(rdc.magic != 0x4a) {
rdc.last_cause = 0;
rdc.cause = 0;
rdc.magic = 0x4a;
} else {
rdc.last_cause = rdc.cause;
rdc.cause = 0;
}
hw.ledOff(LED_YELLOW);
hw.ledOff(LED_INTERNAL);