MuPiBox Dokumentation MuPiBox NG

HTTP-API der MuPiBox

Die lokale HTTP-Schnittstelle der Box – Status abfragen, Wiedergabe steuern, Durchsagen und Nachrichten senden, mit Beispielen für curl und Hausautomation.

Die MuPiBox hat eine lokale HTTP-API. Über sie arbeiten Touch-Oberfläche, Verwaltung und MuPiBox-App – und du kannst sie für eigene Skripte oder die Hausautomation nutzen. Alle Adressen beginnen mit http://<Box>:8090/api/ (Box = IP-Adresse oder Name, siehe Der erste Start). Antworten sind JSON.

Zugriff und Sicherheit

BereichWer darf zugreifen?
Player und Status (/api/status, /api/command, /api/speak, /api/message …)jedes Gerät im Heimnetz, ohne Anmeldung
Verwaltung (/api/admin/…)nur mit Admin-Anmeldung, sobald ein Admin-Passwort gesetzt ist
Netzwerk (/api/connectivity/…)aus dem Heimnetz nur mit Admin-Anmeldung
Home-Assistant-Schnittstelle (/api/ha/v1/…)nur über HTTPS (Port 8443) mit gekoppeltem Token – nutzt die Integration

Schreibende Anfragen aus fremden Webseiten im Browser blockiert die Box. Skripte wie curl oder Hausautomationen senden keinen solchen Browser-Herkunftsnachweis und sind erlaubt.

Status abfragen

Methode und PfadLiefert
GET /api/health{"status":"ok","version":"…"} – ideal für Erreichbarkeitsprüfungen
GET /api/statusPlayer-Zustand: state (playing, paused, stopped, error), folder, queue, index, position, duration (Sekunden), volume, max_volume, now_playing (Radiotitel)
GET /api/infoVersion, Sprache und die für Oberflächen nötigen Einstellungen
GET /api/librarylokale Bibliothek mit Ordnern (id, name) und Titeln
GET /api/homeKategorien und Medien der Startseite
GET /api/mupihat/statusAkku, Laden und Spannung beim MuPiHAT
GET /api/system/metricsCPU, Arbeitsspeicher, Speicherplatz und Temperatur
curl http://mupibox.local:8090/api/status

Wiedergabe steuern

POST /api/command mit einem JSON-Objekt. Das Feld action bestimmt den Befehl:

actionWeitere FelderWirkung
toggle–Wiedergabe/Pause umschalten
play, pause, stop–abspielen, pausieren, stoppen
next, previous–nächster bzw. vorheriger Titel
seekvalue (Sekunden)an eine Stelle springen
volumevalue (0 bis Maximallautstärke)Lautstärke setzen
volume_deltavalue (z. B. 5 oder -5)Lautstärke relativ ändern
folderfolder_idOrdner/Hörspiel von vorn starten
resumefolder_id, item_indexOrdner ab einem bestimmten Titel starten (0 = erster)

Die folder_id steht in GET /api/library. Die Lautstärke wird immer auf die eingestellte Maximallautstärke begrenzt, Einstellungen der Elternkontrolle können auch API-Befehle einschränken.

# Pause/Weiter
curl -X POST -H 'Content-Type: application/json' \
  -d '{"action":"toggle"}' http://mupibox.local:8090/api/command

# Lautstärke auf 30
curl -X POST -H 'Content-Type: application/json' \
  -d '{"action":"volume","value":30}' http://mupibox.local:8090/api/command

Durchsagen und Nachrichten

Methode und PfadJSONWirkung
POST /api/speak{"text":"Zeit fürs Abendessen!"}liest den Text mit der eingestellten Stimme vor; laufende Musik pausiert und läuft danach weiter
POST /api/message{"title":"Hallo","message":"Gleich ist Schlafenszeit","duration_ms":8000}zeigt eine Nachricht auf dem Display (title und duration_ms optional)
curl -X POST -H 'Content-Type: application/json' \
  -d '{"text":"Zähne putzen nicht vergessen!"}' http://mupibox.local:8090/api/speak

Eine Durchsage kann beim ersten Mal einige Sekunden dauern, weil die Box die Sprache erst erzeugt; wiederholte Sätze kommen aus dem Zwischenspeicher.

Fehler und Antworten

Fehler kommen als JSON {"error":"…"} mit passendem HTTP-Status: 400 (Anfrage fehlerhaft), 401 (Anmeldung nötig), 403 (nicht erlaubt), 409 (gerade nicht möglich, z. B. ohne Admin-Passwort), 503 (Dienst nicht verfügbar).

© 2026 MuPiBox