ESP32 MQTT funktioniert nicht 24/7 - solved

Ghost

Active member
Hallo,

ich wende mich nochmal in einem seperaten Thread in die Gruppe nachdem ich schon im "Allgemeinen Cassandra" und "ESP32 Speicherleck" gepostet habe:

Alles läuft bei mir perfekt - bis auf die MQTT Verbindung. Ich würde diese gerne 100% zuverlässig haben - wegen perfekter Integration in Homeassistant. Zusätzlich nutze ich auch Cassandra - welches auch perfekt funktioniert.

Nach diversen Tipps hier im Forum habe ich immer noch meine 96% Lösung: irgendwann - mal nach 1Std, 5Std oder 8 Std. funktiniert die MQTT Verbindung nicht mehr. Die WLAN HTTP Verbindung mit der Original APP funktioniert aber weiterhin.

Ich benutze den "Original" ESP32 von Marotronics:

SP32-DevKitC-32UE WROOM


Ich habe es mit den "älteren" Libraries - alle genau aus der Anleitung Sunray versucht, mit den neueren Libraries 1.0 oder 1.02, mit ESP Board Version 1.04 und 1.06..
ESP32 kompiliert aus aktuellsten Master, als auch 3.03...

Mehrmals geflasht - und immer mit ähnlichem Ergebniss - 96%...

Unabhängig von Cassandra kommen auch in Windows - MQTT Explorer dann auch keine Messages mehr an.
An irgendeinem Zeitpunkt stoppt die Versendung und wird auch nicht mehr aufgenommen...

Irgendwelche Ideen noch?

Besten Dank...
 
Du kannst die serielle Ausgabe vom ES32 24/7 mal loggen. Der Zeitpunkt ab dem nichts kommt wäre interessant. Evtl. kommt da was. Geht eigentlich der topic online auf False, oder bleibt er auf True?
Wenn ich mit dem seriellen Monitor aus Arduino Esp32 logge (Laptop mit USB an ESP, serielle Ausgabe Arduino IDE), sehe ich keinerlei MQTT Ausgaben - auch wenn er funktioniert, muss ich irgendwie Debug aktivieren?

Beim MQTT Viewer werde ich mal genau hinschauen, irgendwann kommen einfach keine topics mehr an. Muss warten, wann der Fehler wieder Auftritt, aktuell läufts wieder Mal...
 
Code:
14:08:10.585 -> 18893 UART rx:V,Sunray,1.0.288,1,143,Adafruit Grand Central M4,AM,XX,XX,1f:fa:af:92:53:35:35:33:34:20:20:20:ff:18:12:21,0x5c
14:08:11.985 -> 20322 ping
14:08:15.185 -> 23496 ping
14:08:18.065 -> 26367 UART rx:S,25.84,0.00,0.00,0.00,0,0,0,23.75,0,0.00,0.00,607400.06,0,0.03,0,0,0.00,0x89
14:08:18.065 -> 26367 ping
14:08:20.895 -> 29233 ping
14:08:23.875 -> 32201 ping
14:08:26.775 -> 35071 UART rx:S,25.85,0.00,0.00,-0.44,0,0,0,32.47,0,0.00,0.00,607400.06,0,0.05,0,0,0.00,0xc0
14:08:26.775 -> 35071 ping
14:08:29.595 -> 37936 ping
14:08:32.500 -> 40803 ping
14:08:35.454 -> 43776 UART rx:S,25.86,0.00,0.00,-0.44,0,0,0,41.09,0,0.00,0.00,607400.06,0,0.05,0,0,0.00,0xbf
14:08:35.454 -> 43776 ping
14:08:38.305 -> 46639 ping
14:08:41.304 -> 49608 ping
14:08:44.155 -> 52480 UART rx:S,25.85,0.00,0.00,-0.44,0,0,0,49.91,0,0.00,0.00,607400.06,0,0.06,0,0,0.00,0xc8
14:08:44.155 -> 52480 ping
14:08:47.015 -> 55344 ping
14:08:49.874 -> 58210 ping
14:08:52.754 -> 61085 UART rx:S,25.85,0.00,0.00,-0.44,0,0,0,58.52,0,0.00,0.00,607400.06,0,0.06,0,0,0.00,0xc5
14:08:52.754 -> 61085 ping
14:08:53.950 -> 62271 UART rx:T,46,0,0,0,0,0,0.00,0.00,0,998.00,998.00,1,0,0.02,1024,0,0,0,244471,1,0,0,0,0,0x89
14:08:55.415 -> 63743 ping
14:08:58.300 -> 66610 ping
14:09:01.164 -> 69479 UART rx:S,25.86,0.00,0.00,-0.44,0,0,0,66.93,0,0.00,0.00,607400.06,0,0.06,0,0,0.00,0xca
14:09:01.164 -> 69479 ping
14:09:04.035 -> 72344 ping
14:09:06.885 -> 75209 ping
14:09:09.655 -> 77980 UART rx:S,25.86,0.00,0.00,-0.43,0,0,0,75.54,0,0.00,0.00,607400.06,0,0.06,0,0,0.00,0xc6
14:09:09.655 -> 77980 ping
14:09:12.515 -> 80842 ping
14:09:15.375 -> 83709 ping
14:09:18.064 -> 86376 UART rx:S,25.86,0.00,0.00,-0.43,0,0,0,83.85,0,0.00,0.00,607400.06,0,0.06,0,0,0.00,0xc9
14:09:18.064 -> 86376 ping
14:09:20.455 -> 88771 ping
14:09:23.054 -> 91389 ping
14:09:25.525 -> 93851 UART rx:S,25.86,0.00,0.00,-0.43,0,0,0,91.50,0,0.00,0.00,607400.06,0,0.06,0,0,0.00,0xc0
14:09:25.525 -> 93851 ping
14:09:28.035 -> 96351 ping
14:09:30.495 -> 98807 ping
14:09:32.950 -> 101271 ping
14:09:34.225 -> 102558 UART rx:S,25.85,0.00,0.00,-0.43,0,0,0,100.21,0,0.00,0.00,607400.06,0,0.06,0,0,0.00,0xe4
14:09:35.404 -> 103726 ping
14:09:37.901 -> 106237 ping
14:09:40.374 -> 108699 ping

UART rx S und UART rx T sind Anfragen vom ESP32 MQTT Funktion Richtung Due. Ich vermute mal diese verschwinden bei dir, was passiert kurz davor?
 
Doch da ist was, zeig mal de Ausgabe her
Er mäht gerade und um an den Log zu kommen muss ich aufschrauben und USB Kabel an ESP dranhängen, oder gibt es eine andere Möglichkeit über Wifi/bestehende Verbindung an die Logs zu kommen? Werde Ihn morgen mal aufschrauben und Laptop dranhängen - dann mal sehen.

Die Pings habe ich auf jeden Fall nach dem Flashen gesehen, an die Uarts kann ich mich nicht erinnern, vielleicht auch deshalb weil ich direkt nach ein paar Sekunden nicht mehr geschaut habe. (Flashen war ja erfolgreich).
 
To get mqtt working I had to use the updated library that thingsofvalusdk is a wrapper for.
Comment MQttclient.h and uncommet MQTT.h in mqtt.ino and download the proper MQTT library by Joel. Maybe that helps.
 
To get mqtt working I had to use the updated library that thingsofvalusdk is a wrapper for.
Comment MQttclient.h and uncommet MQTT.h in mqtt.ino and download the proper MQTT library by Joel. Maybe that helps.
I have tried with the library Things of value 1.0 and 1.0.2...

What I haven't tried is to include MQTT.h instead of MQTTClient.h.

So doing this it will use the MQTT 2.5.0 by Joel Geschwiler as said in the MQTT.ino? Are you using 2.5.0 or 2.5.1 (latest)?

I will give it a try as soon the robot is in a "not mowing anymore" mode

:) thanks for the hint
 
Flashed now with the 2.5.0 and connected...

Let's cross fingers that it stays connected - testing now...
 
Today working without interruptions.

Hopefully problem finally solved.

Thanks all for your hints: especially changing the library to MQTT.h did solve the issue.

:) :)
 
Ich hab mit MQTT und dem ESP32 weiterhin echt starke Probleme.
Theoretisch funktioniert alles, aber der ESP scheint sich regelmäßig einfach mal irgendwie auszuklinken.

Er geht mehrfach die Nacht beim Laden einfach mal offline für einige Minuten, wobei Ping und MQTT weiterhin läuft, nur die Frequenz nimmt ab.
Dann geht aber kein HTTP Zugriff mehr auf den Roboter. Lustigerweiße läuft BLE weiterhin dann.

Da MQTT weiterhin sinnvolle Daten, nur weniger häufig, verschickt scheint das Gerät und auch Sunray grundsätzlich noch zu laufen.
Er fängt sich dann random irgendwann wieder und funktioniert dann für Zeit XY auch wieder reibungslos.

2024-04-29-10-16-34-Explore-Influx-DB-home-Grafana.png


Links die MQTT Frequenz wenn alles fein ist... dann kurz offline und rechts dann der Interval wo HTTP nicht mehr geht... das ganze reproduziert sich mehrfach jeden Tag. Hab auch mal den Serial Monitor an ESP und Sunray gesteckt, da finde ich nichts im Log.
Cassandra meldet entweder gar keine HTTP möglich oder hin und wieder kommt auch irgendein Fehler mit "nicht interpretierbare HTTP Antwort" oder so ähnlich.

Hab gestern nochmal alles durchgeschaut im Code und mich 1zu1 an die verwendeten Library im Code + hier die empfohlene MQTT Library (2.52, auch 2.50 getestet) genommen. (hatte vorher teils neuere) Gefühlt ist es jetzt noch schlimmer geworden. 😅

Der einzige Unterschied was mir jetzt noch auffällt, der "originale" ESP32 Chip war ein ESP32-DevKitC-32UE und meine nachgekauften sind ESP32-DevKitC-32U.
Ich hab aber keine Ahnung ob das wirklich relevant ist... werde mir jetzt mal einen 32UE als Test bestellen, aber so wirklich zuversichtlich bin ich nicht.

Die CPU Frequenz im Arduino stell ich auf 240Mhz korrekt?
2024-04-29-10-42-34-esp32-ble-relay-ino-Arduino-1-8-19-Windows-Store-1-8-57-0.png


Eventuell kann ja nochmal jemand über den Code schauen... eventuell seh ich auch den Wald vor lauter Bäume nicht und hab da einen Fehler drin...
BLE gestern testweise mal komplett deaktiviert.

Code:
#define NAME "Ardumower"

// bluetooth low energy (BLE)
//#define USE_BLE 1    // comment this line to remove BLE support
#define BLE_MTU 20   // max. transfer bytes per BLE frame
#define BLE_MIN_INTERVAL 2    // connection parameters (tuned for high speed/high power consumption - see: https://support.ambiq.com/hc/en-us/articles/115002907792-Managing-BLE-Connection-Parameters)
#define BLE_MAX_INTERVAL 10
#define BLE_LATENCY      0
#define BLE_TIMEOUT      30
//#define USE_NIM_BLE   1 // use NimBLE library (requires less memory) instead of ESP32 library?

//IP WiFi:
//#define WIFI_STATIC_IP true  // activate this for static IP
#define WIFI_STATIC_IP true // activate this for dynamic IP
// if using static IP, configure IPs below
#define WIFI_STATIC_IP_LOCAL  192,168,2,231
#define WIFI_STATIC_IP_GW     192,168,2,1
#define WIFI_STATIC_IP_SUBNET 255,255,255,0
#define WIFI_STATIC_IP_DNS1   192,168,2,2
#define WIFI_STATIC_IP_DNS2   192,168,2,1

#define WIFI_STA_SSID   "xxxxxxxxx"      // WiFi SSID      (leave empty ("") to not use WiFi)
#define WIFI_STA_PSK    "xxxxxxxxx"  // WiFi password  (leave empty ("") to not use WiFi)
#define WIFI_TIMEOUT_FIRST_RESPONSE  800   // fast response times (500), for more reliable choose: 800   
#define WIFI_TIMEOUT_RESPONSE        400   // fast response times (100), for more reliable choose: 400

// comment this line to use HTTP, uncomment to use HTTPS
// NOTE: if using HTTPS, you also need to uncomment USE_NIM_BLE above!
//#define USE_HTTPS  1


// Relay server
//
// Install this library with the Arduino Library Manager:
// ArduinoWebsockets - by Gil Maimon - https://github.com/gilmaimon/ArduinoWebsockets
//
//#define USE_RELAY
//#define RELAY_URL       "wss://example.relay.mow.timotto.io/mower"
//#define RELAY_USERNAME  ""
//#define RELAY_PASSWORD  ""
//#define RELAY_TIMEOUT   1000
//#define RELAY_PINGWAIT  55

// MQTT server
// (subscribed topcis: '/command/start', '/command/stop', '/command/dock', '/command/reboot', '/command/shutdown', '/command/"every AT+... command supported by comm.cpp"')
// e.g. command for start over AT+... payload: /command/AT+C,-1,1,0.29,100,0,-1,-1,1
// (published topics: '/online', '/state', '/props', '/stats')

#define USE_MQTT  1     // uncomment to activate MQTT
#define MQTT_PREFIX     "ardumower/"
#define MQTT_HOSTNAME   "192.168.2.240"  // IP or hostname (example: "192.168.2.60")
#define MQTT_PORT       1883
#define MQTT_CLIENT_ID  NAME
#define MQTT_USERNAME   ""
#define MQTT_PASSWORD   ""

#define ENCRYPTION_PASSWORD   123456
#define ENCRYPTION_ENABLED    true

// pin assignment
#define pinGpioRx   16    // UART2 / GPIO16 / IO16
#define pinGpioTx   17    // UART2 / GPIO17 / IO17

//#define pinGpioRx   9   // UART1 / GPIO9  / SD2
//#define pinGpioTx   10  // UART1 / GPIO10 / SD3

//#define pinGpioRx   3   // UART0 / GPIO3  / RXD0
//#define pinGpioTx   1   // UART0 / GPIO1  / TXD0

#define pinLED   2

#define CONSOLE Serial  // where to send/receive console messages for debugging etc.
#define UART Serial2    // where to send/receive UART data


mqtt.ino
Habt ihr hier das MQTT Interval runtergestellt? Überlastet das eventuell den ESP sonst?

Code:
#include "config.h"

#ifdef USE_MQTT

#include "src/adapter.h"

//#include <WiFi.h>
/*
   MQTT
   Joel Gaehwiler
   2.5.0
   https://github.com/256dpi/arduino-mqtt
*/

#include <MQTT.h>
//#include <MQTTClient.h>

/*
    ArduinoJson
   Benoit Blanchon
   6.18.4
   https://arduinojson.org/
*/
#include <ArduinoJson.h>


#define MQTT_MOWER_POLL_INTERVAL      1000
#define MQTT_MOWER_POLL_BACKOFF       5000
#define MQTT_MOWER_POLL_ATS           5000
#define MQTT_MOWER_POLL_ATT           60000

WiFiClient mqttNet;
MQTTClient mqttClient(1024);
bool mqttPendingPublishProps = false;
bool mqttPendingPublishState = false;
bool mqttPendingPublishStats = false;
 
Ich hab mit MQTT und dem ESP32 weiterhin echt starke Probleme.
Theoretisch funktioniert alles, aber der ESP scheint sich regelmäßig einfach mal irgendwie auszuklinken.

Er geht mehrfach die Nacht beim Laden einfach mal offline für einige Minuten, wobei Ping und MQTT weiterhin läuft, nur die Frequenz nimmt ab.
Dann geht aber kein HTTP Zugriff mehr auf den Roboter. Lustigerweiße läuft BLE weiterhin dann.

Da MQTT weiterhin sinnvolle Daten, nur weniger häufig, verschickt scheint das Gerät und auch Sunray grundsätzlich noch zu laufen.
Er fängt sich dann random irgendwann wieder und funktioniert dann für Zeit XY auch wieder reibungslos.

2024-04-29-10-16-34-Explore-Influx-DB-home-Grafana.png


Links die MQTT Frequenz wenn alles fein ist... dann kurz offline und rechts dann der Interval wo HTTP nicht mehr geht... das ganze reproduziert sich mehrfach jeden Tag. Hab auch mal den Serial Monitor an ESP und Sunray gesteckt, da finde ich nichts im Log.
Cassandra meldet entweder gar keine HTTP möglich oder hin und wieder kommt auch irgendein Fehler mit "nicht interpretierbare HTTP Antwort" oder so ähnlich.

Hab gestern nochmal alles durchgeschaut im Code und mich 1zu1 an die verwendeten Library im Code + hier die empfohlene MQTT Library (2.52, auch 2.50 getestet) genommen. (hatte vorher teils neuere) Gefühlt ist es jetzt noch schlimmer geworden. 😅

Der einzige Unterschied was mir jetzt noch auffällt, der "originale" ESP32 Chip war ein ESP32-DevKitC-32UE und meine nachgekauften sind ESP32-DevKitC-32U.
Ich hab aber keine Ahnung ob das wirklich relevant ist... werde mir jetzt mal einen 32UE als Test bestellen, aber so wirklich zuversichtlich bin ich nicht.

Die CPU Frequenz im Arduino stell ich auf 240Mhz korrekt?
2024-04-29-10-42-34-esp32-ble-relay-ino-Arduino-1-8-19-Windows-Store-1-8-57-0.png


Eventuell kann ja nochmal jemand über den Code schauen... eventuell seh ich auch den Wald vor lauter Bäume nicht und hab da einen Fehler drin...
BLE gestern testweise mal komplett deaktiviert.

Code:
#define NAME "Ardumower"

// bluetooth low energy (BLE)
//#define USE_BLE 1    // comment this line to remove BLE support
#define BLE_MTU 20   // max. transfer bytes per BLE frame
#define BLE_MIN_INTERVAL 2    // connection parameters (tuned for high speed/high power consumption - see: https://support.ambiq.com/hc/en-us/articles/115002907792-Managing-BLE-Connection-Parameters)
#define BLE_MAX_INTERVAL 10
#define BLE_LATENCY      0
#define BLE_TIMEOUT      30
//#define USE_NIM_BLE   1 // use NimBLE library (requires less memory) instead of ESP32 library?

//IP WiFi:
//#define WIFI_STATIC_IP true  // activate this for static IP
#define WIFI_STATIC_IP true // activate this for dynamic IP
// if using static IP, configure IPs below
#define WIFI_STATIC_IP_LOCAL  192,168,2,231
#define WIFI_STATIC_IP_GW     192,168,2,1
#define WIFI_STATIC_IP_SUBNET 255,255,255,0
#define WIFI_STATIC_IP_DNS1   192,168,2,2
#define WIFI_STATIC_IP_DNS2   192,168,2,1

#define WIFI_STA_SSID   "xxxxxxxxx"      // WiFi SSID      (leave empty ("") to not use WiFi)
#define WIFI_STA_PSK    "xxxxxxxxx"  // WiFi password  (leave empty ("") to not use WiFi)
#define WIFI_TIMEOUT_FIRST_RESPONSE  800   // fast response times (500), for more reliable choose: 800  
#define WIFI_TIMEOUT_RESPONSE        400   // fast response times (100), for more reliable choose: 400

// comment this line to use HTTP, uncomment to use HTTPS
// NOTE: if using HTTPS, you also need to uncomment USE_NIM_BLE above!
//#define USE_HTTPS  1


// Relay server
//
// Install this library with the Arduino Library Manager:
// ArduinoWebsockets - by Gil Maimon - https://github.com/gilmaimon/ArduinoWebsockets
//
//#define USE_RELAY
//#define RELAY_URL       "wss://example.relay.mow.timotto.io/mower"
//#define RELAY_USERNAME  ""
//#define RELAY_PASSWORD  ""
//#define RELAY_TIMEOUT   1000
//#define RELAY_PINGWAIT  55

// MQTT server
// (subscribed topcis: '/command/start', '/command/stop', '/command/dock', '/command/reboot', '/command/shutdown', '/command/"every AT+... command supported by comm.cpp"')
// e.g. command for start over AT+... payload: /command/AT+C,-1,1,0.29,100,0,-1,-1,1
// (published topics: '/online', '/state', '/props', '/stats')

#define USE_MQTT  1     // uncomment to activate MQTT
#define MQTT_PREFIX     "ardumower/"
#define MQTT_HOSTNAME   "192.168.2.240"  // IP or hostname (example: "192.168.2.60")
#define MQTT_PORT       1883
#define MQTT_CLIENT_ID  NAME
#define MQTT_USERNAME   ""
#define MQTT_PASSWORD   ""

#define ENCRYPTION_PASSWORD   123456
#define ENCRYPTION_ENABLED    true

// pin assignment
#define pinGpioRx   16    // UART2 / GPIO16 / IO16
#define pinGpioTx   17    // UART2 / GPIO17 / IO17

//#define pinGpioRx   9   // UART1 / GPIO9  / SD2
//#define pinGpioTx   10  // UART1 / GPIO10 / SD3

//#define pinGpioRx   3   // UART0 / GPIO3  / RXD0
//#define pinGpioTx   1   // UART0 / GPIO1  / TXD0

#define pinLED   2

#define CONSOLE Serial  // where to send/receive console messages for debugging etc.
#define UART Serial2    // where to send/receive UART data


mqtt.ino
Habt ihr hier das MQTT Interval runtergestellt? Überlastet das eventuell den ESP sonst?

Code:
#include "config.h"

#ifdef USE_MQTT

#include "src/adapter.h"

//#include <WiFi.h>
/*
   MQTT
   Joel Gaehwiler
   2.5.0
   https://github.com/256dpi/arduino-mqtt
*/

#include <MQTT.h>
//#include <MQTTClient.h>

/*
    ArduinoJson
   Benoit Blanchon
   6.18.4
   https://arduinojson.org/
*/
#include <ArduinoJson.h>


#define MQTT_MOWER_POLL_INTERVAL      1000
#define MQTT_MOWER_POLL_BACKOFF       5000
#define MQTT_MOWER_POLL_ATS           5000
#define MQTT_MOWER_POLL_ATT           60000

WiFiClient mqttNet;
MQTTClient mqttClient(1024);
bool mqttPendingPublishProps = false;
bool mqttPendingPublishState = false;
bool mqttPendingPublishStats = false;
Zumindest bei mir mit MQTT.h (statt MQTTClient.h - bei Dir auch auskommentiert = ok) und 2.5.0 läuft es sehr stabil. Wifi habe ich auch auf 400/800. Ich kann nichts ungewöhnliches bei Dir erkennen...
 
Konnte das Problem etwas mehr einkreisen, hab mir den ESP32 Log nochmal jetzt sehr lange angesehen und der scheint wenn MQTT aktiviert ist recht regelmäßig zu crashen. Im Log findet man dann immer folgendes:

Code:
14:49:31.551 ->
14:49:31.551 -> Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
14:49:31.551 -> Core 1 register dump:
14:49:31.551 -> PC      : 0x400014e8  PS      : 0x00060a30  A0      : 0x800d49e8  A1      : 0x3ffb1df0
14:49:31.551 -> A2      : 0xfefefefe  A3      : 0xfefefefc  A4      : 0x000000ff  A5      : 0x0000ff00
14:49:31.551 -> A6      : 0x00ff0000  A7      : 0xff000000  A8      : 0x00000000  A9      : 0x00000000
14:49:31.595 -> A10     : 0x00000003  A11     : 0x00060023  A12     : 0x00060021  A13     : 0x00000000
14:49:31.595 -> A14     : 0x3ffc1b64  A15     : 0x3ffb0060  SAR     : 0x00000008  EXCCAUSE: 0x0000001c
14:49:31.595 -> EXCVADDR: 0xfefefefc  LBEG    : 0x400012c5  LEND    : 0x400012d5  LCOUNT  : 0xffffffed
14:49:31.595 ->
14:49:31.595 -> Backtrace: 0x400014e8:0x3ffb1df0 0x400d49e5:0x3ffb1e00 0x400d4b81:0x3ffb1e20 0x400d4a59:0x3ffb1e50 0x400d4b48:0x3ffb1e80 0x400d5671:0x3ffb1ea0 0x400d284d:0x3ffb1ef0 0x400d29b5:0x3ffb1f40 0x400d3d1e:0x3ffb1f60 0x400de6a1:0x3ffb1fb0 0x40088b7d:0x3ffb1fd0
14:49:31.643 ->
14:49:31.643 -> Rebooting...

Komischerweise hab ich die Probleme das der Roboter danach via HTTP offline ist aber immer nur bei mir in der Garage beim Laden gehabt, nie beim mähen. Allerdings ist das WLAN in der Garage eventuell nicht das beste, daher konnte ich da beobachten das nach dem Crash scheinbar das WLAN zu lange braucht und der HTTP Server nicht startet weil angeblich kein WLAN da.
Lustigerweise hat der MQTT Server keine Abfrage ob WLAN da ist, daher hat der auch weiterhin fröhlich Daten geschickt.

WLAN war natürlich da, hat aber wohl zu lange gebraucht zu reagieren.
Workaround scheint es zu sein die Timeout Werte deutlich zu erhöhen.

Code:
#define WIFI_TIMEOUT_FIRST_RESPONSE  5000   // fast response times (500), for more reliable choose: 800
#define WIFI_TIMEOUT_RESPONSE        2000   // fast response times (100), for more reliable choose: 400

Sollte das auch nicht helfen mit den Timeouts würde ich beim HTTP Server ebenfalls mal versuchen die Abfrage nach WLAN zu entfernen.

Warum der ESP32 aber die ganze Zeit crashed ist mir ein Räsel, das tritt auch nur auf wenn MQTT aktiviert ist.
Kann mit dem Code Error oben Jemand was anfangen? Kurzes googlen danach scheint das eher ein Fehler im Code als in Hardware zu sein?

Passiert sowohl mit der MQTT.h als auch MQTTClient.h, bei zweiterer sogar gefühlt noch häufiger.
Würde also drauf tippen dass am ehesten in der mqtt.ino irgendwas im Code drin ist was das auslösen kann oder irgendein Zustand nicht abfängt der auftreten kann.

Eventuell probier ich aber auch mal einen ESP32-DevKitC-32UE aus statt dem 32U.
Wobei ich davon wenig Erfolg erhoffe.
 
Zuletzt bearbeitet:
Its trying to read invalid/illegal address.
I think I remember having that error back when I was getting mqtt to work last spring, cant remember how I fixed it though.

I remember going into the mqtt_loop() and commenting out all the function calls and uncommenting one by one, maybe that will give you some insight.
 
Yeah files looks all kind of the same, can't find any relevant changes.

I use that versions, maybe you can spot anything I can still try?

Arduino: 1.8.19

ESP32_HTTPS_SERVER: 1.0.0
MQTT: 2.5.0, 2.5.1, 2.5.2 (tried all)
NimBLE-Arduino: 1.3.1 (But BLE disabled)

Board:
esp32: 1.0.4


Settings:
Board: ESP32 Dev Module
CPU Frequency: 240Mhz
Partition: Minimal SPIFFS
 
Oben