ESP RGBWW Wifi Led Controller - Support Thread

Begonnen von pjakobs, 07 Juni 2019, 10:48:27

Vorheriges Thema - Nächstes Thema

Frank_Huber

Zitat von: Kai-Alfonso am 01 März 2024, 11:56:27
Zitat von: Frank_Huber am 01 März 2024, 11:45:09Das WLAN mal gelöscht und neu verbunden?

Ansonsten bleibt wohl nur neu flashen. aber das soll pj dann nochmal bestätigen.

Ja, mit der CLR + RST Taste wie in der FAQ geschrieben.
ich meine im Laptop / Handy unter den "bekannten WLAN Netzwerken" ;-)

Frank_Huber

Zitat von: pjakobs am 01 März 2024, 14:16:08ich brauch mal ein zwei drei Freiwillige, die als erstes die neue Firmware ansehen wollen.
Voraussetzung: Du solltest in der Lage sein, mir den seriellen Output des Controllers und die Ausgabe des Browser Debug Fensters zu schicken, wenn Du auf Probleme triffst.

Wer Lust hat hebe die Hand.

pj
Hand heb. hab hier aufm Tisch nen 10cm Streifen an nem Test Controller. :-)

pjakobs

ok, dauert doch noch ein bisschen.
Ich hab einen Fehler im OTA, den ich nicht erklären kann. (https://github.com/SmingHub/Sming/issues/2720)
Eigentlich war das erst für später geplant, aber jetzt werd ich halt die otaupdate Klasse auf den Stand des neuen Sming OTA Code heben. Das funktioniert dann zumindest theoretisch auch für den Esp32 und hoffentlich auch wieder für den 8266. Wird wohl ne Woche dauern.

pj

pjakobs

Ok, OTA bug gefixt, der sollte jetzt nur noch in Sming gemerged werden, dann .. ja dann :D

pj

pjakobs

letzte Schritte, bevor Ihr die noch nicht feature kompletten nightlies testen dürft: ich versuche gerade, die alten Controller per OTA auf die neue Version zu heben. Noch funktioniert's nicht, aber ....

pjakobs

#455
2023-03-11 achtung, möglicher bug, siehe unten
2023-03-12 update unten
2023-03-13 update unten
Es ist soweit, mir ist es gelungen, das OTA so umzubauen, dass ich eine alte Firmware auf die neue updaten kann. Das hat ein paar Klimmzüge gekostet, denn seit Sming 4.3 muss ein Partition Table im Flash abgelegt werden, davon weiß aber die alte Firmware, die ja das OTA macht, nix.
Wen die Details interessieren: hier entlang
Überhaupt ist das ganze Partitionshandling anders, statt früher numerischer "Slots" verwendet Sming heute Partitionsnamen (rom0, rom1, spiffs0, spiffs1 in diesem Fall - einfach aus Kompatibilitätsgründen - man könnte sie auch anders nennen.

ACHTUNG: Es gibt keinen OTA Weg zurück (zumindest aktuell nicht - unmöglich ist das glaub ich nicht, aber dazu müsste ich ein paar Dinge ändern)
Wer aktuell zurück will, muss den ESP komplett zurücksetzen (erase_flash) und dann die default Daten wieder flashen:
esptool.py -p /dev/ttyUSB2 -b 115200 erase_flash
esptool.py -p /dev/ttyUSB2 -b 115200 write_flash -ff 40m -fm qio -fs 4MB 0x3fc000 esp_init_data_default_v05.bin 0x3fe000 blank.bin
esptool.py -p /dev/ttyUSB2 -b 115200 write_flash -ff 40m -fm qio -fs 4MB 0x00000 rboot.bin 0x02000 rom0.bin 0x100000 spiff_rom.bin
Und selbst da hab ich gerade einen ESP, bei dem die rf_cal danach nicht mehr stimmt
rf_cal[0] !=0x05,is 0x7B

Für die unter Euch, die Linux nutzen hab - ich kann Euch die nötigen Dateien schicken.

Aber: in erster Linie wollen wir ja vorwärts upgraden, und das sollte jetzt funktionieren.

BITTE NUTZT KEINE CONTROLLER, DIE IHR WIRKLICH BRAUCHT

obwohl ich das API nahezu gleich gelassen habe, gibt es keine Garantie, dass alles immer funktioniert.

Was ich mir als Feedback wünsche:
  • allgemeines Feedback zur Oberfläche - ich hab mich stark an das bestehende angelehnt, aber ein paar Dinge sind doch anders
  • versucht mal, mehr als einen Controller upzugraden und seht Euch an, ob die mDNS Geschichte überall funktioniert (oben links im Seitenmenü gibt es ein dropdown, in dem alle Controller mit der neuen Firmware auftauchen sollten)
  • Testet, klar, das OTA und auch das neue Einrichten eines Controllers - wenn Ihr das WLAN löscht, über die Oberfläche oder über den CLR Button - kommt Ihr damit klar?
  • Euch fällt bestimmt noch mehr ein

Wenn Ihr Bugs findet: idealerweise öffnet Ihr ein Github Issue dafür.
Hier sind die Repos:
Firmware
Webapp

Wenn möglich, bitte die entsprechenden Fehlermeldungen im firmware log (serielle Konsole) und im Browser log (F12) anhängen sowie eine Beschreibung, was Ihr getan habt und was Ihr erwartet hättet.

Es sind noch viele Teile des UI nicht mit Funktion gefüllt, aber die Basis ist da, der Rest ist Fleißarbeit (PRs werden gerne angenommen, also wer mithelfen will: nur zu!)

Wichtig: Ihr könnt schon Presets für Farben anlegen, aber die werden momentan bei einem Update nicht gesichert. In der aktuellen Version gibt es auch noch kein safe/restore für die ganze Konfiguration. Also macht Euch mal noch keine zu schönen Listen an Presets, die sind beim nächsten Update weg.

Was noch kommt:
  • Nächstes Ziel ist erstmal Funktionsparität des UI mit dem alten UI. Sprich: alles, was bisher ging muss auch gehen. Dazu gehört auch, dass die erweiterte Konfiguration beim Update nicht mehr verloren geht.
  • Danach hab ich zwei große Richtungen:
  • ESP32(c3) enablement - da bin ich schon sehr weit (das war ja der ursprüngliche Anlass für den Port auf Sming 5.x)
  • Integration von Scenes im UI, sprich die Möglichkeit, eine Lichtszene über mehrere Controller hinweg zu konfigurieren und vom Webui aus zu aktivieren. Aktuell gibt es keinen Plan, das als fhem Funktion zu implementieren, aber die dafür nötigen Daten können alle über das API abgeholt werden, man könnte also auch in fhem diese Szenen sehen, konfigurieren und schalten. Ich bin mir nur nicht sicher, ob das wirklich sinnvoll ist, denn fhem kann ja schon lightscenes.

Zu fhem:

da die Controller jetzt ja über mDNS findbar sind - vielleicht mag jemand das fhem modul so erweitern, dass es daraus autoconfig/autocreate macht? Der mDNS Service, nach dem Ihr suchen müsst ist "esprgbwwAPI" auf http.tcp.local
Aber: genug der Vorrede, hier ist die URL für's OTA:

http://home.mobileme.de:8080/version.json

einfach wie gehabt in das OTA Feld eingeben, update anstoßen und ... hoffen?

Viel spaß

(nach Diktat verreist)

PS: ich änder die OTA URL nochmal, damit die auf github liegt, dauert aber noch einen Moment.


(2024-03-11 9:20) ich hab einen controller, bei dem zwar das erste Flashen (vbs zu V5) funktioniert, der dann aber beim zweiten OTA (von V5 in rom1 zu V5 in rom0) scheinbar ein kaputtes spiffs filesystem in spiffs0 erzeugt. Ich bin mir noch nicht sicher, woran das liegt.
(2024-03-12 9:09) ich glaube jetzt zu wissen, dass das Problem mit dem alten rBoot binary zusammenhängt.
Hintergrund: die große Änderung zwischen Sming 4.2 und 4.3 war die Einführung von Partitionen. Zu dem Zeitpunkt wurde auch rBoot so geändert, dass es das Partition Table lesen kann. Das ganze Interface mit dem Flash Storage ist seit 4.3 an den Partitionen orientiert, nicht mehr den Slots. Weil aber der alte rBoot code nur Slots kennt, muss das irgendwo übersetzt werden - das passiert im OtaUpdater. Nach dem ersten Boot landet mein Code aber im "temp boot mode" und die Information von OtaUpdater und rBoot sind nicht übereinstimmend, die runningPartition mapt nicht auf den currentSlot.
Das könnte jetzt entweder auf einen Bug bzw eine Adaption im OtaUpdater hinauslaufen oder darauf, dass wir mit dem OTA auch rBoot updaten - den Code dafür hab ich eigentlich schon, nur tut er noch nicht, was er soll.
(2024-03-13 19:49) nach zwei Tagen, in denen ich einem der Sming Developer extrem auf die Nerven gegangen bin, ihn und mich extrem verwirrt habe, 20 Sachen versucht habe, die nicht funktioniert haben bis er endlich gesehen hat, was ich hätte die ganze Zeit sehen können: Ich hatte die Partitionen anders angeordnet als sie in der original Firmware liegen. Ich hatte rom0, rom1, spiffs0, spiffs1 (wie die ganzen neueren Beispiele es machen), das alte Layout war rom0, spiffs0, rom1, spiffs1. Wenn ich jetzt mit meinem neuen Layout daherkomme, und rom1 und spiffs1 beschreibe, dann landet rom1 da, wo im Controller spiffs0 liegt und spiffs1 liegt richtig. Ich lasse mir beim Start den Inhalt beider spiffs Partitionen ausgeben und hatte mich schon gewundert, warum da immer eine CodeZeile (genauer: ein debug text) stand, jetzt weiß ich es. Weil ich code über Daten gebügelt habe. Wer Lust hat, kann man nachsehen, wie wirr ich zwischendurch war: https://github.com/SmingHub/Sming/discussions/2727
ich denke, Ihr könnt es jetzt wagen, idealerweise habt Ihr aber einen Programmieradapter zur Hand, falls Ihr es Euch zerschießt

Kai-Alfonso

Zitat von: pjakobs am 01 März 2024, 14:28:27
Zitat von: Kai-Alfonso am 01 März 2024, 14:20:08Da ich ja eh Probleme hab (siehe Beitrag vor dir) würde ich mich gerne melden. Dann kram ich mal meinen Programmer raus
Ich hab Dein Problem nicht ganz analysiert, aber es könnte sein, dass Du auf den Buffer Overrun läufst, den ich letzten Sommer in Sming gefixt habe, das ist im neuen Build auf alle Fälle besser
Warte seh ich das richtig und Du kannst Dich nicht mit dem AP verbinden? Das ist dann was anderes. Wenn Du schonmal den Programmer raus kramst, dann würde ich gerne das log davon sehen.

pj

So, ich hab mal per serial geschaut. Komisch ist, das ich bei 115200 Bau zwar Klartextzeichen bekommen, aber auch irgendwelche Steuerzeichen. Normalerweise habe ich mit serielle Kommunikation kein Problem


▒▒▒fs.start: size:768 Kb, offset:0x100000

                                        ▒mount res: 0

                                                      SSID: Horst_IoT
                                                                    '*' regie
                                                                              &' ge
                                                                                  &ebapp' registered
                                                                                                    '/config' registered
                                                                                                                        '/info' registered
                                                                                                                                          '/color' registered
                                                                                                                                                              ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒kw'▒ѕɕ▒'/scan_networks' registered
                                                                                                                                                                                                                  '/system' registered
                                                                                                                                                                                                                                      '/upda Fde
                                                                                                                                                                                                                                                &cec' egistered
                                                                                                                                                                                                                                                              '/generate_204' registered
                                                                                                                                                                                                                                                                                        '/ping' registered
  '/stop' registere▒▒▒▒▒▒▒~▒▒▒▒▒w▒g▒▒ѕɕ▒'/continue' registered
                                                              '/blink' registered
                                                                                  ▒p▒w▒▒▒▒▒▒▒▒▒▒▒w▒▒p▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒disconnect from ssid Horst_IoT, reason 15

                                                                                                                  AP configurati▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒G▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒scan completed: 8 found
                                                                                                                                                                                                                                                                          ▒▒▒▒p▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒p▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Ф<8b:38:'0:95:14:37join, AID = 1

                                                                                                                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒p▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒p▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒t▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒p▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒w▒▒▒▒

Er kann sich nicht zu meinem IoT Netz verbinden, macht dann wohl ein eigen AP auf. Ein FW Reset über die Tasten geht auch nicht. Mittlerweile komme ich wieder auf den AP drauf, aber bei /webapp kommt eine leere Seite. (getestet mir 3 Endgeräten=

Ich habe, weil er monatelang gut lief, gar nicht so in der FAQ geschaut und habe jetzt mal die Pins am ESP12 durchgeklingelt. Bei mir sind EN und GPIO16 verbunden, kann aber auch nicht erkennen, wo Sie verbunden sind. Die Lötpunkte sind unter der Lupe sauber, habe aber trotzdem noch mal vorsichtshalber ein wenig den Lötkolben drangehalten. Unter die Platine kann ich logischerweise nicht schauen, ob da was verbunden ist. Aber soweit sieht alles gut und sauber aus, was ich sehe


Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

pjakobs

hmm... also die Ursache deiner Verbindungsprobleme ist wohl hier:
Zitatdisconnect from ssid Horst_IoT, reason 15
wobei ich ehrlich gesagt nicht weiß, was "reason 15" ist, das müsste man im esp nonos api nachsehen.

Dass Du eine leere Seite bekommst, wenn Du Dich mit dem AP verbindest ist vermutlich ein uralter Bug in lwip, dem Protokollstack den Sming nutzt. Den hab ich im letzten Sommer gefixt, aber in der alten Firmware ist der Fix natürlich nicht drin.

Wenn Du Linux benutzt, dann kannst Du das API auch von der Kommandozeile bedienen:
curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"ssid":"<Dein WLAN Name","password":"<Dein WLAN Password"}' \
  http://192.168.4.1/connect

unter anderen Betriebssystemen gibt es bestimmt auch tools, um einen solchen Request zu bauen, aber damit kenn ich mich nicht aus.

mit der neuen Firmware ist der ip Bug gefixt, aber leider hab ich gerade noch Probleme, die per OTA sauber über die alte zu flashen.

pj

Kai-Alfonso

Also reason 15 ist "REASON_4WAY_HANDSHAKE_TIMEOUT" Da ich hier mehrere ESP hier laufen habe (aber keinen ESP12, alles die kleineren), gehe ich davon aus, dass das jetzt eher kein WLAN Problem ist. Ich kann das Teil aber auch nicht wie in der FAQ resetten.

Linux nutze ich, werde das mal versuchen mit curl zu setzen.

Was ist mit den beiden verbundenen Pins beim ESP? Nicht schlimm?
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

pjakobs

Zitat von: Kai-Alfonso am 12 März 2024, 09:45:49Was ist mit den beiden verbundenen Pins beim ESP? Nicht schlimm?

da müsste ich in's layout schauen, den ESP8266 hab ich nicht mehr so im Kopf.

pjakobs

Zitat von: pjakobs am 13 März 2024, 19:54:24
Zitat von: Kai-Alfonso am 12 März 2024, 09:45:49Was ist mit den beiden verbundenen Pins beim ESP? Nicht schlimm?

da müsste ich in's layout schauen, den ESP8266 hab ich nicht mehr so im Kopf.

so, eben mal nachgesehen, GPIO16 und Enable sollten nicht verbunen sein, ich hatte in paar Fälle in den von Elecrow produzierten Platinen, wo die Pins unter dem ESP12 Modul verbunden sind, weil die Lötstoppmaske nicht ganz richtig war.

Für den ESP8266 ist GPIO16 der CLEAR_PIN, wenn der LOW ist (der CLR button zieht ihn über einen 10k Widerstand auf LOW), dann resettet die Firmware die Konfiguration. ENABLE ist der CH_PD des Esp8266, der muss HIGH sein, damit der Controller läuft.

Wenn CLEAR_PIN dauerhaft auf HIGH liegt, dann hat das normalerweise keinen Einfluss, nur ist der CLR Taster dann nutzlos. Das erklärt, warum Du Deine Konfiguration nicht resetten kannst.

Grüße

pj