Hallo
Ich versuche gerade mein ESP32 mit mein HASSIO system zu verbinden,
jedoch ist ein seltsames Problem aufgetreten
Alles hat gut funktioniert, bis ich mein Router umgestellt habe. Ich
habe von dem "originalen" Magenta Connect Box auf den NETGEAR RAX40
wegen NAT Loopback aufgerüstet.
Das Problem das aufgetreten ist:
Wenn ich mich versuche mit MQTT Server zu verbinden dann haut es mich
aus dem WLAN herraus.
folgende Reihenfolge:
Ich verbinde mich mit dem WLAN (alles ganz normal)
Ich verbinde mich mit dem MQTT Serve (noch alles ganz normal)
kurte Zeit später verliere ich die WLAN Verbindung und nix geht mehr
Wenn ich mich nur mit dem WLAN verbinde ohne MQTT dann habe ich das
Problem nicht.
Ich hatte ein Problem wo der ESP keinen Hostname in Rouder angezeigt
hat. Dies habe ich behoben siehe:
https://github.com/espressif/arduino-esp32/issues/2537
Ich habe ein kleines Testprogramm geschrieben:
1 | #include <WiFi.h>
|
2 | #include <PubSubClient.h>
|
3 |
|
4 | const char* ssid = "";
|
5 | const char* password = "";
|
6 | const char* mqttServer = "192.168.0.24";
|
7 | const int mqttPort = 1883;
|
8 |
|
9 | WiFiClient espClient;
|
10 | PubSubClient client(espClient);
|
11 |
|
12 | void setup()
|
13 | {
|
14 | Serial.begin(115200);
|
15 | WiFi.config(INADDR_NONE, INADDR_NONE, INADDR_NONE);
|
16 | WiFi.setHostname("ESP32");
|
17 | WiFi.begin(ssid, password);
|
18 | while (WiFi.status() != WL_CONNECTED)
|
19 | {
|
20 | Serial.println(".");
|
21 | delay(500);
|
22 | }
|
23 |
|
24 | Serial.println("Connected to the WiFi network");
|
25 | Serial.println("IP Adress: ");
|
26 | Serial.println(WiFi.localIP());
|
27 |
|
28 | client.setServer(mqttServer, mqttPort);
|
29 | client.setCallback(callback);
|
30 | client.connect("1234"); //<- Problem
|
31 | }
|
32 |
|
33 | void callback(char* topic, byte* message, unsigned int length)
|
34 | {
|
35 | Serial.print("Message arrived on topic: ");
|
36 | Serial.print(topic);
|
37 | Serial.print(". Message: ");
|
38 | }
|
39 |
|
40 | void loop()
|
41 | {
|
42 | if (WiFi.status() != WL_CONNECTED )
|
43 | {
|
44 | delay(50);
|
45 | Serial.println("LostConnection");
|
46 | }
|
47 |
|
48 | if (!client.connected())
|
49 | {
|
50 | delay(50);
|
51 | Serial.println("LostConnectionMQTT");
|
52 | }
|
53 |
|
54 | }
|
Ein ähnliche Code läuft auch auf all meine ESP8266, da gibt es keine
Probleme.
Woran kann es liegen?