ESP RGBWW Controller - Firmware v5

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

Vorheriges Thema - Nächstes Thema

pjakobs

#75
jetzt werden die Szenen, die Ihr mit Stern versehen habt auch auf der Schnellzugriff-Seite angezeigt, so dass Ihr nicht in die Szenen Seite müsst.
Dieses Setting ist, wie auch bei den Presets, lokal, dass heißt jeder Controller hat seine eigene Zusammenstellung von Szenen und Presets da.

Die Darstellung der Szenen ist noch nicht ganz korrekt, da sollten alle Controller der Gruppe mit der entsprechenden Farbe dargestellt werden.

Ich hab noch ein paar andere Ideen, aber langsam wird das hier feature complete. Bei mir laufen aktuell 10 controller mit der Firmware, die letzten 10 mal hab ich die "update all" Funktion benutzt und das hat einwandfrei funktioniert.

Ich würde die Version jetzt als Beta betrachten und es wäre super, wenn es ein paar Tester gäbe, die auch einige der neueren Funktionen testen.

kurzer Nachtrag: "Alle" bedeutet hier: alle Controller, die der aktuell ausgewählte Controller per mDNS gesehen hat. Das müssen nicht immer wirklich alle sein. Ich habe eine Idee, wie ich das ein bisschen stabiler machen kann.

pjakobs

#76
@mafi, wenn Du magst, kannst Du Dir mal die letztes Version im OTA Channel ansehen, da sind jetzt ca. 80% funktionierende Animationen drin, und ich meine, die müssten auch für RAW Settings funktionieren
Was Du machen kannst ist:
Du legst eine Gruppe an, in der der/die gewünschte Controller ist.
In der Gruppe legst Du eine Szene an (geht am einfachsten über das Camera Icon als Snapshot)
In der Szene kannst Du jetzt den Namen ändern und auch das Setting.
Das Setting besteht einerseits aus der Farbe (das kann HSV, RAW oder Preset sein) als auch die Transition. Dort kannst Du Zeit oder Geschwindigkeit einstellen.
Wenn Du die Szene jetzt aktivierst, wird die Animation auf den Conroller geladen und ausgeführt.
Ich glaube, damit solltest Du etwa auch von aus auf 100%cw / 100%ww faden können, aber das hab ich nicht getestet.

Mafi

Das werde ich mir bei passender Gelegenheit mal ansehen! Dazu muss ich den Controller am Aquarium wahrscheinlich einmal ausbauen und seriell flashen. Per OTA hatte es vor kurzem einfach nicht geklappt. Er bootete nicht mehr und war nach Rücksetzen auf Werkseinstellung per Taster dann weiterhin in der alten Software. Damit läuft er aber weiterhin. Ein anderer Controller hat gar kein Webinterface mehr, kann aber via FHEM gesteuert werden. Der muss wohl auch einmal seriell bearbeitet werden.
Kann ich denn eine im Controller angelegte Szene per FHEM abrufen?

pjakobs

bei dem Controller, der kein UI mehr zeigt ist mit ziemlicher sicherheit das SPIFFS defekt, weshalb es nicht mehr gemountet werden kann - weil die UI Files in der alten Version darin liegen, kann er sie dann nicht mehr ausliefern.
Du kannst da immer versuchen, über das API ein OTA anzustoßen:
curl -X POST http://<ip-adresse>/update -H 'Content-Type: application/json' --data '{"rom":{"url":"http://lightinator.de/download/esp8266/develop/debug/rom0.bin"},"spiffs":{"url":"http://rgbww.dronezone.de/testing/spiff_rom.bin"}}'
mit ein bisschen Glück, kommt er danach mit der neuen Firmware hoch, vielleicht, wenn es ein ganz alter Controller ist, muss das WLAN neu konfiguriert werden.

und zum FHEM Thema: nein, die Szenen sind heute ausschließlich im Frontend integriert, aber das Frontend natürlich die gleichen API Calls, die auch FHEM nutzt, so dass sich das auch aus FHEM heraus machen lassen würde.

vbs

Zitat von: Mafi am 26 März 2025, 10:11:48Ein anderer Controller hat gar kein Webinterface mehr, kann aber via FHEM gesteuert werden. Der muss wohl auch einmal seriell bearbeitet werden.
Üblicherweise kann man solche Controller einfach aus FHEM heraus einmal neu flashen und dann sollten sie wieder gehen:
set myLed fw_update 1(die "1" forciert das Flashen, weil normalerweise nur geflasht werden würde, wenn eine neuere Firmware zur Verfügung steht)

pjakobs

Zitat von: vbs am 26 März 2025, 10:33:12Üblicherweise kann man solche Controller einfach aus FHEM heraus einmal neu flashen und dann sollten sie wieder gehen:
einmal geht vermutlich, weil der Controller dann auf die anderen rom/spiffs Blöcke umschaltet, sprich wenn die spiffs Strukturen in spiffs0 nicht mehr schreib/lesbar sind, dann funktionieren sie vermutlich noch in spiffs1 - aber die chance ist groß, dass beim nächsten OTA das SPIFFS wieder nicht funkioniert.
Liegt einfach daran, dass SPIFFS nicht sehr fehlertolorant ist, wenn bestimmte Flash Blöcke nicht mehr beschreibbar sind, und die alte Firmware führt mehr oder weniger dazu, indem sie nach jeder Änderung die startup color neu schreibt. Diese Änderungen werden zwar statisch "ge-wear-levelled" - nicht aber der iNode, und wenn der nicht mehr korrekt geschreiben werden kann, dann kann die Firmware das Dateisystem eben nicht mehr mounten.

Deshalb habe ich in der neuen Firmware zwei Dinge grundlegend geändert:
- das UI ist Teil des rom Blocks, also nicht mehr in einer eigenen Filesystem Partition
- das Dateisystem für die veränderlichen Daten ist little fs (lfs) - ich hab das wear levelling und die Fehlertoleranz ausgiebig getestet und lfs ist ein riesen Schritt voran, wenn es um die Dauerhaftigkeit des Flash Blocks geht.

Dazu kommt natürlich, dass in der V5 Firmware ein paar hässliche Bugs in lwip gefixt sind, die früher für Probleme gesorgt haben. Ich habe das json API nicht verändert, sodass alle bisherigen Funktionen auch mit der V5 funktionieren (ich habe hier 10 Controller upgedatet, die ich weiterhin über FHEM steuere)

Ich würde zwar die V5 noch als Beta bezeichnen, weil sich immer wieder was ändert, aber für fhem only Nutzer gibt es imho keinen Grund mehr, die alte Version zu nutzen.

vbs

Ich hab damit schon sehr viele Male das Webinterface wiederbeleben können (auch beim gleichen Controller). Wenn der Flash wirklich irgendwann kaputt sein sollte, dann ist das so. Dann hilft aber auch kein serieller Flash mehr.
Wenn ich mich richtig erinnere, hatte ich aber tatsächlich in all den Jahren bisher nur einen (oder zwei??) Controller, die ich wirklich austauschen musste.


vbs

Ich muss aber dazu sagen, dass ich das Webinterface auch eigentlich gar nicht nutze, weil ich alles zentral über FHEM steuere. Sprich: ich bekomme im Zweifel auch gar nicht mit, wenn es bei einem Controller ausfällt bzw. es stört dann auch nicht.

pjakobs

Zitat von: vbs am 26 März 2025, 12:38:43Ich muss aber dazu sagen, dass ich das Webinterface auch eigentlich gar nicht nutze, weil ich alles zentral über FHEM steuere. Sprich: ich bekomme im Zweifel auch gar nicht mit, wenn es bei einem Controller ausfällt bzw. es stört dann auch nicht.

Aber auch dann fällt es auf, weil ja die Konfiguration auch im SPIFFS liegt, ich sehe es dann immer daran, wenn ein Controller statt echtem weiß aus rgb gemischtes weiß anzeigt. Das kommt leider häufiger vor. Über die Jahre habe ich bestimmt 20 ESPs ausgetauscht (was bei insgesamt 1350 Controllern, die durch meine Hände gegangen sind immer noch eine kleine Quote ist)
Das Fehlerbild ist dabei immer gleich: SPIFFS kann nicht gemountet werden. Die Dinger sind so billig, da will ich auch gar nicht groß rum machen, SPIFFS ist ne Schwachstelle, deshalb wird jetzt ja fast überall lfs benutzt.
Und wie gesagt: die neue Version ist ja auch in vielen anderen belangen besser, alleine die vielen Bugfixes in SMING zwischen Version 4 und 6, ConfigDB statt des aufwendigen internen config Handling, dadurch 10kB mehr heap frei und und und. Und - Dein Code ist da ja auch immer noch drin 😉

pjakobs

#84
Aber: neben der Portierung auf Sming 6 und damit auf die esp32 war mein Ziel tatsächlich, die firmware ein bisschen unabhängiger zu machen. Mit dem neuen UI braucht man halt keinen Server mehr, um mehrere Controller zu steuern. Damit kann man sie dann in einem Wohnmobil verbauen oder, wie in meinem Fall, im Boot.
vielleicht setze ich mich auch noch hin, und erweitere das mqtt schema so, dass auch home assistant damit klar kommt (die wollen die live Werte in einzelnen topics).
und neue Hardware gibt es dann auch, die ist so klein, dass sie an's Ende eines LED Strips passt. Und: sie kann 10 bit pwm noch mit, wenn ich mich nicht täusche, 8kHz

vbs

Das mit dem unzuverlässigen SPIFFS ist schon eine ärgerliche Sache und echt klasse, wenn das robuster wird in der neuen FW. Ich wollte doch dem Kollegen nur helfen, dass er nicht den Controller hinter'm Schrank vorkramen und seriell flashen muss ;)

Und ja, ich finde auch, dass 20 von 1350 wirklich recht wenig sind. Kommen jedoch sicher noch ein paar dazu, die die Leute selbst getauscht haben.

pjakobs

Zitat von: vbs am 26 März 2025, 14:33:26Das mit dem unzuverlässigen SPIFFS ist schon eine ärgerliche Sache und echt klasse, wenn das robuster wird in der neuen FW. Ich wollte doch dem Kollegen nur helfen, dass er nicht den Controller hinter'm Schrank vorkramen und seriell flashen muss ;)
Tatsächlich ist die Idee, aus fhem heraus zu flashen gut, das hab ich nur ganz selten gemacht - dem muss ich die url auf die bin files mitgeben, richtig? Die OTA URL funktioniert auf dem Weg nicht.
Grundsätzlich habe ich ja sehr darauf geachtet, dass die neue Firmware auch im OTA zu flashen ist (frag nicht, weil die SMING 3 basierte Firmware noch kein Partition Table mitbringt musste ich da ein paar seltsame Verrenkungen machen, aber auch für SMING 4, also Deine Version, muss ich das Partition Table ändern, weil lfs ein anderer Typ ist als SPIFFS)
Ich habe ein oder zwei Fälle, in denen das nicht direkt funktioniert hat, meistens hat ein einfachers aus- und wieder anschalten geholfen und sie sind in die neue Firmware gestartet. Blöd ist: wenn das nicht geht, dann geht halt nur noch seriell.
Das schöne ist aber, dass es mir bei einigen Controllern mit defektem Flash gelungen ist, auf V5 upzudaten, und sie haben direkt funktioniert, ohne Probleme.
Zitat von: vbs am 26 März 2025, 14:33:26Und ja, ich finde auch, dass 20 von 1350 wirklich recht wenig sind. Kommen jedoch sicher noch ein paar dazu, die die Leute selbst getauscht haben.
Ja, und wenn ich mir heute so ansehe, wieviel (oder wenig) Resonanz hier noch kommt glaube ich auch, dass viele einfach nicht mehr genutzt werden. Zu sehr sind sie an fhem gebunden, und ja auch billig zu ersetzen. Aber ich glaube, was Funktionsvielfalt und vor allem sanfte Fades angeht gibt es halt immer noch nicht vieles, was das ähnlich gut kann.

und wie gesagt: wenn ich die neue Hardware soweit habe, dann sind die ungefähr 12mm breit und 30mm lang und können dennoch 5A pro Kanal.

PSI69

ZitatJa, und wenn ich mir heute so ansehe, wieviel (oder wenig) Resonanz hier noch kommt glaube ich auch, dass viele einfach nicht mehr genutzt werden. Zu sehr sind sie an fhem gebunden, und ja auch billig zu ersetzen. Aber ich glaube, was Funktionsvielfalt und vor allem sanfte Fades angeht gibt es halt immer noch nicht vieles, was das ähnlich gut kann.
Mahlzeit!
Tja, Resonanz - bisher sind meine beiden Controller ohne Probleme mit der initialen Firmware gelaufen, sie sind nicht immer im Einsatz, nur zur Gartenzeit in den Abendstunden zur Beleuchtung vom Wintergarten... Aber ja, zumindest war dein Kommentar - den ich nicht böse aufgefasst habe - der Anstoss mal ein Update der FW vorzunehmen.
Fazit:
2x ohne Probleme. Beide kamen nach dem Update im AP Modus hoch - WLAN Cfg durchführen, Backup der Cfg einspielen, fertig.
Und - ich freue mich, dass aktiv weiter entwickelt wird und denke, die neue 'Mini' Hardware verspricht etwas Bastelei im nächsten Winter. Dann finden sicherlich noch ein paar davon im Rest des Hauses Einzug...
Gruß Peter
FHEM auf RPi 5 unter Bookworm mit inzwischen einem ganzen Zoo von Geräten...

pjakobs

moin @PSI69 - Du hast die alte Konfiguration exportiert und auf der neuen Firmware erfolgreich importiert?
Dann kann ich es Dir ja jetzt sagen: den Pfad hatte ich noch nie getestet! :-)
Es gab keinen wirklichen Grund, warum das nicht funktionieren sollte, weil das ja nur die json Struktur ist, die der /config API Endpoint nutzt. Aber genau der Code hat sich vollständig verändert, früher gab es zwei unterschiedliche Code Blöcke für den API Endpoint und die save/restore Funktion, das ist heute beides in der ConfigDB Komponente die im Rahmen dieses Rewrite entstanden ist. Insofern bin ich schon froh, dass das Ergebnis hier offensichtlicht passt!

Du hast die alten, schwarzen Controller mit den TO220 MOSFETS, oder? also die Platine, auf der die fünf großen Transistoren stehend aufgelötet sind, nicht die grüne mit den fünf kleinen Transistoren auf der Rückseite, oder? Ich frage, weil mir noch nicht ganz klar ist, wann das wifi neu konfiguriert werden muss, meine Hypothese ist, dass das die allererste Firmware war (also nicht @VBS), und die Art, wie der ESP den Flash verwaltet hat damals noch ganz anders war, weshalb die wifi Konfiguration überschrieben wird.

pj

PSI69

Du hast die alte Konfiguration exportiert und auf der neuen Firmware erfolgreich importiert?Ja.
den Pfad hatte ich noch nie getestet :)) - hat ja dann geklappt.
Du hast die alten, schwarzen Controller mit den TO220 MOSFETS, oder? also die Platine, auf der die fünf großen Transistoren stehend aufgelötet sind, nicht die grüne mit den fünf kleinen Transistoren auf der Rückseite, oder?Ich habe die grüne, mit den 5 liegenden auf der Rückseite.
Gruß Peter
FHEM auf RPi 5 unter Bookworm mit inzwischen einem ganzen Zoo von Geräten...