WebRadio Station auf eine Taste legen?

Vielen Dank für die ausführliche Antwort!

Kurzes Feedback:
Funktioniert so wie vorgeschlagen perfekt.
Hab einfach ein virtuelle Kartennummer „123456789012“ genommen.
Vorerst hab ich die CMD_SLEEP_TIMER_MOD_120 dafür zweckentfremdet.
VD&LG

1 „Gefällt mir“

Hallo Torsten!
Ich habe bei mir ja nach deinem Vorschlag die CMD_SLEEP_TIMER_MOD_120 Funktion umgebaut, dass diese das Auflegen einer RFID mit vorgegebener ID auslöst. Damit kann ich sehr flexibel auf jede Taste z.B: auch das Abspielen einer PlayList oder WebRadioStation legen.

Ich hätte vor, das bei mir wie folgt zu erweitern:

Definition von sagen wir 10 neuen CMD’s
CMD_FORCE_RFID_900000000001
CMD_FORCE_RFID_900000000002

CMD_FORCE_RFID_900000000010
Dieses dann konsequent bis zum WebGUI durchziehen.
Nachdem das aber doch, wie ich denke, eine allgemeine sinnvolle Erweiterung wäre, möchte ich die Bitte aussprechen, das doch ins offizielle Release zu implementieren.

Damit könnte man dann Tasten bzw. Tastenkombis einer dieser RFID CMDs zuordnen und damit
dann jederzeit die auszulösende Action / Funktion via WebGUI dynamisch anpassen.

Viele Grüße

Also wenn, dann würde ich das gerne generischer lösen, so dass man in der settings.h, wo man aktuell schon die Aktionszuweisungen macht, die RFID-ID direkt eintragen kann. Obwohl die bisherigen Aktionen schon intern numerisch (dreistellig) sind wäre das allerdings nicht komplett trivial, da man, mindestens teilweise, mit anderen (größeren Datentypen) arbeiten müsste.

Tatsächlich wäre das Verschieben dieser Zuweisungen in das UI ein sehr sinnvoller Schritt, da die Zuweisungen enorm technisch sind: Man muss zuerst in die values.h schauen und von dort das passende Define übertragen. Und weiterhin kann man ne Button-Zuweisung durchaus mal ändern wollen, ohne dafür den Code neu kompilieren zu wollen.
Ich stelle mir das so vor, dass man die Belegung pro Taste (*) im NVS speichert und beim Start ausliest. Dafür prüft ESPuino zuerst für jede Taste (und auch Tastenkombination), ob der NVS-Eintrag bereits existiert. Wenn nein, so wird ein solcher angelegt. Und zwar mit dem Wert, der in settings.h hinterlegt ist. Im UI muss man dann alle Tasten und deren Kombinationen (27 insgesamt) darstellen, aus dem NVS laden und dem Benutzer konfigurierbar machen.

@sonovice ist gerade dabei, das UI zu modernisieren. Ich möchte ihm das jetzt nicht auch noch aufdrücken, aber vielleicht hat er ja eine Idee, wie er sich die Umsetzung vorstellen könnte. Auch insbesondere im Hinblick des Speicherns im NVS:

  1. Man könnte pro Wert einen NVS-Eintrag verwenden. Zum Auslesen und Speichern ist das am einfachsten im Server, da man sich den Parser spart. Aber ich glaube das will man eher nicht, weil insbesondere der Transfer von und in das UI dann die Pest ist.
  2. Man macht nur einen einzelnen NVS-Eintrag, der #-separiert alle Werte in einem großen String speichert. Das Zusammensetzen beim Speichern ist trivial und einen Parser für das Auslesen zu schreiben, ist auch nicht weiter schwer. Aus Serversicht vermutlich am besten, jedoch vermutlich nicht aus UI-Sicht.
  3. Man nimmt nur einen einzelnen NVS-Eintrag, der alle Werte (statt #-separiert) als Json-String abspeichert. Auf der Serverebene finde ich das nicht so gut, weil diese Json-Objekte immer relativ viel Overhead mit Arduinojson machen, aber eigentlich kann man das Objekt auch sehr einfach designen, so dass man es auch ohne Lib relativ einfach zusammenbauen und auch wieder parsen kann. Muss man sich dann überlegen.

Müsste @sonovice bewerten.

@tueddy Offenbar ist das hier im Sande verlaufen. Was hältst du davon, wenn man das als Feature aufnimmt?
Ggf. aber so, dass man die Nummer des RFID-Tags über das Webinterface konfigurieren kann. Oder man macht einen größeren Aufriss und macht die gesamte Tastenbelegung eh über das Webinterface konfigurierbar.

@biologist Ja könntest Du in die Liste geplanter Features aufnehmen, evt. findet sich jemand der das übernehmen möchte?

Guter Punkt, die Liste hatte ich vergessen.
Ich nehme das auf und aktualisiere das mal.

Mir gefällt das Feature. Bin dafür :wink:

Erfolgt im Code eine UID-Prüfung der Karte? Womöglich kann man die Funktion dann auch ohne große Webinterface-Änderung machen. Es ist zwar unwahrscheinlich das man eine belegte Nummer erwischt, aber wenn man das den User frei eingeben lässt hat man eine zusätzliche Fehlerquelle.

Vorschlag:

Virtuelle Karte 1 heißt: VIRTUELL_RFID_CARD1

Kann dann z. B. für 4 Stück vorbereitet werden.

Wäre dann wie bisher nur eine zusätzliche Buttonfunktion. Die dann irgendwann mal im Webinterface parametrierbar zu machen wäre wie bei den anderen möglich.

Grüße Patrick

1 „Gefällt mir“

Die IDs müssen 12stellig sein. Ob zwingend numerisch weiß ich jetzt nicht mehr genau.

Nimmst halt:
999 999 999 999
999 999 999 998
999 999 999 997
999 999 999 996

Das ist extrem unwahrscheinlich, dass das mal kollidiert.

Ich hatte das, wie beschrieben bei mir erfolgreich implementiert.
Seit dem devbranch allerdings nicht mehr nachgezogen.

Werde das für mich jedenfalls wieder implementieren.
Würde das dann natürlich als Vorschlag zur Verfügung stellen.

Scheint nicht von Interesse zu sein.
Vielen Dank für eure tolle Arbeit.
Ich klinke mich als Beitragstäter aus.

Ich hätte einen ähnlichen Wunsch, siehe Wunsch: MP3 auf Tastenkürzel legen

@niko Zu deiner Info

Ich habe mal einen einfachen PR gemacht, siehe Wunsch: MP3 auf Tastenkürzel legen - #6 von CaCO3

Mit dem PR funktioniert die Ansteuerung von virtuellen Karten über Taster ja schon, fein!

Frage bleibt wie man das in der Weboberfläche zuweist. Es gibt ja auch schon einen Entwurf von @CaCO3 :

Da das Feature vermutlich nur wenige verwenden werden würde ich es in der Web-UI weniger präsent machen. Evt. reicht ein kleiner Dropdownschalter für die Auswahl „Virtuelle Karte 1-5“, z.B. so?

Bei Auswahl wird dann die virtuelle ID eingefüllt. Evt. gibt es noch elegantere Lösungen dazu…

Das sollte gut möglich sein. Ich werde das heute Abend mal versuchen umzusetzen.
Der erste Eintrag wäre immer die aktuelle Karten-ID (wie bisher). und darunter die virtuellen IDs.

Gibt es sonst noch etwas, was zu dem Feature fehlt?

Ich würde auch sagen, dass man es als Dropdown machen sollte, da es sonst zu breit wird. Ansonsten passt das für mich

Obgleich ich gespannt bin, wie lange es dauern wird, bis der Erste fragt, warum es davon nur fünf Stück gibt :rofl:. Aber vor dem Hintergrund, dass es bislang auch ohne ging, wartet man das vielleicht einfach mal ab, bevor man jetzt anfängt, da zu viele „Platzhalter“ einzufügen. Alternativ nimmt man 12 Stück, weil wir haben bis zu sechs Tasten und die kann man short und long belegen. Es gibt zwar noch die Möglichkeit mit Tastenkombinationen, aber das ist dann wirklich overdone, hier mit insgesamt 27 virtuellen Karten an den Start zu gehen :grimacing:.

Ist auf jeden Fall der richtige Weg, es in das Webinterface zu integrieren. Weil da wollen wir perspektivisch hin.

Beim bestätigen des Tasters wird die Nummer automatisch in das Feld eingefügt. Muss da zwingend eine Einstellung in der Oberfläche dazu?

Würde dann ja wie die Karten funktionieren :slight_smile:

Grüße Patrick

1 „Gefällt mir“

Ich würde es natürlich so machen, dass die Radio-Buttons automatisch umgebochen werden. Aber ein Drop-Down ist sicher eine sauberere Lösung.

Naja, man muss sich die Kürzel ja alle auch noch merken können. Bei 12 oder sogar 27 wären meine Kinder definitiv überfordert.

Ich bin nicht sicher, was Du genau meinst. Das Aktualisieren des Feldes bei neuer Karte ist ja nur fürs Konfigurieren benötigt. Neu würde einfach der oberste Eintrag des Drop-Downmenus aktualisiert. Ich stelle mir da einen Text wie „RFID-Karte (1234567890123)“ vor, wobei die ID beim Auflegen der Karte aktualisiert wird.
Wenn man eine virtuelle Karte zuweisen möchte, muss man diese einfach vor dem Speichern im Dropdown-Menü auswählen.

Das muss man sich nicht notwendigerweise merken können. Zwei Beispiele:
a) Das Kind ist noch ziemlich klein und rafft den Prozess mit den Karten noch nicht. Aber so mit Knöpfe drücken und dann passiert was (was genau ist eigentlich nicht so wichtig), daran haben Kinder auf jeden Fall Spaß. Und die werden bestimmt auch mal kurz und mal lang drücken (zufällig).
b) Wir hatten hier vor ein paar Monaten jmd., der hat für eine Seniorin einen ESPuino gebaut in einem vereinfachten Aufbau. Da kann man ja hingehen und das nur mit Tasten lösen und auf Karten komplett verzichten. Und dann beschriftet man die Tasten halt oder legt eine Liste dazu.

Klar, also für Kombitasten sehe ich für beide Fälle jetzt auch nicht so den Einsatzzweck, aber kurz oder lang kann ich mir schon vorstellen.
Aber egal: Ich bin absolut fein damit, das für hier und jetzt mit fünf umzusetzen. Ich sage nur: Ich wäre ein Stück weit überrascht, wenn nicht früher oder später jmd. fragte, ob man auch mehr davon haben könne :grimacing:.

Vermutlich meinen wir verschiedene Dinge. Ich meine das einlernen von Karten zum Abspielen von z. B. Liedern. Die Verknüpfung zur Hardware wurde im Code fest ein kompiliert.

Deshalb war eine Änderung im Webinterface nicht notwendig.

Man drückt einfach auf den Button und der definierte RFID Tag wird automatisch in das Feld eingefügt.

Grüße Patrick