T2S Durchsagen

Hier werden sämtliche Befehle hinsichtlich text-2-speech gelistet. Diese müssen als virtueller Ausgangsbefehl (Loxone) oder in einem http Ausgang (Nicht Loxone) angelegt werden. Dazu muss der virtuelle Ausgang (nur Loxone) folgendermaßen angelegt werden:

wichtig ist der Haken bei "Verbindung nach dem Senden schließen", ansonsten wird u.U. die Funktion 2x ausgeführt

An-/Abwesenheit Steuerung

mit den Funktionen absent bzw. present ist es möglich T2S Durchsagen nur in Abhängigkeit von Anwesenheit auszugeben

Funktion Befehl / Syntax / URL Beschreibung
Anwesenheit /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=present Schaltet die T2S Durchsage EIN (im MS bei HTTP Ein)
Abwesenheit /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=absent Schaltet die T2S Durchsage AUS (im MS bei HTTP Aus)

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>

Allgemeine T2S Parameter

hier handelt es sich um Parameter die bei jeder T2S optional verwendet werden können:

Funktion Befehl / Syntax / URL Beschreibung
volume &volume=40 setzt die Lautstärke auf 40%
keepvolume &keepvolume behält die gegenwärtige Lautstärke bei
greet &greet Vor der eigentlich T2S wir eine zufällige gewählte Grußformel angesagt

Die Grußformeln können über das LoxBerry Translation Widget individuell angepasst oder auch gelöscht werden. Dazu das Widget "Translate" öffnen → Plugin Übersetzung mit folgenden Parameterm:

* Sonos
* t2s-text_en.ini
* German

anschließend "Anzeigen" und dann können die Texte in Spalte "Ziel Sprache" angepasst werden
playgong &playgong=yes

&playgong=Airport_gong
es wird das Standard Jingle aus der Plugin Konfiguration vor der T2S abgespielt

es wird das angegebene Jingle (ohne Endung .mp3) aus dem tts/mp3 Unterverzeichnis vor der T2S abgespielt

HINWEIS: Die Angabe von playgong=no bewirkt einen Fehler
batch &batch erzeugt eine T2S mp3 für einen T2S Abruf zu einem späteren Zeitpunkt. Somit kann man sich z.B. eine Durchsage aus mehreren einzelnen T2S zusammen stellen
playbatch &playbatch Spielt alle mit &batch erstellten T2S in deren vorherigen Reihenfolge ab
nocache &nocache triggert eine erneute Erstellung einer T2S Sprachausgabe an obwohl evtl. diese im Cache vorhanden ist
clip &clip nutzt die Sonos Build in Audio Clip funktion bei der die T2S im aktuell laufenden Stream eingemischt wird (nur für Single Durchsagen anwendbar)

Standard T2S

Bei T2S ohne Ansage von Werten aus dem MS muss der virtuelle Ausgangsbefehl als Digital markiert sein  

Funktion Befehl / Syntax / URL Einzel Gruppe Beschreibung
say /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=hallo. dies ist ein test X startet eine Einzeldurchsage
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=hallo. dies ist ein test&playgong=yes X startet eine Einzeldurchsage mit Standard Jingle aus der Pluginkonfiguration
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=hallo. dies ist ein test&voice=Hans&playgong=yes X startet eine Einzeldurchsage mit Standard Jingle aus der Pluginkonfiguration und Stimme Hans (nur Polly)
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=dies ist ein test&volume=20&greet&playgong=yes X startet eine Einzeldurchsage mit Standard Jingle aus der Pluginkonfiguration und einer Zufallsgrußformel
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&messageid=3&volume=30 X spielt die Datei 3.mp3 aus deinem tts/mp3 Verzeichnis ab
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&messageid=Gartentor_offen X spielt die Datei Gartentor_offen.mp3 aus deinem tts/mp3 Verzeichnis ab
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=hallo. dies ist ein test&member=ZONE2,ZONE3 X startet eine Gruppendurchsage auf 3 Zonen mit der jeweiligen Standard Lautstärke aus der Plugin Konfiguration
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=hallo. dies ist ein test&member=ZONE2,ZONE3&volume=40 X startet eine Gruppendurchsage auf 3 Zonen mit der Lautstärke von 40%
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&messageid=haustür_offen&member=ZONE2 X spielt die Datei haustür_offen.mp3 aus deinem tts/mp3 Verzeichnis auf 2 Playern ab
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=hallo. dies ist ein test&member=all X startet eine Gruppendurchsage auf allen Zonen

Bei T2S mit Ansage von Werten aus dem MS muss der virtuelle Ausgangsbefehl als Analog markiert sein  

Funktion Befehl / Syntax / URL Einzel Gruppe Beschreibung
say /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=Die gegenwärtige Temperatur im Wohnzimmer beträgt <v> Grad X gibt die gegenwärtige Temperatur <v> des vorgeschalteten MS Bausteines aus
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=Die gegenwärtige Temperatur im Wohnzimmer beträgt <v> Grad&member=2.ZONE,3.ZONE&volume=40 X gibt die gegenwärtige Temperatur <v> des vorgeschalteten MS Bausteines mit Lautstärke 40% auf 3 Playern parallel aus
T2S aus Statusbaustein (ab v3.8.4)

/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=<v>&volume=40

/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&text=<v>&member=2.ZONE,3.ZONE&volume=40
X X Um bei Verwendung von T2S aus einem Statusbaustein heraus die NULL beim Off schalten nicht angesagt zu bekommen, muss der gesamte Text inkl. Variablen in den Statusbaustein.Achtung: Darauf achten, dass sich am Schluss des Textes kein Zeilenumbruch befindet! Ansonsten kann es sein, dass die NULL trotzdem ausgegeben wird.

Beispiel:

Der auszugebende Text soll lauten: "Die aktuelle Pooltemperatur ist 19,5 Grad". An AI1 hängt der Temperaturwert der ausgegeben werden soll, an AI2 hängt der Trigger für die Ausgabe. 

Der Text im Feld "Statustext" muss dann wie folgt aufgebaut sein: Die aktuelle Pooltemperatur ist <v1.1> Grad. Somit wird der Wert von AI1 mit einer Dezimalstelle in die T2S übernommen

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);
 }

Sonderfunktionen T2S

Funktion Befehl / Syntax / URL Einzel Gruppe Beschreibung
Türklingel (Doorbell) /plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=doorbell&file=chime /plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=doorbell&file=Airport_Gong /plugins/sonos4lox/index.php/?zone=DEINE_ZONE&member=<ZONE1,ZONE2> oder <all>&action=doorbell&file=chime&volume=30 X X Spielt den Sonos Build-in Klingelton CHIME ab oder eine im tts/mp3 Verzeichnis hinterlegte MP3 Datei ab (Angabe OHNE .mp3)
Uhrzeit /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&clock X Die aktuelle Uhrzeit des LoxBerry wird angesagt
Wetter /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&weather X X Bei installiertem weather4lox Plugin wird je nach Tageszeit eine Wettervorherssage bzw. -status angesagt
Abfall /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&abfall X X Bei installiertem CalDAV4lox Plugin wird je nach Tageszeit eine Abfrage eines Abfallkalenders durchgeführt und ggf. der nächste Termin und die Art des Abfalles angesagt
Pollen /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&pollen X X es wird ein Pollenflughinweis angesagt
Wetterwarnung /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&warning X X es wird ggf. eine vorhandene Wetterwarnung ausgegeben (vorausgesetzt das Bundesland und die Stadt/Gemeinde ist in der Plugin Konfiguration gepflegt)
Titel/Interpret/Sender /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&sonos X Der aktuell laufende Titel/Interpret oder Radio Sender wird angesagt. Falls der Radiosender Titel/Interpret zur Verfügung stellt, wird diese anstatt des Senders ausgegeben.
Zur Radiosender T2S Ausgabe bitte "…action=saysonos" nutzen
Kalender /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&calendar X X Bei installiertem CalDAV4lox Plugin wird je nach Tageszeit eine Abfrage eines Kalenders durchgeführt und ggf. der/die nächste(n) Termin(e) angesagt
Fahrzeit /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&distance&to=Hamburg &traffic
/plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&distance&to=Hamburg&traffic&model=pessimistic &deptime=16:30
X X gibt die ca. Fahrzeit von deinem Standort (aus der Plugin Konfiguration) bis nach Hamburg aus. Die Angabe basiert auf Google und ein entsprechender API-key muss eingepflegt sein.
zur Verfügung stehende Parameter sind:

&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)
saysonos /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=saysonos X Gibt den aktuell laufenden Radiosender per T2S aus
mp3rights /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=mp3rights X setzt die Rechte für das TTS Verzeichnis inkl. Unterverzeichnis und Dateien auf 0755.Die Funktion repariert unterschiedliche Rechte beim Abspielen von gespeichtern MP3 Dateien (messageid)