sonos2 ist eine Sammlung von Befehlen welche die php class PHPSonos nutzt um Sonos player via http Befehle von Loxone aus zu steuern.
Sicherstellen dass das Verzeichnis in dem die Skript Dateien liegen vom php fähigen Webserver ausgeführt werden können (DEIN_VERZEICHNIS)
Die Konfiguration wird in der config.php durchgeführt. Füge in der config.php deine Sonos Zonen inkl. IP-Adressen und auch deine gewünschten Radiostation hinzu. Der Pfad für die Nachrichten bzw. Text-To-Speech (TTS) Dateien muss für Sonos erreichbar sein. Für TTS benötigst du noch einen API-Key von VoicesRSS.org oder ivona.com, alternativ kann auch Mac OS X verwendet werden.
Text-to-Speech kann auch ohne Cloud-Services mit Mac OS X umgesetzt werden. Hierzu empfiehlt es sich, die Server.app von Apple auf OS X installiert zu haben. Dieses Script kann direkt auf dem OS X Server als Website betrieben werden. Da der Mac nur AIFF Soundfiles erzeugt, die von SONOS nicht abgespielt werden können, benötigst du außerdem noch den LAME MP3 Encoder. Dieser lässt sich über Homebrew sehr einfach nach installieren.
Unbedingt sicherstellen das dein Webserver User Schreibrechte für DEIN_VEREICHNIS besitzt.
Syntax Beispiele für Browser:
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=playmode&playmode=normal
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=remove&track=1
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=volume&volume=30
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=nextradio
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=previousradio
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=play&Volume=20&rampto=alarm
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=stop
Laustärke wird innerhalb 17 Sekunden linear auf Null gefahren (Art Schlummerfunktion) und Wiedergabe gestoppt
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=softstop
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=mute&mute=true
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=volumedown
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=volumeup
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=clearqueue
Stoppt gegenwärtig laufende Playliste/Radiostation, speichert die Lautstärke und Playliste/Radiostation, setzt die Lautstärke auf 30%, spielt die Datei 1.mp3 die im Ordner 'messagepath' gespeichert ist, nach dem Abspielen wird die vorherige Playliste/Radiostation wieder geladen und mit der vorher gespeicherten Lautstärke wieder abgespielt. Wenn aktuell nichts läuft, denn noch eine Playliste/Radiostation in der Zone aktiv ist, bleibt die Zone stumm und die Playliste/Radiostation wird nur geladen. http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&volume=30&action=sendmessage&messageid=1
Stoppt gegenwärtig laufende Playliste/Radiostation, speichert die Lautstärke und Playliste/Radiostation, setzt die Lautstärke auf 40%, spielt vorher ein Jingle/Gong MP3 ab, spielt dann die Datei 1.mp3 die im Ordner 'messagepath' gespeichert ist, nach dem Abspielen wird die vorherige Playliste/Radiostation wieder geladen und mit der vorher gespeicherten Lautstärke wieder abgespielt. Wenn aktuell nichts läuft, denn noch eine Playliste/Radiostation in der Zone aktiv ist, bleibt die Zone stumm und die Playliste/Radiostation wird nur geladen. http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&volume=40&playgong=yes&action=sendmessage&messageid=1
Stoppt gegenwärtig laufende Playliste/Radiostation, speichert die Lautstärke und Playliste/Radiostation, setzt die Lautstärke auf 20%, wandelt dann den text in MP3 mit Hillfe von TTS um und spielt Sie ab, nach dem Abspielen wird die vorherige Playliste/Radiostation wieder geladen und mit der vorher gespeicherten Lautstärke wieder abgespielt. Wenn aktuell nichts läuft, denn noch eine Playliste/Radiostation in der Zone aktiv ist, bleibt die Zone stumm und die Playliste/Radiostation wird nur geladen.
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&volume=20&action=sendmessage&text=Dies ist ein Test
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=addmember&member=ANDERE_ZONE
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=removemember&member=ANDERE_ZONE
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=sonosplaylist&playlist=NAME_DER_PLAYLISTE&volume=15
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=radioplaylist&playlist=NAME_DER_RADIOSTATION&volume=15
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=play&rampto=sleep
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=crossfade&crossfade=1
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=stop&stopall
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=group
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=ungroup
je nach Tageszeit werden unterschiedliche Wettervorhersagen erstellt und per TTS durchgegeben Regenwahrscheinlichkeit und Windwarnung nur ab überschreiten von Grenzwerten (siehe config.php) Ansagetexte können in der Datei 'w2s.php' individualisiert werden (VORSICHT!! http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=sendmessage&weather&volume=30
Ansagetexte können in der Datei 'c2s.php' individualisiert werden (VORSICHT!! http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=sendmessage&clock&volume=20
folgende actions könnengenutzt werden: getmedianfo, getpositioninfo, gettransportsettings, gettransportinfo, getradiotimegetnowplaying, getvolume, radiourl, titelinfo, getledstate, getzoneattributes http://DEINE_IP/DEIN_VERZEICHNIS/sonos2.php?zone=DEINE_ZONE&action=getmedianfo
In der Syntax 'sonos2.php' durch 'index.php' ersetzen http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=play
Syntax Beispiel wie der Browser Befehl zu teilen ist um in Loxone verwendet zu werden: Ausgangsverbinder erstellen = http://DEINE_IP und Haken bei "Verbindung nach senden schließen" setzen Ausgangsbefehl hinzufügen = /DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=play etc.
Titel und Interpret können jetzt auch getrennt in Loxone verwendet werden http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=loxgettitel
Der Text Eingangsverbinder für die Kombination lautet: S-Titel Der Text Eingangsverbinder für den Titel lautet: S-Titelinfo Der Text Eingangsverbinder für den Interpret lautet: S-Interpretinfo
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=getgroupmute
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=setgroupmute&mute=1
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=getgroupvolume
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=setgroupvolume&volume=40
ACHTUNG! Basierend auf derzeitiger Lautstärke wird LS um Wert x erhöht (könnte u.U. laut werden) http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=setrelativegroupvolume&volume=20
Setzt den Schlummermodus für angegebene Zone auf 5 Minuten. Bei kleiner 10 Minuten nur einstellige Eingabe Bsp.:5 für 5 Minuten)
generell erlaubte Eingabe: 1-59 http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=sleeptimer&timer=5
Offline T2S Engine basierend auf Mac OS X hinzugefügt
Gruppiert aufgelistete Zonen der Syntax, speichert vorher den jeweiligen Zustand jeder einzelnen Zone, spielt dann anschließend eine T2S ab, löst anschließend die Gruppe wieder auf und stellt die Originalzustände je Zone wieder her. Bsp.: Bei der unten aufgeführten Syntax werden zuerst die gegenwärtigen Zustände der Zonen wohnen, küche und schlafen in einer JSON Datei gespeichert, anschließend werden die Zonen gruppiert, die T2S Lautstärke aus der config.php je Zone gesetzt, dann aber die Lautstärke um 15% zusätzlich angehoben. ACHTUNG: Der Parameter groupvolume erhöht die Lautstärke je Zone um den angegebenen Wert!!!!!!!! Dann wird die T2S in der Gruppe abgespielt und anschließend wird die Gruppe wieder aufgelöst und der Originalzustand je Zone geladen. http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=sendgroupmessage&member=wohnen,kueche,schlafen&text=dies ist ein Test&groupvolume=15
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=groupsonosplaylist&member=wohnen,kueche,schlafen&playlist=
http://DEINE_IP/DEIN_VERZEICHNIS/index.php?zone=DEINE_ZONE&action=groupradioplaylist&member=wohnen,kueche,schlafen&playlist=
keine bekannten
thanks to Stefan Nikolaus, Thomas Trautner and Patrick (patriwag) for there coding