-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lokaler Webserver antwortet kaum #18
Comments
Hallo, die NodeMCU v2 und v3 geht bei mir. Gruß |
Die angesprochenen nodemcus hatte ich zwischenzeitlich schon bestellt :) |
Der CP2102 Chipsatz hat doch eigentlich eher was mit dem USB Port zu tun dachte ich? |
Deshalb habe ich auch nicht so große Hoffnungen, dass ein anderes Modul funktioniert - war aber eine der letzten Möglichkeiten. |
Hi, hast du die Dateien unter /data mit auf den ESP geladen? |
Tataaaa! |
Mit welchem Compiler hast du die bin erstellt? |
Stimmt, das mit dem delay(x) hatte ich auch schon mal gelesen. Aber laut dem hier dürfte es eigentlich keine Rolle spielen, ob am Ende der loop() noch ein kurzes Delay ist oder nicht: https://esp8266-shop.com/esp8266-guide/interrupts-and-timers/ |
Ich habe mit VSCODE gearbeitert. |
Heute kam überraschend schon das Nodemcu 3.4 Modul: |
Hallo, "steff393" kannst Du das "sleep(10)" bitte in Deinem nächsten Update miteinbinden. Danke |
Wenn ihr mir genauer erklären könnt, was es macht, dann sehr gerne. Aktuell verstehe ich es noch nicht:
Das delay(10) ist dann nur busy-waiting, was schlimmstenfalls dazu führt, dass die Modbus-Kommunikation oder eben auch Wifi nicht mehr rechtzeitig dran kommt. |
Hallo, ich kann es Dir leider nicht erklären, da ich mich mit diesem Thema nicht auskenne. Micha |
Erklären kann ich auch nichts... Ich kann jedenfalls auch sehr gut verstehen, wenn man seinen Code nicht ändern will, weil jemand meint, es ginge so und so besser. Insbesondere dann, wenn sich niemand sonst mit dem Problem meldet und nicht klar ist, warum und weshalb oder welche negative Folgen die Änderungen haben könnte. Ich wäre da auch sehr vorsichtig. Nur noch eine kurze Bemerkung: delay(1) reicht anscheinend auch. Vielleicht wartet man ab und macht eventuell eine Bemerkung in der Anleitung/Wiki oder auf der Projektseite. |
Mein Vorschlag wäre: Wir lassen den Issue mal offen, dann hab ich das Thema auf dem Schirm und kann das evtl. beim nächsten Release über einen Parameter steuerbar einbauen, damit es sich für andere (v.a. die mit mehreren Wallboxen) nicht auswirkt. |
Hi Leute, Hier wird immer vom Webinterface gesprochen, wenn ich aber so wie im Wiki "xxx.xxx.xxx.xxx/web.html" eingebe, bekomme ich keine Webseite gezeigt, sondern nur "not found". Kann mir da jemand weiterhelfen? Gruß Stefan |
Hi @Brekkis |
Hi, |
Ich habs gelöst. hatte was falsches in die web.html kopiert und gespeichert. Danke für die Hilfe. Gruß Stefan |
Hi, hab das selbe Problem. Der Webserver antwortet kaum. Im verlinkten Artikel steht es doch "If you have a loop somewhere in your sketch that takes a lot of time (>50ms) without calling delay(), you might consider adding a call to delay function to keep the WiFi stack running smoothly" Ich habe eben mal die Edit.html getestet es hat 3,8 Minuten gedauert bis ein Response zurück gekommen ist. Dieser war allerdings dann unvollständig. Die meiste zeit wurde auf eine Antwort gewartet (waiting TTFB) der connect ging schnell und der Response hat nach 240ms abgebrochen |
Der Punkt ist, die o.g. if-Bedingung ist nicht erfüllt: Es gibt keine Loop die mehr als 50ms braucht. Wir reden hier eher von Größenordnung 250µs für einen Loop-Durchlauf. Man muss sich das m.M.n. so vorstellen: Der ESP führt abwechselnd folgende Funktionen aus in einer Endlosschleife: Ein delay(1) als letzter Befehl innerhalb der loop() bewirkt, dass
Ohne das delay(1) hätten aber in dieser ungenutzten Zeit die Kernelfunktionen sogar 3-4 mal die Chance was abzuarbeiten. Wenn ich mir einen Zeitraum von 100ms anschaue, dann sollten da jetzt die loop() und die Kernelfunktionen ca. 400 mal ausgeführt werden. Mit einem delay(1) nur noch 100mal. Und mit delay(10) nur noch 10mal. Wie oben gesagt, eine Möglichkeit wäre, es künftig parametrierbar zu machen. Aber vielleicht gibt's auch jemand der's erklären kann. |
Wie dem auch sei,
ich habe jetzt bei mir am ende der loop ein delay(5); eingefügt und das
Problem ist weg.
Vorher konnte ich die Seite /update nicht aufrufen (10 Minuten Timout, oder
Invalid Content lenght), jezt kann ich Sie 10 mal direkt hintereinander
aufrufen ohne verzögerungen.
Am Di., 15. Feb. 2022 um 22:36 Uhr schrieb steff393 <
***@***.***>:
Der Punkt ist, die o.g. if-Bedingung ist nicht erfüllt: Es gibt keine *Loop
die mehr als 50ms* braucht. Wir reden hier eher von Größenordnung 250µs
für einen Loop-Durchlauf.
Für eingebundene Libraries kann ich das natürlich nicht sicher sagen. Aber
selbst wenn, hätte ich ja keine Möglichkeit *in* diesen Libraries ein
delay() oder yield() einzubauen, nur danach. Und ein Delay *danach*
bewirkt nur eine unnötige Verzögerung.
Man muss sich das m.M.n. so vorstellen: Der ESP führt abwechselnd folgende
Funktionen aus in einer Endlosschleife:
...
loop()
Kernelfunktionen (WiFi, Watchdog, etc.)
loop()
Kernelfunktionen (WiFi, Watchdog, etc.)
loop()
Kernelfunktionen (WiFi, Watchdog, etc.)
loop()
Kernelfunktionen (WiFi, Watchdog, etc.)
...
Ein delay(1) *als letzter Befehl* innerhalb der loop() bewirkt, dass
- die Kernelfunktionen aufgerufen werden und prüfen, ob sie was tun
müssen
- der restliche Code für 1ms blockiert wird
Ohne das delay(1) hätten aber in dieser ungenutzten Zeit die
Kernelfunktionen sogar 3-4 mal die Chance was abzuarbeiten.
Wenn ich mir einen Zeitraum von 100ms anschaue, dann sollten da jetzt die
loop() und die Kernelfunktionen ca. 400 mal ausgeführt werden. Mit einem
delay(1) nur noch 100mal. Und mit delay(10) nur noch 10mal.
Wie oben gesagt, eine Möglichkeit wäre, es künftig parametrierbar zu
machen. Aber vielleicht gibt's auch jemand der's erklären kann.
—
Reply to this email directly, view it on GitHub
<#18 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADVIIZABI7SGXLNUJVOND4DU3LBNHANCNFSM5NADIPQA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you commented.Message ID:
***@***.***>
Für alle die das Selber Problem haben seht euch einmal meinen Fork an da habe ich das Release hinterlegt in dem ich den WebServer gefixt habe und auch gleich die neue Web.html als root callback hinterlegt hab
|
Hallo Zusammen, |
Hallo, Danke Michael |
Hallo Michael, |
Hi Michael, vielleicht kann ich dir helfen, weil ich mich da dieser Tage auch erst eingearbeitet habe. Dieser kurze Heise Artikel erklärt es eigentlich perfekt: [https://www.heise.de/ct/artikel/Mikrocontroller-bequem-programmieren-mit-PlatformIO-4403209.html]
|
Hallo steff393 & botox-100, Michael |
Der Issue ist zwar schon geschlossen, aber das scheint ein generelles Problem des Wemos D1 Mini zu sein. Ich habe v0.5.1 initial geflasht und auch bei mir war der Webserver so schlecht ereichbar, dass ich den Config-Parameter Vermutlich verhält sich der Wemos D1 Mini an irgendeiner Stelle anders als ein NodeMCU. Um hier tiefer einzusteigen, fehlt mir aber das Know-how. |
@lk3de Mit welcher Fehlermeldung oder Fehlerbild im Browser? |
Das UI (und auch Endpunkte wie |
Danke. Das scheint doch etwas anders zu sein als in #99 , da wurde de Seite auch oft genug gar nicht geladen und es kam "Rejected". Nach der dort beschriebenen Veränderung zurück zu weniger Dateien klappt es wieder. MIt der 5.1 hast Du aber auch den Stand. |
Hallo!
Habe es mit der Installation der Software ziemlich weit geschafft, denke ich:
Der lokale AP wird gestartet, ich verbinde mich mit meinem WLAN, das Gerät startet neu.
Problem
Leider erhalte ich auf der IP-Adresse selten oder seeeehr langsam eine Antwort.
Nur Webseiten, die eine kurze Anwort vermuten lassen, sind erreichbar, also z.B. IP/reset
Lösungsversuche:
Hardware-Resets, Re-Flashes, EEPROM-wipe
Ich habe mir das Projekt herunter geladen und selbst kompiliert, um der Sache auf den Grund zu gehen:
Selbst wenn ich im Main-Loop alles bis auf den async Webserver auskommentiere, wird es nicht besser.
Der Serial Montior zeigt genau die Ausgaben, die im Setup vorgesehen sind. Der ESP8266 startet also korrekt.
Ich kann auch Debug-Nachrichten per Serial.println absetzen.
Sitze mit dem Modul neben dem Router. Tasmota läuft auf den Modulen wunderbar.
Grundsätzlich scheint es also zu funktionieren, nur halt nicht in allen Bereichen.
Ich vermute, dass es eventuell an der Hardware liegt - verwendet wird ein WEMOS D1 mini.
Von den Dingern habe ich allerdings einige und konnte deshalb wechseln - hat aber auch nichts gebracht.
Im Moment bin ich mit meinem Latein am Ende.
Wäre schön, wenn noch jemand einen Lösungsvorschlag hätte oder auch eine Liste funktionierender ESP8266 Module.
Dnke!
Frank
The text was updated successfully, but these errors were encountered: