Hallo zusammen,
vielen Dank für die kontinuierliche Weiterentwicklung von ESPuino! Ich freue mich nun vor allem über das tolle neue Feature mit dem serverbasierten Bereitstellen der MP3s, da ich es oft nicht geschafft habe, neue Musik oder Geschichten auf meine zwei Musikkisten zu spielen, das Problem gehört nun der Vergangenheit an. Ich habe den Mediahub gemäß Anleitung problemlos aufsetzen können und nach dem Firmware-Update der beiden ESPuinos auch verbinden können.
Ich plane zukünftig ausschließlich MP3s per Mediahub bereitzustellen, und ich möchte, das die Karten auf beiden Kisten gleichermaßen funktionieren. Dafür wären folgende Anpassungen hilfreich:
- Eine eingelesene Karte, die der ESPuino nicht kennt, wird automatisch als Mediahub-Karte registriert, ohne das ich sie im ESPuino zuweisen muss.
- Eine im Mediahub konfigurierte Karte funktioniert gleich auf allen angebundenen Geräten. Aktuell muss ich nach dem Scannen der Karte auf Gerät 1 (und Zuweisung von Mediahub und Konfiguration im Mediahub) die gleiche Kartf auf dem zweiten Gerät scannen, zuordnen und im Mediahub konfigurieren.
Meine Wunschvorstellung wäre also: Scannen der Karte auf einem beliebigen Gerät, dann direkt Zuordnung der Karte im Mediahub, ab jetzt läuft die Karte auf beiden Geräten. Denkt ihr, das wäre sinnvoll / möglich?
Außerdem habe ich vom Podcast-Server im Nachbarthread gelesen, um ARD Sounds zu verbinden. Frage mich natürlich nun, ob sich das auch in den Mediahub integrieren ließe
.
Viele Grüße
Dirk
Zu 1) Automatisch registrieren halte ich nicht für sinnvoll - da sammeln sich dann ggf. Leichen an für Requests, die nie beantwortet wurden von Mediahubs. Was ich mir indes vorstellen könnte ist aber so ähnlich: Man kann eine Option aktivieren, die dafür sorgt, dass für Karten, die unbekannt sind, automatisch Requests an alle Mediahubs geschickt werden (nacheinander mit Timeout - der erste, der antwortet, „gewinnt“). Kennt ein Mediahub die Karte, weil sie zuvor dort angelernt wurde, antwortet er mit einem Manifest. Das im Gegenzug ist ein Trigger für ESPuino, dass er die Karte nun wirklich selbst registriert. Da startet dann auch direkt der Download. Kommt hingegen kein Manifest, so passiert einfach nichts auf der ESPuino-Seite. D.h. ESPuino kennt die Karte dann weiterhin nicht.
Zu 2) Ja, man könnte mit einer Checkbox-Liste definieren, für welche ESPuinos der jeweilige Anlernvorgang gültig ist. So kannst du dann gleich mehrere ESPuinos in einem Zuge für eine Karte anlernen (oder auch nur einen). Ich stelle mir das so vor, dass man in den Grundeinstellungen des Mediahubs definiert, was der default ist. Ist der default „alle“, so sind per default alle ESPuinos zum Anlernen ausgewählt. Wenn nicht, dann nicht. Man kann es beim Anlernvorgang jedoch jedes Mal per Häkchen ändern.
Wobei (2) halt nur einen Benefit bringt, wenn für alle ESPuinos die gleiche Karte verwendet wird. Ist das nicht der Fall und man will dennoch duplizieren, dann braucht man eher einen Copy-Mechanismus: Zum Beispiel Karte 222222222222 soll sich verhalten wie Karte 111111111111.
Problematisch wird aber sicherlich, wenn mehrere Karten auf einem Mediahub „pending“ sind. Da wird man schnell den Überblick verlieren, was welche Karte war.
Da habe ich ehrlich gesagt nix mit am Hut - das ist ein Userprojekt. Kann ich nix zu sagen.
Danke für die schnelle Rückmeldung. Soweit ich Deine Vorschläge zu 1 und 2 verstehe, kommt das ja schon recht nah an meine Wunschvorstellung ran. Der einzige Unterschied wäre, das ich bei der ersten Registrierung der neuen Karte (wo ja kein Manifest vom Mediahub zurück käme), explizit eine Zuordnung vornehmen müsste. Für den zweiten bräuchte es dann nicht mehr. Und ja, „Karte kopieren“ wäre für mich vermutlich auch etwas, was ich nutzen würde. Gibt natürlich teilweise den Wunsch, das gleiche Stück für jeden mit einer eigenen Karte zu verknüpfen.
Für mich wäre denke ich das Thema von zu vielen „Pending“ Karten nicht so problematisch, verstehe aber natürlich auch, dass da unterschiedliche Nutzer unterschiedliches Vorgehen haben.
Nein. Du aktivierst (optional) eine Option auf dem ESPuino, so dass alle unbekannten Karten zum Mediahub gepusht werden. Und zwar ohne, dass die Karte auf dem ESPuino registriert ist. Einfach so „best guess“-mäßig, Da der Mediahub die Karte noch nicht kennt, kommt kein Manifest zurück. Es passiert erstmal nix - ESPuino kennt die Karte weiterhin nicht. Nun hast du die Karten-ID auf dem Mediahub und sorgst dort für die Zuweisung mit Inhalt. Legst du die Karte auf den ESPuino nun erneut auf, so kennt ESPuino die Karte weiterhin nicht und schickt daher erneut einen Request an den Mediahub. Diesmal jedoch kommt ein Manifest zurück. In der Folge (weil ein Manifest als Antwort kam) wird ESPuino die Karte selbst vom Typ Mediahub anlernen - ab dann kennt er sie. Der Download startet dann auch direkt.
Wenn du den Inhalt beim Anlernen auf dem Mediahub gleich einem weiteren ESPuino zuweist, so wird, wenn du auf diesem zweiten ESPuino die Karte auflegst, diese auch erst unbekannt sein. Er wird die Anfrage an den Mediahub schicken, der antwortet direkt mit einem Manifest und der Download geht sofort los.
Also im Grunde ist mein Ansatz identisch zu deinem und von der Art, wie du es anwendest, äußerlich nicht unterscheidbar. Der Unterschied ist einfach nur, dass ESPuino unbekannte Karten nicht automatisch als Typ Mediahub anlernt, sondern es erst dann tut, wenn ein Manifest als Antwort kam. Das umschifft potentielle „Karteileichen“.
Man muss da halt am Ball bleiben. Wenn da fünf Karten pending sind, dann wird man Probleme haben, die zuzuordnen. Ich muss mal schauen, ob man den vorab Alias-Namen geben kann aktuell. Ist schon wieder so lange her
.
Okay, verstehe, das wäre ja dann optimal :).
Noch was anderes: heute Morgen ist es passiert, das die Karte, die schon erfolgreich konfiguriert und heruntergeladen war, nochmal runtergeladen wurde. Werd das mal im Auge behalten, weiß nicht genau, was da passiert ist, hab keine Logs vom ESPuino. Die Karte wurde aufgelegt, angehört, ESPuino aus, gleich wieder an, Karte drauf, Download fängt an. Der Mediahub lief die ganze Zeit durch, in den Logs sieht man nur, das Manifest und MP3s geladen wurden.
Nochmal zum Thema Podcasts / ARD-Sounds. Ich habe mir die bisherigen Ideen und Lösungen von @sandwich und @openplayer angeschaut - vielen Dank für Eure bisherige Arbeit!
Eine Idee, wie das im Mediahub aussehen könnte: Neben die bestehenden Optionen Audiofile und Webradio eine neue Option „Podcast“ (oder etwas spezielleres für ARD Sounds). Wenn das ausgewählt wird, könnte der Mediahub eine Suche nach Podcasts / Sounds anbieten und aus den Treffern könnte man wählen (entweder ausgewählte Folgen, oder eben „aktuellste“). Der Mediahub könnte die Quellen abrufen und lokal vorhalten. Wenn die Karte dann gescannt wird, lädt der ESPuino das Podcastfile vom Mediahub runter und hat es damit auch lokal (heißt: Offline-Verfügbarkeit und Kompatibilität mit der aktuellen Mediahub-Karte, also ohne Anpassung der Firmware des ESPuino selber).
Die hierfür notwendige API für ARD Sounds ist undokumentiert, wie stabil das läuft, hängt also auch ein bisschen davon ab.
Passt so etwas in die Richtung, die Du für den Mediahub im Kopf hast, @biologist?
Also generell klingt das für mich erstmal ok, wenn man sagt, dass der Mediahub die Podcast-Archive „abscannt“ (was auch immer das dann heißt) und das lokal speichert. Und das kann man dann irgendwie zu Karten/ESPuinos zuweisen. Weil wenn man es gespeichert hat, dann ist es ein File, wie der ganze Rest auch.
Die Frage ist dann aber halt, wie man damit umgeht, dass da neue Folgen hinzukommen und ob man alte aber wieder löschen will. Also ich bin kein Podcast-Hörer und insofern weiß ich nicht, was da wünschenswert wäre bzw, üblich ist.
Ich weiß nur, dass ich keine neuen Playmodes möchte. Aber das sollte ja kein Problem sein: Wenn ich es eh schon auf dem Mediahub gespeichert habe als Audiofile, dann muss sich ESPuino ja nicht dafür interessieren, dass das eigentlich ein Podcast war. Weil es muss ja dann nicht mehr gestreamt werden, sondern es wird vom Mediahub einfach runtergeladen. Insofern sollte das für einen ESPuino einfach sowas wie ein Hörspiel sein.