Skip to content

13. Bibliothek

English

Die Bibliothek ist ein Programm im Heimnetz, zum Beispiel auf dem NAS. Sie hält alle Alben, Tags, Radiosender und Titelbilder. Jede Box holt sich von dort, was ihr fehlt – und spielt auch ohne die Bibliothek, was sie schon hat. Eine Box ohne Bibliothek funktioniert wie bisher.

13.1 Was sich für die Box ändert

  • Alle Boxen kennen dieselben Tags. Ein Tag, der an einer Box oder in der Bibliothek verknüpft wurde, spielt auf jeder Box.
  • Alben kommen bei Bedarf. Liegt ein Tag auf einer Box, die das Album noch nicht hat, holt die Box es. Die LED wechselt dabei grün → türkis → blau, und die Box spielt, sobald der erste Titel da ist.
  • Der Fortschritt gehört zur Box. Derselbe Tag spielt im Kinderzimmer an einer anderen Stelle weiter als in der Küche.
  • Ohne WLAN geht nichts verloren. Was an einer Box geändert wird, gilt dort sofort und erreicht die Bibliothek, sobald die Box sie wieder erreicht. Ändern beide denselben Tag, gilt der Stand der Bibliothek.
  • Der Platz auf der SD-Karte regelt sich selbst. Wird er knapp, löscht die Box die Dateien des Albums, das am längsten nicht gehört wurde. Die Bibliothek hat es weiter, und die Box holt es wieder, wenn der Tag aufgelegt wird.

13.2 Eine Box mit der Bibliothek verbinden

Rolle admin, Tab „System“, Abschnitt „Bibliothek“:

  1. Die Adresse der Bibliothek eintragen, z. B. https://nas:8866.
  2. Beim ersten Mal das Bootstrap-Passwort eintragen. Es wurde bei der Installation der Bibliothek festgelegt.
  3. „Speichern“, dann die Box aus- und einschalten.

Danach zeigt der Abschnitt „verbunden“, und die Box erscheint auf der Seite der Bibliothek. Was die Box vorher schon hatte, wandert in die Bibliothek; Alben, die es dort schon gibt, werden erkannt und nicht doppelt angelegt. „Noch nicht bestätigt“ zählt die Änderungen, die die Bibliothek noch nicht übernommen hat. Bei „Diese Box“ steht der Name der Box; mit „Umbenennen“ daneben bekommt sie einen anderen, z. B. „Kinderzimmer“. Unter diesem Namen zeigt die Bibliothek sie.

Eine neue Box: Die Seite der Bibliothek zeigt dafür eine Zeile – Tab „Boxen“, Abschnitt „Box hinzufügen“, „Kopieren“. Raspberry Pi OS Lite (64 Bit) mit dem Raspberry Pi Imager auf die SD-Karte der neuen Box schreiben. Im Imager der Box einen eigenen Hostnamen geben, z. B. kueche; die Seite der Box ist dann https://kueche.local. Über SSH anmelden und die Zeile dort ausführen. Sie fragt nach dem Passwort des Benutzers admin der Seite der neuen Box und nach dem Bootstrap-Passwort, richtet alles ein und startet die Box einmal neu. Danach ist die Box verbunden und erscheint von selbst im Tab „Boxen“. Eine Box ohne Bibliothek wird genauso eingerichtet, aber mit einer anderen Zeile, von GitHub (curl -fsSL https://github.com/tgd1975/tinyjukebox/releases/latest/download/install.sh | sudo bash).

Verbindung lösen: „Verbindung zur Bibliothek lösen“ im selben Abschnitt. Die Box behält alles, was auf ihrer SD-Karte liegt – Tags, Alben, Sender, Fortschritte – und arbeitet danach für sich allein. Die Bibliothek wird dabei nicht gefragt; sie darf ausgeschaltet sein oder gar nicht mehr existieren. Vorher sagt die Seite, was verloren geht: Änderungen, die die Bibliothek noch nicht übernommen hat, kommen dort nicht mehr an, und Alben, die nicht vollständig auf der SD-Karte liegen, lassen sich nicht mehr holen. Mit „Abbrechen“ wartet man, bis die Box abgeliefert und geholt hat. Die Bibliothek zeigt die Box weiter, bis sie dort entfernt wird (Tab „Boxen“). Wieder verbinden geht wie beim ersten Mal, mit Adresse und Bootstrap-Passwort.

13.3 Die Seite der Bibliothek

Die Seite der Bibliothek sieht aus wie die einer Box, ohne „Jetzt“ und „Bluetooth“. Sie hat eigene Benutzer: Wer sich an einer Box anmelden kann, kann es dort nicht von selbst; ein Admin der Bibliothek legt die Benutzer in ihrem Tab „System“ an. Alben, Tags, Sender und Titelbilder verwaltet man dort wie in den Abschnitten 7 bis 9.

Im Tab „Alben“ ist ein Album mit „defekt“ markiert, wenn eine seiner MP3-Dateien kaputt ist: weil die Bibliothek die Datei nicht lesen kann oder weil eine Box beim Abspielen Fehler in ihr fand. Der Albumdialog nennt die Dateien. Ersetzt man die Datei, verschwindet die Markierung. Ist die Datei in Ordnung und war die Meldung einer Box falsch, entfernt ein Administrator die Meldung dort mit „Meldungen verwerfen“.

Diese Tabs hat nur die Bibliothek; den Tab „Statistik“ hat sie für alle Boxen:

Tab Inhalt
Boxen alle Boxen mit Version, letztem Kontakt und Adresse – bei einer Box ein Link auf ihre Seite. Umbenennen, entfernen (z. B. nach einer verlorenen SD-Karte), die Fortschritte einer alten Box auf eine neu eingerichtete übernehmen. Alben, die gerade von einer Box hochgeladen werden. Für Administratoren: Bootstrap-Passwort ändern, ein Token für Skripte erzeugen, die Dateien der Alben und Titelbilder prüfen.
Versionen die Versionen der Box-Software. Alte Versionen, die nicht mehr im Archiv sind und auf keiner Box laufen, fehlen, solange „alte Versionen ausblenden, die nicht im Archiv sind“ angehakt ist; die Seite sagt, wie viele. use: Boxen installieren sie von selbst. manual: nur von Hand. dontuse: jede Box verlässt sie sofort. „Läuft auf“ nennt die Boxen, auf denen eine Version läuft, und die Bibliothek selbst, „Vorbereitet auf“ die Boxen, die sie schon geholt haben und sie ausprobieren, sobald sie das nächste Mal eingeschaltet werden. Unter der Tabelle wird eingestellt, wie viele Versionen die Bibliothek höchstens aufbewahrt (anfangs 5); was eine Box noch braucht, bleibt immer. Unter „Zugang zu den Releases“ steht, woher neue Versionen kommen; dort wird das Token gespeichert, mit dem die Bibliothek sie abholen darf. Bei GitHub genügt ein Fine-grained Token für dieses eine Repository mit dem Recht „Contents: Read-only“.
Statistik dasselbe wie der Tab „Statistik“ einer Box (Abschnitt 6.3). Gibt es mehrere Boxen, wählt man oben „Alle Boxen“ oder eine davon. „Alle Boxen“ zählt je Tag, Radiosender, übersprungenem Titel und Version zusammen und nennt bei jedem Tag, auf welcher Box er wie lange lief; eine Tabelle der Boxen zeigt Hördauer und letztes Auflegen, ein Klick auf eine Box wählt sie. Die Tage werden nie zusammengezählt: Jede Box hat ihre eigene Zeile mit ihren Uhrzeiten.
Log die Meldungen der Bibliothek, live, auch als Datei – oder was eine Box von ihrem Log geliefert hat: ihre Warnungen und Fehler und wie der Start eines Radiosenders lief, für 30 Tage. Filter für Stufe, Teil, Version, Code, Zeit und Text; „Kopieren“ und „Als Datei speichern“. Eine Box, die nicht startet, ist in der Auswahl und im Tab „Boxen“ markiert; ihr Log zeigt oben, warum. Nur für Administratoren.

13.4 Version der Box

Eine Box, die dafür eingerichtet ist, holt neue Versionen selbst aus der Bibliothek und probiert sie beim nächsten Einschalten aus. Funktioniert die neue Version nicht, läuft nach wenigen Sekunden wieder die vorige. Tab „System“, Abschnitt „Version“ (Rolle admin):

Taste Wirkung
Nach neuer Version suchen zeigt, was installiert ist und was die Bibliothek anbietet
Jetzt aktualisieren holt die neueste Version und startet die Box neu
Updates: aus, nur von Hand, automatisch ob die Box neue Versionen von selbst installiert. „Aus“: Sie sieht nicht einmal nach. Bei einer Box ohne Bibliothek heißt „nur von Hand“ „nachfragen“.
Zurück zur vorigen Version sofort, auch wenn gerade etwas spielt. Die verlassene Version installiert danach keine Box mehr von selbst.
Notfall-Modus starten für den Fall, dass keine andere Version läuft: Die Box spielt nichts, installiert die neueste Version, von der sie nicht zurückgegangen ist, und startet sie. Mit Updates „aus“ oder „nur von Hand“ wartet sie auf einen Administrator.
A als Notfall-Version merken, B als Notfall-Version merken die bewährte Version aus Slot A oder B wird die Notfall-Version, mit der die Box im Notfall-Modus nach Versionen fragt. Der Knopf nennt die Version und geht nur, wenn sie bewährt ist und nicht schon die Notfall-Version

Notfall-Modus. Läuft keine der beiden Versionen der Box, wechselt die Box von selbst in den Notfall-Modus. Sie spielt nichts und zeigt keine Seite; alle 10 Minuten sucht sie eine Version, die sie installieren kann. Ein Administrator beendet ihn auf der Konsole: tinyjukebox-slot update --now installiert eine Version und startet sie, tinyjukebox-slot use a|b wechselt zu einer der beiden Versionen. tinyjukebox-slot status sagt, warum die Box im Notfall-Modus ist.

Ausgelassene Daten. Findet die Box einen beschädigten Eintrag oder einen, den eine neuere Version geschrieben hat und den diese Version nicht kennt, arbeitet sie ohne ihn und listet ihn im Abschnitt „Version“ unter „Ausgelassene Daten“ auf. Gelöscht wird davon nichts. In der Bibliothek zeigt der Tab „Boxen“ eine solche Box mit einem Hinweis.

Wechselt die LED zwischen rot, weiß, magenta und gelb, ist die Bibliothek zu alt für die Version der Box. Die Box spielt dann nichts. Abhilfe: die Bibliothek aktualisieren, an der Box „Zurück zur vorigen Version“, oder die Verbindung zur Bibliothek lösen (Abschnitt 13.2).

Eine Box ohne Bibliothek holt neue Versionen selbst: Einmal am Tag sieht sie bei GitHub nach, ob es ein neues Release gibt. „Quelle“ im Abschnitt „Version“ sagt, woher die Versionen kommen. Solange eine Box mit einer Bibliothek verbunden ist, kommt nichts von GitHub.

  • Ein neues Release installiert die Box nicht sofort, sondern nach einer Wartezeit von drei Tagen: Folgt in der Zeit eine Korrektur, lädt sie nur diese. Der Abschnitt zeigt unter „Neu“ die Version und den Tag, an dem sie von selbst installiert wird. „Jetzt installieren“ wartet nicht.
  • Installiert wird im Hintergrund; die neue Version startet beim nächsten Einschalten der Box.
  • Mit „Updates: nachfragen“ lädt die Box nichts von selbst. Sie zeigt Administratoren oben auf jeder Seite „Version … ist verfügbar“, bis jemand antwortet: „Installieren“, oder „Überspringen“ – dann fragt sie erst beim nächsten Release wieder. „Was ist neu“ zeigt, was sich geändert hat. Mit „aus“ fragt die Box GitHub gar nicht.
  • Bei der Anfrage erfährt GitHub die Adresse des Haushalts, sonst nichts: keinen Namen, keine Version, nichts davon, was gehört wurde.

13.5 Neue Tags mit dem Telefon scannen

Ein Android-Telefon mit NFC kann einen Tag lesen. So kommt ein neuer Tag in die Bibliothek, ohne dass man ihn auf eine Box legt.

  1. Auf dem Telefon in Chrome die Seite der Bibliothek öffnen und anmelden.
  2. Tab „Tag-Verwaltung“, unten bei „Neuen Tag anlegen“: „Tag scannen“. Beim ersten Mal fragt Chrome, ob die Seite NFC verwenden darf.
  3. Den Tag an die Rückseite des Telefons halten. Die Seite zeigt den Tag mit seiner UID; ein neuer ist mit „neu“ markiert und der Bibliothek schon hinzugefügt.
  4. Als admin gleich dort den Namen eintragen, das Album oder den Sender wählen. Das geht auch später in der Tabelle darüber, auf jedem Gerät.
  5. Weitere Tags einfach nacheinander an das Telefon halten. „Scannen beenden“ hört auf.

Kann das Telefon oder sein Browser keine Tags lesen, sagt die Seite beim Tippen auf „Tag scannen“, woran es liegt. Auf einem iPhone geht es nicht.

Meldet die Seite, dass Chrome ihr kein NFC erlaubt, wurde die Frage von Chrome mit „Blockieren“ beantwortet oder NFC ist in Chrome für Websites ausgeschaltet. Erlauben: links neben der Adresse auf das Symbol tippen, dann „Berechtigungen“ und „NFC-Geräte“. Fehlt der Eintrag dort: Chrome-Menü, „Einstellungen“, „Website-Einstellungen“, „NFC-Geräte“ – der Schalter muss an sein, und die Seite der Bibliothek darf nicht unter „Blockiert“ stehen.

  • Die Boxen kennen den neuen Tag kurz darauf.
  • Auf anderen geöffneten Seiten ändert sich nichts von selbst; der neue Tag steht im Tab „Tag-Verwaltung“, sobald man ihn öffnet.
  • Scannen darf jeder angemeldete Benutzer, verknüpfen nur die Rolle admin.
  • Der Tag wird nur gelesen. Auf einen Tag wird nie etwas geschrieben.
  • Lesen können nur Chrome auf einem Android-Telefon und die App (Abschnitt 13.7). Auf dem PC fehlt der Knopf. Das Telefon muss entsperrt und die Seite im Vordergrund sein.

13.6 Backups der Bibliothek

Die Bibliothek hat im Tab „System“ dieselbe Karte „Backup“ wie eine Box (Abschnitt 11.1). Ihr Backup enthält den Katalog, die Fortschritte und Einstellungen aller Boxen, die Statistik und die Titelbilder der Alben und Sender, auf Wunsch auch die Alben.

Zusätzlich sichert sich die Bibliothek selbst, unter „Regelmäßig sichern“ (Abschnitt 11.2):

  • Die Ordner sind Ordner auf dem NAS, z. B. /volume1/tinyjukebox/backups. Leer: der vorgegebene Ordner backups in der Freigabe tinyjukebox. Die Bibliothek muss in den Ordner schreiben dürfen.
  • Jedes Backup mit MP3s belegt noch einmal so viel Platz wie alle Alben.
  • Ein Backup wird wie auf einer Box zurückgespielt (Abschnitt 11.3). Die Boxen übernehmen den Katalog des Backups bei ihrer nächsten Synchronisierung.

13.7 Die App: ein Telefon als Box

Die App für Android-Telefone und -Tablets macht ein Telefon zur Box: Einen Tag an die Rückseite halten, und das Album spielt, dort, wo es aufgehört hat – auf diesem Telefon. Die Seite der Bibliothek bringt sie auch mit („Experte“).

Installieren. Auf der Seite der Bibliothek, Tab „Boxen“, Abschnitt „Telefon hinzufügen“: den Link zur App auf dem Telefon öffnen oder die Kamera des Telefons auf seinen QR-Code richten. Der Browser warnt einmal wegen des Zertifikats der Bibliothek, und Android fragt einmal, ob der Browser Apps installieren darf. Eine neue Version wird genauso installiert, über die alte.

Koppeln. Die App zeigt zuerst „Mit der Bibliothek koppeln“. Auf der Seite, Tab „Boxen“, „Telefon hinzufügen“: „Koppeln“ (als admin). Ein QR-Code erscheint, gültig einmal und 10 Minuten lang. In der App: „QR-Code scannen“ und die Kamera darauf richten. Das Telefon muss im Heimnetz sein. Danach steht es in der Tabelle der Boxen, als Telefon, mit dem Namen seines Modells – „Umbenennen“ gibt ihm einen Namen („Annas Telefon“).

Hören (einfacher Modus). Der Bildschirm ist die Box:

  • Einen Tag an die Rückseite des Telefons halten: Sein Album spielt, dort, wo es auf diesem Telefon aufgehört hat. Tag wegnehmen: Stopp. Jedes Telefon hat seine eigenen Fortschritte, wie jede Box.
  • Darunter stehen die Tags als Kacheln: eine antippen statt eines Tags; noch einmal antippen zum Aufhören.
  • Das Band oben zeigt das Licht der Box (Abschnitt 3): grün bereit, blau spielt, weiß/blau Pause, grün → türkis → blau das Album wird geladen, gelb Tag ohne Album.
  • Tasten: zurück (halten: Album von vorn), Abspielen/Pause, weiter – auch am Kopfhörer und auf dem Sperrbildschirm; „zurück“ halten geht aber nur in der App selbst.
  • Der Bildschirm bleibt an und wird nach 30 Sekunden dunkel; eine Berührung holt ihn zurück. Geht der Bildschirm doch aus, spielt die Musik weiter; wieder an, sucht die App 2 Sekunden lang den Tag und hört auf, wenn er weg ist.
  • Alben werden beim ersten Spielen geladen und bleiben auf dem Telefon (anfangs höchstens 4 GB). Bei den Großeltern spielt ohne Bibliothek, was zu Hause gespielt wurde.
  • Lautstärke: die Tasten des Telefons. Auf der Seite der Bibliothek, beim Telefon im Tab „Boxen“, setzt „Lautstärke“, mit wie viel die App höchstens spielt, für Lautsprecher und Kopfhörer.
  • Ein Tag von Spotify spielt in der Spotify-App des Telefons, dort, wo er aufgehört hat. Dafür muss die App einmal bei Spotify registriert sein und die Spotify-App auf dem Telefon mit einem dort eingetragenen Konto angemeldet; der Tab „Spotify“ der Bibliothek sagt, wie. Sonst sagt die App, dass der Tag auf einer Box spielt.

Experte. Der Knopf „Experte“ fragt nach der Anmeldung der Seite und zeigt dann die Seite der Bibliothek, wie im Browser; „Tag scannen“ in der „Tag-Verwaltung“ nimmt das NFC des Telefons. „Einstellungen der App“ zeigt den Namen, die Alben auf dem Telefon und ihre Grenze, die Versionen und „Kopplung lösen“. „Abmelden“ – auch nach 30 Minuten ohne Berührung – und „Einfacher Modus“ führen zurück zur Box, damit ein Kind nicht auf der Seite bleibt.

Tipps. Damit ein Kind in der App bleibt, sie mit der Bildschirmfixierung von Android anheften (Einstellungen des Telefons, „Sicherheit“). Ein verlorenes Telefon: auf der Seite, Tab „Boxen“, entfernen – sein Schlüssel gilt dann nicht mehr. Daten der App löschen oder sie neu installieren macht ein neues Telefon; „Alte Box übernehmen“ holt seine Fortschritte zurück.