Bose SoundTouch PHP Gateway – Teil 1

Wie bereits im Beitrag zum Bose SoundTouch 10 Multiroom Lautsprecher beschrieben, ist die Bose SoundTouch API nicht zur direkten Integration in den Loxone Miniserver geeignet. Deshalb habe ich angefangen, ein Bose SoundTouch PHP Gateway zu schreiben. Diese nimmt die Befehle vom Loxone Miniserver entgegen und bereitet diese so auf, dass die Bose SoundTouch Lautsprecher angesteuert werden können. Im Skript sind bisher nur die wichtigen Funktionen wie „Power“, „Volume“ und „Select Preset“ eingebaut.
Vorab das Bose SoundTouch PHP Gateway ist noch nicht fertig. Weitere Funktionen wie Sound Files von einem UPnP / DLNA Media Server abspielen, werden definitiv noch im zweiten Teil nachgeliefert. Hier liegt das Problem aktuell noch an Details wie z. B. die Wiedergabe der letzten Quelle, wenn ein Soundfile abgespielt wurde. Eventuell schreibe ich noch eine kleine Statuswebseite, die dann in die Loxone Config mit dem Baustein „Website“ eingebunden werden kann. Da ich mit festen IP Adressen arbeite, ist ein Discovery der Geräte aktuell nicht geplant. Fehlen noch weitere Funktionen? Dann nutzt gerne die Kommentarfunktion und schreibt sie auf!

Loxone Config

Es wird einmalig ein „Virtueller Ausgang“ für die Schnittstelle angelegt. Hier muss unter „Adresse“ nur der Link zum Bose SoundTouch PHP Gateway also dem Webserver eingetragen werden. Die Adresse zur Bose SoundTouch API wird im nachfolgendem Skript definiert. Alle weiteren Felder können auf Standard bleiben.Bose SoundTouch PHP Gateway - Loxone Virtueller Ausgang

Für jeden Befehl wird dann ein „Virtueller Ausgang Befehl“ angelegt. Hier müssen dann mindestens zwei bzw. drei Parameter über „Befehl bei EIN“ an die PHP Schnittstelle übergeben werden. Device ist das letzte Oktett der IP Adresse vom Bose SoundTouch Lautsprecher, Action ist der eigentliche Befehl und Value der entsprechende Wert. Folgend ein paar Beispiele für den „Befehl bei EIN“ wenn der Bose SoundTouch z. B. die IP Adresse 192.168.1.171 hat und das PHP Skript mit dem Namen api.php im Ordner bose abgelegt wurde.

Befehl Beschreibung
/bose/api.php?device=171&action=key&value=preset_1 Wählt Preset 1
/bose/api.php?device=171&action=power&value=1 Schaltet den Bose SoundTouch an
/bose/api.php?device=171&action=volup&value=5 Lautstärke um 5 erhöhen
/bose/api.php?device=171&action=setvol&value= Anpassung Lautstärke
/bose/api.php?device=171&action=setvol&value=30 Setzt die Lautstärke auf 30
/bose/api.php?device=171 Einfache Statusseite

SoundTouch PHP Gateway

Das Bose SoundTouch PHP Gateway benötigt neben einem Webserver mit PHP zusätzlich das PHP-cURL Modul. Über den folgenden Befehl kann das Modul installiert werden.

Im Skript muss noch zwingend die IP Adresse „192.168.1.“ in der Variable DeviceIP auf die Umgebung angepasst werden. Mehr muss aktuell nicht angepasst werden.

4 Gedanken zu „Bose SoundTouch PHP Gateway – Teil 1

  1. Hallo Stefan,
    vorab erst einmal ein dickes Lob für Deine Mühe hier.
    Ich habe die gleiche Konfiguration wie du… 🙂 Bose überall 🙂
    Nun soll dieses System über Loxone steuerbar sein.
    Was benötige ich noch ? Raspberry sollte genügen?
    Die Installation des Rasp. Erfolgt wie?
    Gibt es da noch ein Tool was installiert werden muss?
    Curl… Die anzulegende Konfig bzw. Datei muss wo abgelegt werden?
    Muss für jede Soundtouch eine eigene Installation angelegt werden?
    Loxone klar … jede IP anlegen mit einem VA … ?!

    Danke für Deine Zeit und Mühe 

    1. Hallo Marcell,

      vielen Dank für das Lob! Bisher haben wir hier nur einen Bose stehen. Das kann sich aber noch ändern, je nachdem wie sich die Amazon Echo Produkte so machen.

      Du benötigst vorzugsweise ein Linux System wie den Raspberry Pi. Ich würde das Raspbian OS bevorzugen und den Apache Webserver und PHP5 (mit Curl) installieren.

      Das Skript legst du dann mit der Endung .php in das Webroot ( voraussichtlich /var/www/html ) oder wie in der Anleitung beschrieben z. B. in den Ordner bose.

      Du kannst über den HTML Parameter „device“ jeden Bose SoundTouch über dessen IP ansteuern, vorausgesetzt alle befinden sich im gleichen Netzwerk. Du benötigst also für jeden SoundTouch und Befehl einen „Virtuellen Ausgang Befehl“.

      Jeder Bose SoundTouch und der Raspberry Pi sollte möglichst über deinen DHCP Server eine statische IP Adresse bekommen, sonst kann es passieren das der DHCP Server eine neue Adresse vergibt und es nicht mehr funktioniert.

      Viele Grüße
      Stefan

        1. Hallo Peter,

          Sorry das ich mich erst jetzt bei dir melde, von mir aus kannst du das Skript gerne für dein Projekt verwenden! Es kann Spuren von anderen Skripten enthalten, aus denen ich Schnipsel angepasst und übernommen habe.

          Viele Grüße
          Stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

code