Verbesserungen der bestehenden Weboberfläche

Da eine Neuerstellung der Weboberfläche vorerst gescheitert ist habe ich mal einige kleine Verbesserungen der bestehenden gemacht und möchte Sie Euch vorstellen.

  • Log und Info sind jetzt optisch besser integriert (Bootstrap Modal). Man muss nicht mehr im Browser zurückspringen (Single-Page Anwendung) :

ezgif.com-optimize(2)

  • Bei einem Neustart wird die Management-Seite automatisch neu geladen. Es wird ein Dialog angezeigt bis die Seite wieder erreichbar ist:

ezgif.com-optimize(3)

  • Sicherheitsabfrage vor dem Löschen eines gespeicherten WLANs:

ConfirmDelete

  • Firmware Upload mit Fortschrittsanzeige, genauso wie beim Webupload. Ist das Update erfolgreich gibt es einen automatischen Reload der Seite.

ezgif.com-optimize(5)

  • Im Falle eines Update-Fehlers wird die genaue Fehlermeldung angezeigt, z.B. hier ein ungültiges Image mit der Meldung „Flash read error“:

ezgif.com-optimize(4)

Meine Erweiterungen sind zu 95% im HTML, keine Änderungen an der bestehenden Logik/API.

Ich freue mich auf Eure Meinungen!

8 „Gefällt mir“

Sehr schöne kleine, aber wichtige, quality of life Verbesserungen!

1 „Gefällt mir“

Wow, sehr cool! Muss ich am Wochenende mal testen.

Ich bin anscheinend der einzige Depp der den dazugehörigen Code nicht findet… bitte um Hilfe.

Habe ich grad erst hochgeladen:

Sauber gemacht. Gefällt mir. Ein Grund, endlich wieder einmal ein Update zu machen.

Mir sind direkt ein paar Dinge aufgefallen:

GET /restart: wenn du da eh gerade dran bist, würde ich das auf ein POST ändern, GET ist für reboot komisch. Dann kannst du das JS dazu auch direkt im management.html im Hintergrund ausführen. Also ohne eigene html für /reboot. Du musst im fetch auch nicht die ganze url angeben (die auch nicht unbedingt dem hostname entspricht), eine relative („/“) reicht.

Du verwendest teilweise $.post, $.get und fetch. Ich würde nur das neuere fetch verwenden.

@rrohner Schön das es Dir gefällt! Ich wollte die Dinge hier erstmal vorstellen, es gibt also noch keinen Pull-Request. Das kommt dann etwas später nach der Diskussion hier :wink:

GET /restart: wenn du da eh gerade dran bist, würde ich das auf ein POST ändern

Völlig richtig! Allerdings wollte ich erst die Funktionalität vorstellen mit möglichst wenig anderen Änderungen.

Du verwendest teilweise $.post, $.get und fetch. Ich würde nur das neuere fetch verwenden.

OK das kann ich vereinheitlichen…

Sieht alles gut aus…aber ich halte das Aktivieren von Bluetooth über das Webfrontend für nicht so ganz optimal. Mich hat es beim 1.Test gleich erwischt. Ich habe einen Kopfhörer verbunden , das klappte aber es kam kein Ton. Wollte es rückgängig machen, aber wie ohne WiFi.
Da der Espuino sofort in den Bluetooth-Mode bootet und ich weder eine Tastenkombi noch eine Karte für TOGGLE_BLUETOOTH_MODE eingerichtet hatte war erstmal Ende. Toogle_Wifi ging auch nicht. Tasten eingerichtet und Neuflashen ging dann natürlich auch nicht wegen OTA-Problem, also Erase Flash.
Ich habe im Moment noch keine Idee das zu verhindern , außer das Bluetooth beim Start nie aktiv sein darf und/oder alle erforderlichen Karten da sein müssen.
Habe jetzt alle Karten erstellt und werde das nochmals ausführlich testen.
Bis dann…

@compactflash Du bist nicht der Erste der im BT-Modus gefangen war.
Wir haben einen Fluchtweg durch Auflegen einer unbekannten Karte ermöglicht, aber Toggle-Wifi ist auch eine gute Idee! Ist notiert.
Langfristige Lösung ist BT & WiFi Koexistenz. Das hat aber noch niemand hinbekommen, es scheitert am verfügbaren Speicher. Evt. wird das mal möglich sein mit Arduino als Komponente.

Das kannte ich noch nicht , danke für den Hinweis.

Damit man keine Karte braucht wenn die Kleinen mal was verstrubbelt haben habe ich für folgende beiden Tastenfunktionen das ( wie bei FTP auch)

case CMD_TOGGLE_WIFI_STATUS: {
			if (millis() <= 30000) {    // Only allow to enable WiFi within the first 30s after start (to  prevent children it mess it up)
			Wlan_ToggleEnable();
			}
			System_IndicateOk();
			break;
		}


case CMD_TOGGLE_BLUETOOTH_SOURCE_MODE: {
				if (millis() <= 30000) {    // Only allow to enable Bluetooth within the first 30s after start (to prevent children it mess it up)
				
			  if (System_GetOperationModeFromNvs() == OPMODE_NORMAL) {
					System_IndicateOk();
					System_SetOperationMode(OPMODE_BLUETOOTH_SOURCE);
				} else if (System_GetOperationModeFromNvs() == OPMODE_BLUETOOTH_SOURCE) {
					System_IndicateOk();
					System_SetOperationMode(OPMODE_NORMAL);}
				} else {
					System_IndicateError();
				}
				break;

hinzugefügt.
Keine Ahnung ob man das eleganter machen kann , es funktioniert auf den ersten Blick jedenfalls.

Danke, schon getestet und funktioniert. Superschnell umgesetzt und wieder etwas „Sicherheit“ mehr.

Jetzt habe ich noch „vorerst“ einen letzten Wunsch. Bei WiFi off nach Auflegen einer Radiokarte automatisch WiFi auf on. Geht das auch so einfach.

VG

1 „Gefällt mir“

Habe jetzt keinen Einzeiler dafür parat, vielleicht jemand anderes?

Das verstehe ich irgendwie nicht. Man kann doch jetzt schon per Karte Wifi aus- und anschalten. Oder funktioniert das nicht?

Ja, natürlich geht das . Aber z.Bsp. meine Enkelin, 1,5 Jahre alt, kennt die Karten schon ziemlich genau. Wenn sie die Radiokarten auflegt passiert dann halt nichts.

Die Radiokarte ist halt auch nicht für kleine Kinder bestimmt.
Man braucht eine solche Karte ja eh nur, wenn man der Meinung ist, dass der ESPuino im „Normalbetrieb“ nicht irgendwie „rumstrahlen“ soll. Aber wenn man diesen Anspruch hat, dann gibt man die Karte doch nicht Kindern und verliert somit die Kontrolle darüber, wann WLAN aktiviert ist.

Da haben wir doch schon vor langer Zeit drüber diskutiert. Damals, und auch heute immer noch, wollte ich WiFi grundsätzlich beim Einschalten auf Aus haben. Das wolltest du nicht wegen MQTT.
Meine Kleine hört Radio Teddy , das aber nie alleine , sie ist immer unter Aufsicht. Auch weil die Wohnung recht klein ist. Außerdem liegen heute überall Handys und Bluetoothboxen usw. herum und Wlan ist allgegenwärtig. Da war ich auch mal anderer Meinung aber man kann dem nicht mehr entgehen.

Ich merke gerade, dass ich „Radiokarte“ anders interpretiert habe. Ich dachte jetzt nur an die Karte, die WLAN aktiviert oder deaktiviert. Und nicht an eine „Webradiokarte“. Also du hättest gerne, dass wenn WLAN deaktiviert ist und man aber Webradio hören will, dass dann keine Fehlermeldung kommt. Ssondern, dass ESPuino dann WLAN implizit startet, so dass man dann Webradio hören kann.

Ich fürchte das klingt in der Theorie besser, als es in der Praxis laufen wird. Weil das Verbinden mit dem WLAN kann ggf bisschen dauern.

Ja , das dachte ich mir schon , muss man dann mal sehen.

Außerdem möchte ich verhindern dass durch Spielerei der Kleinen irgendwas verstellt wird. Deshalb mein Post von gestern und die Eltern können dann nach Reboot alles ohne Karte einstellen.

Einige kleine Verbesserungen in der aktuellen Weboberfläche:

Die (Lade-)Leistung wurde verbessert, gemessen mit Chrome-Lighthouse. Aktueller master:

LighthouseMaster

Neuer Stand, DEV-Branch:

Lighthouse_DEV

Sicherheitsabfrage beim Löschen der RFID Zuweisungen:

Ausschalten des ESPuino’s verbleibt auf der Seite:

Ich wünsche Euch ein schönes Wochenende und auch einen schönen Urlaub…!

6 „Gefällt mir“