marxram / spidr

Privacy for Deye Microinverters using ESP 8266 / 32 module
10 stars 1 forks source link

Reboot with no MQTT-Brocker configured #10

Open MaSylvester opened 1 month ago

MaSylvester commented 1 month ago

While testing I got many reboots with Core 1 panic and following serial output:

Generate Test Data

-------------------------------------------------------------

_[STATECHANGE] ENTERING >> HOME_NETWORK_MODE

-------------------------------------------------------------

Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled. Core 1 register dump:<\r><\n> PC : 0x400d69e1 PS : 0x00060b30 A0 : 0x800df47d A1 : 0x3ffb2180
A2 : 0x00000000 A3 : 0x3ffc4720 A4 : 0xffffff5c A5 : 0x3ffb2230 A6 : 0x3ffc6840 A7 : 0x00000089 A8 : 0x800d69d9 A9 : 0x3ffb2160
A10 : 0x3ffb219c A11 : 0x3f401db4 A12 : 0x3ffb21ac A13 : 0x3ffb220c
A14 : 0x3ffb21bc A15 : 0x3ffb21cc SAR : 0x0000000a EXCCAUSE: 0x0000001c
EXCVADDR: 0x0000007c LBEG : 0x4008b13d LEND : 0x4008b14d LCOUNT : 0xfffffffd

Changed lines 945ff to: if (mqttManager != nullptr) { mqttManager->publishSystemHealth(systemHealth);
}

and now no reboots

marxram commented 1 month ago

Interesting. Does it work then? Do you use the MQTT client?

What Board do you use? And what config?

What PubSubClient do you use?

I have: Bibliothek PubSubClient in Version 2.8 by Nick O' Leary

MaSylvester commented 1 month ago

Hello marxram,

actually I have no MQTT server configured, Board is Heltec Wifi Lora 32 V2 PubSubClient is V2.8 by Nick O'Leary

Oled works with u8g2 = new U8G2_SSD1306_128X64_NONAME_F_SW_I2C(U8G2_R0, / clock=/ 15, / data=/ 4, / reset=/ 16);

I also had the Error at line 861 with "OK was not declared and changed this to: if (result == PARSE_OK)

All the rest seams to work. :-)

Edititing with VS-Code 1.89.1 / Platformio core 6.1.5 Home 3.4.4

marxram commented 3 weeks ago

Seems like some conditional problem. I used the code also without a working MQTT broker. (But maybe the MQTT broker String was not empty)

Currently there is no flag like "do not use MQTT"

marxram commented 2 days ago

The MQTT is now configured to be diabled, if the value is set to 0.0.0.0

define SECRET_MQTT_BROKER_HOST "0.0.0.0" // Set your broker IP or hostname. To Disable use: 0.0.0.0

For backwards compatibility reasons ("") empty String, there will be a warning an the value will be overwritten to 0.0.0.0 automatically in the spidr.ino:

// Ensure MQTT_BROKER_HOST is set to "0.0.0.0" if it's empty
if (MQTT_BROKER_HOST.isEmpty()) {
    MQTT_BROKER_HOST = "0.0.0.0";
}