Reduzierung der #defines, stattdessen Einstellungen in Web-UI

Ich würde dann die Zeilen nach und nach komplett entfernen. So können wir auch gut sehen welche Einstellungen noch portiert werden müssen.

Die Hardware zur Laufzeit konfigurierbar zu machen - Das ist ein weiterer Schritt den ich hier erstmal rauslassen würde. Nachher startet der ESPuino nicht mehr wenn man sich den PortExpander in der Web-UI abgeschaltet hat :wink: Man müsste dann auch so eine Testfunktion haben die auf vorhandene Hardware prüft…

Passt, dann mach ich das demnächst noch. Inklusive der Änderung mit den Defaults und ifndef.

Das hab ich mir auch schon gedacht, das is sicher ein Mega-Umbau

Habe mir das Feature mal angeschaut:

  • In settings.h gibt es diverse persönliche Anpassungen. Bevor ich die ganze Liste poste, führe am besten mal git diff dev defines-in-web-ui src/settings.h aus.
  • „Abspielposition beim Ausschalten merken“ und „Abspielposition bei RFID-Tag Wechsel merken“ funktioniert scheinbar nicht.

Ansonsten gefällt’s mir. Ich denke wir werden das langfristig eher bisschen anders strukturieren müssen, wenn ganz viel aus der setttings.h dann umzieht. Aber das wird man sehen wenn es soweit ist.

Bin auch noch in einen Restart gelaufen, aber das wird mit deinen Änderungen wohl eher nix zu tun haben (erwähne es nur, damit es mal dokumentiert ist). Das kam einfach beim Abspielen so nach 2-3 Minuten bei einem mp3-File mit 256 kBit/s:

E (246038) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (246038) task_wdt: - IDLE0 (CPU 0)
E (246038) task_wdt: Tasks currently running:
E (246038) task_wdt: CPU 0: PeriodicTask
E (246038) task_wdt: CPU 1: IDLE1
E (246038) task_wdt: Aborting.

Jap, wurde auch auf github darauf hingewiesen, ich bin da mit vscode und GitLens ein bissl überfordert :man_facepalming:
Oder mit dem Fakt, dass man in ei gecheckten files configs vornehmen muss… Könnte man das nicht mal in ein File in .gitignore schieben, damit das nicht so ein Krampf wird beim einchecken?

Okay, das muss ich mir dann ansehen :thinking:

Warum nutzt du nicht einfach settings-override.h?

Weil ich nicht wusste, dass es die gibt! Das werde ich gleich machen :wink:

In der Doku zur settings.h wird die auch nicht erwähnt, drum ist sie mir durch gerutscht…

„Abspielposition beim Ausschalten“: Funktioniert bei mir soweit ich das verstehe. Also, Tag spielt, ich drücke auf den Ausschaltknopf, nächstes Mal booten spielt er den Tag an der Stelle weiter - das ist was ich beobachten kann.

„Abspielposition bei RFID-Tag Wechsel merken“: Bei mir passiert es ungefähr bei ein in zehn Wechsel, dass es nicht speichert. War es vorher noch verlässlicher? Hab das nämlich im Normalfall PAUSE_WHEN_RFID_REMOVED aktiv, das hebelt den Punkt etwas aus …

Ich glaube außerdem, dass man rebooten muss, damit die Änderungen aktiv werden - oder zumindest manche … kann es daran liegen?
Weil wenn ja, dann sollte die UI das vermutlich irgendwie kundtun :see_no_evil:

settings.h ist jetz auch um die #defines ärmer geworden und die personal settings hab ich auch aufgeräumt :wink:

Habe es jetzt testen können, passt soweit, denke wir sind da auf der Zielgeraden! @trainbird gute Arbeit!

Was ich in der Weboberfläche nicht finden konnte ist die Einstellung für VOLUMECURVE, ist die irgendwie noch rausgefallen?

Gut gesehen! Die Checkbox hat sich bei der Migration offenbar vor mir versteckt … Der Code dahinter ist nämlich schon eingecheckt :see_no_evil:
Ist jetzt korrigiert :joy:

1 „Gefällt mir“

Und von der Funktion her: klappt bei dir alles so wie es soll? Oder sind noch Bugs drin?

Was ich so testen konnte scheint gut zu funktionieren. Ich würde es so in den DEV-Branch übernehmen wollen damit wir hier auch weiter kommen :wink:

1 „Gefällt mir“

clang scheitert noch bei Bluetooth.cpp wenn ich mich nicht täusche … Könnte da noch jemand mit weniger streikenden vscode oder Idee was da anders gehörte unter die arme greifen? :pray:

Was haltet ihr von Akkordeons? Würde die Gruppierung etwas klarer machen und man kann sich einzeln durchklicken ohne gleich von allen Slidern erschlagen zu werden.
Ich hab außerdem mal die Checkboxes mit Lautstärkenbezug ebendorthin verschoben :wink:

Ist für mich auch ok.
Was ich mal einbauen muss sind andere Defaults.
a) Max. Lautstärke für Lautsprecher + Kopfhörer aus maximal. Wer das anders will, der kann sich das ja begrenzen.
b) Spannungseinstellungen angepasst auf LFP. Weil die meisten Leute verwenden eh meine LFP-Boards.

clang scheitert noch bei Bluetooth.cpp wenn ich mich nicht täusche

Ich habe den clang Fehler hier korrigiert, es fehlte nur ein Zeilenumbruch.

Was haltet ihr von Akkordeons? Würde die Gruppierung etwas klarer machen und man kann sich einzeln durchklicken ohne gleich von allen Slidern erschlagen zu werden.

Ja finde ich gut, wird ja auch schon auf der „Tools“ Seite verwendet. Allerdings müsste man schon einen guten „Gruppierungsplan“ mit allen (auch kommenden) Einstellungen haben.

Vom zeitlichen Aspekt würde ich es jetzt so übernehmen wollen. Dann können es mehr User testen & Vorschläge machen. Dafür ist der DEV-Branch auch gedacht.

2 „Gefällt mir“

Merci! :heart:

Jap, klingt gut!

Ist die Frage, ob man den Plan schon vorher braucht, oder einfach ad hoc neu verteilt?


Und ein weiteres Fass wäre dann, ob man vielleicht irgendwie die ganzen Einstellungsseiten in eine bringt. Ich meine Bluetooth, WLAN, FTP, General - das sind alles im Grunde Einstellungen, die man eher nur anfangs oder sehr selten braucht.
MQTT auch? Hab das nicht :thinking:
Sogar Tools könnte man loswerden indem man RFID-spezifisches nach ebenda packt (muss man schauen, dass das noch bedienbar bleibt) und das Firmware-Update packt man in die Einstellungen.
Wenn dann die Hilfe noch einen Dialog aus dem Menü im Header bekommt dann wird das sogar auf Mobil clean :slight_smile:

1 „Gefällt mir“

Das hatte @sonovice in seinem 2 Jahre alten UI Entwurf auch schon teilweise gemacht. Jetzt ist unsere Weboberfläche mittlerweile viel mächtiger geworden.

Hier noch mal.der Link zur Vorschau:
ESPuino bei SSID irgendwas eingeben

2 „Gefällt mir“

Im Endausbau sollen mal alle MQTT-Topics im Frontend sein, dazu will man es noch aktivieren und deaktivieren können. Und Credentials halt.
Aber das ist nix, wo man dauernd was dran ändert (falls das deine Frage war). Das stellt man eher einmal ein und wird’s dann für gewöhnlich nicht mehr ändern.