Skip to content

Migrate from WifiManager to Autoconnect#357

Draft
sidey79 wants to merge 15 commits into
masterfrom
sidey/autoConnect
Draft

Migrate from WifiManager to Autoconnect#357
sidey79 wants to merge 15 commits into
masterfrom
sidey/autoConnect

Conversation

@sidey79

@sidey79 sidey79 commented Oct 26, 2024

Copy link
Copy Markdown
Contributor

Use Autoconnect instead of Wifimanager because it is better maintained

@elektron-bbs

Copy link
Copy Markdown
Contributor

Wenn ich das jetzt richtig überblicke, hast du die libraries WiFiManager und ArduinoJson entfernt.
Dann müssten wahrscheinlich im Pfad /src/arduino-ide/SIGNALDuino auch noch einige Anpassungen erforderlich sein.

@sidey79

sidey79 commented Oct 27, 2024

Copy link
Copy Markdown
Contributor Author

Ja das stimmt, wenn man das überhaupt noch braucht.

@sidey79

sidey79 commented Oct 27, 2024

Copy link
Copy Markdown
Contributor Author

Ich bin hier allerdings noch ein wenig am Testen.

Was ich bei dieser Bibliothek halt besser finde ist, dass das Handling vom Speicher zum Abspeichern von Konfigurationen bereits enthalten ist.

@elektron-bbs

Copy link
Copy Markdown
Contributor

Ja das stimmt, wenn man das überhaupt noch braucht.

Ich denke schon. Die Arduino-IDE dürfte wohl häufiger verwendet werden, als PlatformIO. Ich verwende eigentlich auch lieber Arduino, bei PlatformIO gibt es öfters mal Probleme.

@sidey79

sidey79 commented Oct 27, 2024

Copy link
Copy Markdown
Contributor Author

Ja das stimmt, wenn man das überhaupt noch braucht.

Ich denke schon. Die Arduino-IDE dürfte wohl häufiger verwendet werden, als PlatformIO. Ich verwende eigentlich auch lieber Arduino, bei PlatformIO gibt es öfters mal Probleme.

Hmm, ich hab die Arduino IDE schon ewig nicht mehr verwendet.
Da kann man ja die Abhängigkeiten nicht deklarativ mitgeben oder?

@sidey79
sidey79 force-pushed the sidey/autoConnect branch from 9bc46d6 to c8780ff Compare June 29, 2025 11:16
@elektron-bbs

Copy link
Copy Markdown
Contributor

Ich habe das jetzt mal auf einem ESP8266, kompiliert mit Arduino-IDE, getestet.
Gibt es einen Trick, das die WLAN-Einstellungen gespeichert werden?
Nach einem Rest startet immer wieder der AP:

17:23:15.104 -> fpm close 1 
17:23:15.104 -> mode : sta(2c:f4:32:77:85:77)
17:23:15.104 -> add if0
17:23:15.471 -> mode : sta(2c:f4:32:77:85:77) + softAP(2e:f4:32:77:85:77)
17:23:15.471 -> add if1
17:23:15.471 -> dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
17:23:15.471 -> bcn 100
17:23:16.451 -> bcn 0
17:23:16.451 -> del if1
17:23:16.451 -> add if1
17:23:16.451 -> dhcp server start:(ip:172.217.28.1,mask:255.255.255.0,gw:172.217.28.1)
17:23:16.451 -> bcn 100

Wenn ich das richtig verstanden habe, nutzt AutoConnect für die Einstellungen den EEPROM, wir aber auch.
Kann es dadurch zu Konflikten kommen?

@sidey79

sidey79 commented Jun 29, 2025

Copy link
Copy Markdown
Contributor Author

Ich habe das jetzt mal auf einem ESP8266, kompiliert mit Arduino-IDE, getestet. Gibt es einen Trick, das die WLAN-Einstellungen gespeichert werden? Nach einem Rest startet immer wieder der AP:

17:23:15.104 -> fpm close 1 
17:23:15.104 -> mode : sta(2c:f4:32:77:85:77)
17:23:15.104 -> add if0
17:23:15.471 -> mode : sta(2c:f4:32:77:85:77) + softAP(2e:f4:32:77:85:77)
17:23:15.471 -> add if1
17:23:15.471 -> dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
17:23:15.471 -> bcn 100
17:23:16.451 -> bcn 0
17:23:16.451 -> del if1
17:23:16.451 -> add if1
17:23:16.451 -> dhcp server start:(ip:172.217.28.1,mask:255.255.255.0,gw:172.217.28.1)
17:23:16.451 -> bcn 100

Wenn ich das richtig verstanden habe, nutzt AutoConnect für die Einstellungen den EEPROM, wir aber auch. Kann es dadurch zu Konflikten kommen?

Ich habe es heute auf einem esp32 getestet und die FW mehrmals bei geflasht. Dabei sind keine Einstellung verloren gegangen.
Grundsätzlich kann es natürlich zu Problemen kommen, wenn mehrere Bibliotheken den gleichen eeprom Bereich verwenden.

@sidey79

sidey79 commented Jun 29, 2025

Copy link
Copy Markdown
Contributor Author

#define EE_MAGIC_OFFSET 0

Wir haben ein Offset von 0 und Autoconnect nutzt ebenfalls ein Offset von 0.
Daher kann es gut sein, dass es zu Problemen kommt.

Oder ist dein Passwort > 64 Byte?

@sidey79

sidey79 commented Jun 29, 2025

Copy link
Copy Markdown
Contributor Author

Ich habe ein Offset eingebaut.

@elektron-bbs

Copy link
Copy Markdown
Contributor

Passwort und SSID sind regelkonform und funktionieren schon seit Jahren.
Ich habe jetzt noch einmal (mit deiner letzten Änderung) herunter geladen und kompiliert. Das Ergebnis ist das Gleiche: Nach einem Reset startet der AP und ich muss alles neu eingeben.

Warum willst du eigentlich weg vom WiFiManager?

@elektron-bbs

Copy link
Copy Markdown
Contributor

Es könnte sein, das die Bibliothek Probleme mit Leerzeichen in der SSID hat. In meiner SSID ist ein Leerzeichen.
Ich habe heute noch einen Test gestartet:
Ein Gast-WLAN eingerichtet mit SSID "Gastzugang" und den SIGNAL-ESP damit verbunden. Das hat mehrere Neustarts überstanden. Anschließend wieder mit meinem normalen WLAN verbunden (mit Leerzeichen in SSID) und siehe da, das merkt er sich jetzt auch...

@sidey79

sidey79 commented Jul 1, 2025

Copy link
Copy Markdown
Contributor Author

Warum willst du eigentlich weg vom WiFiManager?

Der Wifimanager hat Probleme mit dem reconnect. Wir haben dafür einen workaround eingebaut, dass er rebootet, wenn er keine WLAN Verbindung hat.

Das einbinden von eigenen HTML Inhalten in das wifimanager Menü scheint entweder schwierig oder unmöglich zu sein.

Ich hatte gehofft, dass es bei Autoconnect besser funktioniert. Zumindest mit reconnects und webseiten habe ich keine Probleme. Dafür wird aber jetzt ein anderes Problem sichtbar.
Mein CC1101 empfängt irgendwann nichts mehr.... bis zu einem reboot, dann klappt es wieder.

Was das speichern der SSID angeht, muss die SSID in autoconnect unter saved networks auftauchen.

@elektron-bbs

elektron-bbs commented Jul 1, 2025

Copy link
Copy Markdown
Contributor

Der Wifimanager hat Probleme mit dem reconnect. Wir haben dafür einen workaround eingebaut, dass er rebootet, wenn er keine WLAN Verbindung hat.

Das scheint aber offensichtlich nicht zu funktionieren.
Ich bin gerade dabei, die Firmware zu erweitern, so das an einem ESP32 bis zu 4 Transceiver betrieben werden können. Dabei habe ich auch etwas an den WiFiManger-Routinen geändert. Seit dem hatte ich noch nicht wieder den Fall, das er sich nicht neu verbindet. Ausschlaggebend ist wahrscheinlich "wifiManager.setConnectRetries(10); // default 1":

  wifiManager.setAPCallback(configModeCallback);
  wifiManager.setConfigPortalTimeout(120);
  wifiManager.setConfigPortalTimeoutCallback(restart);
  wifiManager.setConnectTimeout(60); // sets timeout for which to attempt connecting, useful if you get a lot of failed connects
  wifiManager.setConnectRetries(10); // default 1
  String hostName = F("SIGNAL-");
  hostName += WiFi.getHostname();
  hostName.toUpperCase(); // SIGNAL-ESP32-B06CD4, SIGNAL-ESP-DB7D13
  wifiManager.setHostname(hostName); // set a custom hostname, sets sta and ap dhcp client id for esp32, and sta for esp8266
  wifiManager.autoConnect(hostName.c_str(),"signalesp"); // hostname, password
  // wm:AccessPoint set password is INVALID or <8 chars
  // 2025-02-13 - Arduino Release v3.1.2 based on ESP-IDF v5.3 (seit dem AP nicht mehr ohne Passwort, ohne PW Neustart)
  // wifiManager.autoConnect(hostName.c_str()); // if you just want an unsecured access point
  wifiManager.setTitle(hostName); // set the webapp title, default WiFiManager
  wifiManager.setRemoveDuplicateAPs(false); // You can also remove or show duplicate networks (default is remove). Use this function to show (or hide) all networks.

Das einbinden von eigenen HTML Inhalten in das wifimanager Menü scheint entweder schwierig oder unmöglich zu sein.

Das sollte aber eigentlich laut Doku möglich sein.

Ich hatte gehofft, dass es bei Autoconnect besser funktioniert. Zumindest mit reconnects und webseiten habe ich keine Probleme. Dafür wird aber jetzt ein anderes Problem sichtbar. Mein CC1101 empfängt irgendwann nichts mehr.... bis zu einem reboot, dann klappt es wieder.

Das Problem hatte ich mit der aktuellen Firmware v4 und v3.5 auch schon. Diese Fehler waren noch im Log zu erkennen:

2025.06.10 21:48:34 3: sduinoESP8266: Parse_MU, faulty msg: MU;P0=384;P1=-844;P3=-9626;P4=854;P5=-6152;P7=-366;D=34547474747474747474747014747014701474701470147010147010147474701470147470101474747014701014701014701470101474701010147470101010101470147474747014747474701010147010CP==0;R=19;
2025.06.10 21:48:35 3: sduinoESP8266: Parse_MS, faulty msg: MS;P1=489;P2=-8057;P3=-2011;P4=-3968;D=12131313131314131414141313141314131314131413141314141313131313131313131313141314131314CP==1;SP=2;R=16;O;m2;
2024.05.05 00:00:33 3: sduinoESP8266_1: Parse_MU, faulty msg: MU;P0=-241;P1=91;P2=-986;P3=465;P4=-1887;P5=-429;P6=133;D=123234343432323232343232323235653232343232323232343434341034CP==3;R=239;
2024.05.05 00:00:40 3: sduinoESP8266_1: Parse_MS, faulty msg: MS;P1=-2008;P2=492;P3=-8043;P4=-3952;D=23212121242121212121212121242121242424212421212124242121212121212121212121212124212124CP==2;SP=3;R=38;O;m2;
2024.05.02 22:01:20 3: sduinoESP8266: Parse_MS, faulty msg: MS;P0=-3996;P1=484;P2=-2020;P3=-8055;D=1313121212121210101010121212121010121012121210101212101012121212121212121212101210121010CP==1;SP=3;R=40;m0;
2024.05.02 22:01:24 3: sduinoESP8266: Parse_MU, faulty msg: MU;P0=3408;P1=-679;P2=-4622;P3=1145;P5=-30807;P6=-157;P7=-466;D=701023202320202020202320232323202323202323232020232320202020202020205063102320232020202020232023232320232320232323202023232020202020202020CP==3;R=49;
2024.05.01 01:10:27 3: sduinoESP8266: Parse_MU, faulty msg: MU;P0=-18252;P1=483;P2=-8032;P3=184;P4=-2035;P5=-4004;D=01230121414141414151515151414141415151414141414151414141515141414141414141414141514141514151212141414141415151515141414141515141414141415141414151514141414141414141414151414151415121214141414141515151514141414151514141414141514141415151414141414141414141P=P=1;R=35;O;
2024.05.01 01:10:27 3: sduinoESP8266: Parse_MS, faulty msg: MS;P0=-2054;P1=480;P2=-3991;P3=-8057;D=1313101010101012121212101010101212101010101012101010121210101010101010101010121010121012P=P=1;SP=3;R=34;O;m2;
2024.04.13 16:01:23 3: sduinoESP8266: Parse_MU, faulty msg: MU;P0=-4017;P1=459;P2=-8054;P3=-1958;P4=-941;P5=158;P7=92;D=01212131313101313131313131313145410101370P=P=1;R=19;
2024.04.13 16:01:27 3: sduinoESP8266: Parse_MS, faulty msg: MS;P1=496;P2=-2036;P3=-3974;P4=-8040;D=1414121213121213121312131212121213121313121212121213131212121212121212121212121212131213P=P=1;SP=4;R=49;O;m2;
2023.12.12 05:44:17 3: sduinoESP8266: Parse_MU, faulty msg: MU;P0=-533;P1=531;P2=-117;P3=164;P4=124;P5=-1391;P6=-960;P7=-1945;D=1232451616171616161616161616161717171042161;CP=1;==246;
2023.11.30 06:10:33 3: sduinoESP8266: Parse_MU, faulty msg: MU;P0=-1248;P1=280;P2=-469;P3=447;P4=-8094;P5=-2216;P6=-3993;P7=184;D=3435353536363535753536363012353536353535363636353635363636353535353535353535353535=CP=3;R=243;
2023.11.30 06:10:43 3: sduinoESP8266: Parse_MS, faulty msg: MS;P2=-8014;P3=496;P4=-2013;P5=-4002;D=32343434343434343534353434353434353435353535353435353534343434343434343434343534343435=CP=3;SP=2;R=28;O;m2;
2023.09.06 06:11:50 3: sduinoESP8266: Parse_MS, faulty msg: MS;P0=-4016;P3=484;P4=-8045;P5=-2022;D=34353535303035303035303535353530303030353030353530353035353535353535353535353530353030=CP=3;SP=4;R=50;O;m2;
2023.09.06 06:11:22 3: sduinoESP8266: Parse_MU, faulty msg: MU;P0=-822;P1=499;P2=-1311;P3=-2031;P4=-165;P5=-217;P6=-3774;P7=702;D=1213131214121512151615121512131213167316101=CP=1;R=49;

Gesammelt:

MSG Ende Fehler:
;CP=2;==245;
P=P=7;R=90;
;CP=2;==253;
;CP=4;==58;
=CP=2;R=0;
=CP=0;R=253;
=CP=3;R=249;
;CP=1P=P=2;R=28;O;           MS
;CP=1P=P=2;R=237;m2;         MS
53535=CP=3;R=243;            MU
43435=CP=3;SP=2;R=28;O;m2;   MS
;CP=1;==246;                 MU
P=P=1;R=19;                  MU
P=P=1;SP=4;R=49;O;m2;        MS
P=P=1;R=35;O;                MU
P=P=1;SP=3;R=34;O;m2;        MS
CP==1;SP=3;R=40;m0;          MS
CP==3;R=49;                  MU
CP==3;R=239;                 MU
CP==2;SP=3;R=38;O;m2;        MS
47010CP==0;R=19;             MU
31314CP==1;SP=2;R=16;O;m2;   MS

MSG D= Fehler:
P3=-4550;==                  MS
P4=-126;==                   MU

Diese hier waren nicht so offensichtlich, weil sie im Log nicht als "faulty msg" auftauchten:

MSG Beginn Fehler:
�;U;P0=489;P1=-1283;P2=-131;P3=-2032;P4=-854;P5=-2626;P6=-655;P7=-293;   MU
wird nicht als "faulty msg" erkannt:
�;U;P0=-5775;P1=850;P2=-415;P3=352;P4=-893;D=01212121212121212121234121212123412341212343412341234341212343434341212343412343434341234123;CP=3;R=24;�
2025.05.23 17:16:25 4: sduinoESP8266: Read, msg: �;U;P0=534;P1=-9991;P2=-497;P3=-971;P4=-730;P7=-18366;D=010202020202030302030302020202040203030203020203020302020202020202030302020203020307;CP=0;R=246;�
2025.05.23 17:16:25 4: sduinoESP8266: Read, msg: �;U;P0=822;P1=518;P2=-459;P3=-1020;P6=-21481;P7=-9974;D=12121213121316171212121213121213131312120;CP=1;R=253;�
2025.05.23 17:16:25 4: sduinoESP8266: Read, msg: �;U;P0=-553;P1=467;P4=-986;P5=-309;P6=886;P7=-209;D=101010101410101414141010101014101010141410141414141010101010141015671410141010101;CP=1;R=246;�
2025.05.23 17:16:25 4: sduinoESP8266: Read, msg: �;U;P0=453;P1=-9879;P2=-456;P4=-1058;P5=-196;P6=209;P7=-2115;D=701020202020402020405620402020202040202020404020405;CP=0;R=246;�

Ich habe jeweils nur Auszüge aus den Logs gepostet. Die Fehler wiederholen sich dann bei jeder Nachricht bis zum Reset. Ich vermute, das da im RAM ein String überschrieben wird.
Wenn ähnliches jetzt bei dir auch mit Autoconnect auftritt, könnte es an zu wenig freiem RAM liegen. Die Autoconnect-Bibliothek ist ja ein ziemlicher Speicherfresser, sowohl was Flash und auch RAM betrifft:

esp8266cc1101   freeram   41864
esp8266s        freeram   16864

Was das speichern der SSID angeht, muss die SSID in autoconnect unter saved networks auftauchen.

Da stand die SSID drin. Jetzt stehen halt zwei dort, eine ohne Leerzeichen und eine mit. Seit dem funktioniert der Reconnect.

@sidey79
sidey79 force-pushed the sidey/autoConnect branch from 549419b to 0c67919 Compare July 2, 2025 15:34
@sidey79

sidey79 commented Jul 2, 2025

Copy link
Copy Markdown
Contributor Author

Der Wifimanager hat Probleme mit dem reconnect. Wir haben dafür einen workaround eingebaut, dass er rebootet, wenn er keine WLAN Verbindung hat.

Das scheint aber offensichtlich nicht zu funktionieren. Ich bin gerade dabei, die Firmware zu erweitern, so das an einem ESP32 bis zu 4 Transceiver betrieben werden können. Dabei habe ich auch etwas an den WiFiManger-Routinen geändert. Seit dem hatte ich noch nicht wieder den Fall, das er sich nicht neu verbindet. Ausschlaggebend ist wahrscheinlich "wifiManager.setConnectRetries(10); // default 1":

Das mit den 4 cc1101 ist gut :)

Was passiert nach den 10 Wiederholungen? Dann muss der uc rebootet werden?

Ich habe deinen Workaround nun etwas erweitert und damit findet etwa alle 34 Minuten ein ccinit statt.
6ef8640
Damit empfange ich nun dauerhaft etwas.
Derart verkrüppelte Nachrichten wie bei dir habe ich nicht gefunden.

@elektron-bbs

Copy link
Copy Markdown
Contributor

Das scheint aber offensichtlich nicht zu funktionieren. Ich bin gerade dabei, die Firmware zu erweitern, so das an einem ESP32 bis zu 4 Transceiver betrieben werden können. Dabei habe ich auch etwas an den WiFiManger-Routinen geändert. Seit dem hatte ich noch nicht wieder den Fall, das er sich nicht neu verbindet. Ausschlaggebend ist wahrscheinlich "wifiManager.setConnectRetries(10); // default 1":

Das mit den 4 cc1101 ist gut :)

Das ist jetzt eigentlich fertig. Ich weiß nur nicht, wie ich es dir präsentieren soll :-) Es ist ja fast keine Datei unverändert geblieben.

Was passiert nach den 10 Wiederholungen? Dann muss der uc rebootet werden?

Das müsste ich mal probieren.

Ich habe deinen Workaround nun etwas erweitert und damit findet etwa alle 34 Minuten ein ccinit statt. 6ef8640 Damit empfange ich nun dauerhaft etwas.

Betrifft das zufällig FSK und den Empfang des SD_WS_125?
@HomeAutoUser hatte auch so etwas berichten, das bei ihm sporadisch der Empfang aussetzt.

Derart verkrüppelte Nachrichten wie bei dir habe ich nicht gefunden.

Könnte sein, das das nur beim ESP8266 auftritt.

@sidey79

sidey79 commented Jul 2, 2025

Copy link
Copy Markdown
Contributor Author

Das scheint aber offensichtlich nicht zu funktionieren. Ich bin gerade dabei, die Firmware zu erweitern, so das an einem ESP32 bis zu 4 Transceiver betrieben werden können. Dabei habe ich auch etwas an den WiFiManger-Routinen geändert. Seit dem hatte ich noch nicht wieder den Fall, das er sich nicht neu verbindet. Ausschlaggebend ist wahrscheinlich "wifiManager.setConnectRetries(10); // default 1":

Das mit den 4 cc1101 ist gut :)

Das ist jetzt eigentlich fertig. Ich weiß nur nicht, wie ich es dir präsentieren soll :-) Es ist ja fast keine Datei unverändert geblieben.

Das kann ich mir vorstellen.

7e) Damit empfange ich nun dauerhaft etwas.

Betrifft das zufällig FSK und den Empfang des SD_WS_125? @HomeAutoUser hatte auch so etwas berichten, das bei ihm sporadisch der Empfang aussetzt.

Ja exakt um den geht es. Aber so sporadisch passiert das bei mir nicht eher ständig...

@elektron-bbs

Copy link
Copy Markdown
Contributor

Was passiert nach den 10 Wiederholungen? Dann muss der uc rebootet werden?

Ich habe das heute mal mit einem ESP8266 mit meiner Firmware durchprobiert.
Nach den 10 Versuchen wird der Accesspoint gestartet. Wenn dessen Timeout erreicht ist (120 Sek) wird ein Reset durchgeführt und das Spiel beginnt von vorn. Die Anzahl der Verbindungsversuche habe ich jetzt auf 3 reduziert.
Ich habe auch noch andere Varianten getestet, wie falsches Passwort oder komplett gelöschter Flash - müsste eigentlich alles funktionieren. Ich lade mal noch das Log davon hoch.
Wifi-Manager_lost-connection.log

@elektron-bbs

Copy link
Copy Markdown
Contributor

Betrifft das zufällig FSK und den Empfang des SD_WS_125? @HomeAutoUser hatte auch so etwas berichten, das bei ihm sporadisch der Empfang aussetzt.

Ja exakt um den geht es. Aber so sporadisch passiert das bei mir nicht eher ständig...

Hast du die AFC eingeschaltet?
Ich hatte irgendwann festgestellt, das der CC1101 dann evtl. auf einer benachbarten Frequenz einrastet wenn da etwas empfangen wird.

@sidey79

sidey79 commented Jul 3, 2025

Copy link
Copy Markdown
Contributor Author

Hast du die AFC eingeschaltet? Ich hatte irgendwann festgestellt, das der CC1101 dann evtl. auf einer benachbarten Frequenz einrastet wenn da etwas empfangen wird.

Ja AFC habe ich an. Hmm, sollte ich das ausschalten?

@elektron-bbs

Copy link
Copy Markdown
Contributor

Hast du die AFC eingeschaltet? Ich hatte irgendwann festgestellt, das der CC1101 dann evtl. auf einer benachbarten Frequenz einrastet wenn da etwas empfangen wird.

Ja AFC habe ich an. Hmm, sollte ich das ausschalten?

Ich vermute, das es daran liegen könnte. Um das zu beobachten müsstest du natürlich ccinit wieder aus dem cronjob entfernen.
Sollten die Werte des Internals "sduinoD1_FREQAFC" der Sensoren dann zu weit von 0 abweichen, müsstest du einen Mittelwert der Abweichung über alle Sensoren errechnen und die Frequenz des SIGNALduino entsprechend korrigieren.

Ich habe z.B. bei meinem SIGNALduino, der Bresser-Sensoren empfängt, anstelle des Sollwertes von 868.300 MHz dann 868.292 MHz angegeben. Die Abweichungen der einzelnen Sensoren sehen dann z.B. so aus:
Bildschirmfoto_3-7-2025_212116_raspberrypi3

@sidey79

sidey79 commented Jul 3, 2025

Copy link
Copy Markdown
Contributor Author

Die Sensoren die ich empfangen möchte haben seltsamerweise alle den gleichen FREQAFC Wert von -30.

Aber es kann natürlich sein, dass da noch was anderes funkt.

@elektron-bbs

Copy link
Copy Markdown
Contributor

Dann sind wahrscheinlich die Sensoren ziemlich präzise, aber der CC1101 nicht. Ich würde empfehlen, die AFC auszuschalten und die Frequenz beim SIGNALduino um 30 kHz zu reduzieren.

@sidey79

sidey79 commented Jul 5, 2025

Copy link
Copy Markdown
Contributor Author

Am AFC liegt es nicht. Habe gestern Nachmittag noch mal neu compiliert. Der AFC war auch schon deaktiviert.

Nach 2 Stunden empfängt er nichts mehr.
Ein Close und anschließender Reset bringt es dann wieder zum funktionieren.

@elektron-bbs

Copy link
Copy Markdown
Contributor

Tja, im Forum ist die Rede von einem "PLL-Lock-Problem" https://forum.fhem.de/index.php?msg=1338051 bei Ralfs Version.

Ich habe davon bei unserer Firmware allerdings noch nichts bemerkt. Ich habe hier einen ESP8266 der monatelang die Nachrichten von diversen Bresser-Sensoren ohne Aussetzer empfängt.

@HomeAutoUser

HomeAutoUser commented Jul 8, 2025

Copy link
Copy Markdown
Contributor

Hallo @elektron-bbs , @sidey79

Das scheint aber offensichtlich nicht zu funktionieren. Ich bin gerade dabei, die Firmware zu erweitern, so das an einem ESP32 bis zu 4 Transceiver betrieben werden können. Dabei habe ich auch etwas an den WiFiManger-Routinen geändert. Seit dem hatte ich noch nicht wieder den Fall, das er sich nicht neu verbindet. Ausschlaggebend ist wahrscheinlich "wifiManager.setConnectRetries(10); // default 1":

Das mit den 4 cc1101 ist gut :)

Das ist jetzt eigentlich fertig. Ich weiß nur nicht, wie ich es dir präsentieren soll :-) Es ist ja fast keine Datei unverändert geblieben.

Was passiert nach den 10 Wiederholungen? Dann muss der uc rebootet werden?

Das müsste ich mal probieren.

Ich habe deinen Workaround nun etwas erweitert und damit findet etwa alle 34 Minuten ein ccinit statt. 6ef8640 Damit empfange ich nun dauerhaft etwas.

Betrifft das zufällig FSK und den Empfang des SD_WS_125? @HomeAutoUser hatte auch so etwas berichten, das bei ihm sporadisch der Empfang aussetzt.

Derart verkrüppelte Nachrichten wie bei dir habe ich nicht gefunden.

Könnte sein, das das nur beim ESP8266 auftritt.

ich melde mich mal zu Wort wegen dem SD_WS_125 Problem.
Heute trat es wieder auf. Aus laufenden Empfang war einfach Stille. ( 6 Sensoren )
Anbei erhaltet Ihr das Logfile, was ich alles versuchte, bis dieser Empfänger wieder die Sensoren empfing.

Vorgehensweise:

    • kein Empfang
    • Befehl get ccconf
    • Befehl get config
    • Befehl get ccpatable
    • Befehl get freeram
    • Befehl get uptime (2x)
    • Befehl get version ---> dann läuft wieder alles auf einmal

Erkenntnis, diesmal hatte ich kein set reset uC gemacht.

2025.07.08 17:43:33 1: RMDIR: ./restoreDir/save/2025-06-26
2025.07.08 17:44:12 3: sduino_868: Attr, setting Verbose to: 4
2025.07.08 17:45:09 4: sduino_868: KeepAlive, not ok, retry = 1 -> get ping
2025.07.08 17:45:09 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:45:09 4: sduino_868: SendFromQueue, called
2025.07.08 17:45:09 4: sduino_868: Read, msg: OK
2025.07.08 17:45:09 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:45:09 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:46:09 4: sduino_868: KeepAlive, ok, retry = 0
2025.07.08 17:47:09 4: sduino_868: KeepAlive, not ok, retry = 1 -> get ping
2025.07.08 17:47:09 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:47:09 4: sduino_868: SendFromQueue, called
2025.07.08 17:47:09 4: sduino_868: Read, msg: OK
2025.07.08 17:47:09 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:47:09 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:47:39 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:47:39 4: sduino_868: SendFromQueue, called
2025.07.08 17:47:39 4: sduino_868: Read, msg: C0Dn11=21661AA95C0222F843070018166C436891
2025.07.08 17:47:39 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:47:39 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:48:09 4: sduino_868: KeepAlive, ok, retry = 0
2025.07.08 17:48:50 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:48:50 4: sduino_868: SendFromQueue, called
2025.07.08 17:48:50 4: sduino_868: Read, msg: MS=1;MU=1;MC=1;MN=1;AFC=0;Mred=1
2025.07.08 17:48:50 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:48:50 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:49:09 4: sduino_868: KeepAlive, ok, retry = 0
2025.07.08 17:50:09 4: sduino_868: KeepAlive, not ok, retry = 1 -> get ping
2025.07.08 17:50:09 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:50:09 4: sduino_868: SendFromQueue, called
2025.07.08 17:50:09 4: sduino_868: Read, msg: OK
2025.07.08 17:50:09 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:50:09 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:50:14 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:50:14 4: sduino_868: SendFromQueue, called
2025.07.08 17:50:14 4: sduino_868: Read, msg: C3E = 00 84 00 00 00 00 00 00
2025.07.08 17:50:14 3: sduino_868: CheckCcpatableResponse, patable: 84
2025.07.08 17:50:15 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:50:15 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:51:05 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:51:05 4: sduino_868: SendFromQueue, called
2025.07.08 17:51:05 4: sduino_868: Read, msg: 1106
2025.07.08 17:51:05 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:51:05 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:51:09 4: sduino_868: KeepAlive, ok, retry = 0
2025.07.08 17:51:35 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:51:35 4: sduino_868: SendFromQueue, called
2025.07.08 17:51:36 4: sduino_868: Read, msg: 4493401
2025.07.08 17:51:36 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:51:36 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:51:43 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:51:43 4: sduino_868: SendFromQueue, called
2025.07.08 17:51:43 4: sduino_868: Read, msg: 4493409
2025.07.08 17:51:43 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:51:43 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:52:09 4: sduino_868: KeepAlive, ok, retry = 0
2025.07.08 17:52:32 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:52:32 4: sduino_868: SendFromQueue, called
2025.07.08 17:52:32 4: sduino_868: Read, msg: V 4.0.0+20230814 SIGNALduino cc1101 (chip CC1101) - compiled at Mar 13 2024 21:01:41
2025.07.08 17:52:32 2: sduino_868: CheckVersionResp, initialized 3.5.7+20250219
2025.07.08 17:52:32 3: sduino_868: CheckVersionResp, enable receiver (XE) 
2025.07.08 17:52:33 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:52:33 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:52:33 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:52:33 4: sduino_868: SendFromQueue, called
2025.07.08 17:52:33 4: sduino_868: Read, msg: C0Dn11=21661AA95C0222F843070018166C436891
2025.07.08 17:52:33 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:52:33 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:52:34 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:52:34 4: sduino_868: SendFromQueue, called
2025.07.08 17:52:34 4: sduino_868: Read, msg: C3E = 00 84 00 00 00 00 00 00
2025.07.08 17:52:34 3: sduino_868: CheckCcpatableResponse, patable: 84
2025.07.08 17:52:34 4: sduino_868: HandleWriteQueue, called
2025.07.08 17:52:34 4: sduino_868: HandleWriteQueue, nothing to send, stopping timer
2025.07.08 17:52:37 4: sduino_868: Read, msg: �MN;D=30FAB2673589016C000200;R=31;A=-1;�
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 100 Lacrosse mode 1 msg 30FAB2673589016C000200 not match (?^:^9)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 101 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, GFSK Protocol id 102 KoppFreeControl msg 30FAB2673589016C000200 not match (?^:^0)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 103 Lacrosse mode 2 msg 30FAB2673589016C000200 not match (?^:^9)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 107 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 107.1 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 108 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 109 msg=30FAB2673589016C000200, message is to long
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 112 msg=30FAB2673589016C000200, message is to long
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 115 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 116 WH57 msg 30FAB2673589016C000200 not match (?^:^57)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 116.1 WH57 msg 30FAB2673589016C000200 not match (?^:^57)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 117 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 123 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Found 2-FSK Protocol id 125 -> WH31 with match (?^:^(30|37|52))
2025.07.08 17:52:37 4: sduino_868: SD_WS_Parse protocol 125, rawData 30FAB2673589016C000200
2025.07.08 17:52:37 4: sduino_868: SD_WS_Parse decoded protocol-id 125 (WH31e, WH31b, DP50, DNT000005), sensor-id FA
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 126 WH40 msg 30FAB2673589016C000200 not match (?^:^40)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Found 2-FSK Protocol id 131 -> Bresser lightning with match (?^:^[a-fA-F0-9])
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! method ConvBresser_lightning, checksumCalc:0x6C2B != checksum:0x899E
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 133 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 134 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Read, msg: �MN;D=30FAB2673589016C000200;R=31;A=-1;�
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 100 Lacrosse mode 1 msg 30FAB2673589016C000200 not match (?^:^9)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 101 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, GFSK Protocol id 102 KoppFreeControl msg 30FAB2673589016C000200 not match (?^:^0)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 103 Lacrosse mode 2 msg 30FAB2673589016C000200 not match (?^:^9)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 107 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 107.1 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 108 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 109 msg=30FAB2673589016C000200, message is to long
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 112 msg=30FAB2673589016C000200, message is to long
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 115 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 116 WH57 msg 30FAB2673589016C000200 not match (?^:^57)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, 2-FSK Protocol id 116.1 WH57 msg 30FAB2673589016C000200 not match (?^:^57)
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 117 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Error! id 123 msg=30FAB2673589016C000200, message is to short
2025.07.08 17:52:37 4: sduino_868: Parse_MN, Found 2-FSK Protocol id 125 -> WH31 with match (?^:^(30|37|52))
2025.07.08 17:52:37 4: sduino_868: Dispatch, W125#30FAB2673589016C000200, Dropped due to short time or equal msg

Zwischenfrage, wird bei einem Versionsabruf der cc1101 angesprochen?

@elektron-bbs

elektron-bbs commented Jul 8, 2025

Copy link
Copy Markdown
Contributor

Ja, nach dem Versionsabruf wird XE zum SIGNALduino gesendet:

2025.07.08 17:52:32 2: sduino_868: CheckVersionResp, initialized 3.5.7+20250219
2025.07.08 17:52:32 3: sduino_868: CheckVersionResp, enable receiver (XE) 

Dadurch wird in der Firmware der CC110x kurz in den Idle-Mode versetzt und anschließend wieder in den Empfangs-Modus.

Hast du die AFC aus- oder eingeschaltet?
Was sagen bei dir die Internals "xxxxx_FREQAFC" bei ausgeschalteter AFC?

Ich habe mir nochmal meine Notizen zum SD_WS_125 angesehen. Dabei fiel mir auf, das ich mir für Deviation 70 kHz (aus URH) notiert hatte. Beim SIGNALduino stehen aber nur 34.91 kHz. Dann könnte natürlich die eingestellte Bandbreite von 135 kHz zu knapp sein.

@elektron-bbs

Copy link
Copy Markdown
Contributor

Warum willst du eigentlich weg vom WiFiManager?

Der Wifimanager hat Probleme mit dem reconnect. Wir haben dafür einen workaround eingebaut, dass er rebootet, wenn er keine WLAN Verbindung hat.

Das einbinden von eigenen HTML Inhalten in das wifimanager Menü scheint entweder schwierig oder unmöglich zu sein.

Das ist mir jetzt auch gelungen.
Mir war bisher gar nicht aufgefallen, das die WLAN-Einstellungen bei fester IP nicht gespeichert wurden, da ich bisher immer DHCP verwendet habe. Das habe ich jetzt auch korrigiert.

@sidey79
sidey79 force-pushed the sidey/autoConnect branch from f930c80 to 08a644e Compare January 8, 2026 10:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants