Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 232 Nächste Version anzeigen »

Autor
Logo

Status

STABLE

Version2.1.6
Zweck

 Das Sonos4Lox Plugin stellt basierend auf dem LoxBerry eine Komplettlösung zur Steuerung einer Sonos Multi Room Installation zur Verfügung.

 

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 (Lächeln)

 

Nach der Installation des Plugins, mit anschließendem Neustart des LoxBerry, erscheint ein neues Verzeichnis "sonos_tts". Dieses Verzeichnis ist ein Samba Share welches auf loxberry/data/plugins/sonos4lox/tts verweist. Es wird für das Speichern und Abspielen von T2S Nachrichten genutzt. Das Verzeichnis muss nicht der Sonos Bibliothek hinzugefügt werden!

 

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.

Zusammenfassung:

  • Alle Sonos Player am Netz lassen
  • Sonos Bridge aus dem Netzwerk entfernen

 

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!)

Debugging: Debug Modus zur detaillierten Fehlersuche mit Hilfe des Browsers einschalten.

 

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:

  1. Sleep → erhöht UND verringert die Lautstärke langsam innerhalb von ca. 17 Sekunden auf die gewünschte Lautstärke (typische Weckeinstellung)
  2. Alarm → erhöht zügig und kontinuierlich die Lautstärke auf den gewünschten Wert.
  3. 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

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: 

  1. NAS (Synology, Buffalo)
  2. VM-Ware
  3. OS X
  4. OS X mit VM-Ware
  5. Windows mit XAMPP
  6. 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

Fehlerberichte bitte direkt im Forum posten.


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>


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 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:

  1. Generiere eine Textansage:
    /plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&text=Waschmaschine ist fertig&volume=20
  2. 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
  3. kopiere mit Hilfe von z.B. WinSCP diese Datei in das Verzeichnis loxberry/data/plugins/sonos4lox/tts/mp3/
  4. 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 Ivona)

/plugins/sonos4lox/index.php?zone=DEINE_ZONE&playgong=yes&action=sendmessage&text=hallo. dies ist ein test&volume=20&voice=Hans

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. Die Version im Codeblock ist die für den 16er Baustein da hier 3 Möglichkeiten der T2S Verarbeitung aus Statusbausteinen heraus bestehen:

Source Code
// write program here in PicoC
float f1, f2, f3;
int nEvents;
char* Text;
while(TRUE)
    {
    nEvents = getinputevent();
    if (nEvents & 0x38)       //Programm 4 0xe, Programm 8 = 0x1c, Programm 16 = 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.

 

Portforwarding

Um die gesendeten Informationen im MS empfangen zu können muss ggf. ein Portforwarding in eurem Router durchgeführt werden. 

Hier einige Beispiele, je nach Konfiguration des MS und in der LoxBerry Config:

  • Loxone wird am Port 80 betrieben und in der LoxBerry Config ist auch UDP Port 80 angegeben → keine Aktivität notwendig
  • Loxone wird am Port 80 betrieben und in der LoxBerry Config ist UDP Port 6050 angegeben → UDP Portforwarding für Loxone von Port 6050 auf 80 muss im Router konfiguriert werden
  • Loxone wird am Port 7080 betrieben und in der LoxBerry Config ist UDP Port 6050 angegeben → UDP Portforwarding  für Loxone von Port 6050 auf 7080 muss im Router konfiguriert werden

Beispiel einer FritzBox für den Betrieb der Loxone an Port 6060 und der Sonos Config vom LoxBerry auf Port 8750:

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:

  1. virtuellen Ausgang anlegen
  2. virtuellen Ausgangsbefehl anlegen
  3. 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:

 

 

 

Eingangssseitig

Wichtig: Die eingangsseitigen Daten werden NUR an den 1. Miniserver gesendet! Dieser ist nur über die IP-Adresse erreichbar, falls dieser im LoxBerry für Cloud DNS konfiguriert ist, werden keine Daten übermittelt!

Der Schalter zum Einschalten des Datentransfers befindet sich in der Konfiguration:

Empfangen der Stati einer Zone

Als erstes erstelle im MS einen "virtuellen Eingang" und benenne ihn in der Bezeichnung "fetch_sonos".

Um die Daten über UDP empfangen zu können erstelle als nächstes einen "virtuellen UDP-Eingang":

Bitte die Senderadresse leer lassen und nur den Port analog zur Plugin Konfiguration eintragen!

 

Wichtig: Vorher das Portforwarding in der Router Konfiguration aktualisieren/ergänzen.

Anschließend muss für jeden Wert UND Zone ein "virtueller UDP Eingang Befehl" angelegt werden:

Die Daten die per UDP gesendet werden enthalten immer folgende Informationen je Zone. 

  • Play/Stop/Pause
  • gegenwärtige Lautstärke
  • Status der Zone

 

Der Aufbau der Syntax ist immer gleich (Zone ist die jeweilige Zone aus der Konfiguration):
  • Für Play/Stop/Pause lautet die Syntax: stat_ZONE@WERT (WERT: 1=Play, 2=Pause, 3=Stop)
  • Für die Lautstärke lautet die Syntax: vol_ZONE@WERT
  • Für den Status der Zone (Single, Master oder Member) lautet die Syntax: grp_ZONE@WERT (WERT: 1=Single, 2=Master, 3=Member)

Läuft eine Zone gerade nicht oder ist Offline wird der Wert stat_ZONE@3 gesendet.

 

Empfangen von Titel/Interpret bzw. Radiosender Info

 

Da UDP ja leider keine Textdaten empfangen kann, werden die Informationen über Titel/Interpret oder Radiosender über virtuelle Eingangsbefehle gesendet, aber nur wenn die Zone gerade spielt.
Es werden je laufender Zone 3 unterschiedliche Eingangsverbinder gefüllt:
  • 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 jede Zone für die Titel/Interpret Info empfangen werden sollen muss 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). Wenn z.B. 6 Zonen zu einer Sonos Installation gehören und die Daten für alle Zonen erfasst werden sollen, müssen in Summe max. 30 verschiedene Eingänge erstellt werden. 6x2 für Status/Volume und 6x3 für Titel/Interpret und Titel und Interpret, wobei die letzten 2 wenig Sinn ergeben.

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.

 

 

TIP

Textwerte könne auch durch die Verwendung von EIB Textsensor und EIB Textaktor als eine Art Merker genutzt werden. Beide müssen nur über die gleiche Gruppenadresse verfügen, damit sie eindeutig ein Paar sind. Die Gruppenadresse kann virtuell vergeben werden.

 

Beispiel wie die Konfiguration in Loxone aussehen könnte, hier gibt es natürlich durchaus noch Potential diese zu optimieren

Der Schalter "fetch_sonos" stoppt als inversiver Eingang an R die Schaltuhr, die wiederum (bei mir) die Uhrzeiten enthält in der ich generell Sonos Daten empfangen möchte

Der Ausgang AQ der Schaltuhr betätigt einen Impulsgeber der im Abstand von 10 Sekunden einen Ausgangsbefehl absetzt um die Daten von Sonos zu holen. Wichtig ist das auch hier der Eingang DisP des Impulsgebers inversiv ist.

Zusätzlich habe ich noch am Eingang R der Schaltuhr den Betriebsmodus "alle abwesend" damit wenn keiner da ist auch nicht sinnlos Traffic per UDP generiert wird.


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.

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

 

NEWS!! Release 2.0.x "Sonos goes multilingual"

Da in dem neuen Release tiefgreifende Änderungen durchgeführt wurden, dauerte es etwas länger da 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

  • ACHTUNG! Die Eingangsverbindung zu Loxone wurde optimiert, es wird nur noch MINISERVER1 mit Verwendung der lokaler IP unterstützt.
  • 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

 

Version 2.0.6

WICHTIG: User die in der Vergangenheit Probleme mit Stereopaaren hatten müssen folgendes unbedingt durchführen:

Möglichkeit 1: Komplette Neuinstallation mit vorherigem Deinstallieren der alten Version
Möglichkeit 2: Öffnen der Datei config/plugins/sonos4lox/player.cfg und alles unterhalb von [SONOSZONEN] löschen und speichern, dann noch Datei config/plugins/sonos4lox/tmp_player.json löschen. Anschließend Plugin installieren und über die Config die Zonen scannen

Hintergrund ist das bei einem Update d.h. ohne Deinstallation des Plugins u.a. die Config Dateien temporär kopiert werden, das Plugin deinstalliert, neues Plugin installiert und die Dateien zurückkopiert werden. Wenn ihr nicht der oben beschrieben Vorgehensweise folgt werden die fehlerhaften Einstellungen mitkopiert und das Update löst eure Probleme nicht.

 

ab Version 2.0.8

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:

pessimisticgibt 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.

 

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

 

ab Version 2.0.9

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

 

ab Version 2.1.0

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

 

 

ab Version 2.1.3

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

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


Wenn du die ID gefunden hast musst du diese nur noch in die Syntax kopieren und dann sollte die Playliste oder das Album geladen werden. Für den jeweiligen Anbieter einfach den blauen Teil austauschen (amazon, apple, napster, spotify). Bitte darauf achten das bei einem Album auch albumuri und bei Playlisten playlisturi in der Syntax verwendet wird.:
 
/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

Ab Version 2.1.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:

 es könne auch lokale Tracks aus deinem Netzwerk (NAS, Festplatte, USB Stick, etc.) abgespielt werden, hier gilt es aber zu beachten das diese in der Sonosbibliothek vorhanden sein sollten, ansonsten könnte es Freigabe Porblem geben. Außerdem muss IMMER der volle Pfad und auch die Dateiendung mitgegeben werden. Vom Format her werden Unix und Windows Angaben aktzeptiert und eine Prüfung auf unterstützte Formate ist integriert.
Folgende Audio Formate werden unterstützt:

Hier einige Beispiele:
Abspielen einer Datei von einem USB Stick oder Laufwerk E:\ an einem PC:

 

//DESKTOP/E/05 Ich Und Ich - Vom Selben Stern.mp3

 

Abspielen einer Datei von einer NAS 

 

\\SYN-DS415\music\Sonstige\DE_TOP100_01-2014\15 - Family Of The Year - Hero.mp3

Abspielen einer Datei vom LoxBerry tts/mp3 Verzeichnis 

 

//loxberry/sonos_tts/mp3/07 - Eminem - The Monster (feat. Rihanna).mp3


Abspielen einer Datei vom LoxBerry Datenverzeichnis

//LOXBERRY/loxberry/data/plugins/sonos4lox/tts/mp3/07 - Eminem - The Monster (feat. Rihanna).mp3

 

ab Version 2.1.5

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
Bsp. zufällig gewählte Playliste aus allen Playlisten:
/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


 


Tabelle aller möglichen Kombination für multilinguale T2S:

LanguageAcronymAWS PollyPico TTS

Ivona

GoogleVoiceRSSMAC OSXRespVoice
Parameter for Syntaxlang&voice=&lang= &lang=&lang=&voice=&lang=
Afrikaans (South Africa)af-ZA   af-ZA  af-ZA
Albaniansq-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   
Armenianhy-HY      hy-HY
Basque (Spain)eu-ES   eu-ES   
Bosnianbs-BS      bs-BS
Bulgarian (Bulgaria)bg-BG   bg-BG   
Catalan (Spain)ca-ES   ca-ESca-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-HKSinji 
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 Zuzanacs-CZ
Danishda-DKMads  da-DKda-DKSarada-DK
Danishda-DKNaja      
Dutchnl-NLLotte   nl-NL nl-NL
Dutchnl-NLRuben      
Dutch (Belgium)      Ellen 
English (Australian)en-AUNicole  en-AUen-AU en-AU
English (Australian)en-AURussell Russell    
English (British)en-GBAmyen-GBAmyen-GBen-GB en-GB
English (British)en-GBBrian Brian    
English (British)en-GBEmma Emma    
English (Canada)en-CA   en-CAen-CA  
English (Indian)en-INRaveena Raveenaen-INen-INVeena 
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-USIvy Chipmunk en-USAlex 
English (US)en-USJoanna Eric    
English (US)en-USJoey Ivy    
English (US)en-USJustin Jennifer    
English (US)en-USKendra Justin    
English (US)en-USKimberly Kendra    
English (US)en-USSalli Kimberly    
English (US)en-US  Salli    
English (US)en-US  Joey    
English (Welsh)en-GB-WLSGeraint      
Esperantoeo-EO      eo-EO
Filipino (Philippines)fil-PH   fil-PH   
Finnish (Finland)fi-FI   fi-FIfi-FISatufi-FI
Frenchfr-FRMathieu Mathieu fr-FRThomas 
Frenchfr-FRCelinefr-FRCeline   fr-FR
French (Canadian)fr-CAChantal Chantalfr-CAfr-CAAmelie 
Galician (Spain)gl-ES   gl-ES   
Germande-DEHansde-DEHansde-DEde-DESteffide-DE
Germande-DEMarlene Marlene  Markus 
Germande-DEVicki      
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 Mariskahu-HU
Icelandicis-ISDora Dora    
Icelandicis-ISKarl Karl   is-IS
Icelandic (Iceland)is-IS   is-IS   
Indonesian (Indonesia)id-ID   id-ID  id-ID
Italianit-ITCarlait-ITCarla it-IT it-IT
Italianit-ITGiorgio Giorgio    
Italian (Italy)it-IT   it-IT   
Japaneseja-JPMizuki  ja-JPja-JPKyokoja-JP
Korean (South Korea)ko-KR   ko-KRko-KRYunako-KR
Latvianlv-LV      lv-LV
Lithuanian (Lithuania)lt-LT   lt-LT   
Malay (Malaysia)ms-MY   ms-MY   
Macedonianmk-MK      mk-MK
Norwegiannb-NOLiv Livnb-NOnb-NO nb-NO
Persian (Iran)fa-IR   fa-IR   
Polishpl-PLJacek Agnieszkapl-PLpl-PLZosia 
Polishpl-PLJan Jacek    
Polishpl-PLEwa Ewa   pl-PL
Polishpl-PLMaja Jan    
Polishpl-PL  Maja    
Portuguese (Brazilian)pt-BRRicardo Vitoriapt-BRpt-BRLucianapt-BR
Portuguese (Brazilian)pt-BRVitoria Ricardo    
Portuguese (European)pt-PTCristiano Cristianopt-PTpt-PT  
Portuguese (European)pt-PTInes Ines   pt-PT
Romanianro-ROCarmen Carmenro-RO Ioanaro-RO
Russianru-RUMaxim Maximru-RUru-RU  
Russianru-RUTatyana 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-ESConchita Conchitaes-ESes-ES es-ES
Spanish (Castilian)es-ESEnrique 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-USMiguel Penelopees-US   
Spanish (Latin American)es-USPenelope Miguel   es-US
Spanish (Mexico)es-MX   es-MXes-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   
Swahilisw-SW      sw-SW
Swedishsv-SEAstrid Astridsv-SEsv-SE sv-SE
Tamilta-TA      ta-TA
Thai (Thailand)th-TH   th-TH  th-TH
Turkishtr-TRFiliz Filiztr-TR  tr-TR
Ukrainian (Ukraine)uk-UA   uk-UA   
Vietnamese (Vietnam)vi-VN   vi-VN  vi-VN
Welshcy-GBGwyneth      
Welshcy-GBGeraint     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)  → in Arbeit 
  • 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 (Lächeln)
  • 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 erscheint bei mir nicht das Verzeichnis "sonos_tts" auf dem LoxBerry?
  • Bei der Installation des Plugins wird normalerweise ein neuer Eintrag in der Datei smb.conf erstellt um das tts Verzeichnis für Sonos zugänglich zu machen. Falls nach einer Installation mit anschließendem Neustart das Verzeichnis nicht vorhanden sein sollte entweder Neuinstallieren oder die Datei smb.conf manuell ändern.
    Dazu bitte die Datei system/samba/smb.conf öffnen und folgenden Eintrag/Block am Ende der Datei einfügen:
    [sonos_tts]
    comment = Loxberry Files
    path = /opt/loxberry/data/plugins/sonos4lox/tts
    guest ok = yes
    read only = no
    directory mask = 0700
    create mask = 0700
    anschließend speichern und Loxberry neustarten bzw. Samba neu starten
  • 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 habe ich in der Fehlermeldung "REPLACEBYSUBFOLDER" stehen?
  • Der Installation des Plugins wurde nicht korrekt bis zum Ende ausgeführt, so dass in der Datei sonos.cfg der Eintrag REPLACEBYSUBFOLDER nicht durch sonos4lox ersetzt wurde.
  • Datei sonos.cfg mit einem Editor öffnen und REPLACEBYSUBFOLDER durch sonos4lox ersetzen.
  • 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 mit Hilfe von WinSCP oder ähnlichen Tool in folgendes Verzeichnis kopiert werden: /loxberry/data/plugins/sonos4lox/tts/mp3
  • Warum wird keine messageid abgespielt?
  • Die numerischen MP3 Files müssen mit Hilfe von WinSCP oder ähnlichen Tool in folgendes Verzeichnis kopiert werden: /loxberry/data/plugins/sonos4lox/tts/mp3
  • Das Verzeichnis für die Files muss kleingeschrieben sein korrekt: tts/mp3 statt tts/MP3. 
  • Die MP3 Files haben evtl. nicht die erforderliche Berechtigung. Bitte per WinSCP oder ähnlichem Tool die Rechte für das Verzeichnis UND die Dateien auf 0644 setzen → kommt nicht mehr vor da Script das korrigiert
  • Warum wird keine MP3 (T2S oder messageid) abgespielt?
  • Du hast in deinem Router die IPv6 Unterstützung markiert.
  • Dein API-/secret key ist evtl. nicht gültig oder korrupt
  • Warum ist meine Zeile bei den Radio Favoriten leer obwohl ich sie vorher gespeichert habe?
  • Die Verwendung von Sonderzeichen im Feld "Sender Name", hier ganz speziell ein Apostroph, bereiten Probleme. Der Sender wird aber korrekt in die sonos.cfg geschreiben.
  • 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.

 

 Version History...

Version 1.0.0

  • Release des Plugin, erste öffentliche Version.

Version 1.0.1

  • [Feature] T2S Online Provider Amazon Polly hinzugefügt
  • [Feature] T2S Offline Engine Pico2Wave hinzugefügt
  • [Bugfix] ivona_tts.php: Großschreibung der Endung .MP3 in .mp3 geändert. Problem trat außer bei PLAY:3 und PLAY:5 bei allen anderen Modellen auf
  • [Bugfix] MP3path in der Config auf Kleinschreibung korrigiert (wird per Installationsscript korrigiert)
    Beim Abspielen von gespeicherten MP3 Files gab es Probleme dass das angegebene File nicht gefunden wurde.
  • [Feature] T2S Online Provider responsiveVoice hinzugefügt
  • [Feature] Für Non-LoxBerry User besteht nun die Möglichkeit in ihrer Config die pws: für Wunderground anzugeben

Version 1.0.2

  • [Bugfix] Fehlernachricht an Loxone und Zurücksetzen des Fehlers korrigiert. Funktion war nicht aktiv.

  • [Bugfix] UDP-Port für Inbound Daten korrigiert. Skript nutzt jetzt UDP-Port aus der Plugin Config statt der MS Config.

Version 1.0.3

  • [Bugfix] Support für XAMPP Windows hinzugefügt
  • [Feature] T2S Online Provider Google hinzugefügt
  • [Bugfix] Korrektur bei Einzel T2S aus Gruppe heraus

Version 1.0.4 (wurde nicht released)

  • [New] Datei grouping.php hinzugefügt
  • [New] Datei helper.php hinzugefügt
  • [New] Datei text2speech.php hinzugefügt
  • [Bugfix] Support für Stereopaar hinzugefügt
  • [Feature] Neue Funktion createstereopair die aus zwei gleichen Modellen ein Stereopaar erstellt. Die zone=<DEINE ZONE> ist dann der Raumname des neuen Paares
  • [Feature] Neue Funktion seperatestereopair die ein bestehendes Stereopaar wieder trennt

Version 1.0.5

  • [Feature] playmode ist in case insensitive nutzbar
  • [Bugfix] Funktion Softstop überarbeitet. Es wird solange gespielt bis die Lautstärke 0 ist, dann Pause betätigt und die Lautstärke wieder auf den Wert vor Softstop angehoben.

Version 1.0.6

  • [Bugfix] network.php geändert - Fehler beim Scannen der Zonen bei Neuinstallation korrigiert

Version 2.0.0

  • [Feature] Parameter rampto für Radiosender hinzugefügt
  • [Feature] Neuer Text Eingangsparameter für Lox Daten Übertragung hinzugefügt (Radio=1 oder Playlist=2)
  • [Feature] Neuer UDP Parameter für Lox Daten Übertragung hinzugefügt (Single Zone=1, Master=3 oder Member=3)
  • [Bugfix] addmember/removemember gefixt um mehr als eine Zone zum Master hinzuzufügen
  • [Bugfix] Fehlermeldung an Loxone Text Eingangsverbinder falls ein Fehler im Sonos Plugin auftrat
  • [Bugfix] Die Eingangsverbindung zu Loxone wurde optimiert, es wird nur noch MINISERVER1 mit lokaler IP unterstützt.
  • [Feature] zusätzliche Parameter radio&radio=SENDER und playlist&playlist=NAME DER PLAYLISTE (gilt für Zone als auch für Gruppe)
  • [Feature] vereinfachte T2S Durchsage mit parameter 'say'. Es gibt keine Differenzierung mehr zwischen Gruppen- oder Einzel-
    durchsage. (Details siehe Wiki)
  • [Feature] Multilinguale Sprachansagen für alle Engines hinzugefügt (Details siehe Wiki).
    AWS Polly SDK nicht mehr notwendig
  • [Bugfix] Komplette Überarbeitung der Gruppenfunktionen bzw. Gruppendurchsagen

Version 2.0.1

  • [Bugfix] nextradio optimiert um Änderungen von Sonos zu korrigieren (siehe Wiki)
  • [Bugfix] Korrektur der Lautstärke bei Gruppendurchsage
  • [Bugfix] Sonos Ansage optimiert: Bei Playliste Titel und Interpret Ansage, bei Radio Sender Ansage
  • [Feature] Pollenflug Ansage (Quelle: Deutscher Wetterdienst)
  • [Feature] Wetterhinweis bzw. Wetterwarnung Ansage (Quelle: Deutscher Wetterdienst)
  • [Bugfix] T2S Engine Ivona entfernt da Service zum 30.06.2017 eingestellt wird.

Version 2.0.2

  • [Bugfix] Pollen und Wetterwarnung Ansage korrigiert. Es werden jetzt jeweils Ansagen getätigt.

Version 2.0.3

  • [Bugfix] Es wird nur angesagt falls eine Wetterwarnung vorliegt.
  • [Bugfix] Umlaute bei Nutzung von VoiceRSS korrigiert
  • [Feature] Auswahlmöglichkeit des Miniservers für die Schnittstelle zu Loxone in der Config einstellbar
  • [Bugfix] Datenübertragung bei Standardbefehlen optimiert
  • [Bugfix] Gruppenmanagement optimiert
  • [Feature] Möglichkeit der gleichzeitigen Gruppierung bei der Auswahl von Radio bzw. Playlisten

Version 2.0.4

  • [Bugfix] Broadcast IP beim Scannen der Zonen hinzugefügt
  • [Bugfix] Sortierfunktion der Zonen korrigiert

Version 2.0.5

  • [Feature] Möglichkeit zum Abspielen von T2S im batch modus (siehe Wiki)
  • [Bugfix] Sortierfunktion der Zonen wieder entfernt

Version 2.0.6

  • [Bugfix] Fehler bei Play() korrigiert
  • [Bugfix] Fehler bei Zonen Scan in Verbindung mit Stereopaaren behoben

Version 2.0.7

  • [Bugfix] Fehler bei Wetterwarnungen und Orten die Umlaute enthalten korrigiert
  • [Feature] Neue Funktion alarmoff um alle Sonos Alarme/Wecker auszuschalten
  • [Feature] Neue Funktion alarmon um alle Sonos Alarme/Wecker wieder gemäß Ursprungszustand wieder einzuschalten

Version 2.0.8

  • [Feature] Neues Add-on "Time-to-destination". Ansage der Fahrzeit/-strecke von Standort zu gewünschter Adresse basierend auf google maps
  • [Feature] Neues Feature/Funktion "zapzone". Typische Tasterfunktion die sich je Klick durch alle laufenden Zonen zappt (als Member einklinkt), wenn weiter gezappt wird switched das Script dann zu den Radio Favoriten und zappt diese per Klick durch
  • [Feature] Möglichkeit der Ansage des Radiosenders bei nextradio bzw. zapzone.
  • [Bugfix] Broadcast Scan beim Scannen der Zonen und Sonderzeichen bei Pollen Add-on korrigiert

Version 2.0.9

  • [Feature] Neues Add-on "waste-calendar-to-speech" Ansage der Entsorgerzeiten je Abfallart basierend auf dem CALDav Plugin
  • [Feature] Zusätzlich eine T2S Ansage eines zweiten Kalenders
  • [Gimmick] Eine T2S Ansage eines Witzes
  • [Gimmick] Eine T2S Ansage der heutigen Bauernregel
  • [Bugfix] Korrektur bei der Re-Gruppierung nach erfolgter Einzelansage aus einer bestehenden Gruppe heraus

Version 2.1.0

  • Feature] Prüfung auf gültige LoxBerry Version hinzugefügt
  • [Feature] Prüfung auf korrekt beendete Plugin Installation hinzugefügt
  • [Feature] Auswahl des LineIn Einganges bei PLAY:5, CONNECT und CONNECT:AMP wird unterstützt.
  • [Feature] Angabe des Parameters "=standardvolume= bei Gruppenauswahl für Playlist oder Radiosender wird jetzt unterstützt.
  • Es werden je Zone in der Gruppe die in der Config hinterlegten Sonos Volumen Einstellungen übernommen.
  • [Feature] Bei der Abfallkalender Durchsage werden jetzt auch 2 Termine an einem Tag berücksichtigt
  • [Bugfix] Optimierung der Wiederherstellung von Zonen Status nach erfolgter Einzeldurchsage wobei sich die Zone vorher in einer Gruppe befand
  • [Feature] Unterstützung beim Scan für Sonos PLAYBASE und PLAY:1 mit Alexa wurde hinzugefügt + Optimierung suchen nur nach SONOS Komponenten
  • [Feature] Das Error LogFile ist über die LoxBerry Sonos Konfiguration errreichbar
  • [Bugfix] Optimierung der Zonen Scan Funktion um Doppelscans zu verhindern
  • [Bugfix] Beim Modell CONNECT kann die Lautstärke variabel oder festeingestellt sein, was eine T2S Ansage verhindert
  • Während einer T2S wird die Lautstärke temporär auf variabel gesetzt, dann wieder auf festeingestellt.
  • [Bugfix] Bei Gruppennachrichten konnte der Parameter volume genutzt werden, wurde jetzt ersetzt durch groupvolume
  • [Bugfix] Problem bei T2S auf PLAYBAR wenn diese im TV Modus ist behoben

Version 2.1.1

  • [Feature] Alle Dateien im "mp3" Verzeichnis werden vom Script jetzt automatisch auf Rechte 0644 gesetzt
  • [Bugfix] Problem bei T2S auf PLAYBAR wenn diese im TV Modus ist behoben
  • [Bugfix] Bei der Ansage des Müllkalenders wurde u.U. nichts angesagt wenn der erste vom CALDav Plugin ausgegebene Termin -1 ist.
  • [Feature] Bei Befehlen an eine Zone welche Member einer Gruppe ist wird jetzt automatisch der Master ermitteltdies gilt aber nur für folgende Befehle: play, stop, pause, next, previous, toggle, rewind, seek

  • [Feature] bei ...messageid=..." können jetzt auch nicht numerische MP3 files (z.B. mein_sonos_gong) genutzt werden.

Version 2.1.2

  • [Feature] Debugging tool added
  • [Bugfix] Korrektur beim Laden einer Playliste wenn vorher Radio/TV lief oder Mute EIN war
  • [Bugfix] Korrektur der Lautstärkeregelung/Anpasung bei Gruppendurchsagen
  • [Bugfix] Scan Zonen Funktion von LoxBerry auch für Non-LoxBerry Versionen aktualisiert und beide optimiert (Trennung von Gruppen vorm Scannen)

  • [Bugfix] Englische Version der GUI aktualisiert

Version 2.1.3

  • [Feature] Möglichkeit des Abspielens von Spotify, Amazon, Napster und Apple Playlisten/Alben → Details siehe Wiki
  • [Feature] Möglichkeit des Abspielens von lokalen Track's (NAS, USB-Sticks, Laufwerken, Remote PCs) -> Details siehe Wiki
  • [Feature] Prüfung bei Gruppenfunktionen ob die angesprochene Zone (zone=...) auch der Master ist, falls nicht ermitelt das System den Master
  • [Bugfix] Korrektur bei T2S wenn Playliste im Shufflemodus läuft
  • [Feature] Funktion 'nextpush'. PL läuft -> next track, Ende PL -> 1st track, Radio -> nextradio im Loop, leer -> nextradio im Loop
  • [Feature] Funktion 'next' und 'previous' optimiert. next - (letzter Track -> Track #1), 'previous - (erster Track -> letzter Track)

Version 2.1.4

  • [Bugfix] Funktion 'radio' (radioplaylist, groupradioplaylist) korrigiert. Bei input quelle SPDIF (Playbar, Playbase) wurde kein Radiosender geladen.
  • [Bugfix] Korrektur der Zonen Scan Funktion (temporäre Datei wird nicht mehr gelöscht)
  • [Bugfix] Korrektur der Zonen Scan Funktion nach Update Sonos auf 8.1
  • [Bugfix] Korrektur bei Einzel T2S an Master einer Gruppe. Nach Durchsage wurde Urprungszustand nicht mehr wiederhergestellt
  • [Bugfix] Erweiterung der TransportSettings (shuffle, repeat, etc.)

Version 2.1.5

  • [Bugfix] Korrektur der Zonen Scanfunktion für Nicht LoxBerry Nutzer
  • [Feature] Neue Funktion zum Laden und Abspielen von Sonos Playlisten per Zufallsgenerator. Es könne auch Exceptions angegeben werden (siehe Wiki)
  • [Feature] Neue Funktion zum Laden und Abspielen von Sonos Radiosender per Zufallsgenerator. Es könne auch Exceptions angegeben werden (siehe Wiki)
  • [Feature] Aktualisierte Funktion um user-spezifische Playlisten zu laden (gilt nur für Spotify)

Version 2.1.6

  • [Bugfix] Fehler bei Non LoxBerry beseitigt, es wurde versucht eine LoxBerry Berechtigung zu setzen
  • [Bugfix] SHUFFLE Wiedergabe wird jetzt nach erfolgter T2S korrekt weitergespielt

 

Wer Fehler im How-to findet darf sie gerne behalten oder selber korrigieren (Lächeln)

Verwandte Artikel

 





  • Keine Stichwörter