Serverseitige ID Registrierung

Hi,

Da ich zwei Kinder hab, und selbst auch eine Box haben möchte, habe ich keine Lust, jeden Chip an jeder Box extra anzumelden…

Dazu habe ich mir überlegt, das ich ein Serverprogramm erstelle, mit dem ich die ID Cards registriere und mit der entsprechenden Musik/Hörspiele verknüpfen…

Die Boxen sollen dann beim auflegen der Karten auf dem Server gucken, ob die Karte schon registriert ist, und die entsprechenden Inhalte über ESP8266/ESP32 auf die Karte herunter lädt…

Würde sowas überhaupt gehen, macht das Sinn?¿?

Gruss Blackmore

Das sollte mit einem ESP32 völlig problemlos gehen derzeit wird bei mir z.b. die Datei mit den Zuordnungen von der SD-Karte geladen. Aber man könnte das sehr einfach einen Server (mqtt/nodered) lösen. Macht auf jeden Fall sind, wobei die SD-Karte auf jeden Fall Fallback für den offlinebetrieb sein sollte.

Da hast Du mich falsch verstanden…

Wenn ich eine unbekannte Karte auflegen, soll der ESP auf dem Server (php-Script, JSON) schauen, ob es die Karte gibt, und die hinterlegte Playliste auf SD-Karte speichern…

Und nur von SD-karte lesen…

Wobei:
Unbekannt = registriert auf Server
bekannt = schon auf SD-karte gespeichert
Unregistriert = niemand weiss von der Karte…

Gruss Blackmore

Trotzdem müsste so jede Karte einzeln angelernt / bekannt gemacht werden oder nicht? Du müsstest also erstmal alle IDs deiner Karten auslesen und dann dem Server die Zuordnungen händisch via copy&paste beibringen. Die TonUINO Plattform scheint mir dafür nur bedingt geeignet. Wenn es um Netzwerk oder Streaming geht, wäre da was auf Raspberry Pi Basis wie die „Phoniebox“ denke ich passender. Ist dann aber leider weniger mobil und auch nicht so schnell gestartet.

Mit dem ESP32 müsste das eigentlich gehen. Wenn eine dem TonUINO unbekannte Karte aufgelegt wird, wird geprüft, ob diese dem Server schon bekannt ist. Wenn ja, wird die Konfiguration vom Server geladen, wenn nicht, kann eine Konfiguration auf dem TonUINO erstellt werden und wird auf den Server überspielt. Bei einem Konflikt (wenn z.B. der Server beim Konfigurieren nicht erreichbar war), wird gefragt, ob die Server- oder lokale Version behalten werden soll.

Auch das Abgleichen des SD-Karten-Inhalts mit dem Server müsste mit dem ESP32 doch gehen, oder?

Es geht so einiges. Das ist ja das Schöne von Open Source :slightly_smiling_face:
Mir stellt sich aber immer auch die Frage, ob es sinnvoll ist. Auch Dinge wie die Wartbarkeit, Benutzerfreundlichkeit, Erweiterbarkeit oder die letzliche entscheidende Funktionalität der verschiedenen Lösungen sollte man vorher genau abwägen. Nur weil etwas geht, heißt das ja nicht, dass es später komfortabel zu bedienen oder einfach einzurichten ist.

Vielleicht bin ich da etwas verwöhnt von meiner Lösung zum Musik abspielen, aber wenn man z.B. vor hat Streaming, Netzwerkzugriff, audiophilen Hörgenuss, Mobilität und intuitive Bedienbarkeit zu vereinen, stellt man schnell fest, dass es keine fertige Lösung gibt, die alle Anforderungen für alle Zielgruppen gleichermaßen in sich vereint. Ich kann zwar auf meinen Squeezebox / PiCore Playern komfortabel mittels Fernbedienung, App oder direkt über den Touchscreen sämtliche lokal im Netzwerk gespeicherten Inhalte durchsuchen, abspielen, beliebige Player über Raumgrenzen hinweg synchronisieren und auch Streamingdienste einbinden, aber für meine Tochter ist das z.B. noch zu kompliziert. Meine Clients sind im Gegensatz zur Box meiner Tochter dafür nicht mobil, aber jeder hat da nunmal unterschiedliche Anforderungen.

So gibt es dann für jeden Anwendungsfall die passende Lösung. Wichtig ist am Ende aber nur, dass man selbst später zufrieden ist.

Was ich meinte, wäre ja gerade extrem einfach bedienbar, da es sich quasi automatisch updaten würde.

Eben das wäre dann nicht nötig.

Sinnvoll ist das, sobald mindestens zwei TonUINOs synchron gehalten werden sollen, regelmäßig um neue Hörspiele erweitert werden und sich zumindest hinreichend häufig im selben WLAN befinden.

Stimmt. Das Anlernen müsste man so ja nur einmal pro Box machen. Da stand ich auf dem Schlauch. Ist alles wie gesagt nur eine Frage des Aufwands den man betreiben möchte und ob das Endergebnis dann die eigenen Anforderungen erfüllt.

Jap, die Karten müssen weiterhin angelernt werden…

Aber nur einmal…

Wenn ich jetzt eine Karte zum Hörspiel XY angelernt habe, kann sowohl mein Sohn, als auch meine Tochter auf ihrer eigenen Box diese Karte nutzen, und ich muss diese eine Karte nicht mehrfach anlernen…

Oder: ich hab eine Karte mit meiner persönlichen Playliste - und würde diese gerne im Bad, oder im Wohnzimmer, oder im Büro oder im Garten hören…
Ich muss sie nur einmal anlernen, aber alle Boxen in meinem Haushalt können was damit anfangen

Anlernen einmal pro Box ist so nicht ganz richtig…

Ich lerne die Karte auf dem Server an…

Die Box fragt am Server nach, was mit dieser Karte gehen soll, der Server stellt die Daten zur verfûgung und die Box speichert diese Daten…

Meiner Tochter ist PawPatrol egal, dafür mag mein Sohn kein Safiras… Ich höre eh nur Musik…

Alle drei Karten kennt der Server, aber auf der Box von meiner Tochter gibt es kein PawPatrol…
Sollte sie nun doch Mal Lust drauf haben, leiht sie sich die Karte vom Kleinen und hört es sich an, ohne irgendwas anlernen zu müssen…

Nur um sicherzugehen. Die ist bewusst, dass du bei der von dir geplanten Variante die SD-Karten der Boxen (manuell) synchron halten musst, richtig?

Wieso?

Durch den ESP zieht er sich die Daten vom Server, aber nur die Daten, die auf dieser Box gehört werden sollen…

Ich muss nur zusehen, das die Karten mit den Daten verknüpft werden, serverseitig…

Die Boxen holen sich die erforderlichen Daten

OK, gerade nochmal gelesen, und gemerkt, das ich ein wenig unverständlich geschrieben hab…

Ich lege auf einer Box eine Karte auf…
Die Box schaut, ob diese Karte schon auf SDKarte vorhanden ist…

Ja - Box spielt ab
Nein - Box schaut auf Server nach, ob es die Karte dort schon gibt

Ja - Box holt sich die Audiodaten, speichert sie auf SDKarte ab und spielt
Nein - es wird eine Audiodatei ‚nicht registriert‘ abgespielt (dürfte nie passieren, da ich ja die Karten vorab registriere und dann den Kiddies gebe)
Server nicht erreichbar - Service ist Temporally Not available Datei wird abgespielt…

Ich hoffe, es ist so etwas verständlicher?

Und genau das funktioniert meiner Meinung nach so nicht. Die Schreibraten auf die SD-Karte sind sehr gering (weniger als 100kb/s). Und was ganz bestimmt nicht funktioniert ist das Quasi in Echtzeit hinzubekommen (Kind legt nicht registrierte Karte auf und nach 2s spielt die Box los).

Was funktionieren könnte wäre es per Stream vom Server abzuspielen.

Müsste man versuchen…

Warum soll das vom Server laden, auf der SD Karte speichern und abspielen nicht klappen?

(Vor allem da man ja nicht warten muss bis die Datei komplett ist. Wenn man die Daten streamen kann, dann kann man sie auch gleichzeitig runterladen und speichern)

Aber der Aufwand das alles zu implementieren und zu testen dürfte nicht mehr so einfach zu leisten sein.

Da hab ich mich wohl falsch ausgedrückt. Natürlich funktioniert das prinzipiell. Aber eben auf keine Fall on the fly und ich denke @Blackmore hat angenommen man hat ne CD mal eben in ein paar Sekunden auf die SD Karte geschrieben.

Warum soll das nicht on the fly funktionieren?

Ein Download ist doch auch nichts anderes als ein Stream.

Innerhalb von 1-2 Sekunde sollte man genug Daten runtergeladen haben um das abspielen zu starten und kann dann gleichzeitig weit laden.

Nur mal so zum Verständnis… Ich habe aktuell 3 Boxen im Haushalt, die den nano und rfid haben. Die esp32er sind jetzt erst mal uninteressant für meine Verständnisfrage.

Auf allen Boxen habe ich exakt den gleichen sd Karten Inhalt. Die 32gb sind via Kartenleser am PC schnell synchronisiert, bzw, werden beim Zusammenbau auf aktuellem Stand gehalten.

Meine rfid Karten sind bedruckt, mit zb benjamin, Bibi, Hörbüchern, etc. Ebenso habe ich Sticker mit Figuren drauf. Diese Karten lassen auf jeder Box den exakt gleichen Inhalt laufen. Dazu musste ich nur ein einziges Mal die Karten anlernen, zb mit der App. Die funktionieren sofort auf jedem frischen nano, dank Inhalt der rfid karte,die ja nur auf einen Ordner der sd karte guckt.

Ziel soll jetzt bei dir sein, dass meine benjamin Karte , bei Kind 2 etwas anderes abspielt, weil er einen anderen Inhalt in Ordner x hat als Kind ? Oder er soll die sd Karten synchronisieren, so dass jede Karte überall dasselbe abspielt? Also genauso wie es bei mir gerade der Fall ist, bloß dass ich das einmalig am PC vorm Zusammenbau mache?

Nein…

Jede Chipcard spielt nur einen bestimmten Inhalt ab…

ID 4711 bringt Benjamin Blümchen Folge 1
ID 0815 bringt Safiras Folge 5

Aber ich habe keine Lust, bei einer neuen Karte alle SD-karten einzusammeln und alle Inhalte zu synchronisieren…

Ich will es serverseitig einstellen…

Und die Box holt sich nur die Inhalte, die dort auch benötigt werden…

Im Büro Brauch ich kein Benjamin Blümchen, im Kinderzimmer werden Archenemy und Therion wahrscheinlich nie gehört werden… Wohl aber auch Mal im Wohnzimmer, aber dort vielleicht auch Mal Benjamin…

Ich hab es so vor:

NAS hat alle Audiodateien gespeichert…
Weiterhin werden beim anlernen die ID der Karten mit den entsprechenden Verzeichnissen verlinkt…

Die Boxen bekommen die ID Karte aufgelegt, schauen auf der SD Karte, ob dieses Verzeichniss existiert, wenn nicht, holen sie es sich vom NAS… und speichern es auf SD Karte…

Über kurz oder lang sind auf den Box nur die Audiodateien drauf, die mit dieser Box gehört werden (Offline Betrieb) und die SDKarten verbleiben die ganze Zeit in der Box.

Und ich muss mich nur darum kümmern, das der Link zwischen Karte und Verzeichniss auf dem Server existiert (wahrscheinlich ist es nur ein Softlink, der auf das entsprechende Verzeichniss zeigt)

Der Vorteil, den ich dabei glaube zu sehen:
Ich lerne eine Karte einmal an, setze den Link und habe sonst keine weitere Arbeit damit… Ich muss keine SD-karten synchronisieren, falls Mal eine kaputt geht, wird nur die Karte ausgetauscht, den Rest machen die Kiddies…

Sinn macht dieses System nur, wenn mehr als eine Box vorhanden ist, es ein NAS gibt, welches die Daten verteilen kann…

Wenn man erst noch ein NAS aufbauen müsste, ist es natürlich sinnlos, weil einfach zu teuer…