Inhalt
Aufgabe des Plugins
Das Plugin dient zur Steuerung einer Sonos Multi Room Installation aus Loxone heraus. Es stehen die gängigen Standardbefehle, aber auch Text-to-speech (T2S), Sonos-to-speech, Clock-to-speech und bei installiertem Wunderground Plugin auch weather-to-speech zur Verfügung. Darüberhinaus können auch Werte (z.B. Temperatur oder Fensterstatus) von Loxone in die text-to-speech Ansagen integriert werden.
Zusätzlich werden Informationen wie Titel/Interpret, Play/Stop/Pause und Lautstärke je Zone per UDP Pakete und über virtuelle Texteingangsverbinder zur Verfügung gestellt.
Ein ganz besonderer Dank gilt Michael Schlenstedt und Sven Thierfelder ohne deren Hilfe das Plugin nicht hätte realisiert werden können
Allgemeines
Das Sonos System ist grundsätzlich sehr ausgeklügelt und durchdacht aufgebaut, auch von seiner Topology und der Flexibilität. Leider fehlt es an einer offiziellen API, so dass das hier veröffentlichte Plugin auf der alten PHPSonos.inc.php basiert die nach und nach mit Hilfe von Wireshark gewachsen ist.
Grundsätzlich funktioniert Sonos und das Plugin nahezu wartungsfrei, es gibt aber ein/zwei Besonderheiten die es bei der Nutzung zu beachten gibt.
Die Sonos Player sind nicht gerade als Stromsparwunder bekannt, von daher gibt es User die ihre Player (Zonen) über schaltbare Steckdosen ausschalten und nur bei Bedarf wieder einschalten. Das kann, gerade bei einer Programmierung in einer Hausautomation, zu Problemen z.B. bei T2S führen, so dass im schlimmsten Fall die T2S nicht abgespielt werden kann, da eine Zone nicht erreichbar ist. Von daher empfehle ich alle Zonen immer am Netz zu lassen, da diese auch bis zu 2 Minuten benötigen um im SonosNet als Zone zur Verfügung zu stehen. Es ist zwar auch eine Abfrage bzgl. Online Verfügbarkeit eingebaut, diese aber nicht in der stabilen Qualität läuft wie ich es mir eigentlich wünsche.
Des weiteren gibt es noch LAN-Installationen die eine Sonos Bridge verwenden, diese produzierte in der Vergangenheit immer mal wieder Probleme durch eine Mischinstallation mit WLAN. Von daher empfehle ich jedem seine Sonos Installation per Wireless zu betreiben, wobei ja mind. 1 Zone per LAN verbunden sein sollte, aber halt ohne Bridge. Außerdem bereitet die Bridge im Verbund mit dem Plugin zunehmend Probleme, gerade bei der folgenden Grundkonfiguration.
WICHTIG: Um einen möglichst reibungslosen Betrieb des Plugins zu gewährleisten sollten alle Sonos Player über statische IP-Adressierung verfügen, da das Plugin IP basierend die einzelnen Befehle ausführt.
Zusammenfassung:
- Alle Sonos Player am Netz lassen
- Sonos Bridge aus dem Netzwerk entfernen
- Sonos Player mit statischer IP Adressierung
Konfigurationsoptionen Loxberry
Als erstes muss eine Grundkonfiguration durchgeführt werden. Das heißt im Detail die vorhanden Sonos Player hinzufügen und diverse Parameter ergänzen.
Sonos Zonen hinzufügen
Durch Betätigen des Buttons "Scan Zonen" durchsucht das Plugin dein Netzwerk nach vorhanden Sonos Playern. Dabei werden Bridge, Dock, Boost und Subwoofer nicht berücksichtigt.
Hinweis: Bitte vorher unbedingt sicherstellen das alle Player ONLINE sind!
Nach erfolgtem Scan sollte folgender Bildschirm erscheinen:
Falls nach dem Scan keine Player erscheinen überprüfe dein Netzwerk (Fritzbox, Switch, Firewall, Virenscanner etc.) ob Mulitcast enabled ist. Eigentlich sollte das im Standard der Fall sein, aber gerade Virenscanner und managed Switches haben Multicast zum Teil disabled.
Das Skript sucht basierend auf dem SSDP Protokoll nach UPnP Devices mit folgender Multicast Adresse: 239.255.255.250 Port:1900. Dieser Port muss nicht explizit im Router konfiguriert werden!
Die Angaben für Raum und Modell sind NICHT änderbar und sind analog zur Sonos App. Falls eine Zone in der Sonos App umbenannt wird, muss anschließend in der Konfiguration der alte Eintrag gelöscht werden (Tick-box vor der jeweiligen Zone) und speichern, dann erneut einen Scan ausführen um die umbenannte Zone zu finden. Das gleiche gilt auch für neu hinzugefügte Player.
Wenn du einen Player aus irgendeinem Grund löschen möchtest, markiere die Tick-Box des entsprechenden Players und speichere die Konfiguration. Solange du nicht wieder den Scan Button betätigst ist die Zone für den MS nicht mehr erreichbar.
Als nächsten Schritt müssen folgende 3 Werte je Zone/Player ergänzt werden:
- T2S Volume: Der eingegebene Wert (zwischen 0-100) ist die Standard Lautstärke für T2S Durchsagen für diese Zone.
- Sonos Volume: Der eingegebene Wert (zwischen 0-100) ist die Standard Sonos Lautstärke für diese Zone.
- Sonos maximal Volume: Der eingegebene Wert (zwischen 0-100) ist die maximale Sonos Lautstärke für diese Zone.
Standard bedeutet dass ohne Angabe von Volume innerhalb der Syntax diese Lautstärkewerte genommen werden. Näheres über die Verwendung von Volume in der Syntax findest du im Kapitel "Syntax".
Erst nach erfolgreicher Ergänzung dieser Werte lässt sich das Plugin speichern.
Text-to-speech (T2S)
Um die speech Funktionen nutzen zu können benötigt man eine Speech Engine, diese kann entweder Online oder Offline sein. Folgende T2S Optionen stehen zur Auswahl:
- VoiceRSS → Online Engine, benötigt nur einen API key (nur eine weibliche Stimme)
- Amazon Polly → Online Engine, benötigt einen API und einen secret key. (eine weibliche und eine männliche Stimme) ACHTUNG: Nach 12 Monaten kostenpflichtig.
- Mac OSX → Offline Engine, benötigt einen OSX Server
- Pico2Wave → Offline Engine, bei installiertem Text2SIP Plugin (nur eine weibliche Stimme)
- ResponsiveVoice → Online Engine, benötige keine keys (nur eine weibliche Stimme)
Nach erfolgreichem Generieren der entprechenden Key(s) müssen diese in den entsprechenden Feldern eingetragen werden. Wenn jemand die Offline T2S Version für OS X verwenden möchte kann ich ihm gerne einen Ansprechpartner nennen, da ich selber keinen OS X Server besitze. Meine Empfehlung ist Polly da a: 3 Stimmen zur Auswahl stehen und auch die Sprachqualität eine Tick besser ist (obsolete), alternativ ResponsiveVoice.
API key: Bitte den gültigen API key von VoiceRSS oder Polly eingeben
Secret key: Bitte den gültigen secret key von Polly eingeben
Auswahl der Standardstimme (nur Polly): wähle zwischen Marlene und Hans
Die Stimme kann innerhalb der Syntax für T2S jederzeit geändert werden.
Verweildauer der MP3 Dateien: Das ist die Anzahl der Tage die eine MP3 gespeichert werden soll bevor Sie automatisch gelöscht wird.
Dateiname für Jingle MP3: Name der Datei die vor einer Durchsage abgespielt werden soll. Diese Datei muss z.B. mit WinSCP in das Unterverzeichnis /data/plugins/sonos4lox/tts/mp3 kopiert werden. Als Beispiel ist die Datei "2_Airport_gong.mp3" bereits enthalten. Näheres zur Nutzung der Funktion unter "Syntax".
Sonos Daten per UDP senden: Schalter um Lautstärke, Play/Pause/Stop an Loxone per UDP Pakete und Titel/Interpret Informationen über virtuelle Texteingang Verbinder zu senden. Näheres zur Nutzung der Funktion unter "Anbindung an den Miniserver"
UDP-Port: Port des MS an den die UDP Pakete geschickt werden sollen. (Beachte Portforwarding am Router zu konfigurieren!)
T2S Feineinstellungen
Bei den Feinstellungen können noch einige nice-to Optionen nachjustiert werden.
Volume Änderung per Klick: Hier handelt es sich um eine typische Tasterfunktion um die Lautstärke einer Zone zu ändern. Der hier angegebene Wert erhöht/verringert in den jeweilig angegebenen Sprüngen die Lautstärke.
Rampto Parameter: Rampto ist eine Funktion zum langsamen, kontinuierlichem Erhöhen der Lautstärke. Es stehen 3 verschiedene Parameter zur Verfügung die alle leider nicht in der Laufzeit konfigurierbar sind:
- Sleep → erhöht UND verringert die Lautstärke langsam innerhalb von ca. 17 Sekunden auf die gewünschte Lautstärke (typische Weckeinstellung)
- Alarm → erhöht zügig und kontinuierlich die Lautstärke auf den gewünschten Wert.
- Auto→ erhöht relativ schnell die Lautstärke auf den gewünschten Wert.
Rampto Volume: Schwellwert der angegebenen oder gerade laufenden Lautstärke unterhalb dessen einer der 3 zur Verfügung stehenden Parameter automatisch greifen soll.
Bsp: Die Zone steht auf Pause und die Funktion Play wird betätigt. Ist die gegenwärtige Lautstärke < 25 greift der Rampto Parameter und erhöht gemäß der Konfiguration die Lautstärke, ist der Wert darüber geht es mit diesem Lautstärkewert unvermittelt los.
Radio Favoriten für Tasterbedienung
Hierbei handelt es sich auch um eine typische Tasterfunktion mit Hilfe derer man durch einen jeweiligen Tastenklick sich durch seine Radiofavoriten durchzappen kann. Ist das Script am Ende der Liste angekommen beginnt es wieder von vorne. Die URL Daten für deine Favoriten werden folgendermaßen ermittelt:
Suche dir deine(n) Sender im Internet (z.B.: google.com und dann Schlagworte "SWR3 URL stream"). Kopiere dann die gewünschte Stream URL ins Feld "Sender URL" und gebe bei "Sender Name" den Sendernamen ein. Achte bitte darauf das nur Streams die mit http:// beginnen genutzt werden können und folgende Zeichen nicht Bestandteil der URL sein dürfen ? { } | & ~ ! [ ] ( ) ^ " =
Beispiel: Für SWR3 wäre die URL für 128 kBit/s Qualität dann http://mp3-live.swr3.de/swr3_m.m3u
Weiter Sender findet man hier: https://www.stream-urls.de/
Der entscheidende Vorteil liegt in der Sonos unabhängigen URL Struktur und des daraus resultierenden Performance Zuwachs beim Wechseln der Sender.
Diese Schritte musste du für jeden deiner Favoriten Sender erneut durchführen.
Gimmick am Rande
Als Sender Name kannst du auch irgendwas anderes eingeben (z.B. "Namen deiner Frau> Lieblingssender" um deine Frau zu überraschen. Der Name erscheint dann auch automatisch in der Sonos App.
Wenn alle Parameter ergänzt wurden speichere bitte die Konfiguration und teste die erfolgreiche Installation als erstes im Browser bevor es an die Loxone Integration geht.
Dafür kopierst du aus dem Bereich Syntax einen Befehl, ergänzt die Zone und solltest dann eigentlich etwas hören. Nur nicht bitte Play wenn in der entsprechenden Zone weder Radio noch eine Playliste geladen ist ;-(
Konfigurationsoptionen Nicht-Loxberry (nur bis V2.1.6)
Da das Script Hard-/Software unabhängig programmiert ist, gibt es einige Besonderheiten für die Nutzer zu beachten die keinen Loxberry nutzen. Folgende Umgebungen wurde erfolgreich getestet:
- NAS (Synology, Buffalo)
- VM-Ware
- OS X
- OS X mit VM-Ware
- Windows mit XAMPP
- SPS
Dies notwendigen Schritte im Einzelnen:
- Plugin laden und nur alle Dateien aus webfrontend/html in euer Web Server Verzeichnis kopieren.
- Nach dem Kopieren bitte folgenden Befehl im Browser eingeben um die vorhandenen Sonos Zonen automatisch zu finden und anlegen zu lassen. Dazu muss auf dem Router Multicast aktiviert sein, was aber in nahezu 95% der Fälle bereits Standard ist.
http:// <DEINE IP>/<DEIN VERZEICHNIS>/system/network_nolb.php |
---|
- Die Datei system/player_nolb.cfg öffnen und die Werte für T2S, Sonos und Max. Lautstärke je Zone ergänzen
- Die Datei system/sonos_nolb.cfg öffnen und die restlichen Konfigurationsoptionen eingeben
Die unten genannten Syntax für die Befehle sind die gleichen, nur muss der Pfad /plugins/sonos4lox durch euren Installationspfad ersetzt werden.
Download
Fehlerberichte
Syntax
Übersicht der gängigsten Befehle, T2S Syntax und auch erlaubte Kombinationen innerhalb einer Syntax. Wer die Funktionen erst im Browser testen möchte, setzt bitte jeweils folgendes vor die Syntax:
http://<LOXBERRY IP-ADRESSE> oder <LOXBERRY HOSTNAME> |
---|
Standard Befehle
Folgende action sind möglich: play, stop, pause, next, previous, rewind
/plugins/sonos4lox/index.php/?zone=<DEINE ZONE>&action=stop |
---|
Wechselt zwischen Play und Pause
/plugins/sonos4lox/index.php/?zone=<DEINE ZONE>&action=toggle |
---|
Setzt angegebene Zone auf mute wenn Wert true, unmute mit Wert false
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=mute&mute=true |
---|
Setzt den Playmode für Playlisten. Erlaubte Parameter sind: NORMAL, REPEAT_ALL, SHUFFLE, REPEAT_ONE, SHUFFLE_REPEAT_ONE und SHUFFLE_NOREPEAT
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=playmode&playmode=normal |
---|
Setzt die Lautstärke fix auf 30 %
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=volume&volume=30 |
---|
Spielt den nächsten Sender aus der Radio Favoriten Liste der Konfiguration
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=nextradio |
---|
Lautstärke wird innerhalb kontinuierlich auf Null gefahren (Art Schlummerfunktion) und Wiedergabe gestoppt
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=softstop |
---|
Verringern der Lautstärke (die Schritt Vorgabe wird in Prozent in der Konfiguration gepflegt)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=volumedown |
---|
Erhöhen der Lautstärke (die Schritt Vorgabe wird in Prozent in der Konfiguration gepflegt)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=volumeup |
---|
Löschen der laufenden Playliste
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=clearqueue |
---|
Crossfade 1 schaltet Überblenden ein, 0 schaltet Überblenden aus
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=crossfade&crossfade=1 |
---|
Stoppt abrupt alle Zonen
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=stopall |
---|
Lädt die angegebene Sonos Playliste und spielt Sie mit Lautstärke 15% ab (es funktionieren nur Sonos Playlisten). Wer einen Streamingdienst nutzt muss vorher die Streaming Playliste als Sonos Playliste speichern!
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sonosplaylist&playlist=NAME_DER_PLAYLISTE&volume=15 |
---|
Lädt den angegebenen Radiosender unter "Meine Radiosender". Der Anzeigename aus Sonos MUSS identisch sein. Es funktionieren auch nur Sender die unter "Radio von TuneIn" in "Meine Radiosender" gespeichert sind.
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=radioplaylist&playlist=EXAKTER NAME_DER_RADIOSTATION |
---|
Lädt die angegebene Sonos Playliste und spielt Sie mit langsam ansteigender Lautstärke von final 35% ab. Für rampto stehen noch die Parameter "auto" und "alarm" zur Verfügung.
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&rampto=sleep&action=sonosplaylist&playlist=NAME_DER_PLAYLISTE&volume=35 |
---|
Setzt Bass auf 2
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=setbass&bass=2 |
---|
Setzt Höhen auf 3
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=settreble&treble=3 |
---|
Schaltet loudness ein (1) oder aus (0)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=setloudness&loudness=1 |
---|
erstellt ein Stereopaar aus zwei identischen Modellen. PLAY:1, PLAY:3 und PLAY:5 werden unterstützt
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=createstereopair&pair=<ZWEITE ZONE> |
---|
löst ein Stereopaar in 2 einzelne Zonen auf
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=seperatestereopair&pair=<ZWEITE ZONE> |
---|
Gruppen Funktionen
Fügt der angegebenen Zone eine weitere hinzu
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=addmember&member=ANDERE_ZONE |
---|
Löscht aus der Gruppe die angegebene Zone wieder
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=removemember&member=ANDERE_ZONE |
---|
Fügt der angegebenen Zone mehrere Zonen hinzu
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=addmember&member=ANDERE_ZONE,ANDERE ZONE,ANDERE ZONE |
---|
Gruppiert alle Zonen (ohne speichern der vorherigen Zustände)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=group |
---|
Hebt alle Gruppierungen auf
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=ungroup |
---|
Setzt alle Zonen auf Mute (1) oder Unmute(0)
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=setgroupmute&mute=1 |
---|
Erhöht die Standard Lautstärke je Zone um 20% (50% = Standardlautstärke)
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=setgroupvolume&volume=70 |
---|
Erstellt eine Gruppe und lädt eine Sonos Playliste
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=groupsonosplaylist&playlist=NAME DER PLAYLISTE |
---|
Erstellt eine Gruppe und lädt einen Radio Sender
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=groupradioplaylist&playlist=EXAKTER NAME_DER_RADIOSTATION |
---|
Nimmt eine Zone aus einer bestehenden Gruppe heraus, egal welche Zusammensetzung die Gruppe hat
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=becomegroupcoordinator |
---|
Text-to-speech Funktionen
Bei der Text-to-speech Funktion wird der Text zu einer der Engines geschickt, dort umgewandelt und als MP3 Datei wieder zurückgeschickt. Die ankommende Datei wird MD5 kodiert dann im Verzeichnis loxberry/data/plugins/sonos4lox/tts/ gespeichert und von Sonos von dort abgespielt.
Es ist auch möglich z.B. für immer wiederkehrende Ansagen (Waschmaschine fertig usw.) vor erstellte MP3 Dateien zu nutzen ohne ständig die T2S Engines zu nutzen. Diese MP3 Dateien müssen a: numerisch sein (4.mp3) und b: mit Hilfe von z.B. WinSCP im Verzeichnis loxberry/data/plugins/sonos4lox/tts/mp3/ gespeichert werden.
Um numerische MP3 Dateien zu erstellen mache bitte folgendes:
- Generiere eine Textansage:
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&text=Waschmaschine ist fertig&volume=20 - Wechsel in das Verzeichnis loxberry/data/plugins/sonos4lox/tts/ und benenne die oberste Datei die ungefähr so aussehen müsste 7e7fbecd034c7c8eb7d6fdd2f2790949.mp3 in 1.mp3 um
- kopiere mit Hilfe von z.B. WinSCP diese Datei in das Verzeichnis loxberry/data/plugins/sonos4lox/tts/mp3/
- Rufe Sie anschließend über folgende Syntax immer wieder auf:
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&messageid=1
Ich persönlich mache mir dann immer noch eine Kopie der numerischen MP3 Datei und hänge mir noch einen Text dran damit ich weiß um welchen Ansagetext es sich handelt (1_Waschmaschine.mp3)
Einzeldurchsagen:
Ansage eines Textes mit Lautstärke 20% ohne Jingle vorher
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sendmessage&text=hallo. dies ist ein test&volume=20 |
---|
Ansage eines Textes mit Lautstärke 20% mit Jingle vorher
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&text=hallo. dies ist ein test&volume=20 |
---|
Ansage eines Textes mit Lautstärke 20% mit Jingle vorher und Hans als Stimme (nur bei Verwendung von Polly)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&text=hallo. dies ist ein test&volume=20&voice=Hans |
---|
Ansage eines Textes mit Lautstärke 20% mit Jingle vorher und einer automatischen Grußformel (NUR bei T2S)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&text=dies ist ein test&volume=20&greet |
---|
Abspielen der Datei 3.mp3 Datei aus dem Verzeichnis loxberry/data/plugins/sonos4lox/tts/mp3/ mit Jingle vorher und Lautstärke 30%
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&messageid=3&volume=30 |
---|
Aktuelle Wettervorhersage mit Lautstärke 20 (Voraussetzung: installiertes Wunderground Plugin)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sendmessage&weather&volume=20 |
---|
Ansage der aktuellen Uhrzeit
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sendmessage&clock |
---|
Ansage des gegenwärtig laufenden Songs / Radio
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sendmessage&sonos |
---|
Gruppendurchsagen:
Ansage eines Textes mit 2 weiteren Zonen und der jeweiligen Standard Lautstärke aus der Konfiguration ohne Jingle vorher
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sendgroupmessage&member=ZONE,ZONE&text=hallo. dies ist ein test |
---|
Ansage eines Textes mit 2 weiteren Zonen und der Angabe von Gruppenlautstärke 60 mit Jingle vorher
ACHTUNG: Gruppenlautstärke bedeutet dass der Standardwert der Lautstärke je Zone (siehe Konfiguration) um 10% erhöht wird. Mit der Angabe 50 wird die
Standardlautstärke genommen, ist der eingegebene Wert >50 erhöht sich die Lautstärke um die Differenz, ist der Wert <50 verringert sie sich um die Differenz.
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendgroupmessage&member=ZONE,ZONE&text=hallo. dies ist ein test&groupvolume=60 |
---|
Abspielen der Datei 3.mp3 Datei aus dem Verzeichnis loxberry/data/plugins/sonos4lox/tts/mp3/ mit Jingle vorher, Lautstärke 30% auf 2 weiteren Zonen
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendgroupmessage&member=ZONE,ZONE&messageid=1&groupvolume=20 |
---|
Wetteransage ohne Jingle an eine Gruppe von Playern mit 10% höherer Standardlautstärke je Zone
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sendgroupmessage&member=ZONE,ZONE&weather&groupvolume=60 |
---|
Einzel-/Gruppendurchsagen aus einem Statusbaustein heraus:
Der Loxone Statusbaustein ist prinzipiell hervorragend geeignet um sich individuelle Textansagen selber zu erstellen, nur hat er leider einen Bug der einer einfachen Handhabung im Wege steht. Der konkrete Anwendungsfall ist Statusmeldung aller Fenster, wobei hier die bekannte Version aus dem Forum durch Verkettung von mehreren Statusbausteinen angewandt wird. Am Ende laufen ALLE Fenster in einen Statusbaustein der auch den Status korrekt am Ausgang TQ anzeigt bzw. ausgibt. Um jetzt eine Ansage anzustossen wäre ja der einfache Gedanke an einem der 4 Eingänge AIx irgendeinen Trigger anzuhängen der eine Statusänderung des Ausganges TQ veranlasst. Das geschieht auch, nur leider wird die T2S beim Beenden des Triggers erneut ausgegeben. Je nachdem wie lange der Einschaltimpuls ist, bricht die erste T2S in der Mitte ab und die zweite folgt im Anschluss.
Dieses Verhalten hängt mit der Tatsache zusammen das a: der Baustein analog ist und b: einen Bug diesbezüglich hat. Nach langem probieren mit allen möglichen Schaltern etc. funktionierte es immer noch nicht wie gewünscht. Die mir bekannte einzige Abhilfe ist ein kleines PicoC Programm welches die T2S anstösst, anstatt der Statusbaustein direkt.
Dazu muss der Ausgang TQ des Statusbausteines an den Eingang TIx des Programmbaustein, der Trigger zur Auslösung an das Pendant AIx und der entsprechende http Ausgangsbefehl für die T2S an TQx. Beim Betätigen des Triggers wird der anstehende Text an TIx einmalig an den Ausgang TQx weitergeleitet und somit die T2S nur einmal angesagt.
Anbei der PicoC Code, bitte auf die korrekt Codierung in Zeile 8 denken, je nachdem ob der 4, 8 oder 16er PicoC Baustein verwendet wird. (Ab Version 9 der Loxone Config steht nur noch der 16er Baustein zur Verfügung, ergo muss 0x38 genutzt werden). Die Version im Codeblock ist die für den 16er Baustein da hier 3 Möglichkeiten der T2S Verarbeitung aus Statusbausteinen heraus bestehen:
// write program here in PicoC float f1, f2, f3; int nEvents; char* Text; while(TRUE) { nEvents = getinputevent(); if (nEvents & 0x38) //4er Pico = 0xe, 8er Pico = 0x1c, 16er Pico = 0x38 { f1 = getinput(0); if (f1 == 1) { Text = getinputtext(0); setoutputtext(0,Text); } f2 = getinput(1); if (f2 == 1) { Text = getinputtext(1); setoutputtext(1,Text); } f3 = getinput(2); if (f3 == 1) { Text = getinputtext(2); setoutputtext(2,Text); } } sleep(100); }
Diagnose Funktionen
Diese Funktionen bitte nur im Browser nutzen!
Info über Metadaten bzw. der laufende Radiosender
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=getmediainfo |
---|
Info über Titel Interpret, Laufzeit usw.
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=getpositioninfo |
---|
Info über playmode (shuffle, normal)
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=gettransportsettings |
---|
Info über Lautstärke
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=getvolume |
---|
Info über technische Details der Zone
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=getzoneinfo |
---|
Info über User
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=getuser |
---|
Sonstige Funktionen
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
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sleeptimer&timer=5 |
---|
Listet alle Alarme auf (nur im Browser zu verwenden)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=listalarms |
---|
Klingelton zu Signalisierung. Hierfür ist die Datei 100.mp3 reserviert, diese MUSS im Verzeichnis tts/mp3 liegen. Bei der Verwendung reagieren die Zonen schneller, aber eine Latenz von unter ca. 2-3 Sekunden ist nicht machbar.
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&messageid=100&volume=30 |
---|
Hinweis an Loxone dass das Plugin einen Fehler im Sonos error.log erzeugt hat und Löschung des Hinweises aus Loxone heraus.
/plugins/sonos4lox/index.php/?zone=kueche&action=clearlox |
---|
Screenshot zum Fehlerhinweis:
1) Fehlermitteilung:
erstelle einen "virtuellen Texteingang" und benenne ihn in der Bezeichnung "S-Error" und verknüpfe ihn an einen "virtuellen Status" für die Visu. Sobald ein Eintrag im error.log erzeugt wird erhält der Texteingang, respektive die Visu, folgenden Text: Sonos Fehler. Bitte log pruefen
2) Fehlerlöschung:
erstelle einen "virtuellen Eingang" als Taster und hänge einen "virtuellen Ausgangsbefehl" dran der den Hinweis aus 1) wieder auf Null setzt
Selbstverständlich sollte dann auch der Eintrag im error.log geprüft und ggf. behoben werden.
Kombinierbare Parameter
Folgende Parameter können immer in einer Syntax beliebig miteinander kombiniert werden
- volume (nicht bei Gruppendurchsagen)
- groupvolume (nur bei Gruppendurchsagen)
- playmode
- rampto
Das würde im max. Fall folgendermaßen aussehen und lädt eine Playliste, setzt die Lautstärke schnell ansteigend auf 15% und schaltet shuffle dazu:
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sonosplaylist&playlist=NAME_DER_PLAYLISTE&volume=15&playmode=SHUFFLE_NOREPEAT&rampto=alarm |
---|
Miniserveranbindung
Allgemein
Ich habe bewusst auf einen Push Service seitens des Loxberry verzichtet um die UDP und auch generelle Datenflut nicht unnötig zu erhöhen. Das heißt im Klartext dass es zwar den Schalter Datenübertragung zu Loxone in der Konfiguration gibt, er aber nur das generelle Pullen von Informationen ein-/ausschaltet (siehe Screenshot #12). Es werden auch nur UDP-Pakete und virtuelle Texteingänge je nach Taktung gefüllt. Die Texteingänge mit Titel/Interpret Informationen auch nur wenn die jeweilige Zone gerade etwas spielt, ansonsten wird nichts gesendet.
Ausgangsseitig
Um die Sonos Installation vom Miniserver aus zu steuern muss für jede Aktivität ein virtueller Ausgangsbefehl angelegt werden. Dieser kann jeweils bei Ein oder Aus eine Funktion aufrufen.
Folgende Aktivitäten müssen in Loxone durchgeführt werden:
- virtuellen Ausgang anlegen
- virtuellen Ausgangsbefehl anlegen
- zu verwendende Syntax in virtuellen Ausgangsbefehl erstellen/kopieren
virtuellen Ausgang anlegen (falls nicht schon für andere Plugins vorhanden):
virtuellen Ausgangsbefehl anlegen:
Bsp.: Befehl bei EIN: Wenn der TV im Wohnzimmer eingeschaltet wird, soll die Zone "Küche" zügig auf Lautstärke Null runtergeregelt werden und dann stoppen.
virtuellen Ausgangsbefehl mit Verwendung von Werten aus Loxone anlegen:
Bsp.: Ansage des Fensterstatus beim Einschalten der Alarmanlage. Der Wert <v> wird aus dem Wert des Statusbaustein übernommen..
wichtig ist das der Ausgangsbefehl als analog markiert sein muss d.h. Haken bei "Als Digitalausgang verwenden" rausnehmen:
Eingangsseitig
Wichtig: Die eingangsseitigen Daten werden NUR an den im Plugin selektierten Miniserver gesendet. Die Daten werden je nach Datentyp im 10 Sekunden Takt an den Miniserver gesendet. Grundsätzlich werden Status Daten per UDP und Text Infos (Titel / Interpret) per virtuellen Texteingang übertragen:
Die Daten die per UDP gesendet werden enthalten immer folgende Informationen je Zone.
- Play/Stop/Pause (WERT: 1=Play, 2=Pause, 3=Stop)
- gegenwärtige Lautstärke (WERT: Lautstärke der Zone)
- Status der Zone (WERT: 1=Single, 2=Master, 3=Member)
Läuft eine Zone gerade nicht oder ist Offline wird der Wert stat_ZONE@3 gesendet.
Um die Daten im Miniserver nutzen zu können generiere in der Plugin Config dein individuelles XML-Template, und importiere es in den Miniserver. Daten per UDP werden nur gesendet wenn
- Die Datenübertragung eingeschaltet und der Miniserver im LoxBerry konfiguriert ist.
- mindestens einer deiner Player irgendwas am abspielen/streamen ist
Empfangen von Titel/Interpret bzw. Radiosender Info sowie T2S-Status
- Für Titel und Interpret lautet die Syntax: titint_ZONE
- Für Titel lautet die Syntax: tit_ZONE
- Für Interpret lautet die Syntax: int_ZONE
- Für die Quelle lautet die Syntax: source_ZONE (WERT: 1=Radio, 2=Playliste)
- Für Beginn/Ende einer T2S lautet die Syntax: t2s_ZONE (WERT: 1=T2S startet, 0=T2S ist beendet)
Für jede Zone für die Titel/Interpret Info empfangen werden sollen muss manuell ein "virtueller Texteingang" angelegt werden die o.g. Bezeichnung enthalten
Beispiel für Zone "buero":
Hintergrund ist hier das die Informationen u.U. getrennt benötigt werden um sie z.B. auf einem KNX Display anzeigen zu lassen (Restriktion auf 14 Zeichen).
UDP Daten per Monitor empfangen:
Beispiel zur Visualisierung Titel/Interpret:
Die Titel/Interpret Info an AI1 und den Status der Zone an AI2. Wenn die Zone spielt, wird der Wert von AI1 am Textausgang ausgegeben, ansonsten ein frei wählbarer Text.
Vorlagendatei für Loxone Config
Vorlagendatei für die Loxone Config für folgende Funktionen:
- Pullen von Sonos Daten zu MS → Funktion vor v3.5.2
- Texte als Merker
- Titel/Interpret bzw. Radio Sender visualisieren
- T2S Ansagen aus einem Statusbaustein heraus.
Tipps & Tricks
Die Erfahrung zeigt dass es Sinn macht die zu verwendende Syntax immer erst einmal im Browser zu testen bevor sie in Loxone als Ausgangsbefehl angelegt wird.
Sonstige Links
App für Sprachnachrichten direkt vom iPhone an Sonos: https://itunes.apple.com/us/app/sonos-voice/id689673100?mt=8
Alternative Sonos App welche aus der Visu heraus aufgerufen werden kann und direkt zum jeweiligen Raum springt: https://itunes.apple.com/de/app/sonophone/id815251931?mt=8
Multilinguale text-to-speech
Da in dem neuen Release tiefgreifende Änderungen durchgeführt wurden, dauerte es etwas länger da sich auch die Testphase sich etwas hinzog.
Nun zu den Neuerungen/Features und behobene Bugfixes:
- Neuer Parameter für die Loxone Daten Übertragung hinzugefügt. Es wir jetzt zusätzlich ein Text Eingangsverbinder (Beschreibung in MS: „source_$zone„ gefüllt, Inhalt ist für Radio=1 oder Playlist=2)
- Neuer Parameter für die Loxone Daten Übertragung hinzugefügt. Es wir jetzt zusätzlich zu den bekannten UDP Daten noch „grp_$zone„ übertragen, Inhalt ist für Single Zone=1 oder Gruppen Master=2 und Gruppen Member=3)
addmember/removemember gefixt um mehr als eine Zone zum Master hinzuzufügen
Parameter "rampto" für Radiosender Funktionen hinzugefügt
Fehlermeldung an Loxone Text Eingangsverbinder falls ein Fehler im Sonos Plugin auftrat
Komplette Überarbeitung der Gruppenfunktionen bzw. Gruppendurchsagen. T2S werden jetzt wieder an das Ende einer PL geladen und nach dem Abspielen wieder gelöscht. Ausnahme ist wenn eine Playliste mehr als 998 Titeln enthält.
- T2S wurde verschlankt und optimiert, so dass die Performance deutlich gestiegen ist.
zusätzliche Parameter radio&radio=SENDER und playlist&playlist=NAME DER PLAYLISTE (gilt für eine Zone als auch für eine Gruppe) hinzugefügt
Erstellt eine Gruppe und lädt einen Radio Sender (ALT)
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=groupradioplaylist&playlist=EXAKTER NAME_DER_RADIOSTATION |
---|
Erstellt eine Gruppe und lädt einen Radio Sender (NEU)
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=radioplaylist&playlist=EXAKTER NAME_DER_RADIOSTATION |
---|
- vereinfachte T2S Durchsage mit parameter "say". Es gibt keine Differenzierung mehr zwischen Gruppen- oder Einzeldurchsage.
Einzeldurchsage mit Playgong und fixer Lautstärke 30%
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&playgong=yes&action=say&text=dies ist ein einzeldurchsage&volume=30 |
---|
Gruppendurchsage ohne Playgong und mit Lautstärkereduzierung für die Gruppe von 20% des Standardwertes je Zone
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=say&text=dies ist ein gruppendurchsage&volume=20 |
---|
- bei Nutzung von say oder sendgroupmessage kann in Verbindung mit &member= der parameter all verwendet werden. Durch all werden alle Zonen gruppiert und die T2S abgespielt
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=all&action=say&text=dies ist ein gruppendurchsage |
---|
- und final Sonos goes international... Multilinguale Sprachansagen für alle Provider (außer derzeit Responsive Voice an denen ich noch arbeite) hinzugefügt (Details siehe Tablle). AWS Polly SDK nicht mehr notwendig und wurde entfernt. Es stehen je nach Verwendung welcher T2S Engine maximal 86 unterschiedliche Sprachen mit maximal 135 Stimmen zur Verfügung. Um diese Sprachen nutzen zu können, muss zu jeder Syntax entweder der Parameter $voice=WERT oder &lang=WERT hinzugefügt werden. HINWEIS! Falls eine deutsche Ansage genutzt werden soll benötigt man keinen der beiden Parameter, da der Default aus der Konfiguration kommt. Selbstverständlich funktionieren die bisher bekannten "sendmessage" und "sendgroupmessage" nach wie vor.
Die Syntax für eine englischsprachige Gruppen T2S bei Verwendung von AWS Polly lautet wie folgt:
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=say&text=this is a testmessage&voice=Joey |
---|
Die Syntax für eine griechischsprachige Gruppen T2S bei Verwendung von Google lautet wie folgt:
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=say&text=Αυτ? ε?ναι ?να μ?νυμα&lang=el-GR |
---|
Einzeldurchsage des gegenwärtigen/morgigen Pollenwetters ohne Playgong und Lautstärke von 35%
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&pollen&volume=35 |
---|
Gruppendurchsage einer Wetterwarnung bzw. Wetterhinweises mit Playgong und Gruppenlautstärke von 30%
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&playgong=yes&action=say&warning&volume=30 |
---|
Erstellen einer batch Datei mit allen Ansagen die zu einem späteren Zeitpunkt aufgerufen werden kann. Um diese Funktion nutzen zu können muss am Ende der Standardsyntax für T2S nur der Parameter $batch oder playbatch angehängt werden.
Speichern der T2S
Wenn der Parameter &batch angegeben ist wird die T2S erstellt und gespeichert, jedoch nicht abgespielt, sondern der Dateiname für späteres Abspielen in eine Datei geschrieben. Das ganze kann beliebig oft wiederholt werden und die Datei wird jeweils um einen Eintrag ergänzt.
Hinweis: Die Funktion kann nur ohne Angabe von "volume=xx", "member=ANDERE ZONE", "playmode&playmode=xx", "rampto=xx" und "playgong=yes" genutzt werden, da sie ja nichts anderes macht als ein MP3 File zu erstellen und in eine Datei zu schreiben
Bsp.: Wettervorhersage in batch schreiben
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&weather&batch |
---|
T2S "Dies ist ein Test" in batch schreiben
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&playgong=yes&action=say&text=Dies ist ein Test.&batch |
---|
TIP: Setzt am Ende einer T2S jeweils ein Satzzeichen (i.d.R. Punkt), ansonsten wird zwischen den einzelnen Ansagen keine Pause eingelegt.
Abspielen der gespeicherten T2S
Zum Abspielen der gespeicherten T2S können wiederum die Parameter "volume=xx", "member=xx", "rampto=xx", "playmode=xx" und "playgong=yes" wie bei einer normalen Syntax genutzt werden. Die Syntax ist hier ziemlich einfach aufgebaut, dazu muss lediglich der Parameter &playbatch angegeben werden. Anschließend werden alle T2S angesagt und die Datei gelöscht.
Abspielen aller gespeicherten T2S auf 3 Zonen mit jingle vorher und Volume von 40%
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&playgong=yes&member=ANDERE ZONE,ANDERE ZONE&action=&playbatch&volume=40 |
---|
Funktion zum Ausschalten aller Sonos Alarme/Wecker. Der Zustand vor dem Ausschalten wird gespeichert und kann später zur Wiederherstellung genutzt werden.
Alle Sonos Alarme ausschalten
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=alarmoff |
---|
Alle Alarme gemäß Ursprungszustand wiederherstellen
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=alarmon |
---|
Einzelnen oder einzelne Alarme ausschalten
zuerst mit der funktion ...action=listalarms (im Browser) die bestehenden Alarme anzeigen lassen um die ID des/der Alarme zu erhalten.
Einzelnen Alarm ausschalten
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=alarmoff&id=37 |
---|
Mehrere Alarme ausschalten
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=alarmoff&id=37,42,200 |
---|
Mehrere Alarme ausschalten
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=alarmon&id=37,42,202 |
---|
Funktion zapzone
Funktion zapzone, welche eine typische Tasterfunktion ist. Bei jedem Klick klinkt sich die Zone (zone=DEINE ZONE) in bereits laufende Player als Member ein, wenn alle spielenden Player per Klick durchgezappt wurden, switched das Script dann zur bekannten Funktion nextradio und zappt sich per Klick durch die Radio Favoriten. Nach ca. 40 Sekunden wird das Skript resetet so dass es wieder mit dem Zappen der Player beginnt.
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=zapzone |
---|
Möglichkeit der Ansage des aktuellen Radiosenders bei den Funktionen nextradio und zapzone. Über die Plugin Konfiguration wird die ensprechende Funktion de-/aktiviert.
Neues Addon "time-to-destination" welches die Entfernung und Fahrzeit von einem in der Sonos Plugin Konfiguration anzugebenden Standortes zu einem in der Syntax anzugebenden Ziel kalkuliert und das Ergebnis als T2S ausgibt. WICHTIG: Google API key ist notwendig und Ergänzung der Plugin Konfiguration muss durchgeführt werden.
Einfaches Besipiel:
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&distance&to=Musterstrasse 11,99999 Musterstadt |
---|
Durch die Nutzung folgender Parameter kann die Berechnung beeinflusst werden:
&traffic → Berechnung der Fahrzeit findet unter Berücksichtigung der gegenwärtigen Verkehrslage statt. Ohne diesen Parameter wird der schnellste Weg ohne Berücksichtigung der gegenwärtigen Verkehrslage berechnet.
&model= → ist nur sinnvoll in Kombination mit dem Parameter &traffic einzusetzen. Hier können 3 verschiedene Parameter gewählt werden:
pessimistic: gibt an, dass der für duration_in_traffic
zurückgegebene Wert höher als die tatsächliche Reisezeit an den meisten Tagen sein soll. Einzelne Tage mit besonders schlechten Verkehrsbedingungen können diesen Wert überschreiten.
best_guess: (Standard) gibt an, dass der für duration_in_traffic
zurückgegebene Wert die bestmögliche Einschätzung der Verkehrsbedingungen auf der Grundlage von Werten aus Vergangenheit und Gegenwart darstellen soll. Dabei werden Werte aus der Gegenwart stärker berücksichtigt, je näher departure_time
am Zeitpunkt „jetzt“ liegt.
optimistic: gibt an, dass der für duration_in_traffic
zurückgegebene Wert niedriger als die tatsächliche Reisezeit an den meisten Tagen sein soll. Einzelne Tage mit besonders guten Verkehrsbedingungen können diesen Wert unterschreiten.
&deptime = Angabe des gewünschten Abfahrtszeitpunktes (muss in der Zukunft liegen)
Erlaubte Werte sind: 24h Format oder Uhrzeit in am/pm (Bsp.: &deptime=16:30 oder &deptime=4.30pm)
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&distance&to=Musterstrasse 11, 99999 Musterstadt&traffic&model=optimistic&deptime=16:30 |
---|
Komplexeres Besipiel:
Berechnet die Fahrzeit und Entfernung unter Berücksichtigung des Verkehrsaufkommens und der Berechnungsmethode optimistic:
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&distance&to=Musterstrasse 11, 99999 Musterstadt&traffic&model=optimistic |
---|
Berechnet die Fahrzeit und Entfernung unter Berücksichtigung des Verkehrsaufkommens und der Berechnungsmethode best_guess (da Standard):
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&distance&to=hauptstrasse 1 hamburg&traffic |
---|
Addon Müllabfuhr
Neues Addon zur T2S Ansage von Abfallterminen basierend auf dem CALDav Plugin ohne Einbeziehung des MS. Die Abfalltermine müssen in einem CALDav kompatiblem Kalender als Ganztagestermine gepflegt sein, dieses kann entweder in einem der vorhandenen Unterkalendern oder in einem neu zu erstellenden Kalender geschehen. Der Text im Eintrag ist derjenige der später per T2S ausgegeben wird.
Kalendereinträge erstellen
Die jeweiligen Abholtermine vom lokalen Entsorger als ICS Datei herunterladen (jeweils für das ganze Jahr) dann die ICS Datei(en) z.B. mit Notepad++ bearbeiten (hier speziell das SUBJECT) und die Abfallart eintragen so dass anschließend die geänderte ICS Datei problemlos in einen Kalender importiert werden kann.
Die zu nutzende Syntax für die Sonos4lox Konfiguration muss mit dem CALDav Plugin ermittelt werden. Es kann entweder mit &events= oder auch ohne diese genutzt werden (wenn keine events genutzt werden auch bitte den Parameter &events= nicht in der Syntax verwenden). Zusätzlich auch bitte den Parameter $debug nicht in der Syntax nutzen, dieser wird vom Script hinzugefügt. Bitte ansonsten gemäß den Vorgaben des CALDav Plugins vorgehen.
Beispiel einer vom CALDav Plugin erstellten Syntax die anschließend in das Sonos4lox Plugin kopiert werden muss:
In u.g. Bsp. werden für die 4 angegebenen Abfallarten alle Termine der nächsten 14 Tage ermittelt die im Unterkalender "Muell" in Google gespeichert sind. Vorteil des Unterkalenders ist dass er in den diversere Visualisierungen/Apps aus dem Kalender ausgeblendet werden kann.
gleiches Bsp. nur ohne events:
Bei der T2S gibt es eine Ansage am Abend vorher (18:00h - 04:00h) und eine zweite Ansage am Morgen des Abholtermines (04:00h - 12:00h). Innerhalb dieser zwei Zeitfenster kann ein entsprechend zeitgesteuerter Trigger (Impuls um...) im MS angelegt werden. Wenn kein Termin ansteht wird auch logischerweise nichts angesagt.
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&abfall |
---|
Desweiteren gibt es noch die Möglichkeit eine T2S eines 2. Kalenders angesagt zu bekommen z.B. eines privaten Kalenders, hier wiederum werden Stunden- als auch Ganztagestermine angesagt. Die Vorgehensweise ist die gleiche, Syntax über das CALDav Plugin generieren und testen (Browser) und dann in die Sonos4lox Konfiguration kopieren.
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&calendar |
---|
WICHTIG: Es wird immer nur der nächste, gültige Termin angesagt!
Neue Funktion "bauernregel"
generiert eine T2S Ansage für die heutig gültige Bauerregel (Nutzung z.B. im Nachgang zur Wettervorhersage im batch modus)
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&bauernregel |
---|
Neue Funktion "witz"
generiert ein Vorlesen eines Zufallswitzes
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=say&witz |
---|
LineIn Eingang
Der LineIn Eingang der PLAY:5, CONNECT und CONNECT:AMP wurde hinzugefügt.
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=linein |
---|
Neuer Parameter "standardvolume" für die Funktionen "groupsonosplaylist" und "groupradioplaylist" wurde hinzugefügt. Bei Nutzung des Parameters am Ende der Syntax wird die in der Sonos4lox Konfiguration hinterlegte Sonos Standard Lautstärke für die jeweilge Zone eingestellt.
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=groupradioplaylist&playlist=Radio FFH&standardvolume |
---|
Funktion nextpush
Neue Funktion 'nextpush' Wenn PL läuft -> next track, Ende PL -> 1st track, Wenn Radio läuft -> nextradio im Loop, Wenn nichts läuft und die Queue leer ist -> nextradio im Loop
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=nextpush |
---|
Funktionen Dienstanbieter (Apple Music, Spotify, etc.)
Möglichkeit des direkten Abspielens von Playlisten / Alben folgender Diensteanbieter:
- Amazon
- Apple
- Napster
- Spotify
sowie lokaler Dateien die auf einer NAS, einem USB Stick, einem Laufwerk oder sonst wo liegen. Voraussetzung ist dass diese in der Sonos Bibliothek verfügbar sind.
Für die Diensteanbieter wird die PL oder das Album über die jeweilige ID geladen. Um diese zu ermitteln musst du in die Anwendung (oder Browser) des Anbieters gehen, PL oder Album suchen und dir die ID ermitteln. Dies ist bei den Anbietern möglich über die Social Media links oder bei rechtsklick auf die Alben. Meistens steht dort "Link kopieren" oder "Link für Facebook" (oder Google, Instagram, etc.) und dann in irgendein Text Prog. kopieren.
Die Links sehen dann wie folgt aus. Das fett rote ist dann die ID die du für die Syntax kopieren musst:
Amazon Album:
https://music.amazon.de/albums/B00IK3IV6Y
Amazon Playlist:
https://music.amazon.de/playlists/B071W6HN35?ref=dm_wcp_pp_link_pb_pp_rec
Spotify Playlist:
spotify:user:spotify:playlist:37i9dQZF1DX3h1vasAdBTc
Spotify Album:
spotify:album:0PNXB6AmSfM9oS0YwNkCYH
Napster Playlist:
https://app.napster.com/playlist/pp.207466845
Napster Album:
https://app.napster.com/artist/art.4212/album/alb.285904254
https://app.napster.com/artist/sia/album/everyday-is-christmas-287816565
Apple Album:
https://itunes.apple.com/de/album/eiskalt/1288630360
Apple Playlist:
https://itunes.apple.com/de/playlist/angesagt-dance/pl.6bf4415b83ce4f3789614ac4c3675740
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=amazon&albumuri=ID&volume=5 |
---|
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=amazon&playlisturi=ID&volume=5 |
---|
Bei Spotify Playlisten könne auch User spezifische Playlisten genutzt werden, dafür muss aber zusätzlich der User Name in der Syntax angegeben werden. Hier ein Bsp. des Spotify links für die Playliste Club Velcro (Revisited) vom User stevie-gfc:
spotify:user:stevie-gfc:playlist:46V4B0kaRt7MHYCwt6BpmP
und hier die dazugehörige Syntax:
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=spotify&playlisturi=46V4B0kaRt7MHYCwt6BpmP&volume=5&user=stevie-gfc |
---|
Lokale Tracks abspielen:
/plugins/sonos4lox/index.php/?zone=<ZONE>&action=track&file=//DESKTOP/E/05 Ich Und Ich - Vom Selben Stern.mp3 |
---|
Abspielen einer Datei von einer NAS
/plugins/sonos4lox/index.php/?zone=<ZONE>&action=track&file=\\SYN-DS415\music\Sonstige\DE_TOP100_01-2014\15 - Family Of The Year - Hero.mp3 |
---|
/plugins/sonos4lox/index.php/?zone=<ZONE>&action=track&file=//loxberry/sonos_tts/mp3/07 - Eminem - The Monster (feat. Rihanna).mp3 |
---|
Abspielen einer Datei vom LoxBerry Datenverzeichnis
/plugins/sonos4lox/index.php/?zone=<ZONE>&action=track&file=//LOXBERRY/loxberry/data/plugins/sonos4lox/tts/mp3/07 - Eminem - The Monster (feat. Rihanna).mp3 |
---|
Neue Funktion um eine zufällige Wiedergabe von SONOS Playlisten oder SONOS Radio Sender zu starten. Es könne auch Ausnahmen in der Syntax mitgegeben werden. User Anwendungsfall ist Playlisten oder Radiosender durch Zufallsgenerator über Bewegungsmelder oder Taster aufzurufen, aber nicht jeder Sender bzw. jede Playliste sollte als Basis genutzt werden.
Bsp. zufällig gewählter Radiosender aus allen Radiosender (Radio von TuneIn → Meine Radiosender):
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=randomradio |
---|
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=randomplaylist |
---|
Um die Ausnahmen einmalig hinzuzufügen sind die o.g. Befehle im Browser einzugeben und dann basierend auf der Bildschirmausgabe die Sender/Playlisten zu selektieren die nicht inkludiert sein sollen.
Bsp. einer Ausgabe ...randomradio
Array ( [0] => Array ( [typ] => item [res] => x-sonosapi-stream%3As90461%3Fsid%3D254%26flags%3D32 [duration] => leer [albumArtURI] => leer [title] => 181.FM Jammin 181 [artist] => leer [id] => R%3A0%2F0%2F3 [parentid] => R%3A0%2F0 [album] => leer ) [1] => Array ( [typ] => item [res] => x-sonosapi-stream%3As45087%3Fsid%3D254%26flags%3D32 [duration] => leer [albumArtURI] => leer [title] => 1LIVE diggi - Multimedia - 1LIVE [artist] => leer [id] => R%3A0%2F0%2F4 [parentid] => R%3A0%2F0 [album] => leer ) [2] => Array ( [typ] => item [res] => x-sonosapi-stream%3As6642%3Fsid%3D254%26flags%3D8224%26sn%3D0 [duration] => leer [albumArtURI] => leer [title] => 89.0 RTL [artist] => leer [id] => R%3A0%2F0%2F38 [parentid] => R%3A0%2F0 [album] => leer )
Wenn jetzt der Sender 1LIVE diggi - Multimedia - 1LIVE nicht inkludiert werden soll ist lediglich die Nummer des Senders in der Array als Parameter &except=x,x,x,x in der Syntax anzugeben. Es können mehrere Nummern durch komma getrennt angegeben werden. Die hier angegebenen Nummern der Sender/Playlisten werden nicht durch den Zufallsgenerator bedacht.
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=randomradio&except=1 |
---|
Exakt die gleiche Vorgehensweise gilt für Playlisten
Release 3.x.x für LoxBerry V1.0.x
mit dem Release 3.x..x wurde das Sonos Plugin auf die neue Interface Schnittstelle V2 vom LoxBerry umgestellt und unterstützt somit nicht mehr das LoxBerry Release v0.2.4.
Die wichtigsten Neuerungen sind im Bereich der Plugin Konfig angesiedelt und weniger in Sonos Funktionen. Zu den Neuerungen gehören in erster Linie folgende Details:
- Update Möglichkeit des Plugins direkt über den LoxBerry möglich
- Auswahl der Standardsprache bzw. -stimme je T2S Engine ist jetzt möglich
- Das Plugin ist jetzt Translate kompatibel und kann in eine lokale Sprache gemäß Translate übersetzt werden
- Die bis dato hard codierten Texte der Addon's können über die Translate Funktion individuell angepasst werden
- Das Abspielen von messageid's im batch Modus wurde hinzugefügt
- Je T2S kann jetzt ein individuelles Jingle genutzt werden.
- Detailiiertes Logging implementiert
Individuelle Jingles
Die jeweiligen jingles müssen in dem Ordner data/plugins/sonos4lox/tts/mp3/ abgelegt sein, nur von dort ist ein Aufruf möglich. Gleichzeitig wird beim Aufruf geprüft ob das angegebene File vorhanden und abspielbar ist.
Bitte darauf achten das die Endung .mp3 NICHT mit angegeben wird.
Beispiel für Standard Jingle (bei diesem Aufruf wird das Standard Jingle aus der Plugin Config genutzt):
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=say&text=Dies ist ein Test&volume=35 |
---|
Beispiel für individuelles Jingle (bei diesem Aufruf wird das Jingle "3x glocken.mp3" aus dem o.g. Ordner genutzt):
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=3x glocken&action=say&text=Dies ist ein Test&volume=35 |
---|
Onlineprüfung der Player
Das Problem betrifft hauptsächlich User die ihre Sonos Steckdosen stromlos schalten so das es vorkommen kann, dass bei einem Funktionsaufruf eine Latenzzeit auftritt. Bei jeder Funktion/Syntax prüft das Skript alle Zonen hinsichtlich Online Verfügbarkeit. Diese Prüfung ist nicht Performance intensiv solange alle Player Online sind, wenn aber, aus diversen Gründen, Player nicht Online sind wird diese Prüfung (ähnlich einem Ping) dreimal durchgeführt und dann für alle anderen Player erneut. Das Verhalten kann somit zu Verzögerungen (Latenzen) bei den jeweiligen Befehlen führen.
Um dieses Verhalten zu unterbinden ist jetzt die Online Prüfung konfigurierbar. Wenn die Prüfung ausgeschaltet ist, kann es aber vorkommen das unerwartete Fehler auftauchen, wenn für Player die Offline sind, Funktionen ausgeführt werden. Von daher besteht durch die Deaktivierung dieser Prüfung durch aus ein erhöhtes Fehlerrisiko.
Balanceregelung der Player
Die Regelung der Balance kann mit folgender Syntax verändert werden.
Bsp.: Die Balance des linken Lautsprechers deiner Zone wird um 80% reduziert
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=balance&balance=LF&value=20 |
---|
Um wieder zum Standardwert zurück zu kehren muss die gleiche Syntax mit dem Wert 100 verwendet werden. Erlaubte Parameter sind LF oder lf für links und RF oder rf für rechts, der anzugebende Wert muss zwischen 0 und 100 liegen.
Um alle Werte (Balance/Höhen/Bass) wieder auf Standard zu setzen kann auch folgende Syntax verwendet werden
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=resetbasic |
---|
Tabelle aller möglichen Kombination für multilinguale T2S:
Language | Acronym | AWS Polly | Pico TTS |
| VoiceRSS | MAC OSX | RespVoice | |
Parameter for Syntax | lang | &voice= | &lang= | &lang= | &lang= | &voice= | &lang= | |
Afrikaans (South Africa) | af-ZA | af-ZA | af-ZA | |||||
Albanian | sq-SQ | sq-SQ | ||||||
Arabic (Algeria) | ar-DZ | ar-DZ | ar-DZ | |||||
Arabic (Bahrain) | ar-BH | ar-BH | ||||||
Arabic (Egypt) | ar-EG | ar-EG | ||||||
Arabic (Iraq) | ar-IQ | ar-IQ | ||||||
Arabic (Israel) | ar-IL | ar-IL | ||||||
Arabic (Jordan) | ar-JO | ar-JO | ||||||
Arabic (Kuwait) | ar-KW | ar-KW | ||||||
Arabic (Lebanon) | ar-LB | ar-LB | ||||||
Arabic (Morocco) | ar-MA | ar-MA | ||||||
Arabic (Oman) | ar-OM | ar-OM | ||||||
Arabic (Qatar) | ar-QA | ar-QA | ||||||
Arabic (Saudi Arabia) | ar-SA | ar-SA | ||||||
Arabic (State of Palestine) | ar-PS | ar-PS | ||||||
Arabic (Tunisia) | ar-TN | ar-TN | ||||||
Arabic (United Arab Emirates) | ar-AE | ar-AE | ||||||
Armenian | hy-HY | hy-HY | ||||||
Basque (Spain) | eu-ES | eu-ES | ||||||
Bosnian | bs-BS | bs-BS | ||||||
Bulgarian (Bulgaria) | bg-BG | bg-BG | ||||||
Catalan (Spain) | ca-ES | ca-ES | ca-ES | ca-ES | ||||
Chinese, Cantonese (Traditional, Hong Kong) | yue-Hant-HK | yue-Hant-HK | ||||||
Chinese, Mandarin (China) | zh-CN | zh-CN | ||||||
Chinese, Mandarin (Hong Kong) | zh-HK | zh-HK | Sinji | |||||
Chinese, Mandarin (Simplified, China) | cmn-Hans-CN | cmn-Hans-CN | ||||||
Chinese, Mandarin (Simplified, Hong Kong) | cmn-Hans-HK | cmn-Hans-HK | ||||||
Chinese, Mandarin (Taiwan) | zh-TW | zh-TW | ||||||
Chinese, Mandarin (Traditional, Taiwan) | cmn-Hant-TW | cmn-Hant-TW | ||||||
Croatian (Croatia) | hr-HR | hr-HR | hr-HR | |||||
Czech (Czech Republic) | cs-CZ | cs-CZ | Zuzana | cs-CZ | ||||
Danish | da-DK | Mads | da-DK | da-DK | Sara | da-DK | ||
Danish | da-DK | Naja | ||||||
Dutch | nl-NL | Lotte | nl-NL | nl-NL | ||||
Dutch | nl-NL | Ruben | ||||||
Dutch (Belgium) | Ellen | |||||||
English (Australian) | en-AU | Nicole | en-AU | en-AU | en-AU | |||
English (Australian) | en-AU | Russell | Russell | |||||
English (British) | en-GB | Amy | en-GB | Amy | en-GB | en-GB | en-GB | |
English (British) | en-GB | Brian | Brian | |||||
English (British) | en-GB | Emma | Emma | |||||
English (Canada) | en-CA | en-CA | en-CA | |||||
English (Indian) | en-IN | Raveena | Raveena | en-IN | en-IN | Veena | ||
English (Ireland) | en-IE | en-IE | Moira | |||||
English (New Zealand) | en-NZ | en-NZ | ||||||
English (Philippines) | en-PH | en-PH | ||||||
English (South Africa) | en-ZA | en-ZA | ||||||
English (US) | en-US | Ivy | Chipmunk | en-US | Alex | |||
English (US) | en-US | Joanna | Eric | |||||
English (US) | en-US | Joey | Ivy | |||||
English (US) | en-US | Justin | Jennifer | |||||
English (US) | en-US | Kendra | Justin | |||||
English (US) | en-US | Kimberly | Kendra | |||||
English (US) | en-US | Salli | Kimberly | |||||
English (US) | en-US | Salli | ||||||
English (US) | en-US | Joey | ||||||
English (Welsh) | en-GB-WLS | Geraint | ||||||
Esperanto | eo-EO | eo-EO | ||||||
Filipino (Philippines) | fil-PH | fil-PH | ||||||
Finnish (Finland) | fi-FI | fi-FI | fi-FI | Satu | fi-FI | |||
French | fr-FR | Mathieu | Mathieu | fr-FR | Thomas | |||
French | fr-FR | Celine | fr-FR | Celine | fr-FR | |||
French (Canadian) | fr-CA | Chantal | Chantal | fr-CA | fr-CA | Amelie | ||
Galician (Spain) | gl-ES | gl-ES | ||||||
German | de-DE | Hans | de-DE | Hans | de-DE | de-DE | Steffi | de-DE |
German | de-DE | Marlene | Marlene | Markus | ||||
German | de-DE | Vicki | ||||||
Greek (Greece) | el-GR | el-GR | el-GR | |||||
Hebrew (Israel) | he-IL | he-IL | ||||||
Hindi (India) | hi-IN | hi-IN | hi-IN | |||||
Hungarian (Hungary) | hu-HU | hu-HU | Mariska | hu-HU | ||||
Icelandic | is-IS | Dora | Dora | |||||
Icelandic | is-IS | Karl | Karl | is-IS | ||||
Icelandic (Iceland) | is-IS | is-IS | ||||||
Indonesian (Indonesia) | id-ID | id-ID | id-ID | |||||
Italian | it-IT | Carla | it-IT | Carla | it-IT | it-IT | ||
Italian | it-IT | Giorgio | Giorgio | |||||
Italian (Italy) | it-IT | it-IT | ||||||
Japanese | ja-JP | Mizuki | ja-JP | ja-JP | Kyoko | ja-JP | ||
Korean (South Korea) | ko-KR | ko-KR | ko-KR | Yuna | ko-KR | |||
Latvian | lv-LV | lv-LV | ||||||
Lithuanian (Lithuania) | lt-LT | lt-LT | ||||||
Malay (Malaysia) | ms-MY | ms-MY | ||||||
Macedonian | mk-MK | mk-MK | ||||||
Norwegian | nb-NO | Liv | Liv | nb-NO | nb-NO | nb-NO | ||
Persian (Iran) | fa-IR | fa-IR | ||||||
Polish | pl-PL | Jacek | Agnieszka | pl-PL | pl-PL | Zosia | ||
Polish | pl-PL | Jan | Jacek | |||||
Polish | pl-PL | Ewa | Ewa | pl-PL | ||||
Polish | pl-PL | Maja | Jan | |||||
Polish | pl-PL | Maja | ||||||
Portuguese (Brazilian) | pt-BR | Ricardo | Vitoria | pt-BR | pt-BR | Luciana | pt-BR | |
Portuguese (Brazilian) | pt-BR | Vitoria | Ricardo | |||||
Portuguese (European) | pt-PT | Cristiano | Cristiano | pt-PT | pt-PT | |||
Portuguese (European) | pt-PT | Ines | Ines | pt-PT | ||||
Romanian | ro-RO | Carmen | Carmen | ro-RO | Ioana | ro-RO | ||
Russian | ru-RU | Maxim | Maxim | ru-RU | ru-RU | |||
Russian | ru-RU | Tatyana | Tatyana | ru-RU | ||||
Serbian (Serbia) | sr-RS | sr-RS | sr-RS | |||||
Slovak (Slovakia) | sk-SK | sk-SK | sk-SK | |||||
Slovenian (Slovenia) | sl-SI | sl-SI | ||||||
Spanish (Argentina) | es-AR | es-AR | ||||||
Spanish (Bolivia) | es-BO | es-BO | ||||||
Spanish (Castilian) | es-ES | Conchita | Conchita | es-ES | es-ES | es-ES | ||
Spanish (Castilian) | es-ES | Enrique | Enrique | |||||
Spanish (Chile) | es-CL | es-CL | ||||||
Spanish (Colombia) | es-CO | es-CO | ||||||
Spanish (Costa Rica) | es-CR | es-CR | ||||||
Spanish (Dominican Republic) | es-DO | es-DO | ||||||
Spanish (Ecuador) | es-EC | es-EC | ||||||
Spanish (El Salvador) | es-SV | es-SV | ||||||
Spanish (Guatemala) | es-GT | es-GT | ||||||
Spanish (Honduras) | es-HN | es-HN | ||||||
Spanish (Latin American) | es-US | Miguel | Penelope | es-US | ||||
Spanish (Latin American) | es-US | Penelope | Miguel | es-US | ||||
Spanish (Mexico) | es-MX | es-MX | es-MX | |||||
Spanish (Nicaragua) | es-NI | es-NI | ||||||
Spanish (Panama) | es-PA | es-PA | ||||||
Spanish (Paraguay) | es-PY | es-PY | ||||||
Spanish (Peru) | es-PE | es-PE | ||||||
Spanish (Puerto Rico) | es-PR | es-PR | ||||||
Spanish (Uruguay) | es-UY | es-UY | ||||||
Spanish (Venezuela) | es-VE | es-VE | ||||||
Swahili | sw-SW | sw-SW | ||||||
Swedish | sv-SE | Astrid | Astrid | sv-SE | sv-SE | sv-SE | ||
Tamil | ta-TA | ta-TA | ||||||
Thai (Thailand) | th-TH | th-TH | th-TH | |||||
Turkish | tr-TR | Filiz | Filiz | tr-TR | tr-TR | |||
Ukrainian (Ukraine) | uk-UA | uk-UA | ||||||
Vietnamese (Vietnam) | vi-VN | vi-VN | vi-VN | |||||
Welsh | cy-GB | Gwyneth | ||||||
Welsh | cy-GB | Geraint | cy-GB | |||||
Zulu (South Africa) | zu-ZA | zu-ZA |
Bekannte Probleme
- T2S bei Playlisten mit mehr als 1.000 Titeln → erledigt
- T2S an Stereopaar (2 Player zusammen) → erledigt
- Bei T2S und bestimmten Gruppenkonstallation werden nicht alle Zonen wieder in den Ursprungszustand zurückgesetzt → erledigt
- Parameter rampto auch für Radiosender nutzen → erledigt
- keine Anzeige der Titel/Interpret Info wenn die Zone Member einer Gruppe ist. → erledigt
- Bei der Übergabe des Radiosenders an Loxone wird der Name das Senders teilweise übergangen bzw. nicht korrekt angezeigt. → erledigt
- bei nextradio beginnt Skript nicht wieder am Anfang der Radio Favoriten (Korrektur: Hängt am Sender der nicht korrekt übermittelt wird) . → erledigt
- T2S bei Playlisten im Shuffle Modus (erneute Wiedergabe der Playliste an gleicher Position nur mit anderem Titel) → erledigt
- bei Nutzung der Spotify App zur Musikwiedergabe wird Sonos Playliste nach T2S aufgerufen. → verworfen (würde eine weitere komplette Entwicklung sein)
Roadmap
- Einbinden des Line-in Einganges bei den Playern → erledigt
- Multilinguale Sprachunterstützung (bis zu 51 Sprachen) für T2S (kein sonos-/clock-/weather-to-speech) → erledigt
- Bei den Radio Favoriten kann derzeit kein Sender eingegeben werden der ein einfaches oder auch doppeltes Hochkomma enthält → erledigt
- Handling von Stereo Paaren (PLAY:1, PLAY:3 und PLAY:5) → erledigt
- T2S Pico2Wave Offline Engine einbinden → erledigt
- Einbinden von Fritz-Lox Plugin zur Stummschaltung wenn Telefonanruf→ offen
- Zusätzlicher Parameter Radio oder Playliste in UDP Daten bereitstellen → erledigt
- T2S AWS Polly Engine einbinden → erledigt
- Microsoft T2S bzw. Translator und Speech Engine einbinden → verworfen da Qualität schlecht und hoher Aufwand
- Möglichkeit das T2S als batch gespeichert werden und zu einem späterem Zeitpunkt sämtliche gespeicherte Ansage erfolgen → erledigt
- Bei nextradio soll der Radio Sender anstatt des Titel / Interpreten angesagt werden → erledigt
- Nutzung der Sonos Favoriten als Playliste (ohne Radio) → in Arbeit
- callback Funktionen (selbstständige Rückmeldungen von Sonos)
- Warten auf die offizielle Sonos API in Q2/2017
- Umschalten von PL/Radio auf Line-In (User Wunsch) → erledigt
- Nutzen von userspezifischen Spotify Playlisten (User Wunsch) → erledigt
- Funktion um zufällig gewählte Playlisten/Radiosender abzuspielen Bsp. Bewegungsmelder (User Wunsch) → erledigt
FAQ / Troubleshooting
- Warum bekomme ich beim Scan Zonen keine Player angezeigt?
- Ist evtl. in der Sonos App der UPnP Dienst deaktiviert. Bitte Sonos Einstellungen überprüfen
- Ich verwende eine Sonos Bridge in meinem Netzwerk. Am besten entfernen und erneut scannen.
- Was mache ich wenn ich eine Zone nicht mehr benötige?
- Vor der nicht mehr benötigten Zone den Papierkorb anticken und speichern
- Was mache ich wenn ich eine Zone in der Sonos App umbennene?
- Vor der umbenannten Zone den Papierkorb anticken und speichern. Anschließend den Scan neu ausführen, Daten ergänzen und speichern. Ggf. den Raum in den Ausgangsverbindern im MS anpassen.
- Was mache ich wenn ich eine neue Zone hinzufügen möchte?
- Den Scan erneut aufrufen, Daten ergänzen und speichern
- Warum bekomme ich bei T2S eine Fehlermeldung bezüglich curl_init?
- Du hast das LoxBerry Image auf einer VM installiert. Aus derzeit unerfindlichen Gründen werden 3 Pakete bei der Grundinstallation vom LoxBerry nicht installiert. Bitte installiere mit dem root User manuell folgende Pakete: apt-get install curl libcurl3 php5-curl
- Warum bekomme ich einen Fehler bei einer Gruppendurchsage?
- Eine Zone darf innerhalb der Syntax nur einmal verwendet werden und nicht über member= noch einmal hinzugefügt werden.
- Bsp. falsch: http://<DEINE IP>/plugins/sonos4lox/index.php?zone=kueche&action=sendgroupmessage&member=kueche,buero&text=dies ist ein test&groupvolume=15
- Bsp. richtig: http://<DEINE IP>/plugins/sonos4lox/index.php?zone=kueche&action=sendgroupmessage&member=buero&text=dies ist ein test&groupvolume=15
- Warum bekomme ich keine Daten per UDP in den Miniserver?
- Der Datentransfer in der Konfiguration ist ausgeschaltet.
- Das Portforwarding am Router nicht durchgeführt. (siehe "Miniserveranbindung" → "Portforwarding")
- Senderadresse im virtuellen UDP-Eingang leer lassen
- Warum höre ich keinen playgong/jingle vor meiner T2S?
- Das Jingle MP3 File muss in folgendes Verzeichnis kopiert werden: /loxberry/data/plugins/sonos4lox/tts/mp3
- Warum wird keine messageid abgespielt?
- Die numerischen MP3 Files müssen in folgendes Verzeichnis kopiert werden: /loxberry/data/plugins/sonos4lox/tts/mp3
- Warum wird keine MP3 (T2S oder messageid) abgespielt?
- Du hast in deinem Router die IPv6 Unterstützung markiert.
- Warum bekomme ich nur 1x eine T2S und danach muss ich die Zone vom Netz nehmen? Z. B. Fehler "/PHPSonos.php on line 2478" (wird sich mit Release 2.0 erledigen) → erledigt
- Derzeit ist mir die Ursache nicht bekannt, ich kann es auch nicht reproduzieren. Ein Workaround ist die aktuelle Playliste aus der Queue löschen, die Zone ca. 2 Minuten vom Strom zu nehmen und dann sollte es funktionieren.
- Bei Nutzung von Radio oder leerer Queue sollte es einwandfrei funktionieren. Es kann auch sein das evtl. mind. 1 Titel der Playliste (z.B. Streaming Liste) nicht mehr erreichbar ist und von daher gibt es den Fehler beim Speichern der Playliste.
- Warum wird eine T2S zweimal abgespielt obwohl im virtuellen Ausgangsbefehl nur ein Eintrag bei "Befehl bei EIN" vorhanden ist?
- Im virtuellen Ausgangsbefehl ist der Haken bei "Als Digitalausgang verwenden" nicht entfernt. Das muss bei Ansage eines Textes mit dem Parameter <v> (Übernahme eines Wertes aus Loxone) durchgeführt werden.
- Im virtuellen Ausgang ist der Haken bei "Verbindung nach Senden schließen" nicht gesetzt
- Die Ansage erfolgt basierend auf einer Textgenerierung aus einem Stausbaustein heraus. Hierzu weiter oben im Wiki unter Einzel-/Gruppendurchsagen aus einem Statusbaustein heraus nachschauen.
Wer Fehler im How-to findet darf sie gerne behalten oder selber korrigieren
Verwandte Artikel
189 Kommentare
dustpuppy sagt:
Ein ganz netter Tweak zu Text2Speech, den ich euch nicht vorenthalten möchte.
Ich betreibe den loxberry als VMware auf meinem MacMini. Auf dem loxberry Image selbst läuft ja kein MacOS-say Kommando, mit dessen Hilfe leicht lokal eine Sprachausgabe erzeugt werden könnte. Ich habe das MacOS-Plugin so modifiziert, dass es sich per SSH auf den MacMini-Host connected, dort per say-Command eine temporäre AIFF-Datei erzeugt, die dann sofort per SCP wieder in das loxberry-Image kopiert wird. Das ist schneller und lokaler als einen Internet-T2S-Service dafür zu bemühen und funzt bei mir wunderbar.
Zu beachten ist, dass der SSH-Befehl ohne weitere Interaktion auszuführen ist. Ich habe das mit den bekannten .ssh/authorized_keys gelöst, um die Authentisierung zwischen loxberry und MacMini zu automatisieren.
Die Methode MACOS-Sprachumwandlung ist leider im Wiki hier noch relativ dürftig beschrieben, von daher war ein bisschen reverse-engineering angesagt, um die Funktionsweise begreifen zu können. Ausserdem ist in der Standard-MAC_OSX.php noch die Variable messageStorePath undefiniert, was sicherlich mit der Kurzform mpath verwechselt wurde. Ist in dem Beispiel oben aber jetzt ebenfalls gefixt.
Viel Spass beim lokalen Sprache umwandeln!
dustpuppy
Oliver Lewald sagt:
Danke für deine Arbeit, werde ich beim Upgrade übernehmen. Falls du Lust hast kannst du ja das Wiki für den OS X Bereich ergänzen.
Außerdem ist beim nächsten Update die Offline Engine Pico2Wave und Amazon Polly integriert. Microsoft Bing inkl. Translation kommt auch noch irgendwann, ist aber nicht Prio 1.
Mac sagt:
Lob an die Entwickler. Super Plug-In.
jetzt möchte ich gerne die Türklingel über Sonos Abspielen aber ohne Jingel vorher. Wie lautet dafür das Kommando?
hat jemand eine Idee
Oliver Lewald sagt:
...action=sendmessage&messageid=100
siehe "Sonstige Funktionen"
Jens Theobald sagt:
Hallo Oliver,
du schreibst ja, dass es mit bestimmten Gruppenkonstellationen zu Fehlern kommt.
Ich habe nun folgendes und bin mir nicht sicher, ob das dieser bekannte Fehler ist oder ich was falsch mache:
Ich höre Radio in einer Gruppe (kueche und wohnzimmer). Wenn ich nun eine Durchsage, mit sendmessage an kueche schickew wird sie nicht wiedergegeben. Stattdessen wird die Gruppe aufgelöst, küche geht auf stopp und wohnzimmer läuft weiter.
folgender Error Log:
2017-01-29 14:07:42 - USER defined NOTICE: [8], Undefined variable: sonoszone in /opt/loxberry/webfrontend/html/plugins/sonos4lox/sonos2.php in line 268,
2017-01-29 14:07:42 - USER defined WARNING: [2], array_key_exists() expects parameter 2 to be array, null given in /opt/loxberry/webfrontend/html/plugins/sonos4lox/sonos2.php in line 268,
2017-01-29 14:07:42 - USER defined NOTICE: [1024], Die Zone kueche ist nicht vorhanden oder Offline. Bitte prüfen und ggf. in der Config die Zone hinzufügen in /opt/loxberry/webfrontend/html/plugins/sonos4lox/sonos2.php in line 1312,
Danke vorab & Gruß
Oliver Lewald sagt:
ist der Fehler ständig reproduzierbar oder taucht er nur sporadisch auf? Ich habe ein ähnliches sporadisches Problem mit einer Zone, hängt wohl mit der gewählten Ping Methode zusammen. Das Script prüf bei jedem Aufruf ob alle Zonen Online sind, falls nicht kommt o.g. Fehler.
Jens Theobald sagt:
Hi,
also bei mir war der Fehler reproduzierbar, auch mit anderen Gruppenkombinationen, Wohnzimmer und Kinderzimmer....
Oliver Lewald sagt:
Schau mal ins Forum für sonos4lox und hier explizit post #50. Probiere das bitte mal aus und gebe mir bitte feedback. Am besten auch im Forum
xpert sagt:
Hallo soweit alles bestens...
Funktioniert alles bis auf folgenden Sender:
Wenn ich diesen versuche hinzuzufügen läuft das PHP script in einen Fehler rein.
USER defined NOTICE: [1024], Keine Titel in der Playliste zum Abspielen. in /opt/loxberry/webfrontend/html/plugins/sonos4lox/sonos2.php in line 293,
Gibt es hierzu allenfalls Abhilfe? Wäre toll...
Besten Dank im Voraus
Oliver Lewald sagt:
Habe den Sender gerade meinen Favoriten hinzugefügt und funktionierte auf Anhieb. Du darfst im Feld Sendername kein Hochkomma oder Anführungszeichen verwenden, sonst klappt das Speichern nicht
Sebastian Lorenzen sagt:
Hallo zusammen,
vielen Dank erst einmal für die tolle Arbeit hier!
Ich bin gerade dabei, Sonos in mein Loxone-System zu integrieren. (Bin jedoch blutiger Loxone-Anfänger!)
Ich würde gern vom Sonos (Loxberry) den zur Zeit gespielten Titel abfragen. Leider ist in diesem Punkt die Miniserveranbindung bei der Einrichtungsanleitung (Punkt "Eingangsseitig") recht
durcheinander geraten, so dass mir nicht klar ist, welche virtuellen Eingänge (mit welchen Werten) hier angelegt werden müssen, und komme deshalb nicht weiter.
Gerade dieser Bereich macht mir Schwierigkeiten zu verstehen:
"und füllt folgenden "virtuellen Eingangsverbinder" (kein UDP Eingangsverbinder) im MS:
http://MS_User:MS_Pass\MiniServer:MS_Port/dev/sps/io/fetch_sonos
erstelle im MS einen "virtuellen Eingangsverbinder" und benenne ihn in der Bezeichnung "fetch_sonos". Um die Daten über UDP empfangen zu können erstelle zuerst einen virtuellen UDP-Eingang und trage bei Senderadresse die IP deines LoxBerry's (WebServer) ein:
Um Daten per UDP empfangen und verarbeiten zu können lege bitte als nächstes einen virtuellen UDP Eingang an, benenne ihn und final noch den UDP Empfangsport analog zur Sonos Config eingeben.
Wichtig: Bitte die Senderadresse leer lassen!"
Mir kommt es so vor, als wenn der Text ein wenig durcheinander geraten ist?
Welche Eingangsverbinder mit welchen Werten muss ich nun anlegen? Und wie visualisiere ich das ganze? Mit welchem Baustein?
Über eine Hilfe würde ich mich wirklich sehr freuen!
Vielen Dank im Voraus!
Sebastian
Andreas Lattmann sagt:
Wieso kommt bei mir bei der Text2Speech Funktion immer die Fehlermeldung:
Zudem wäre der Hinweis, dass der ordner mit den Files auf Sonos in die Musikbibliothek eingefügt werden muss sehr wichtig.
Ansonsten perfekt und vielen Dank für die ausgezeichnete Arbeit
Oliver Lewald sagt:
Da ist was bei deiner Installation schief gelaufen, öffne mal die Datei sonos.cfg und ersetze REPLACEBYSUBFOLDER durch sonos4lox. Dann erscheint auch eine sinnhafte Error Meldung in der log datei.
Der Ordner mit den Files muss eben nicht zur Bibliothek hinzugefügt werden, ansonsten hätte ich das schon im WikI als ein muss beschrieben.
Andreas Lattmann sagt:
Lieber Oliver
Wow, das ist ja noch viel schneller als ich hoffte! Super, eine Neuinstallation des Plugins hat geholfen und alles läuft jetzt!
Ganz herzlichen Dank für die ausgezeichnete Arbeit, die gute Anleitung und natürlich die Hilfe bei Problemen!
Liebe Grüsse
Andreas
Andreas Lattmann sagt:
Liebe Kollegen
Gibt es eine Möglichkeit über einen Sonos Taster bei kurzem Drücken Toggle zu haben und beim langen drücken lauter/leiser aber solange bis man wieder loslässt? Ich kenne die Locone Programmierung noch nicht somit, daher die (eventuell) dumme Frage.
Mit herzlichem Dank Andreas
Andreas Lattmann sagt:
Sorry, natürlich Loxone Taster (der mit den 5 Tastern)
Andreas Lattmann sagt:
Liebe Kolleginnen und Kollegen
Das Sonos for Lox ist wirklich ein ausgezeichnetes Plugin. Leider schaffe ich es nicht, dass mit der Rampto-Funktion ein Radiosender langsam in der Lautstärke erhöht wird (Wecker). Mit einer Sonos Playlist klappt es aber leider nicht mit einem Radiosender. Der Springt direkt auf die Endlautstärke.
Vielen Dank für einen Tipp dazu
Oliver Lewald sagt:
Antwort siehe Thread im Forum
Michael sagt:
Eine Gruppe mit 2 x Play 1, sowie der Playbar wird nicht korrekt erkannt. Es wird nur 1 Play1 angezeigt. Die Sprachausgabe scheint leider derzeit auch nicht zu funktionieren.
Oliver Lewald sagt:
Was meinst du mit erkannt? Beim Scannen der Zonen oder im laufenden Betrieb?
Bitte das nächste Mal ins Forum posten, danke
Florian sagt:
Hallo Oliver,
wenn ich über den Befehl "action=radioplaylist&playlist=EXAKTER NAME_DER_RADIOSTATION" auf einen gewünschten Radiosender umschaltet,
dann wird dieser Sender wieder mit der Lautstärke wiedergespielt, diese ich der Konfiguration unter "SonosVol" eingetragen ist.
Kann man es realisieren, dass der neue Sender in der gleichen Lautstärke wieder gespielt wird, wie die Lautstärke den der zuvor gehörte Sender hatte???
Nachtrag: Ich habe es mittlerweile auch über die Radiofavoriten in der Konfiguration versucht.
(Aufruf über den Befehl... "/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=nextradio")
Aber auch hier wird immer für den nächsten Sender die "Standard-Lautstärke" eingestellt!
Brauche bitte weiterhin eure Hilfe... Danke!
Gruß Flo
Florian sagt:
Ich hätte noch eine Frage...
Kann ich mir den Namen des Radiosenders, der gerade gespielt wird, in der LOXONE App anzeigen lassen???
Oliver Lewald sagt:
ja, siehe Empfangen von Titel/Interpret bzw. Radiosender Info
Alex sagt:
Hi oliver,
ich habe dein Sonos4loxone erfolgreich auf einem Synology NAS laufen. alles funktioniert.
Nun wollte ich das plugin auf meinem Rasberry testen. Befehle wie play pause stop funktionieren leider habe ich ein problem mit tts. Möchte ich eine .mp3 aus dem ordner sonos_tts/mp3 abspielen kommt folgender Error:
Neuinstallation des Plugins habe ich schon versucht.
Edit:
Musste Grade festellen dass seit dem Fehler das Plugin auf dem Synology auch nicht mehr sauber läuft! Möchte ich eine mp3 abspielen. werden alle im ordner enthaltenen mp3 nacheinander abgespielt. möchte ich einen text ausgeben über tts werden auch alle mp3 abgespilet. der text witd nicht wiedergegeben.
Gruß
Alex
Patrick Steinberg sagt:
Moin,
ich habe genau die selben Probleme. PLay/Pause usw funktioniert alles nur TTS funktioniert nicht. Es geht immer genau einmal nachdem man die Lautsprecher stromlos gemacht hat.
Gruß
Patrick
Alex sagt:
Patrick, danke für den Tipp. Beim mir läuft wieder alles nach Neustart von Sonos.
Oliver Lewald sagt:
Löscht bitte die aktuelle Playliste aus der Queue, nehmt die Zone ca. 2-3 Minuten vom Strom und dann noch mal ausprobieren. Es kann auch sein das evtl. mind. 1 Titel der Playliste (z.B. Streaming Liste) nicht mehr gültig/erreichbar ist und von daher gibt es dann den Fehler beim Speichern der Playliste.
Funktioniert es denn mit Radio und mit leerer Queue einwandfrei?
Patrick Steinberg sagt:
Moin,
sobald ich eine TTS durchsage mache wird eine Sonos-Playlist angelegt, diese durchsage geht dann auch nur einmal. Wenn ich die Playlist lösche geht es dann wieder einmal. Muss ich noch irgendwo eine Freigabe erteilen? Stromlos hatte ich inzwischen auch schon alles einmal gemacht.
Oliver Lewald sagt:
Was meinst du mit wenn du die Playliste wieder löscht? Diese heißt temp_t2s und wird vom Script automatisch wieder gelöscht!
Wie bereits erwähnt, mind. 1 Song in der PL ist nicht mehr gültig!! Mache die Queue doch mal leer, erstelle eine neue Playliste und probiere dann noch mal.
Noch mal, was passiert bei Radio und leer?
Oliver Lewald sagt:
In eigenem Interesse: Es wäre echt toll wenn ich auch mal feedback bekomme damit ich verstehe wo das Problem liegt oder ob Sie gelöst worden sind. Ihr wollt alle immer Hilfe aber gebt kein Feedback!
Patrick Steinberg sagt:
Tut mir leid, ich hab es am Wochenende einfach nicht geschafft. Die temp_t2s wird angelegt und bleibt dann aber solange bis ich diese manuell lösche. In der Sonos App habe ich gar keine Playlisten angelegt. Oder meinst du woanders? Radio abspielen funktioniert, es wird aber trotzdem ein Fehler angezeigt (Fehlerlog folgt). Was meint du mit leer?
Die Problematik scheint die selbe wie ein weiter unten bei Patrick Wagner zu sein.
Patrick Wagner sagt:
Ich würde gerne den Türgong abspielen, über die MessageID 100. Das klappt aber immer nur ein einziges Mal, nachdem ich die Zone neu am Strom habe. Rufe ich die URL zum abspielen ein zweites Mal auf, erhalte ich direkt eine Fehlermeldung:
http://192.168.15.106/plugins/sonos4lox/index.php?zone=kueche&playgong=yes&action=sendmessage&messageid=100&volume=30
Läuft bereits Musik, wird diese zwar unterbrochen, aber der Gong wird nicht abgespielt.
UPDATE: Lösche ich die Playlist, kommt der Gong. Danach sind in meiner Liste aber automatisch wieder über 8500 Titel drin und das abspielen des Gongs schlägt wieder fehl.
UPDATE2: Liste löschen → Radio starten → Gong abspielen → Radio läuft anschließend weiter → 8.000 Song kommen von PrimeMusic automatisch in die Playlist → Gong spielt kein zweites Mal mehr.
Oliver Lewald sagt:
ein wenig Geduld noch, mit dem nächsten Release wird das gesamte Konzept wieder auf die alte Version umgestellt d.h. der Fehler wird nicht mehr auftreten.
Da es aber ein größeres Release ist muss es erst noch ausgiebig getestet werden.
Patrick Steinberg sagt:
Super, vielen Dank.
Marcel Fuellemann sagt:
Frage, muss ich bei jedem "Update" auf dem Rasperry das Sonos Plugin deinstallieren und die neue Version installieren? oder habe ich etwas übersehen?
Danke bestens
Gruss
Marcel
Oliver Lewald sagt:
einfach nur erneut installieren (ohne deinstallieren), die Update Programme laufen automatisch.
Marcel Fuellemann sagt:
Danke bestens
Kevin Schmidt sagt:
Moin Moin, danke schon mal für das Plugin.
ich habe folgendes Problem:
woran könnte das liegen?
Oliver Lewald sagt:
bitte im Forum posten und bitte mit Angabe der genutzten Sonos bzw. LoxBerry Version und der verwendeten Syntax/Befehl
Patrick Wagner sagt:
Welche Gründe kann es haben, dass Sonos4Loxone über den Browser zu steuern ist, nicht aber über den Miniserver mit virtuellen Ausgängen? Ich habe alles so gemacht, wie hier oben in der Anleitung steht. Virtueller Ausgang angelegt (IP-Adresse des Loxberry-Servers) und virtuellen Ausgangsbefehl angelegt (Bsp. plugins/sonos4lox.....). Wenn ich den Ausgang ansteuere passiert einfach nichts.
Wo befindet sich denn das Access Log des Apachen? Ich konnte das nicht ausfindig machen.
Oliver Lewald sagt:
bitte im Forum posten und bitte mit Angabe der genutzten Sonos bzw. LoxBerry Version und der verwendeten Syntax/Befehl
Uwe sagt:
also wir wollten heute mal die Textansage testen! Vorab im Browser, mit nachfolgenden Ergebnis!
Hat jemand ein Idee?
Oliver Lewald sagt:
bitte im Forum posten und mit Angabe der genutzten Sonos bzw. LoxBerry Version und der verwendeten Syntax/Befehl
Uwe sagt:
http://loxberry/plugins/sonos4lox/index.php?zone=buero_3&action=sendmessage&text=hallo.%20dies%20ist%20ein%20test&volume=20
Sonos Play1
PLAY:1: buero_3
Seriennummer: 5C-AA-FD-6D-DA-48:6
Version: 7.4 (Build 37244160)
Hardwareversion: 1.8.3.7-2
IP-Adresse: 192.168.178.48
WM: 0
sonos4lox_V2.0.7.zip Version: 0.2.2
Oliver Lewald sagt:
Wie auf der Sonos4lox Plug-in Seite beschrieben ist die Systemvoraussetzung für das Plugin die LoxBerry Version 0.2.3
Uwe sagt:
http://loxberry/plugins/sonos4lox/index.php?zone=haupteingang&action=sendgroupmessage&member=buero3&text=hallo.%20dies%20ist%20ein%20test
Version: 0.2.3
wir haben zwei Pi eingerichtet! Sonos lässt sich steuern aber bei TTS kommt bei einer Pi die Fehlermeldung. ?
Uwe sagt:
2017-08-30 08:51:00 - USER defined WARNING: [2], fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /opt/loxberry/webfrontend/html/plugins/sonos4lox/helper.php in line 146,
2017-08-30 08:51:00 - USER defined WARNING: [2], fsockopen(): unable to connect to :1400 (php_network_getaddresses: getaddrinfo failed: Name or service not known) in /opt/loxberry/webfrontend/html/plugins/sonos4lox/helper.php in line 146,
anbei die Einträge aus der Log
Oliver Lewald sagt:
Das liegt meines Erachtens daran das du 2 LoxBerry im Einsatz hast und bei beiden die Domain 'loxberry' haben. Ich hatte auch mal die gleichen Probleme und bin dann auf die IP adrresse geswitched, seitdem laufen 3 LoxBerry parallel ohne Probleme.
Teste doch mal vorab die gleiche Funktion wobei du einen LB vom Netz nimmst.
Uwe sagt:
sind unterschiedlich Standorte, ein Loxberry pro Router
Oliver Lewald sagt:
OK,. Was ist den 'bridge'? Heißt der Sonos Player so?
Uwe sagt:
Sonos Bridge ZB 100 + Player 1 + Player 1 ; ZB 100 stellt LAN Anschluß bereit und über Sonos-Net Kanal 1 an Player 1 +2
Oliver Lewald sagt:
ok, dann ist es logisch das es nicht funktioniert. Da die Bridge immer mal wieder Probleme bereitet sollte diese entfernt werden und auf Wireless umgestellt werden, wobei auch 1 Player per LAN angeschlossen sein kann. Steht denn die Bridge auch in der Config nach dem Scannen?
Uwe sagt:
also erst einmal vielen Dank für die prompte Unterstützung. Nach dem ich die Bridge enternt habe und im Router IPV6 ausgeschaltet habe, alles in Funktion. Danke, super Plugin
Stephan Laarmann sagt:
Hallo zusammen,
ich würde gerne wissen was hier mit "Deine IP" gemeint ist? IP des Loxberry, der Sonosbox oder des Miniservers??
Syntax
Übersicht der gängigsten Befehle, T2S Syntax und auch erlaubte Kombinationen innerhalb einer Syntax. Wer die Funktionen erst im Browser testen möchte, setzt bitte jeweils folgendes vor die Syntax:
Vielen Dank!!
Patrick Wagner sagt:
Ich habe jetzt auf 2.0.8 upgedatet und wollte die Zonen neu scannen, da sich die IP-Adressen geändert haben. Jetzt erhalte ich immer:
Software error:
JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at /opt/loxberry/webfrontend/cgi/plugins/sonos4lox/index.cgi line 602, <$fh> line 1.
For help, please send mail to the webmaster (no address given), giving this error message and the time and date of the error.
Oliver Lewald sagt:
ersetzt bitte in der Datei webfrontend/html/plugins/sonos4lox/system/network.php die Zeile 79 durch
$fh = fopen($home.'/config/plugins/sonos4lox/tmp_player.json', 'w');
Dann sollte es gehen.
Patrick Wagner sagt:
genau das steht doch da schon?! Warum Gleiches mit Gleichem ersetzten?
Oliver Lewald sagt:
weil in der Installationsdatei etwas anderes drin steht, was i.d.R. bei der Installation korrigiert wird, es aber durch Abbrüche beim Apache Upgrade nicht immer auch ausgeführt wird.
Von daher besteht die Wahrscheinlichkeit dass das Scannen anschließend nicht funktioniert.
Patrick Wagner sagt:
Hmm.. Also bei mir funktioniert das Scannen nach wie vor nicht, obwohl in der Datei die Zeile genau so drinsteht.
Oliver Lewald sagt:
Was steht denn in der Log Datei? (log/system/apache2/error.log). Wenn du auf einer VM QNAP arbeitest hast du evtl. eher ein Problem mit NAT.
Frederik Keller-Berndorff sagt:
Hallo in die Runde,
ich versuche seit einiger Zeit, unsere Türklingel über die Sonos Boxen laufen zu lassen und bekomme es einfach nicht ans laufen.
Habe bereits die Datei 100.mp3 im korrekten Verzeichnis abgelegt, neugestartet und den (hoffentlich) richtigen Befehl eingegeben. meineIP/plugins/sonos4lox/index.php?zone=schlafzimmer&playgong=yes&action=sendmessage&messageid=100&volume=30.
Ich bekomme dann folgende Nachricht
Kann mir irgendjemand helfen?
Besten Dank vorab
Frederik
Oliver Lewald sagt:
Du hast eine Bridge in deinem Sonos Netzwerk. Bitte entfernen und dein Sonos Netz auf Wireless einstellen.
Das Script versucht die Bridge zu muten, was nicht funktionieren kann.
valentin sagt:
Hallo, zuerst Danke und Gratulation zu dem tollen Plugin!
Ich habe heute unbedacht den MS auf Vers. 9.0 aktualisiert.
Nun funktioniert der Plugin nicht mehr. Im Loxberry Interface kommt folgenden Meldung:
Software error:
Ich nehme an, dass es mit dem Update zu tun hat. Für den Fall, dass es ein Zufall ist: was denn da passiert?
Oliver Lewald sagt:
Dein Problem hat nichts mit dem Update auf V9 zu tun, es läuft einwandfrei da es ja auch nur http Ausgänge sind.
Patrick Hak sagt:
Hallo, habe folgende Meldung:
For help, please send mail to the webmaster ([no address given]), giving this error message and the time and date of the error.
loxberry auf PI3 und installation Version: 0.2.3
Habe das sonos4lox plugin installiert.....reboot.....zonen scan →
Die Meldung eben....ich habe schon diverse Varianten mit deinstallation und komplett neuinstallation durchgeführt. Bin kurz vor dem Verzweifeln.....
Oliver Lewald sagt:
Da stimmt was mit dem Scan nicht. Gebe mal im Browser folgendes ein:
http://LOXBERRY IP/plugins/sonos4lox/system/network.php
Danach öffne die Sonos4lox Konfigurationsseite und prüfe ob die Zonen da sind, ggf. noch mal neu scannen.
Patrick Hak sagt:
In der Tat, habe den Loxberry bei einem Kumpel versucht.....Es wurde sauber eine neue Zone erkannt. Offensichtlich haben meine Sonos Boxen zuviel müll drauf
Den Aufruf der genannten URL konnte ich nicht mehr machen, da ich den Loxberry meinem Kumpel geschenkt habe. Ich werde für mich auch noch einen Loxberry bauen.....
Michael sagt:
Hallo,
habe ein kleines Problem mit dem abspielen von mp3s. Hab alles laut Anleitung versucht, aber der Gong sowohl auch selbst erstellte mp3s wollen nicht abspielen..... Hab die Dateien mit Hilfe von WinSCP in denn richtigen Ordner gezogen und auch als Namen Nummers vergeben, aber es wird nichts abgespielt. Textdurchsagen und alles ander funktioniert wunderbar. Vielleicht weiß jemand eine Antwort darauf, wäre sehr dankbar. Ansonsten ist dieses Plugin wirklich TOP!!!!!
Yves Borel sagt:
Hallo Michael
hatte die letzten beiden Tage ähnliche Probleme. Ich hatte den sonso_tts Ordner bei Sonos nicht als Musikbibliothek eingerichtet. Seit ich dies gemacht hatte funktioniert es. Könnte es vielleicht daran liegen?
Michael sagt:
Danke für deine schnelle Antwort. Hab gerade den Ordner bei Sonos ergänzt, kann auch dauraf zugreifen und die hinterlegten mp3s abspielen. Sobald ich aber eine Schaltbefehl über Taster gebe, kommt die Anfrage bei Sonos an aber es wird der Fehler "Keine Freigabe vom tts Ordner angezeigt". Aber wie gesagt normal die mp3 über den Ordner in Sonos abspielen funktioniert.....
Oliver Lewald sagt:
siehe Hinweis unter FAQ/Troubleshooting:
mit WinSCP die Dateirechte setzen, dann ist es auch nicht notwendig das Verzeichnis zur Sonos Bibliothek hinzuzufügen.
Michael sagt:
Danke, hat funktioniert.
Yves Borel sagt:
Danke Oliver
weiss nicht ob ich etwas falsch verstehe: Setzte ich den Ornder tts und seine Unterordner, inkl. Dateien auf 0644 geht bei mir gar nichts mehr. Setze ich jedoch nur die Dateien auf 0644 hats bei den paar Test die ich gemacht habe funktioniert. Muss ich also nur die Dateirechte entsprechend ändern?
Oliver Lewald sagt:
Nicht den kompletten tts Ordner, nur den mp3 Ordner und die Dateien, alles andere muss auf 0755 sein. Wenn ich mich recht entsinne sogar NUR die Dateien auf 0644, bin mir aber nicht mehr ganz sicher
f.hien sagt:
Oliver Lewald sagt:
Notice: failed to open answer: No Netiquette exist
Warning: failed to open answer: User does not read Wiki
Fatal Error: Call to member function "wie stelle ich eine Frage"
f.hien sagt:
Sorry ja ich weiß ich sollte etwas dazu schreiben! Also das Radio umschalten funktioniert, aber wenn ich versuche den Sprachausgabe zu testen bekomme ich diese Fehlermeldung. Irgendwie hat mein Loxberry 2 IP-Adresse. bzw. die Group Coordinator-IP: x.x.x.x ist eine Falsche IP adresse
Oliver Lewald sagt:
Bei dir ist mit Sicherheit die Installation nicht korrekt beendet worden! Das REPLACEBYSUBFOLDER wird bei der korrekten Installation mit "sonos4lox" ersetzt.
Bitte einmal de-/neuinstallieren, dann sollte der Teil behoben sein. Bzgl. 2 IP-Adressen beim LB gibt es ein Wiki
LoxBerry hat zwei IP-Adressen
Jeremy Pritchard sagt:
Hi there! This is a great plugin - thank you!
I'm having an issue controlling the plugin from the Miniserver - every command is duplicated. I have tried every type of switch in the Loxone config to eradicate issues with trailing edge triggering but I can not solve it. I have the virtual outputs as non-digital.
Do you know why this might be happening? I am trying to create a Sonos controller in the Loxone app that will allow play / pause (with pushbutton), Previous / Next (with left / right buttons) etc ...
Thanks
Jeremy
Jeremy Pritchard sagt:
I've resolved most of my issues now. However, I have a State function block outputting text and if something triggers the text, it outputs successfully, however, when the trigger disappears, the output from the state function returns to "no text" output - this is being sent to the loxberry - is there anyway for T2S to not fire if the text parameter is blank?
Oliver Lewald sagt:
This relates to a bug in State function. The state function is analog and fires at state 0 and 1, if your final state is 0 or empty it fires also.
Jeremy Pritchard sagt:
Hi Oliver
To get round this issue, I set the Status-text for the state value of 0 to 'nothing' and then in text2speech.php I add the following lines at the start of the sendmessage and sendgroupmessage functions:
if (isset($_GET['text']))
{
if ($_GET['text']=="nothing"){
echo 'No text';
exit();
}
}
Is this the best way of doing it? I hate having to modify your code but...
Yves Borel sagt:
Hi Oliver
kann man die 2.1.0 Version schon irgendwo herunter laden?
Oliver Lewald sagt:
Nein, derzeit noch nicht. Wird wohl Ende der Woche werden.
Stefanski sagt:
Ich habe ein Problem mit dem Plugin:
Mein Sonos soll als Türklingel dienen. Damit das funktioniert habe ich Im Loxone eine Ausgang angelegt welcher den Befehl:
Ausführt. Das Funktioniert auch in vielen Fällen gut. Jedoch manchmal, ich kann es bisher nicht eingrenzen, spielt Sonos einfach den nächsten? Song einer Playliste die nicht zwingend die aktuelle sein muss. Eventuell ist es einfach der nächste Track der Playlist?
Dann ist im Haus High Life, weil extrem laut irgendeine Musik anfängt zu spielen, anstatt zu klingeln.
In vielen fällen funktioniert es aber auch sehr gut. Musik Spielt, Klingelknopf wird gedrückt, Sonos gibt Klingelsound wieder, und spielt dann weiter die Musik.
Hat jemand einen Tipp woran das hängen könnte?
Oliver Große Bley sagt:
Das selbe Phänomen habe ich auch seit ein paar Tage und kann es nicht beheben.
Stefanski sagt:
gibt es da bei dir schon was neues? Ich habe rausgefunden, dass wenn man die Playlist im Sonos löscht funktioniert es wieder eine weile. Aber irgendwann passiert wieder das selbe.
Oliver Große Bley sagt:
Habe auch die Playlist gelöscht und jetzt geht´s wieder, mal schauen wie lange ... Danke für den Tipp
Jürgen Schorb sagt:
Hi Oliver,
ich habe ein kleine Problem. Den Loxberry habe ich von Hand in einem bestehenden Debian Jessie installiert (Raspberry Pi).
Der Teil in Deinem Plugin welcher das Config - File anzeigt bringt nach der ersten Konfiguration einen "Page Error".
Es liegt an den eckigen Klammern im Config File - jetzt meine Frage ... welche Perl und Config::Simple Version sollte denn auf dem System vorhanden sein?
Bei mir ist es
Perl > 5.20.2
Config::Simple > 4.58
Grüße Jürgen
Oliver Lewald sagt:
ganz ehrlich, keine Anhnung, bin kein Linux Freak. Vielleicht mal im LoxBerry Forum bei Allgemein oder Entwickler posten
Hanspeter Kaufmann sagt:
Hallo, habe keinen Eintrag zu meinem Problem gefunden, darum schreibe ich hier.
Habe eine Playbar mit Sub und 2 play:1 als eine Gruppe (stube) am TV per Spif angeschlossen.
Problem: solange die gruppe stube dem TV zugewiesen ist (egal ob Fernseher ein oder aus ist) kann ich keine Radio sender per taster einstellen. Befehl: (/plugins/sonos4lox/index.php?zone=stube&action=radioplaylist&playlist=Planet 105)
Die Befehle lauter und leiser gehen aber toggle und stop zb. nicht.
ist irgend etwas anderes am laufen ein album oder Playlist gehet der befehl einwandfrei.
Was muss ich tun um Sonos aus dem TV mod holen zu können?
(ZB. Zeitansage, auch während dem Fernsehschauen geht. Befehl:/plugins/sonos4lox/index.php?zone=stube&action=sendmessage&clock)
Oliver Lewald sagt:
ist ein Bug den ich korrigieren muss. Du kannst die Datei webfrontend/html/plugins/sonos4lox/sonos2.php öffnen und unterhalb von Zeile 1654 folgenden Code reinkopieren:
$sonos->SetQueue("x-rincon-queue:". $sonoszone[$master][1] ."#0");
dann sollte es gehen. Bitte feedback
Hanspeter Kaufmann sagt:
Wow schnelle Antwort
habe ich gemacht. nicht erfolgreich:
ausser ich habs falsch gemacht prscrn:
liebe Gruess Ha-Pe
Oliver Lewald sagt:
dann kopiere bitte die Zeile vor jeder Zeile in der $sonos→Play(); steht
Hanspeter Kaufmann sagt:
Gemacht, leider: NOK
Es waren 15 Einträge, ein Ausschnitt:
Oliver Lewald sagt:
Um noch mal den genauen Sachverhalt zu klären was geht und was nicht basierend auf dem Befehl
/plugins/sonos4lox/index.php?zone=stube&action=radioplaylist&playlist=Planet 105:
Hanspeter Kaufmann sagt:
Wenn TV in der Gruppe stube hinterlegt ist:
folgendes geht:
Auch andere Befehle wie Bauernregel und Witz gehen.
(in der sonos App: es wechselt zur mp3 datei und am Schluss ist wieder TV hinterlegt)
folgendes geht nicht:
(in der Sonos app ist keine reaktion zu sehen, auch andere hinterlegte Radiosender gehen per Befehl nicht)
Im Plugin habe ich den Sender wie folgt hinterlegt:
Planet 105 - x-rincon-mp3radio://http://radio.netstream.ch/planet105_128k_mp3
(ist nicht TV auf der Gruppe, sondern andere Radiosender oder Playlists, dann gehen alle Befehle)
Ps: nach dem eintragen deines Code vor allen $sonos→Play(); ging keiner der Befehle mehr.
Nachtrag: 2 Tests mit einer zusätzlicher Gruppe: Der gruppe stube (Playbar+Sub+ 2x Play:1) die gruppe keller (2 Play:1) hinzugefügt (beide Gruppen haben das TV Signal)
Mit dem Befehl: /plugins/sonos4lox/index.php?zone=keller&action=radioplaylist&playlist=Planet 105 - löst keller sich von der Gruppe und dem TV und spielt den gewünschten Radiosender, stube bleibt auf TV.
Mit dem Befehl: /plugins/sonos4lox/index.php?zone=stube&action=radioplaylist&playlist=Planet 105 - passiert gar nichts, die Gruppen bleiben mit TV.
Oliver Lewald sagt:
wenn ich das richtig lese hast du 2 Stereopaare (1x keller bestehend aus 2 St. Play 1 und das gleiche als stube). Wenn beide Paare getrennt laufen funktioniert alles, wenn beide Paare als Gruppe zusammen laufen dann nicht? Bei Sonos musst du wissen wer in der Gruppe der Master ist und welche der Slave, in der Sonos App erkennst du es daran welche Zone oben in der Gruppe steht. NUR diese kannst du ansprechen, wenn du irgendeine andere per Befehl ansprichst passiert rein gar nichts (außer Volume und Mute). Die sogenannte Slave Zone hängt nur dumm am Master und macht alles was der Master macht.
Hanspeter Kaufmann sagt:
nicht ganz so, die gruppe keller kannst du aussen vor lassen. Das Problem betrifft nur die stube.
Gruppe stube: 1 Playbar + 1 Sub + 2x play:1 als eine Gruppe. die Playbar ist direkt per Spif am TV angeschlossen.
Kann es sein, das es daran liegt, dass die Gruppe stube eine Playbar als Master hat?
Bezüglich den Tests:
Gruppe keller: 2x play:1
In den Tests habe ich nur herausgefunden, dass wenn diese beiden Gruppen (stube und keller) zusammen am TV hängen, mit dem Befehl "/plugins/sonos4lox/index.php?zone=stube&action=radioplaylist&playlist=Planet 105" nichts passiert.
ABER
Mit dem Befehl "/plugins/sonos4lox/index.php?zone=keller&action=radioplaylist&playlist=Planet 105" die Gruppe keller sich problemlos vom TV löst und Radio abspielt. stube bleibt am TV.
Oliver Lewald sagt:
nutze mal den Befehl ...&action=radio&playlist=Planet 105
Ersetze mal die ganze Funktion und gib mir mal feedback:
/********************************************************************************************
/* Funktion : radio --> lädt einen Radiosender in eine Zone/Gruppe
/*
/* @param: Sender
/* @return: nichts
/********************************************************************************************/
function radio(){
Global $sonos, $volume, $config, $sonoszone, $master;
if(isset($_GET['radio'])) {
$playlist = $_GET['radio'];
} elseif (isset($_GET['playlist'])) {
$playlist = $_GET['playlist'];
} else {
trigger_error("No radio stations found.", E_USER_NOTICE);
}
$sonos->Stop();
# Sonos Radio Playlist ermitteln und mit übergebene vergleichen
$radiolists = $sonos->Browse("R:0/0","c");
$radioplaylist = urldecode($playlist);
$rleinzeln = 0;
while ($rleinzeln < count($radiolists)) {
if ($radioplaylist == $radiolists[$rleinzeln]["title"]) {
$sonos->SetRadio(urldecode($radiolists[$rleinzeln]["res"]),$radiolists[$rleinzeln]["title"]);
#$sonos->SetRadio(urldecode($radiolists[$rleinzeln]["res"]));
if (isset($_GET['member'])) {
$member = $_GET['member'];
$member = explode(',', $member);
if (isset($_GET['standardvolume'])) {
foreach ($member as $zone) {
$sonos = new PHPSonos($sonoszone[$zone][0]); //Sonos IP Adresse
$volume = $config['sonoszonen'][$zone][4];
$sonos->SetVolume($config['sonoszonen'][$zone][4]);
}
}
$coord = $master;
$roomcord = getRoomCoordinator($coord);
$sonos = new PHPSonos($roomcord[0]); //Sonos IP Adresse
$sonos->SetVolume($config['sonoszonen'][$master][4]);
} else {
if($sonos->GetVolume() <= $config['TTS']['volrampto']) {
$sonos->RampToVolume($config['TTS']['rampto'], $volume);
} else {
$sonos->SetVolume($volume);
}
}
$sonos->Play();
}
$rleinzeln++;
}
}
Hanspeter Kaufmann sagt:
sorry
geht nicht, weiterhin keine Reaktion.
Oliver Lewald sagt:
another try:
/********************************************************************************************
/* Funktion : radio --> lädt einen Radiosender in eine Zone/Gruppe
/*
/* @param: Sender
/* @return: nichts
/********************************************************************************************/
function radio(){
Global $sonos, $volume, $config, $sonoszone, $master;
if(isset($_GET['radio'])) {
$playlist = $_GET['radio'];
} elseif (isset($_GET['playlist'])) {
$playlist = $_GET['playlist'];
} else {
trigger_error("No radio stations found.", E_USER_NOTICE);
}
$coord = $master;
$roomcord = getRoomCoordinator($coord);
$sonosroom = new PHPSonos($roomcord[0]); //Sonos IP Adresse
$sonosroom->Stop();
# Sonos Radio Playlist ermitteln und mit übergebene vergleichen
$radiolists = $sonos->Browse("R:0/0","c");
$radioplaylist = urldecode($playlist);
$rleinzeln = 0;
while ($rleinzeln < count($radiolists)) {
if ($radioplaylist == $radiolists[$rleinzeln]["title"]) {
$sonos->SetRadio(urldecode($radiolists[$rleinzeln]["res"]),$radiolists[$rleinzeln]["title"]);
#$sonos->SetRadio(urldecode($radiolists[$rleinzeln]["res"]));
if (isset($_GET['member'])) {
$member = $_GET['member'];
$member = explode(',', $member);
if (isset($_GET['standardvolume'])) {
foreach ($member as $zone) {
$sonos = new PHPSonos($sonoszone[$zone][0]); //Sonos IP Adresse
$volume = $config['sonoszonen'][$zone][4];
$sonos->SetVolume($config['sonoszonen'][$zone][4]);
}
}
$sonos = new PHPSonos($roomcord[0]); //Sonos IP Adresse
$sonosroom->SetVolume($config['sonoszonen'][$master][4]);
} else {
if($sonos->GetVolume() <= $config['TTS']['volrampto']) {
$sonos->RampToVolume($config['TTS']['rampto'], $volume);
} else {
$sonos->SetVolume($volume);
}
}
$sonos->Play();
}
$rleinzeln++;
}
}
Hanspeter Kaufmann sagt:
geht leider wieder nicht.
Bin ein php Laie, weiss nicht ob ich die Einzüge richtig mache:
Nach dem ändern ist Loxberry neustart zwingend, oder?
Oliver Lewald sagt:
kein Neustart notwendig. Wenn Klammern falsch wären würde gar nichts mehr gehen. Dann bin ich leider, mangels des Equipments zum Testen, mit meinem Latein am Ende. Die Surround Konstellation macht schon immer Probleme, darüber hinaus hat Sonos mit dem 8.0 Release was an der Topology geändert.
Kann mich ja demnächst mal abends per Teamviewer bei dir aufschalten, vielleicht kriegen wir es ja dann in den Griff (wahrscheinlich erst übernächste Woche, bin auf Geschäftsreise diese Woche). Kannst mir ja schon mal die ID und Password per PN schicken.
Oliver Lewald sagt:
bzw. habe gerade gesehen eine wichtige Zeile habe ich vergessen. Probiere noch mal folgenden COde:
/********************************************************************************************
/* Funktion : radio --> lädt einen Radiosender in eine Zone/Gruppe
/*
/* @param: Sender
/* @return: nichts
/********************************************************************************************/
function radio(){
Global $sonos, $volume, $config, $sonoszone, $master;
if(isset($_GET['radio'])) {
$playlist = $_GET['radio'];
} elseif (isset($_GET['playlist'])) {
$playlist = $_GET['playlist'];
} else {
trigger_error("No radio stations found.", E_USER_NOTICE);
}
$coord = $master;
$roomcord = getRoomCoordinator($coord);
$sonosroom = new PHPSonos($roomcord[0]); //Sonos IP Adresse
$sonosroom->SetQueue("x-rincon-queue:".$roomcord[1]."#0");
$sonosroom->SetMute(false);
$sonosroom->Stop();
# Sonos Radio Playlist ermitteln und mit übergebene vergleichen
$radiolists = $sonos->Browse("R:0/0","c");
$radioplaylist = urldecode($playlist);
$rleinzeln = 0;
while ($rleinzeln < count($radiolists)) {
if ($radioplaylist == $radiolists[$rleinzeln]["title"]) {
$sonos->SetRadio(urldecode($radiolists[$rleinzeln]["res"]),$radiolists[$rleinzeln]["title"]);
#$sonos->SetRadio(urldecode($radiolists[$rleinzeln]["res"]));
if (isset($_GET['member'])) {
$member = $_GET['member'];
$member = explode(',', $member);
if (isset($_GET['standardvolume'])) {
foreach ($member as $zone) {
$sonos = new PHPSonos($sonoszone[$zone][0]); //Sonos IP Adresse
$volume = $config['sonoszonen'][$zone][4];
$sonos->SetVolume($config['sonoszonen'][$zone][4]);
}
}
$sonos = new PHPSonos($roomcord[0]); //Sonos IP Adresse
$sonosroom->SetVolume($config['sonoszonen'][$master][4]);
} else {
if($sonos->GetVolume() <= $config['TTS']['volrampto']) {
$sonos->RampToVolume($config['TTS']['rampto'], $volume);
} else {
$sonos->SetVolume($volume);
}
}
$sonos->Play();
}
$rleinzeln++;
}
}
Hanspeter Kaufmann sagt:
kannst du mir das als txt hochladen, oder spielen die Einzüge keine Rolle?
Ich habe die letzten 2 Tests immer aus dem loxone gemacht, da gibt es keine Fehlermeldung... sollte ich im Browser testen?
Ja klar habe TW auch schon in betracht gezogen...
wie geht hier PM?
Oliver Lewald sagt:
testen immer im Browser und debug über die Config vorher einschalten, die Einzüge sind egal. Schick mir TeamViewer Daten an olewald64@gmail.com
Hanspeter Kaufmann sagt:
Heureka!!!
Es funktioniert genau so wie es soll. egal ob tv eingeschalten oder nicht, es wechselt zu radio.
Danke!!!
Hanspeter Kaufmann sagt:
Um es nicht ganz beenden zu wollen: Kannst du einen Befehl generieren, der genau das umgekehrte machen kann? So dass ich per befehl wieder auf Eingang TV wechseln kann.
Oliver Lewald sagt:
Das sollte machbar sein
Philipp sagt:
Hallo Profis!
vieleicht kann mir hier jemand helfen, ich bin komplett am verzweifeln
Loxberry: 0.2.3 / Sonos4Lox: 2.1.2
Sobald irgend ein Stereopaar erstellt wurde bzw. die Playbar mit Stereoboxen verbunden wurde lässt sich kein Scan mehr ausführen.
Fehler:
Die Datei konnte nicht gefunden werden.
=> Es sieht so aus als würde network.php kein tmp_player.json erzeugen und kann somit nicht weiter.
Wenn ich allerdings alle Boxen trenne und einzeln scanne funktioniert alles wunderbar.
Bitte sagt mir, dass es hierfür einen trick gibt dies zu lösen, geht ja bei anderen Leuten auch hier oder?
Danke im Voraus
Volker sagt:
Hallo Allerseits,
habe das gleiche Problem. Scan mit konfiguriertem Surround im WZ nicht mehr möglich...
Ich habe daraufhin die Surround-Konfiguration aufgelöst und den Scan durchgeführt. Anschließend aus der player.cfg händisch den Sub und die überschüssigen Rear-Player gelöscht.
Dann die Surround-Konfig wieder hergestellt. Philipp, das ist ein Workaround, der Dir evtl. helfen könnte?
Weiss jemand eine Lösung, damit der Scan auch mit Surround-Konfiguration wieder funktioniert?
Schon mal danke und Gruss,
Volker
Philipp sagt:
schönen Dank! Werde ich gleich probieren.
Falls dies geht, müsste es auch ohne ändern der player.cfg möglich sein. Denn wenn man im Sonos APP 2 Boxen gleich benennt wird ohnehin nur 1 von 2 in der *.cfg eingetragen.
Mich würds trotzdem interessieren was es da hat. Ich weiß nich wie viele Stunden ich jetzt schon an der network.php spiele aber die ist mirscheint zu heftig
Oliver Lewald sagt:
bitte im Forum folgenden Post lesen, testen und feedback geben:
https://www.loxforum.com/forum/projektforen/loxberry/plugins/74862-loxberry-sonos-plugin-verfügbar?p=133256#post133256
Finn Schürmann sagt:
Hallo zusammen,
ich bekomme leider keine UDP Daten von der Sonos.
Folgendes habe ich kontrolliert:
Ich denke eher das das Problem darin liegt, dass keine Daten ankommen. Zumindest zeigt er eine Daten von Sonos an.
Danke für eure Hilfe!
Viele Grüße
Thomas sagt:
Hallo zusammen
Kann mir jemand weiterhelfen? Ich versuche ein MP3 File auf mehreren Sonos Zonen abzuspielen wenn die Tuerglocke (Loxone Intercom) gedrueckt wird. Per Browser funktioniert der Befehl ohne Probleme, jedoch nicht ueber Loxone. In der Loxone Liveview sehe ich wie der virtuelle Ausgang bei betaetigung der Tuerglocke angesteuert wird, auch funktioniert die Push Benachrichtigung der Loxone Intercom, jedoch ist kein Ton auf den Sonos Lautsprecher zu hoeren.
Hier einige Angaben:
Igor sagt:
Hallo Thomas,
hast du dein Problem gelöst? Ich habe identischen Fall und komme an der gleichen Stelle nicht weiter...((((
Gruß
Igor
Oliver Lewald sagt:
bitt playgong=no aus der Syntax komplett weglassen. Ich weiß gar nicht woher das kommt da es im Wiki nirgendwo so steht. Wenn jingle gewünscht dann playgong=yes, ansonsten nichts.
Und bitte in den Error Log schauen.
Thomas sagt:
Hallo Igor
Ich hab den 'Playgong' Syntax weggelassen und den virtuellen Ausgang nochmals ganz neu erstellt, danach hat es funktioniert.
Leider hab ich nun neue Probleme, weshalb ich es nicht mehr pruefen kann. Werde wohl Loxberry und das Sonos4Lox App auf den neusten Release bringen und dann nochmals neu konfigurieren.
Gruss
Thomas
Igor sagt:
Hi Thomas,
danke für die Antwort. Bei mir hat es nun endlich auch geklappt. Das Problem lag wohl in dem virtuellen Ausgang; den habe ich auch neu angelegt. Davor habe ich aber die Loxberry auf die Version 1.2.1.3 gebracht - funzt soweit ohne Problem, sollst du auch versuchen.
Gruß
Igor
Oliver Lewald sagt:
Schaut bitte IMMER zuerst in das Logfile wenn Probleme auftauchen. I.d.R. wird dort alles aufgezeichnet.
Jeey sagt:
Guten Abend miteinander
Ich würde gerne die reine PHP-Version auf meinem NAS laufen lassen. Dies ist ja nur bis zur Version 2.1.6 unterstützt. Lässt sich diese Version noch irgendwo herunterladen? Besten Dank für eine Antwort.
Wäre es möglich diese Version auf Gibhub zur Verfügung zu stellen? Wäre super!
Viele Grüsse
Oliver Lewald sagt:
GitHub geht nur aufwärts Releases
Jeey sagt:
Super, besten DANK!!! Werde ich am Wochenende direkt ausprobieren.
Arne sagt:
Guten Abend, ich habe neu den loxberry in Version 1.0.0 installiert und das Sonos Plugin 2.1.7. Beim scannen der Zonen erscheint folgende Meldung:
-----
Software error:
For help, please send mail to the webmaster ([no address given]), giving this error message and the time and date of the error.
-----
Mein loexberry steht in einem anderen Subnetz als die Sonos Geräte. Zwischen den Netzen ist im Routing alles offen. Auch ICMP. Alles als TCP und UDP.
Hat jemand eine Idee, woran das liegen könnte? Deutet die Meldung auf ein Problem des Plugins hin? Oder könnte es an den zwei Subnetzen liegen? Kann ich die Player vielleicht manuell hinzufügen?
Danke und LG an die Runde
Arne
Oliver Lewald sagt:
siehe post #448 im Forum. In Zukunft auch bitte dort Probleme melden, danke.
Auch bitte das Sonos Plugin auf v2.1.7_2 aktualiiseren
Rob P sagt:
Hallo, Hat schon jemand versucht ob Sonos One Lautsprecher auch erkannt werden?
Oliver Lewald sagt:
bitte im Forum posten:
https://www.loxforum.com/forum/projektforen/loxberry/plugins/74862-loxberry-sonos-plugin-verf%C3%BCgbar
Clemens M. sagt:
Hallo,
irgendwie funktioniert das bei mir nicht.
Ich hab die neueste Version vom Sonos-Plugin installiert und versuche eine Klingel einzurichten.
So hab ich es probiert, jedoch kommt bei meinem Sonos One im Wohnzimmer nichts raus.
http:IP-ADRESSE VOM LOXBERRY/plugins/sonos4lox_dev/index.php/?zone=wohnzimmer&action=track&file=//LOXBERRY/loxberry/data/plugins/sonos4lox/tts/mp3/2_Airport_gong.mp3
Es funktioniert weder wenn ich das im Browser eingebe, noch wenn ich den Befehl in der Loxone-Config eingebe.
Ich verzweifle schön langsam, da ich eigentlich mein Sonos Soundsystem in 6 verschiedene Räume installieren möchte und bereits an der Klingel scheitere.
Kann ich mein Sonos Soundsystem wenn alles funktioniert, wie es funktionieren soll, so verwenden wie den Loxone Musikserver?
Gibt es etwas vorgefertigtes, was ich in die Loxone-Config importieren kann (mit Statusabfragen usw.)?
Irgendwie hab ich mir das einfacher vorgestellt.
Lg Clemens
Oliver Lewald sagt:
Hi Clemens,
einfach STRG+F und dann nach "Klingel" suchen, da wird dir geholfen. Abgesehen davon lese dir doch das Wiki durch mit allen Beispielen bzgl. Syntax.
Die richtige Syntax lautet:
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=sendmessage&messageid=100&volume=30
wobei die Datei 100.mp3 im sonos_tts/mp3 Verzeichnis liegen muss, aber auch irgendeine andere NUMERISCHE Zahl sein darf
Ach ja, und bitte im Forum posten, da kann dir die Community auch helfen
Alex sagt:
Hallo Oliver,
danke noch mal für das tolle Plugin.
Einen Wunsch hätte ich noch falls dieser nicht bereits umgesetzt ist oder schon auf einer deiner Listen steht.
Ich würde gerne die maximale Lautstärke zeitabhängig einstellen. z.B. von 20.00 Uhr - 7.00 Uhr max Lautstärke 15% sonst 80%.
Ist sowas denkbar bzw schnell umzusetzen?
Gruß
Alex
Oliver Lewald sagt:
machbar schon, nur was ist hier der konkrete Anwendungsfall? Die Lautstärke kannst du ja individuell je Ansage über die Syntax mitgeben, nachts habe ich evtl. Ansagen auch eine Ecke leiser.
Und wenn jemand in der Sonos App die Lautstärke höher stellt wird es ja nicht vom Script unterbunden.
Alex sagt:
Ich lasse den Status der Alarmanlage Durchsagen. Z.B. Wenn ich das Haus verlasse und die Alarmanlage aktiviere kommt die Durchsage Alarm aktiv. Das sollte deutlich hörbar sein also mit Lautstärke 50. wenn ich aber die Alarmanlage für die Nacht scharf stelle dann ist es meist abends kurz vor dem zu Bett gehen und da schlafen schon die Kinder deshalb sollte die Durchsage mit der Lautstärke 10 kommen. Klar kann ich das in der konfig separieren. Habe aber auch noch andere Durchsagen die abends mittags und/oder abends kommen. Z.B Bitte Fenster im Bad schließen. Somit wäre eine zeitgesteuerte Lautstärke für mich interessant.
Oliver Lewald sagt:
Ok, soweit verstanden. Das ganze lässt sich aber doch wunderbar im Miniserver realisieren:
Beispiel Alarmanlage: Du hängst am Alarmausgang, an dem derzeit deine TTS hängt, eine Schaltuhr, diese wiederum legst du als analog aus (siehe Loxone Doku), dann definierst du deine unterschiedlichen Schaltzeiten mit dem Haken „Aktivierung notwendig und gibst bei Wert deinen gewünschten Lautstärkewert ein. Wenn du das alles gemacht hast hängst du an den Schaltuhr Ausgang deine TTS, wobei der Haken „Als Digitalausgang...“ entfernt werden muss. Und im TTS Ausgangsbefehl schreibst du dann deine Syntax und Text ...&say&text=Alarmanlage scharf&volume=<v>.
Somit wird der Wert aus der Schaltuhr als Lautstärkewert übernommen.
Das müsste es aus meiner Sicht gewesen sein. Ich steuere mit diesem Konstrukt unterschiedlichste Lichtszenen je nach Tagesverlauf über Bewegungsmelder, wobei der Wert hier nur zwischen 1 und 8 liegt, welche dann die einzelnen Szenen im Lichtbaustein für den Zeitraum aktiviert.
Alternativ kannst du auch über „Impuls um“ verschiedene Texte/Lautstärken steuern.
Alex sagt:
An so eine Lösung (...&say&text=Alarmanlage scharf&volume=<v>.) habe ich auch schon gedacht. Wusste aber nicht wie ich es umsetzen kann. Werde es morgen mal testen. Danke.
Clemens M. sagt:
Hallo Oliver,
leider kann ich die Version 3.0.0 nicht installieren.
Es kommt immer eine Fehlermeldung, dass diese Version nicht mit meiner Loxberry Version (0.2.4) kompatibel ist.
Oliver Lewald sagt:
steht ja auch a: im Post im Forum b: ganz oben auf der Seite und c: im Plugin install dass die Version mind. LB 1.0.1 benötigt.
Uwe sagt:
Moin,
bei dem Befehl say&witz und say&bauernregel bekomme ich bei Sonos One die Meldung "Wiedergabe von 0.mp3 nicht möglich-Datei //hotelberry/plugindata/sonos4lox/tts/0.mp3 nicht gefunden.
ich habe diese Problem sowohl bei 3.0 und auch bei 2.7.3
plugindata ist in der Musikbibliothek eingebunden und man kann darauf zu greifen
Hat jemand ein Idee?
Oliver Lewald sagt:
bitte im Forum posten
Uwe sagt:
Moin,
bei dem Befehl say&witz und say&bauernregel bekomme ich bei Sonos One die Meldung "Wiedergabe von 0.mp3 nicht möglich-Datei //hotelberry/plugindata/sonos4lox/tts/0.mp3 nicht gefunden.
ich habe diese Problem sowohl bei 3.0 und auch bei 2.7.3
plugindata ist in der Musikbibliothek eingebunden und man kann darauf zu greifen
Hat jemand ein Idee?
David Aigenbauer sagt:
Hallo,
ich bekomme immer bei der Sicherung der Konfiguration folgende Meldung...
ERROR: Schwerwiegender FEHLER: Keine funktionierende Sonos Player Konfigurationsdatei gefunden.
Es wird versucht eine Standard-Konfigurationsdatei anzulegen.
Was mache ich falsch??
Loxberry 1.0.42
Sonos4Loxone 3.1.0
Oliver Lewald sagt:
bitte im Forum mit der dazu gehörigen Log Datei posten (log/plugins/sonos4lox/sonos.log).
bei der v3.0.1 war das der Fall, aber bei v3.1.0 nicht mehr
David Aigenbauer sagt:
Sorry...hab mich mit der Version geirrt
Steh aber vor dem nächsten Problem, wenn ich das file über den virtuellen Ausgangsverbinder abspielen will.
Ordner ist freigegeben. Ich kann das durch die TTS Engine generierte file abspielen, wenn ich über den freigegebene Ordner rein gehe!
Oliver Lewald sagt:
Du brauchst den Ordner nicht freigeben, Sonos greift automatisch als Gast im Lesemodus auf den Ordner. bitte den Eintrag wieder entfernen und erneut probieren.
David Aigenbauer sagt:
Hab ich getestet...kein Erfolg...gleiche Situation
Oliver Lewald sagt:
bitte im Forum posten, hier sind die Hilfsmöglichkeiten leider sehr begrenzt.
https://www.loxforum.com/forum/projektforen/loxberry/plugins/74862-loxberry-sonos-plugin-verf%C3%BCgbar
Martin Schoellhammer sagt:
Hallo Oliver,
ich hätte eine Frage, wäre es möglich, dass du eine Funktion zur Einstellung der Balance zwischen LI & RE hinzufügst?
Hab dein PlugIn auf einem RaspberryPi laufen, funktionert einwandfrei!
Oliver Lewald sagt:
Hallo Martin,
ist schon geschehen, war kein Hexenwerk und kommt mit dem nächsten Release.
Gruß Oliver
Martin Schoellhammer sagt:
Hallo Oliver,
super, danke, ging das etwa so wie hier?
https://github.com/jishi/node-sonos-http-api/pull/509/files
Wann wird es das nächste Release geben?
Ich würde das ganze dann für den Connect:Amp verwenden.
Danke, lg Martin
Oliver Lewald sagt:
die Funktion ist die gleiche, mit Angabe des Players, LF oder RF und den entsprechenden Wert wird die Lautstärke geregelt.
Wegen Release Termin weiß ich derzeit noch nicht, habe noch 2 andere Entwicklungen vor
Martin Schoellhammer sagt:
ein vorzeitiges File, welches ich austauschen kann, kannst du mir noch nicht zur Verfügung stellen?
Oliver Lewald sagt:
Update ist released
Oliver Lewald sagt:
Nein, da noch nicht fertig und final getestet
Pascal Przygodda sagt:
Hallo,
erstmal danke für das tolle Plugin! Es funktionierte bisher gut...habe vor kurzem die neueste Version installiert und musste heute feststellen, dass sich meine Klingel verabschiedet hat.
Befehl:
http://loxberry/plugins/sonos4lox/index.php?zone=wohnzimmer&action=sendmessage&messageid=5&volume=50
tats zum Testen im Browser bisher immer. Diesmal nix zu hören...
Bin dann mal ein paar Versionen zurück gesprungen z.B 3.0...hier funktioniert es wieder ohne Probleme.
Wollte das nur mal anmerken, falls jemand ein ähnliches Problem hat. Scheint vielleicht an der neuen Plugin-Version zu liegen.
Grüße
Oliver Lewald sagt:
lässt sich bei mir auf keinem meiner 3 LB's reproduzieren, mir ist auch aus der Forum Community nichts bekannt. Da dieses eine viel genutzte Funktion ist hätte sich bestimmt schon der ein oder andere gemeldet.
Von daher vermute ich das es ein lokales Problem ist. Was steht denn im Log bzw. erhältst du evtl. Meldungen in der Sonos App?
Bitte in Zukunft im Forum https://www.loxforum.com/forum/projektforen/loxberry/plugins/74862-loxberry-sonos-plugin-verf%C3%BCgbar posten, hier ist der Support nur eingeschränkt möglich.
Frederik Keller-Berndorff sagt:
TheRechi sagt:
Hi,
habe das Problem, dass Änderungen von der Sonos App (Räume umbenennen) zwar in der App funktioniert nicht aber beim Loxberry erkannt werden.
Es werden bei mir auch nur 3 von 6 Zonen gefunden obwohl diese nicht Gruppiert sind. (in der Sonos App funktioniert das ohne Probleme)
kennt jemand das Problem?
lg.
Oliver Lewald sagt:
Hi, die Zonen die du in der App umbenannt hast aus der Sonos4lox Config löschen und dann neu scannen.
Sind deine Zonen evtl. Paare?
TheRechi sagt:
Hatte auch den Loxberry neu aufgesetzt.(neue SD-Karte und neu installiert) Selbes Problem. Nein sind keine Paare hier hängen nur Sonos Connect & Amp's im System.
Niko Heib sagt:
Hallo, bisher hatte alles super funktioniert. Nach unserem Urlaub geht z.B. das Signal der Türklingel nicht mehr. Updates, Neustart, alles schon gemacht. Was kann es sein?
Ein Test zeigt den Fehler:
Fatal error: Uncaught Exception: Error sending command: HTTP/1.1 500 Internal Server Error
CONTENT-LENGTH: 348
CONTENT-TYPE: text/xml; charset="utf-8"
EXT:
Server: Linux UPnP/1.0 Sonos/44.2-54230 (ZPS3)
Connection: close
s:ClientUPnPError in /opt/loxberry/webfrontend/html/plugins/sonos4lox/system/PHPSonos.php:2817
Stack trace:
#0 /opt/loxberry/webfrontend/html/plugins/sonos4lox/system/PHPSonos.php(1033): PHPSonos->sendPacket('POST /MediaRend...')
#1 /opt/loxberry/webfrontend/html/plugins/sonos4lox/Play_T2S.php(397): PHPSonos->BecomeCoordinatorOfStandaloneGroup()
#2 /opt/loxberry/webfrontend/html/plugins/sonos4lox/Sonos.php(623): sendmessage()
#3 /opt/loxberry/webfrontend/html/plugins/sonos4lox/index.php(20): require_once('/opt/loxberry/w...')
#4 {main}
thrown in /opt/loxberry/webfrontend/html/plugins/sonos4lox/system/PHPSonos.php on line 2817
Tim Berg sagt:
Hallo zusammen,
vielen Dank für das Plugin, Loxberry und das Wiki!
Ich bin nach ein paar Stunden testen nun aber etwas ratlos, da die für eine Zone, die ich als Gruppe zusammengefügt habe, zwar Befehle wie "setgroupvolume" vorhanden sind und damit auch /plugins/sonos4lox/index.php/?zone=wohnzimmer&action=setgroupvolume&volume=20 funktioniert, aber für
/plugins/sonos4lox/index.php/?zone=wohnzimmer&action=nextradio
ich leider keine Gruppenbefehle finden konnte - genauso wenig wie für
/plugins/sonos4lox/index.php/?zone=wohnzimmer&action=toggle.
Das führt dazu, dass ich tatsächlich kein Radiosender in meiner Gruppe starten kann - nach der Ansage der Radiostation passiert einfach nichts mehr.
Wenn ich die entsprechenden Sachen im Browser teste dann erhalte ich öfter einmal ein Fehler 500.
Viele Grüße!
Jens Theobald sagt:
Hallo Tim,
so solltest DU Radiosender in der Gruppe starten können:
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=ANDERE ZONE,ANDERE ZONE&action=groupradioplaylist&playlist=EXAKTER NAME_DER_RADIOSTATION
Für Fragen gibts aber auch ein Hilfeforuem:
https://www.loxforum.com/forum/projektforen/loxberry/plugins/74862-loxberry-sonos-plugin-verf%C3%BCgbar
Tim Berg sagt:
Hallo Jens,
danke Dir. Ja ich habe jetzt auch im Forum gepostet.
Übrigens: http://loxberry.local/plugins/sonos4lox/index.php/?zone=wohnzimmer&member=kueche&action=nextradio
funktioniert ebenfalls nicht und liefert einen Fehler 500. In der APP bewegt sich zwar was, aber auch dort gibt es eine Fehlermeldung.
http://loxberry.local/plugins/sonos4lox/index.php/?zone=wohnzimmer&member=kueche&action=groupradioplaylist&playlist=ENERGY%20Berlin
Damit funktioniert es - aber das ist ja leider etwas anderes als, das was ich eigtl möchte.. nämlich den "nächsten Radio" - toggle, nextradio etc. funktionieren ja super in der Single Zone - aber eben
bei der Gruppe scheinen sie zu fehlen!?
VG
Oliver Lewald sagt:
Nextradio und toggle sind Befehle für einzelne Player, für Gruppen könnte es evtl. gehen wenn du den Master nach Gruppenerstellung ansprichst. Für nextradio muss auch der Rampto Parameter in der Plugin Konfig gepflegt sein
Tim Berg sagt:
Nein, geht leider nicht. Daher ja meine Suche nach Befehlen für die Gruppe, die analog dazu gelten. Oder gibt es die einfach nicht? Danke &VG
Marcus Bednar sagt:
Seit Kurzem funktioniert mein bis dato tadellos arbeitendes sonos4lox NICHT mehr:
Hat jemand eine Idee?
Christian Fenzl sagt:
Sei so nett, schreib ins LoxForum, statt hier so lange Logfiles zu posten. 1. Zeile des Logs - dein Configfile Zeile 30 hat einen Fehler.
Mac sagt:
The temporary scan file 'tmp_player.json' could not be opened!
Bekomme ständig diesen Fehler
Thomas Schultheiss sagt:
Hallo, meine Playbar mit 2 Play 1 werden nicht als Playbar erkannt sondern als Play1. Habe vers. 3.4.7 und 3.4.9 ausprobiert. Ich bin Anfänger, bei der alten Loxberry vers. hatts funktioniert.
Was kann ich tun?
Chris Schweizer sagt:
Guten abend zusammen
Besten Dank für das coole PlugIn. Nach Stunden und x Versuchen sollte soweit alles funktionieren.
Ausgangsbefehle funktionieren und die UDP Übermittlung kommt auch im Miniserver an. Ich habe nur das Problem,
dass mir "nur" der Radiosender angezeigt wird, nicht aber der Interpret bzw. der Titel.
Was könnte falsch sein?
Oliver Lewald sagt:
Du machst nichts falsch, bei Radio wird kein Titel/Interpret angezeigt, sondern nur der Radiosender
Chris Schweizer sagt:
Grüezi zusammen
Plug in läuft. Alles wunderbar. Wollte aber mal Fragen,
welche Visualisierung ihr in der LoxConfig für die direkt Bedienung wählt.
Möchte nicht nur über die Touch bedienen, sondern auch direkt in der App.
In der Config habe ich gefunden
Oder gibt es da bessere Optionen, die ich noch nicht gesehen habe?
Herzlichen Dank
Besim sagt:
Hallo,
ich versuche gerade den Pfad der Album Cover von Sonos weiter zu verarbeiten.
Wenn ich den Pfad über den Befehl
/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=getpositioninfo
Anfordere bekomme ich folgende Antwort
IP:1400/getaa?s=1&u=x-sonosapi-hls-static:catalog%2ftracks%2fB07GDMFXGB%2f%3fplaylistAsin%3dB07KM92LSL%26playlistType%3dprimePlaylist%3fsid%3d201%26flags%3d0%26sn%3d2
Bei Eingabe in den Browser sollte das Album Cover zu sehen sein (ist aber leider nicht der Fall)
Wenn ich nun mit EventGhost oder Wireshark nach dem Pfad Scanne bekomme ich das hier.
/getaa?s=1&u=x-sonosapi-hls-static%3acatalog%252ftracks%252fB07GDMFXGB%252f%253fplaylistAsin%253dB07KM92LSL%2526playlistType%253dprimePlaylist%3fsid%3d201%26flags%3d0%26sn%3d2
Und der Funktioniert .
Kann mir jemand sagen warum LoxBerry einen anderen Pfad ermittelt.
Besten Dank im Voraus
Oliver Lewald sagt:
Das nicht, aber du kannst einfach ...action=cover nutzen und dann bekommst du den funktionierenden Cover link. oder ...action=titelinfo bekommst du das Cover auch angezeigt (nur im Browser)
Besim sagt:
Hallo,
gibt es eigentlich auch eine Möglichkeit die Radio Playlisten von Amazon direkt anzusteuern (so wie unten die albumuri)
Oliver Lewald sagt:
Nein, gibt es nicht.
Besim sagt:
Hallo Oliver,
erstmal vielen Dank für deine schnelle Antwort.
Ich habe festgestellt das der Aufruf komischerweise bei Amazon Playlisten nicht Funktioniert.
Gibt es da eine andere Möglichkeit ?
Gruß Besim
Mario sagt:
Hallo zusammen
Irgendwie bin ich trotz Suche nicht fündig geworden und hoffe dass mir jemand weiterhelfen kann:
Ist es möglich, den Status eins Players zu detektieren? D.h. wenn ich auf meiner Sonosgerät Play drücke, dass dies detektiert wird und ich eine andere Aktion auslösen kann? (Das gleiche auch bei Stopp).
Gruss
Mario
Besim sagt:
Beispiel zur Visualisierung Titel/Interpret:
damit sollte es doch machbar sein.
Mario sagt:
Hallo Besim, jetzt habe ich dort Status Büro (Play, Pause, Stop) gesehen. Das werde ich gleich mal testen. Danke.
Hubert sagt:
Hallo zusammen,
ich habe eine kurze Frage und bin mir nicht ganz sicher ob das nicht schon gelöst wurde.
Ich nutze für privat mehrere Spotify-Accounts in einem Family-Premium-Account. Einen für mich, einen für meine Frau und einen für user Kinder, um auch parallel Spotify nutzen zu können.
Ich habe nun auch schon Spotify-Playlisten über Loxone abgespielt und alles hat super geklappt. Kann mir nur jemand sagen, welcher Spotify Account hier nun benutzt wird bzw. wie ich diese Info rausfinden und bei Bedarf verändern kann?
Ich habe im Sonos4Lox ja keinen hinterlegt und bei der Sonos-App kann ich mir ja aussuchen welchen Account ich nutzen möchte.
Danke für eure Hilfe!
LG Hubert
Oliver Lewald sagt:
Hallo Hubert,
wenn du die Spotify Playlisten über Sonos aufrufst, dann den User von deinem in Sonos hinterlegten Account. Wenn du über die Spotify App aufrufst kann ich es dir nicht sagen.
Gruß Oliver
Hubert sagt:
Danke für deine Antwort Oliver,
soweit war mir die Problematik aber bereits bekannt. Mein Problem war, dass ich ja mehrere Spotify-Useraccounts mit dem Sonos Account verknüpft sind.
Ich habe aber das Problem gelöst, auch wenn es nicht sehr elegant erscheint. Laut dem Link anbei wird immer der User verwendet, der als erster zum Sonos-System hinzugefügt wird.
https://github.com/jishi/node-sonos-http-api/blob/master/README.md
Habe es bereits auch getestet und dürfte funktionieren. Ich kann nun über den Loxberry eine Playliste starten über unseren Familyaccount und zeitgleich die beiden anderen Accounts nutzen ohne die Verbindung wegen paralleler Nutzung eines Accounts abzubrechen.
Ich hoffe, die Information hilft auch anderen Usern und ist soweit verständlich.
Grüße Hubert
Christian sagt:
Hi Zusammen,
zunächst mal super, dass du dir so viel mühe gemacht hast. Auch die Doku lässt sich wirklich gut benutzen.
Leider habe ich das Problem, dass ich T2S nicht ans laufen bekomme. Die Standard-Befehle wie play/toggle/.. funktionieren.
Zuerst hat er bei mir auch die Dateien abgelegt, nur nicht abgespielt.
Inzwischen macht er das leider auch nicht mehr. Nach dem Log sieht aber alles gut aus. Hat jemand eine Idee??
Danke und Grüße,
Christian.
Markus M sagt:
Hallo Chrstian,
hatte bei mir das Problem, dass die Befehle funktionierten, nur die Sonos hat den Zugriff auf die .mp3 verweigert.
Bei mir fehlte im Widget "Mein Loxberry" der Name.
Dort Name vergeben und schon funktionierte es.
Grüße Markus
Christian sagt:
Hallo Markus,
ich habe mal einen Namen vergeben. Gebracht hat es scheinbar erstmal nix
Bei mir werden aktuell ja gar keine Dateien mehr abgelegt, obwohl es keinen PHP Fehler gibt. Im Log sieht alles tuttipaletti aus.
Grüße, Christian.
Besim sagt:
Hallo,
Ich starte noch einen letzten Versuch mit Hoffnung auf eine Lösung.
Bei direkten Abspielen von Playlisten / Alben erscheint kein Cover.
Der angezeigte String funktioniert nicht.
Alles andere Titel usw. funktioniert
Leider lassen sich Amazon Radio nicht direkt aufrufen da würde das Cover funktionieren.
Bin für jede Hilfe Dankbar.
cover: http://192.0.0.0:1400/getaa?s=1&u=x-sonosapi-hls-static:catalog%2ftracks%2fB075TW1VDM%2f%3fplaylistAsin%3dB07HMJ3CMQ%26playlistType%3dprimePlaylist%3fsid%3d201%26flags%3d0%26sn%3d2
title: Rooftop
album: Sonos-Hits
artist: Nico Santos
time: 0:00:00
status: Pause
Paul Sinnema sagt:
Hoi Oliver,
Ich bin neu zu LoxBerry und Sonos4Loxone. Ich habe jetzt die letzte Version des LoxBerry Betriebssystems installiert und das mal ausprobiert. Die T2S funktioniert gut aber nu 1 mal. Ich bekomme beim zweiten Mal immer ein Fehler das die temporär playlist nicht gespeichert werden kann. In Sonos App sehe ich dann auch nach jedem 'sendmessage' eine neue Playliste mit dem Namen 'temp_t2s' erscheinen. Wenn ich die lösche läuft es wieder 1 mal. Ich sehen oben das mehr Leute dieses Problem hatten. Gibt es eine Lösung?
Gruss,
Paul Sinnema
Jürgen Schorb sagt:
Hallo Oliver,
erst einmal ein Lob für das tolle Plugin.
Diese Woch hat bei mir T2S plötzlich nicht mehr funktioniert (ich benutze VoiceRSS). Evtl. hat VoiceRSS seine API verändert!
Die erzeugte Datei wird nicht mehr von meinem Sonos abgespielt (nicht korrekter Codec). Wenn man dann in der Datei /opt/loxberry/webfrontend/html/plugins/sonos4lox/voice_engines/VoiceRSS.php in der Zeile 59 folgendermaßen verändert:
$inlay = "key=$ttskey&src=$textstring&hl=$language&c=MP3&f=$ttsaudiocodec";
Jetzt funktioniert wieder alles einwandfrei. Du kannst es Dir ja mal anschauen.
Grüße
Jürgen