ESP RGBWW Controller - Firmware v5

Begonnen von pjakobs, 01 Januar 2025, 21:14:31

Vorheriges Thema - Nächstes Thema

pjakobs

Zitat von: vbs am 30 Oktober 2025, 12:10:37Will man überhaupt "ungefragt" rebooten, wenn bestimmte Config-Werte geändert werden? Ich find sowas überraschend, weil man im Vorfeld ja nicht weiß, welche Config-Parameter implizit so einen Reboot auslösen.
Da war ich vermutlich ein bisschen zu sehr auf die UX im Frontend fokussiert. Da steht, dass der Controller bei diesen Änderungen rebooten muss, und des gibt eine ensprechende Toast Nachricht.
Für manche Änderungen muss der Controller halt rebooten (dhcp<->fixe Adresse, neue pwm / PIN Konfiguration etc) wobei ich gerade überlege, welche davon wirklich nötig sind, welche im Design liegen (der PWM Controller wird sehr früh instantiiert) und welche einfach meine Nachlässigkeit sind.

Aber: selbst wenn fhem 20 mal den Hostname schreibt sollte der Controller nicht booten, wenn der sich nicht ändert.

pjakobs

#256
es sieht so aus, als ob das Problem, jetzt wo wir eine gute Hypothese haben nicht mehr auftreten will. Ich hab das nicht gefixt!

Aber: ich hab gerade mal das neue Telemetrie-Modul fertig gemacht, jetzt hat es auch ein User Interface (unter Network Settings).
Ich habe die Funktion aufgeteilt in "stats" und "logs" die getrennt ein- und ausgeschaltet werden können.
Stats sind die reinen Telemetriedaten, wie ich sie hier genutzt habe - es wäre super, wenn ich die weiterhin bekommen könnte, denn das ist schon ziemlich praktisch. Stats sind bei "debug" builds automatisch aktiv.
Logs sind die Logs Points, die ich zuletzt eingebaut habe. Aktuell sind das nur wenige Punkte, aber ich kann mir vorstellen, dass ich das in Zukunft ausbaue, weil es sehr hilft, Fehler zu finden.
Logs sind per Default immer aus.

das Debug Handling funktioniert noch nicht, im  Moment ist die Telemetrie immer aus.

und @weini, ich glaube, Du könntest Recht haben, dass das Problem irgendwann vor gar nicht zu langer Zeit aufkam, denn bevor ich angefangen hatte, die on/off Geschichte zu bauen hatte ich ja Hostname und Icons eingebaut.

pjakobs

Das ist die neue Konfigurationskarte für die Telemetrie, getrennt für Stats und Logs einstellbar und mit kompletter Beschreibung dessen, was die Stats liefern.

Ich denke, das dürfte hinreichend transparent sein.

Du darfst diesen Dateianhang nicht ansehen.

pjakobs

so, die 493 tut jetzt, was sie soll. Ich hatte ein paar blöde Fehler in der 491 (unter anderem ein falsches mqtt password)
Anders als versprochen schaltet die 493 jetzt erstmal Telemetrie ein (die könnt Ihr aber wie oben gezeigt abschalten) - Hintergrund ist: wenn ich die "normalen" Defaults wie oben geschrieben umsetze, dann fallen mir alle Eure Controller aus dem Dashboard - das wäre blöd.
Stattdessen warte ich jetzt, biss Ihr auf der 493 seid und stelle dann die Defaults um. Das Setting der aktuellen Konfiguration bleibt dann erhalten, aber neue Updates starten ohne Telemetrie.

pj

rippi46

Hallo ,

bin jetzt auf der 493 kann aber die Seite für die Telemetrie nicht finden.
Unter welchem Menüpunkt erscheint die Telemetrie?

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

weini

Unter "Network Settings" ganz unten.
Evtl. musst du einen Shift-Reload im Browser machen.

pjakobs

genau, nachdem die UI Elemente ja normalerweise statisch sind, schickt der Controller dem Browser eine ziemlich lange Cache time, um dann komplett neu zu laden hilft Shift-Reload.

rippi46

Hallo,

habs gefunden.

Bin momentan mit dem Handy unterwegs, und da gibt es leider kein shift + reload.

Cache leeren hilft dann.

Gruß rippi

FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

pjakobs

ich war schon kurz erschrocken, als heute früh so viele Controller gestartet sind - aber dann hab ich gesehen, dass Du upgedatet hast :-)

pjakobs

Ich überarbeite mal die Code-Teile, die nach einem neuen Namen momentan einen Reboot erfordern. Gebt mir ein bisschen Zeit.

pjakobs

sag mal, @rippi, Deine Controller verhalten sich sehr unterschiedlich. Manche haben keinen erkennbaren Speicherverbrauch, andere nähern sich alle zusammen der kritischen Grenze. Kannst Du erkennen, ob die sich irgendwie unterscheiden?Du darfst diesen Dateianhang nicht ansehen.

pjakobs

ich hab gerade die 5.0.495 gepusht, aber wartet noch ein bisschen damit, lasst mich erstmal hier testen. Da hat sich ziemlich viel verändert, aber wenn ich keine groben Fehler gemacht habe, ist die stabiler.

pjakobs

und noch ne neue, 5.0.497 - mir ist aufgefallen, dass der Webserver Objekte immer sofort liefern wollte, was früher kein Problem war, aber weil das Frontend heute aus vielen einzelnen Objekten besteht, kann das dazu führen, dass auch da der Speicher zu schnell aufgebraucht wird.
Wenn weniger als 8kB Heap zur Verfügung stehen sagt der Controller dem Frontend jetzt, es soll 2s warten.
Bei shift-reload kann es so aussehen, als würde die Seite nicht geladen, aber sie sollte nach ein paar Sekunden aufgebaut werden.
Lieber langsamer und stabil als schnell mit crash.

Ich habe an etlichen Stellen Dinge geändert:

- ein neuer Hostname braucht jetzt keinen Restart mehr
- ich habe viele Stellen, an denen ich Arduino String genutzt hatte zu const char* umgeschrieben, das sollte zu weniger Heap Fragmentierung führen
- ich habe die mDNS Klasse insgesamt aufgeräumt

und noch ein paar andere Dinge.


pjakobs

5.0.501 fixt einen Bug im utf-8 decoding auf dem esp32 - das sollte für die esp8266 keinen Unterschied machen, aber: das sollte jetzt die nächste Software sein, mit der wir weiter testen können.

Ich habe den RAM Verbrauch, glaube ich, deutlich senken können, aber ich weiß nicht, ob das das grundlegende Problem löst.
Rippi hat eine ganze Anzahl Controller, die deutlich über die Zeit Heap "verlieren", bei anderen passiert das nicht.
Das deutet darauf hin, dass es irgendwas mit dem Umfeld zu tun hat, die letzte Änderung in dem Umfeld war die "controllers" klasse, die die Liste der bekannten (über mDNS entdeckten) Controller enthält. Die hatte ich zwar eigentlich so geschrieben, dass sie wenig RAM braucht, aber ich hab mir das nochmal angeschaut und ein paar Dinge verbessern können.

Jetzt heißt's dann wieder updaten und warten.

rippi46

Hallo pjakobs,

ich habe Controller aller Generationen, die es gab. Von der ersten bis zur letzten Generation.
Manche Controller sind schon sehr alt, bei manchen habe ich schon den Esp8266 getauscht. Auch die esp8266-Module sind aus unterschiedlichen Generationen.
Vielleicht liegt es daran, dass das so unterschiedliche Ergebnisse sind.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa