Autor Thema: Erweiterung der waveshare-Treiber um WifiManager, MQTT, OTA-Update und deepsleep  (Gelesen 5803 mal)

Offline m.zielinski

  • Jr. Member
  • **
  • Beiträge: 77
Wie updatest du den ESP, mit der Arduino-IDE? Beim Flashen mit der Arduino-IDE gibt es (neuerdings?) die Option, u.a. die WiFi-Daten beim Upload zu löschen. Ich schätze mit dem ESP-upload-Tool wäre das eine separate Option. Mit einem OTA-Update sollte das jedoch nicht sein.

Ich flashe mit Arduino 1.8.15. So eine Option habe ich bisher aber nicht gesehen. Ich gehe immer auf SKetch/Hochladen und lasse in compilieren Hochladen. Das es auf einmal komplett hing war aber ohne, dass ich direkt davor neu geflasht hätte.

Das mit den OTA-Updates muss ich mir wohl endlich mal genauer ansehen...


Den Widerstand werde ich auch noch auf die RST-Leitung legen. Aber ich finde viele Infos zu "Zombie-Modus" bei einigen ESP8266 die zu dem fehlerbild passen - leider ohne eine immer passende Lösung...

Es tritt auch auf egal ob mit USB-Powerbank als STromquelle oder am Windows PC.

Offline Jendaw

  • Full Member
  • ***
  • Beiträge: 111
    • Alternative ESPEInk-Firmware
Ich flashe mit Arduino 1.8.15. So eine Option habe ich bisher aber nicht gesehen. Ich gehe immer auf SKetch/Hochladen und lasse in compilieren Hochladen.

Hängt vllt. auch vom verwendeten Board ab, ich nutze die selbe ArduinoIDE-Version. Ich hab mal ein Bild angehangen, von dem, was ich meine.
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)

Offline m.zielinski

  • Jr. Member
  • **
  • Beiträge: 77
OK Die Option war etwas versteckt :-)

Ich habe jetzt mal temporär ein 5V USB-Netzteil angeschlossen. Immernoch läuft die Firmware aber nach unregelmäßiger Zeit gibt es keine Aktualisierungen mehr und das Konfigurations-Wlan ist wieder da- scheint, als ob öfter mal die Wifi-Config verschwunden geht. EInmal hatte ich auch schon, dass aus die MQTT-Konfiguration komplett leer war.

In meiner angepassten Firmware hatte ich die WifiDaten im Quellcode hinterlegt, wodurch es nach einem Restart wieder ging.

Offline Jendaw

  • Full Member
  • ***
  • Beiträge: 111
    • Alternative ESPEInk-Firmware
Immernoch läuft die Firmware aber nach unregelmäßiger Zeit gibt es keine Aktualisierungen mehr und das Konfigurations-Wlan ist wieder da- scheint, als ob öfter mal die Wifi-Config verschwunden geht. EInmal hatte ich auch schon, dass aus die MQTT-Konfiguration komplett leer war.

In meiner angepassten Firmware hatte ich die WifiDaten im Quellcode hinterlegt, wodurch es nach einem Restart wieder ging.

Der AP wird aufgespannt, wenn er sich nicht mit dem WLAN verbinden konnte. Hat er immer ausreichend WLAN an dem Ort (Reduzierung der WLAN-Stärke und Nachtabschaltung beachten)?
Ich könnte folgende Dinge anbieten:
1. Das Timeout für den Verbindungsversuch erhöhen
2. Für Selberkompilierer den WiFi-Verbindungsmanager optional machen/kennzeichnen, wo der Aufruf erfolgt und die Parameter hinterlegt werden können.
3. Kein Reset der WiFi-Daten, wenn keine WLAN verfügbar ist
 Dafür alternativ ein Reset über einen freien Eingang des ESP.

Schade, dass das bei dir nicht so klappt mit dem WiFi. Gibt aber auch viele Randbedingungen :(
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)

Offline m.zielinski

  • Jr. Member
  • **
  • Beiträge: 77
Nachtschaltung o.ä. habe ich nicht in meinem Wlan.

2 wäre vermutlich eine gute Idee

zu 3
wäre es möglich, dass er nach einem verlängerten Timeout den WifiManager anzeigt. Wenn der nach 5 Minuten aber immernoch nicht angesprichen wird, den ESP wieder in DeepSleep zu legen und erneut aufwachen zu lassen mit neuem Verbindungsversuch auf den hinterlegten Wifi-Daten ?

Damit würde er sich selbst berappeln und man könnte trotzdem an das Konfig-Wifi kommen ohne Löten/Taster.

Offline Jendaw

  • Full Member
  • ***
  • Beiträge: 111
    • Alternative ESPEInk-Firmware
wäre es möglich, dass er nach einem verlängerten Timeout den WifiManager anzeigt. Wenn der nach 5 Minuten aber immernoch nicht angesprichen wird, den ESP wieder in DeepSleep zu legen und erneut aufwachen zu lassen mit neuem Verbindungsversuch auf den hinterlegten Wifi-Daten ?

Sollte machbar sein. Ich hab die Konstante MAX_CONNECTION_FAILURES = 1 eingeführt, die dafür zuständig ist. Standard ist ein Neuversuch. Das Timeout für den AP habe ich auf 6min gesetzt: wifiManager.setConfigPortalTimeout(360);Ich bin jedoch noch nicht dazu gekommen, das zu testen, hat also Bananenstatus :)
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)

Offline m.zielinski

  • Jr. Member
  • **
  • Beiträge: 77
Der Code reift...
Habe die Änderungen installiert und den timeout auf 10 gesetzt.
vorhin war einmal der AP auf aber wie erwartet hat er nach ner Weile rebooted und lief ohne Eingriff meinerseits.

Ich beobachte weiter. sieht erstmal gut aus.

Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Jendaw

  • Full Member
  • ***
  • Beiträge: 111
    • Alternative ESPEInk-Firmware
Ich hab deine Antwort mal "entführt" :)

- Die Software von Yattien konnte ich genau einmal konfigurieren. Egal was ich zwischendurch auf den ESP spiele sobald ich die Yattien Software drauf spiele, zieht er sich von irgendwoher die Daten für das WLAN und den MQTT Server den die ich mal zum testen eingegeben habe. Somit komme ich nicht dazu den Workaround über MQTT aufzubauen. Auch mit /reset komme bekomme ich das Teil nicht zurückgesetzt.

Dein Setup sollte mit der Waveshare-Software laufen - die Yattien-Firmware erweitert diese nur.
Wenn du bereits einmal die MQTT-Daten konfiguriert hast, wird der Webserver gar nicht erst gestartet, um die Daten reseten zu können (hier muss ich mir noch was geschicktes einfallen lassen, damit das dennoch geht, ggf. über die Konsole). Die Daten sind jedoch in einer Datei gespeichert, die du "nur" löschen musst. Die WLAN-Daten sind davon noch mal separat gespeichert.
Was du tun könntest ist:
- dem ESP den WLAN-Zugang zu verweigern, damit wird der Konfigurations-AP erneut gestartet - oder
- die Yattien-Firmware neu zu flashen, dabei als Flash-Option "Erase Flash: 'All Flash Contents'" angeben (der Screenshot dafür ist ein paar Beiträge weiter oben in diesem Thread)

HTH
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)