Metainformationen zur Seite

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
plugins:sonos4loxone:t2s_durchsagen [2024/08/07 10:07] Oliver Lewaldplugins:sonos4loxone:t2s_durchsagen [2025/03/15 17:11] (aktuell) – [Tabelle] Robert Sixt
Zeile 7: Zeile 7:
 wichtig ist der Haken bei "**Verbindung nach dem Senden schließen**", ansonsten wird u.U. die Funktion 2x ausgeführt wichtig ist der Haken bei "**Verbindung nach dem Senden schließen**", ansonsten wird u.U. die Funktion 2x ausgeführt
  
-===== Security (VLAN) =====+===== An-/Abwesenheit Steuerung =====
  
-Aufgrund der Nutzung des CIFS Netzwerkprotokolls für T2S kann es für Betreiber mehrerer VLAN's notwendig sein die TCP Ports **137-139** und **445** in der Firewall zu öffnen+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 ===== ===== Syntax =====
Zeile 15: Zeile 19:
 Ü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: Ü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> |+| http:%%//%%<LOXBERRY IP-Adresse> oder <LOXBERRY HOSTNAME>  |
  
 ===== Allgemeine T2S Parameter ===== ===== Allgemeine T2S Parameter =====
Zeile 29: Zeile 33:
 | playbatch | &playbatch  | Spielt alle mit **&batch** erstellten T2S in deren vorherigen Reihenfolge ab  | | 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 | | 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**|+| clip | &clip | nutzt die Sonos Build in Audio Clip funktion bei der die T2S im aktuell laufenden Stream eingemischt wird Optionale Parameter: **&paused** - Gibt T2S an alle gerade NICHT spielenden Player aus, **&high** - setzt die Priorität auf high |
  
 ===== Standard T2S ===== ===== Standard T2S =====
Zeile 53: Zeile 57:
 |   | /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  | |   | /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 | |   | **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
 +
 +<code Pico>
 +// 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);
 + }
 +</code>
  
 ===== Sonderfunktionen T2S ===== ===== Sonderfunktionen T2S =====
  
 | **Funktion** | **Befehl / Syntax / URL**  | **Einzel** | **Gruppe** | **Beschreibung**  | | **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%% | **X** | **X** | Spielt den Sonos Build-in Klingelton CHIME ab oder eine im tts/mp3 Verzeichnis hinterlegte MP3 Datei ab (Angabe OHNE .mp3) |+| 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                                                                                 %%%%/plugins/sonos4lox/index.php/?zone=DEINE_ZONE&action=doorbell&file=Airport_Gong&paused%% | **X** | **X** | Spielt den Sonos Build-in Klingelton CHIME ab oder eine im tts/mp3 Verzeichnis hinterlegte MP3 Datei ab (Angabe OHNE .mp3)                                            Optionale Parameter: **&paused** - Gibt Doorbell an alle gerade NICHT spielenden Player aus |
 | Uhrzeit | /plugins/sonos4lox/index.php?zone=DEINE_ZONE&action=say&clock | **X** |   | Die aktuelle Uhrzeit des LoxBerry wird angesagt | | 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 | | 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 |
Zeile 65: Zeile 112:
 | 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 | | 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 | | 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) |+| 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 | | 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) |