ESP32 WiFi Stabilität

Hallo , ich betreibe 5 ESPs , die untereinander Daten austauschen. Im Haus habe ich eine Fritzbox 7590 und 1 meshed Fritz- Repeater im Keller.
Immer wieder Mal stürzt der eine oder andere ESP ab .. nach 3-4 Tagen , manche laufen länger. Seitdem ich die WiFI TX Power bei den ESPs im Sketch begrenze ist alles deutlich stabiler. Netzteile sind groß .. 12-15Watt und Versorgungs- Kabel ebenfalls ausreichend dimensioniert.
Der Code selbst läuft stabil - overflows o.ä. sollte es keine geben bzw sollten sie achon nach einem Tag auftreten, wenn es Probleme gibt .. Größe der Arrays passen. Free Heap Speicher ist bei > 50kB. Max Free Block in Heap ist nach ein paar Tagen noch immer bei ca 45kB.

Probleme gibt vor allem dann, wenn sich zB der ESP im Erdgeschoss beim Repeater im Keller einmeldet und damit von vornherein schon eine schlechte Verbindung hat. Nach 2-3 mal manuellen Neustarts ist der EG ESP dann auch wieder auf dem EG Router und nicht am Keller- Repeater.
(Hab auch schon öfters das WLAN abgeschalten und die ESPs laufen problemlos weiter .. Fehlermeldungen werden so wie programmiert ausgegeben .. und wenn's WLAN wieder da ist, läuft alles wieder normal.)
Einstellungen am Router oder Repeater finde ich keine, die das irgendwie verhindern können.
Hattet ihr sowas schon mal und wie kann ich das sonst noch in den Griff bekommen?

Moin!
Es ist unklar, was damit gemeint ist.
Ist das eine nicht gewollte Verbindung zu einem der Mesh-Knoten? Wäre der Connect an einen der anderen Knoten besser? Oder ist es eben so, dass an dem Standort kein besserer Knoten zur Verfügung steht?

Ich habe im Mesh schon erlebt, dass nicht der stärkste Knoten sondern ein anderen connected wird, mit entsprechenden negativen Folgen.
Abhilfe: Bei WiFi.begin kann als dritter Parameter die MAC-Adresse des Routers angegeben werden, der benutzt werden soll. So kannst du deinen ESP an einen bestimmten (nämlich den für dich richtigen) Knoten zwingen.

(Ob das deinem Problem hilft, weiß ich natürlich nicht. Habe auch ESP32 im Netz laufen. Teilweise über 100 Tage ohne Reset)

Gruß
Andree

Hallo,
Danke - ja das meinte ich , der ESP verbindet sich zu einem schlechteren Netzknoten in einer anderen Etage des Hauses , anstatt zu dem Mesh/Netzknoten, der nur ein paar Meter entfernt ist.
Das mit der MacAdresse des Meshknotens im ESP Sketch werde ich mal probieren - das wäre wohl die Lösung.
Schöne Grüße .. Peter

Hallo
Habe das mal ausprobiert mit der MAC Adresse...
Normalerweise verbindet sich der ESP zum Router, sobald ich aber die MAC Adresse im WiFi.begin Statement mit dazu gebe, funktioniert das leider nicht. Die MAC Adresse stimmt -wird so beim Fritz 7590 Router ausgelesen.

Hat jemand eine Idee, warum dass mit MAC Adresse hier nicht funktioniert ?

const IPAddress gateway(192,168,178,1);           // Abdresse des Routers
const IPAddress subnet(255,255,255,0);            // und der IP SubnetMaske
const IPAddress dns(192,168,178,1);               // Router = DNS 
const int32_t channel = 0;
const byte macaccesspoint[] = {0x2C, 0x3A, 0xFD, 0xBB, 0x1E, 0x90}; 

String ssid;
String password;

preferences.begin("credentials", true); 
ssid = preferences.getString("ssid", ""); 
password = preferences.getString("password", "");

WiFi.mode(WIFI_STA);       // connect to WiFi in Station Modus
WiFi.setTxPower(WIFI_POWER_8_5dBm);
WiFi.config(ip, gateway, subnet, dns);   
WiFi.begin(ssid.c_str(), password.c_str(), channel, macaccesspoint);     
  


Lass mal zum Test weg:

WiFi.setTxPower(WIFI_POWER_8_5dBm);
WiFi.config(ip, gateway, subnet, dns);  

WiFi.begin ohne channel. Nur drei Parameter (ssid, pw, mac)
Gib vorher für dich per Serial.println ssid und pw aus zur Kontrolle.

Wenn es nicht funktionert, dann ohne macaddress Parameter.
Und wenn es dann funktioniert, nochmal macadress kontrollieren.
(Oder hast du im Wunsch-Router eine MAC-Address Filterung drin, die
deinen ESP nicht haben will?)

Hab alle Varianten ausprobiert, funktioniert aber leider nichts.
Auch mal eine Verbindung zur MAC Adresse des Repeaters probiert - auch das war leider nichts.

Ohne der MAC-Adresse bei WiFi.begin verbindet der ESP ganz normal auf den Router.
Bin etwas ratlos - Danke mal für deine Hilfe..

Wenn sich der ESP (ohne macaddress) an den (einen der) Router verbindet, kontrollier dann doch anschließend mal die MAC-Adresse:
Serial.prinf("MAC des Routers %s\n",WiFi.BSSIDstr().c_str());

Ist das dann wirklich die MAC, die du erwartest? Und wenn du genau die dann nimmst, als dritten Parameter .... geht es auch nicht?

SEHE GERADE:
Fehler von mir. Ich habe als dritten Parameter auch 0 (channel)

1 Like

Ja die 0 hatte ich eh schon immer im Code, sonst meckert der Compiler.

Der Fehler ist gefunden : der Router gibt doch tatsächlich eine andere MAC-Adresse aus, als die, die ich im Admin-Tool der Fritz Box angezeigt bekomme.

Die Anzeige im Admin Tool der Fritz Box:

und hier der screenshot vom Serial Monitor: die MAC-Adresse unterscheidet sich in der letzten Stelle (ganz rechst) - da hätte ich ohne deiner Hilfe lange gesucht. DANKE

Zwischenablage03

Super!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.