BOSE SoundTouch über Homematic CCU steuern

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
Hubobel
Beiträge: 123
Registriert: 10.05.2016, 11:49
Wohnort: Exilplauner in Oggersheim

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von Hubobel » 31.07.2016, 13:54

Gibt es vielleicht auch eine Möglichkeit, per Script die Soundtouch auf den Multiroombetrieb zu schalten?
Gruß, Carsten
--------------------------------------------
RaspberryMatic 2.29.22.20171007 @ RPi3
--------------------------------------------
102 Kanäle in 39 Geräten und 4 CUxD-Geräten
Programme: 59 - Skripte: 67 - Variabelnamen: 30
--------------------------------------------

tobinedo
Beiträge: 23
Registriert: 23.02.2016, 11:46

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von tobinedo » 20.10.2016, 09:23

Hallo zusammen und vielen dank für Inspiration die ich mir hier schon geholt habe.
Ich hab mir gestern auch ein Skirpt zusammengebastelt, dass aus dem now_playing xml das laufende Preset, den Künstler, Titel und Album-Name sucht und in Variablen ablegt. Diese lasse ich mir dann in meine mediola NEO app ausgeben.

Ich habe insgesamt vier SoundTouch Systeme im Haus die sich pairen sobald Musik läuft. Da der Master immer die Küche ist, brauche ich auch nur diese auszulesen.

Benötigte variablen:
+ ST.NP.itemName
+ ST.NP.track
+ ST.NP.artist
+ ST.NP.album

Und hier das Skript:

Code: Alles auswählen

!erstelle eine Systemvariable string ST.NP.itemName
!erstelle eine Systemvariable string ST.NP.track
!erstelle eine Systemvariable string ST.NP.artist
!erstelle eine Systemvariable string ST.NP.album

!Soundtouch IP setzen (Liegt hier in der variable ST.IP.Kueche)
var ST_IP_Kueche_tmp = dom.GetObject("ST.IP.Kueche");
string ST_Ip= ST_IP_Kueche_tmp .Variable();

!now_playing auslesen
var url="http://" # ST_Ip #":8090/now_playing";
var cmd = "/usr/local/addons/cuxd/curl -s -k -L " # url ;

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var v = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

integer foo = v.Find("encoding");

if (foo <> -1) {
  !ST.NP.itemName finden
  string word = "itemName";
  integer word_laenge = word.Length();
  integer word_position = v.Find(word);
  string daten = v.Substr((word_position + word_laenge +1), 100);
  integer word_position = daten.Find(word);
  daten = daten.Substr(0, (word_position -2));
  dom.GetObject("ST.NP.itemName").State(daten);

  !ST.NP.track finden
  string word = "track";
  integer word_laenge = word.Length();
  integer word_position = v.Find(word);
  string daten = v.Substr((word_position + word_laenge +1), 100);
  integer word_position = daten.Find(word);
  daten = daten.Substr(0, (word_position -2));
  dom.GetObject("ST.NP.track").State(daten);

  !ST.NP.artist finden
  string word = "artist";
  integer word_laenge = word.Length();
  integer word_position = v.Find(word);
  string daten = v.Substr((word_position + word_laenge +1), 100);
  integer word_position = daten.Find(word);
  daten = daten.Substr(0, (word_position -2));
  dom.GetObject("ST.NP.artist").State(daten);

  !ST.NP.album finden
  string word = "album";
  integer word_laenge = word.Length();
  integer word_position = v.Find(word);
  string daten = v.Substr((word_position + word_laenge +1), 100);
  integer word_position = daten.Find(word);
  daten = daten.Substr(0, (word_position -2));
  dom.GetObject("ST.NP.album").State(daten);
}
else {
  !Wenn Soundtouch nicht erreichbar   
  var STtempIP = dom.GetObject("ST.NP.itemName"); STtempIP.Variable("NotFound");
  var STtempIP = dom.GetObject("ST.NP.track"); STtempIP.Variable("NotFound");
  var STtempIP = dom.GetObject("ST.NP.artist"); STtempIP.Variable("NotFound");
  var STtempIP = dom.GetObject("ST.NP.album"); STtempIP.Variable("NotFound");
}
Verbesserungsvorschläge und Ideen nehme ich natürlich gerne entgegen.

Ulli@volles-haus.de
Beiträge: 115
Registriert: 19.07.2014, 20:41
Wohnort: 53859 Niederkassel
Kontaktdaten:

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von Ulli@volles-haus.de » 12.02.2017, 17:47

Hallöchen an alle

Wollte hier mal meinen Dank an die Freaks unter Euch. Finde es ja unheimlich klasse das sich Leute, die Ahnung von der Materie haben, hinsetzen und so etwas in mühevoller Kleinarbeit austüffteln und allen zur Verfügung stellen. Gerade für solche Scriptingnieten wie mich ein wahrer Segen.

Habe die Scripte bei mir eingebunden und bin absolut begeistert. Alles funktioniert genau wie beschrieben und ich kann endlich umsetzen was ich schon lange wollte.

DANKE DANKE DANKE .... wirklich eine klasse Arbeit

LG Ulli
Ständig wachsend .... Datenpunkte: ca 10000 IOBroker / 2300 Raspberrymatic / Kanäle: 419 / Geräte: 88

Unsere Homepage: http://www.kuesterlut.de
Unser Lieferant für das Zentralstaubsauger Zubehör: J. Wichtlhuber http://stores.ebay.de/zentralstabsaugan ... 7675.l2563

Ulli@volles-haus.de
Beiträge: 115
Registriert: 19.07.2014, 20:41
Wohnort: 53859 Niederkassel
Kontaktdaten:

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von Ulli@volles-haus.de » 28.02.2017, 12:22

Hallöchen zusammen

Habe noch eine Frage an die Freaks hier bezüglich der BOSE Steuerung.

Gibt es eine Möglichkeit die aktuell eingestellte Lautstärke auszulesen und in einer Variablen zu speichern?

Hintergrund der Frage:
Ich höre gern laute Musik und habe diverse Statusmeldungen der CCU per MP3 Funkgong. Nun wäre es super die laufende Lautstärke einzulesen, dann auf einen festgelegten Wert zu senken, die Statusmeldung über den MP3 Funkgong auszugeben und anschließend die Lautstärke wieder auf den vorherigen Wert anzuheben. Da der Ursprügliche Wert ja individuell eingestellt ist, müsste ich diesen vor der Aktion auslesen.
Im Badezimmer soll die BOSE Box die eingestellte Lautstärke um x Prozent anheben wenn der Feuchtigkeitssensor in der Dusche steigende Luftfeuchtigkeit meldet. Dann läuft nämlich die Dusche und die Mucke soll lauter werden. Sobald die Feuchtigkeit fällt, was sofort nach dem Abdrehen des Wassers passiert weil die automatische Lüftung die feuchte Luft aus der Dusche saugt, soll wieder auf den ursprünglichen Lautstärkewert zurückgestellt werden.

Für beide Szenarien benötige ich aber die eingestellte Lautstärke in einer Variablen.


Hoffe einer der Freaks hier hat eine Lösung für diese Aufgabenstellung.

LG Ulli
Ständig wachsend .... Datenpunkte: ca 10000 IOBroker / 2300 Raspberrymatic / Kanäle: 419 / Geräte: 88

Unsere Homepage: http://www.kuesterlut.de
Unser Lieferant für das Zentralstaubsauger Zubehör: J. Wichtlhuber http://stores.ebay.de/zentralstabsaugan ... 7675.l2563

Benutzeravatar
Hubobel
Beiträge: 123
Registriert: 10.05.2016, 11:49
Wohnort: Exilplauner in Oggersheim

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von Hubobel » 28.02.2017, 20:14

Ulli@volles-haus.de hat geschrieben:Hallöchen zusammen

Habe noch eine Frage an die Freaks hier bezüglich der BOSE Steuerung.

Gibt es eine Möglichkeit die aktuell eingestellte Lautstärke auszulesen und in einer Variablen zu speichern?

LG Ulli
Im ersten Post dieses Threads ist der Code doch enthalten, um das aktuelle Volumen einer bestimmten ST-Quelle einzulesen...was genau brauchst du-bzw. wie kann ich dir weiterhelfen?
Hinzugefügt 18.03.2016

5. SoundTouch Lautstärke auslesen
+ erstelle eine Systemvariable string SoundTouch_NowPlayingVolume
CODE: ALLES AUSWÄHLEN
!"Soundtouch_IP" auslesen falls als SystemVariable vorhanden
!var STtempIP = dom.GetObject("Soundtouch_IP"); string ST_Ip= STtempIP .Variable();

!Soundtouch IP setzen (optional wenn nicht Systemvariable)
string ST_Ip ="xx.xx.xx.xx";
WriteLine("Soundtouch IP>: " # ST_Ip);

!get voluume
var url="http://" # ST_Ip #":8090/volume";
var cmd = "/usr/local/addons/cuxd/curl -s -k -L " # url ;

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var v = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
Die API habe ich dir mal angehängt, vielleicht ist das schon ein erster Schritt...

Grüße aus einem windigen Oggersheim
Dateianhänge
SoundTouchAPIWebServicesv101.pdf
(250.76 KiB) 214-mal heruntergeladen
Zuletzt geändert von Hubobel am 28.02.2017, 20:17, insgesamt 1-mal geändert.
Gruß, Carsten
--------------------------------------------
RaspberryMatic 2.29.22.20171007 @ RPi3
--------------------------------------------
102 Kanäle in 39 Geräten und 4 CUxD-Geräten
Programme: 59 - Skripte: 67 - Variabelnamen: 30
--------------------------------------------

Ulli@volles-haus.de
Beiträge: 115
Registriert: 19.07.2014, 20:41
Wohnort: 53859 Niederkassel
Kontaktdaten:

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von Ulli@volles-haus.de » 28.02.2017, 20:17

Hallöchen

Das muss ich in meinem Übereifer wohl überlesen haben... Schaue mir das gleich nochmal an und melde mich ggf nochmal.. Trotzdem schon mal 1000 Dank für die schnelle Reaktion

LG Ulli
Ständig wachsend .... Datenpunkte: ca 10000 IOBroker / 2300 Raspberrymatic / Kanäle: 419 / Geräte: 88

Unsere Homepage: http://www.kuesterlut.de
Unser Lieferant für das Zentralstaubsauger Zubehör: J. Wichtlhuber http://stores.ebay.de/zentralstabsaugan ... 7675.l2563

Ulli@volles-haus.de
Beiträge: 115
Registriert: 19.07.2014, 20:41
Wohnort: 53859 Niederkassel
Kontaktdaten:

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von Ulli@volles-haus.de » 28.02.2017, 20:29

Hallöchen zusammen

Sorry für meine blöde Frage. Habe das tatsächlich total überlesen. Manchmal sieht man vor lauter Lösungen dei richtige nicht mehr.

LG Ulli
Ständig wachsend .... Datenpunkte: ca 10000 IOBroker / 2300 Raspberrymatic / Kanäle: 419 / Geräte: 88

Unsere Homepage: http://www.kuesterlut.de
Unser Lieferant für das Zentralstaubsauger Zubehör: J. Wichtlhuber http://stores.ebay.de/zentralstabsaugan ... 7675.l2563

Benutzeravatar
Hubobel
Beiträge: 123
Registriert: 10.05.2016, 11:49
Wohnort: Exilplauner in Oggersheim

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von Hubobel » 28.02.2017, 20:33

Es gibt keine blöden Fragen...hat mich direkt dazu veranlasst,die API Beschreibung nochmal zur Hand zu nehmen.


Gesendet von iPhone mit Tapatalk
Gruß, Carsten
--------------------------------------------
RaspberryMatic 2.29.22.20171007 @ RPi3
--------------------------------------------
102 Kanäle in 39 Geräten und 4 CUxD-Geräten
Programme: 59 - Skripte: 67 - Variabelnamen: 30
--------------------------------------------

Ulli@volles-haus.de
Beiträge: 115
Registriert: 19.07.2014, 20:41
Wohnort: 53859 Niederkassel
Kontaktdaten:

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von Ulli@volles-haus.de » 28.02.2017, 21:24

Hallöchen zusammen

@Hubobel
Hast ja gelesen wozu ich das brauche. Sitze gerade am Programm für meine "erweiterte" Haustürklingel.

Jemand klingelt an der Haustür -> Lautstärke wird eingelesen -> Lautstärke wird abgesenkt -> Funkgong klingelt -> Lautstärke wird wieder auf den vorherigen Wert zurückgestellt.

Morgen setze ich mich dann an das Programm zur automatischen Lautstärkeanpassung im Bad.

So überhöre ich ein das Klingeln der aufgebrachten Nachbarn nicht mehr, die sich über die laute Musik beschweren wollen :-)

LG Ulli
Ständig wachsend .... Datenpunkte: ca 10000 IOBroker / 2300 Raspberrymatic / Kanäle: 419 / Geräte: 88

Unsere Homepage: http://www.kuesterlut.de
Unser Lieferant für das Zentralstaubsauger Zubehör: J. Wichtlhuber http://stores.ebay.de/zentralstabsaugan ... 7675.l2563

tobinedo
Beiträge: 23
Registriert: 23.02.2016, 11:46

Re: BOSE SoundTouch über Homematic CCU steuern

Beitrag von tobinedo » 25.03.2017, 00:03

Hallo Zusammen, hier mein kleines Projekt der letzen Tage zum Thema Soundtouch:

Die Vorgeschichte:

Nachdem ich die Bose Soundtouch Lautsprecher (habe inzwischen 4) erfolgreich in mein Smarthome intergriert habe, und diese auch erfolgreich liefen, habe ich mal die dafür erstellten Programme und Systemvariablen durchgezählt und kam auf sage und schreibe 12 Programme und 23 Variablen.
Das war mir zu viel und sorgte immer wieder für Verwirrung bei Anpassungen. Aber so ist es leider, wenn man immer mal eben schnell anbaut und es trotzdem dauerhaft funktioniert.

Jedenfalls habe ich mal gesammelt, gebündelt und umstrukturiert und programmiert.
Ich war selbst erstaunt: Ich habe nur noch ein Programm und eine Systemvariable.
Man muss aber dazu sagen, dass ich auf das Auslesen des Aktuellen Tracks verzichte. (Seit dem Bose Plugin für Mediola NEO benötige ich das nicht mehr.

Meine Soundtouch Anforderungen:

Wenn bei uns zu Hause (Zwei-Personen Haushalt) Musik läuft, dann immer in allen Räumen das gleiche.
Die Soundtouch geht an wenn jemand nach hause kommt und geht aus wenn alle aus dem Haus sind.
Genau so ist es wenn der Fernseher eingeschaltet wird: TV an -> Musik aus, TV aus -> Musik an.
Nachdem abends dann die Nachttischlampen aus sind, geht die Musik zu schlafen aus und morgens mit dem Wecker wieder an.
Ihr merkt schon. Bei uns läuft immer Musik so lange jemand zu hause ist und nicht schläft oder TV guckt.
Und abhängig von Tageszeit, Helligkeit, Wochentag, Gästen usw. andere Presets.

Meine Lösung:

Ich habe nur noch eine Systemvariable mit dem Namen ST.Preset. Eine Werteliste mit den Zahlen von 0-6:
Bild
"1"-"6" sind meine Presets und "0" heisst ausschalten

In einem anderen Programm, in dem ich dann z.B. die Musik wieder einschalten möchte,
wähle ich die Systemvariable ST.Preset aus und gebe mein Wunschpreset an.
Bild

Kommen wir nun zum eigentlichen Programm:

Mein Programm ist Systemintern und heisst Soundtouch und sieht so aus:

Bild

Ändert sich meine Systemvariable springt wird das Programm "aktiv" und führt das folgende Skript aus:
Ich hab mir mühe gegeben, alles soweit es geht zu kommentieren. :D
(Die CUxD Adresse ist CUxD.CUX2801001:1 wie man unschwer im Skript erkennen kann.)

Code: Alles auswählen

!*******************************************************************************
!**      Bose Soundtouch HomeMatic-Script V1.1                                **
!**      by TobiNedo                                                          **
!**      23.03.2017                                                           **
!**                                                                           **
!**      Verwendete Homematic Systemvariablen:                                **
!**      ST.Preset (Werteliste)                                               **
!**       - 0;1;2;3;4;5;6                                                     **
!**                                                                           **
!**      Voraussetzungen:                                                     **
!**      - Feste IP-Adressen für Soundtouch-Geräte                            **
!**      - Definierte Presets                                                 **
!**      - CUxD muss auf der CCU installiert sein                             **
!**      - CUxD Adresse von Soundtouch                                        **
!**                                                                           **
!**      Changelog:                                                           **
!**      v1.1                                                                 **
!**      - prüfen ob Soundtouch vorher schon an war,                          **
!**        dann alle einstellungen (Lautstärke, Slaves) beibehalten           **
!**      - Durch Preset 0 Soundtouch ausschalten                              **
!**      - SystemVariable von String zu Werteliste geändert                   **
!**                                                                           **
!*******************************************************************************

!Master und Slaves definieren
!Die Device ID findet man unter
!http://<<SoundtouchIP>>:8090/now_playing
  !Master bestimmen - Küche
  var ST_Master_IP = "123.123.123.123";
  var ST_Master_DeviceID = "EC1234567890";
  var ST_Master_Volume = "30";
  !Slaves besteimmen
    !Slave 1 - Schlafzimmer
    var ST_Slave1_IP = "123.123.123.123";
    var ST_Slave1_DeviceID = "EC1234567890";
    var ST_Slave1_Volume = "30";
    !Slave 2 - Badezimmer
    var ST_Slave2_IP = "123.123.123.123";
    var ST_Slave2_DeviceID = "EC1234567890";
    var ST_Slave2_Volume = "30";
    !Slave 3 - Büro
    var ST_Slave3_IP = "123.123.123.123";
    var ST_Slave3_DeviceID = "EC1234567890";
    var ST_Slave3_Volume = "30";

!Soundtouch Preset holen und setzen
var tmp_preset = dom.GetObject("ST.Preset");
var ST_Preset = web.webGetValueFromList(tmp_preset.ValueList(), tmp_preset.Value());

!Überprüfung ob Master Bereits eingeschlatet war
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("/usr/local/addons/cuxd/curl -s -k -L http://" # ST_Master_IP #":8090/now_playing");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var v = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
integer tmp_standby = v.Find("STANDBY"); ! Wenn Soundtouch in Standby dann = -1

!Wenn Preset = 0, dann soll Master Soundtouch
!(und mit ihm alle Slaves) ausgeshlatet werden
if (ST_Preset == "0") {
  if (tmp_standby == -1) {
    !Power-Butten in SoundTouch-Key Wandeln
    var tmp_Key = "POWER";
    !Soundtouch-Key auf ST_Master ausführen
    string CurlCmd='/usr/local/addons/cuxd/curl --data "<key state="press" sender="Gabbo">' # tmp_Key # '</key>" http://' # ST_Master_IP # ':8090/key';
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
    !SoundTouchKey auf ST_Master beenden
    string CurlCmd='/usr/local/addons/cuxd/curl --data "<key state="release" sender="Gabbo">' # tmp_Key # '</key>" http://' # ST_Master_IP # ':8090/key';
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
  }
}
else {
  !ST_Master mit Preset einschalten Einschlaten
  !Preset in SoundTouch-Key Wandeln
  var tmp_Key = "PRESET_" + ST_Preset;

  !Soundtouch-Key auf ST_Master ausführen
  string CurlCmd='/usr/local/addons/cuxd/curl --data "<key state="press" sender="Gabbo">' # tmp_Key # '</key>" http://' # ST_Master_IP # ':8090/key';
  dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
  dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
  dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
  !SoundTouchKey auf ST_Master beenden
  string CurlCmd='/usr/local/addons/cuxd/curl --data "<key state="release" sender="Gabbo">' # tmp_Key # '</key>" http://' # ST_Master_IP # ':8090/key';
  dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
  dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
  dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

  !Wenn Master vorher aus war, dann Slaves KOppeln und Lautstärke setzen.
  !Ansonsten einstellungen lassen
  if (tmp_standby <> -1) {
    !ST_Master Lautstärke setzen
    string CurlCmd='/usr/local/addons/cuxd/curl --data "<volume>' # ST_Master_Volume # '</volume>" http://' # ST_Master_IP # ':8090/volume';
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

    !Slaves mit ST_Master koppeln
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -d '<zone master='" # ST_Master_DeviceID # "'>
    <member ipaddress='" # ST_Slave1_IP # "'>" # ST_Slave1_DeviceID # "</member>
    <member ipaddress='" # ST_Slave2_IP # "'>" # ST_Slave2_DeviceID # "</member>
    <member ipaddress='" # ST_Slave3_IP # "'>" # ST_Slave3_DeviceID # "</member>
    </zone>' http://" # ST_Master_IP # ":8090/setZone");

    !Laustärke für Slaves setzen
      !Slave1
      string CurlCmd='/usr/local/addons/cuxd/curl --data "<volume>' # ST_Slave1_Volume # '</volume>" http://' # ST_Slave1_IP # ':8090/volume';
      dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
      dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
      dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
      !Slave2
      string CurlCmd='/usr/local/addons/cuxd/curl --data "<volume>' # ST_Slave2_Volume # '</volume>" http://' # ST_Slave2_IP # ':8090/volume';
      dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
      dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
      dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
      !Slave3
      string CurlCmd='/usr/local/addons/cuxd/curl --data "<volume>' # ST_Slave3_Volume # '</volume>" http://' # ST_Slave3_IP # ':8090/volume';
      dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
      dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
      dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
  }

  !ST_Master auf SHUFFLE_ON und REPEAT_ALL setzen
    !SoundTouch-Key für SHUFFLE_ON
    var tmp_Key = "SHUFFLE_ON";
    !Soundtouch-Key auf ST_Master ausführen
    string CurlCmd='/usr/local/addons/cuxd/curl --data "<key state="press" sender="Gabbo">' # tmp_Key # '</key>" http://' # ST_Master_IP # ':8090/key';
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
    !SoundTouchKey auf ST_Master beenden
    string CurlCmd='/usr/local/addons/cuxd/curl --data "<key state="release" sender="Gabbo">' # tmp_Key # '</key>" http://' # ST_Master_IP # ':8090/key';
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

    !SoundTouch-Key für REPEAT_ALL
    var tmp_Key = "REPEAT_ALL";
    !Soundtouch-Key auf ST_Master ausführen
    string CurlCmd='/usr/local/addons/cuxd/curl --data "<key state="press" sender="Gabbo">' # tmp_Key # '</key>" http://' # ST_Master_IP # ':8090/key';
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
    !SoundTouchKey auf ST_Master beenden
    string CurlCmd='/usr/local/addons/cuxd/curl --data "<key state="release" sender="Gabbo">' # tmp_Key # '</key>" http://' # ST_Master_IP # ':8090/key';
    dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(CurlCmd);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
}
Ich würde mich über Feedback, Verbesserungen und Vorschläge für Erweiterungen eurerseits freuen.
Fragen beantworte ich natürlich auch gerne.

Und nicht zu vergessen der Hinweis, dass ich ohne dieses Forum und vor allem diesem Thema niemals soweit gekommen wäre! DANKE!

Antworten

Zurück zu „CUxD“