[Modul] Bose SoundTouch

Dann reicht es erst mal aus einzelne Skripte anzulegen, die den passenden Befehl enthalten und diesen einen passenden Namen zu geben.

Z.B. Bose einschalten


<?
BST_powerDevice(12345); // ObjektID der Bose Instanz
?>

Auf das Skript wird dann ein Ereignis gelegt, das bei Variablenaktualisierung der Taster Variable auslöst. Dann sollte eigentlich, wenn der Taster gedrückt wird, das passende Skript ausgeführt werden.

Danke Fonzo,

im Anhang sind zwei Screenshots, das php script wird als fehlerhaft deklariert. Ich bin leider noch absoluter beginner mit den php. Ich hoffe wenn ich diese Soundtouch so steuern kann wie ich will wirds besser:):):slight_smile:

Eigentlich will ich per Gruppenadresse KNX nur ein/aus schalten, laut und leise, sowie die senderinformation auf den knx übertragen.

Ich glaube der Groschen muss bei mir erst fallen und bis dahin hoffe ich auf Hilfe.

Hi, im Script die 12345 durch 11494 ersetzen. Dann sollte das ausführen des Scriptes funktionieren.

Gesendet von iPhone mit Tapatalk

Das ist relativ simpel. Eine Methode muss wissen für welche Instanz diese eigentlich ausgeführt werden soll. Dafür gibt es in IP-Symcon eine fünfstellige ObjektID, diese ist in der linken Spalte des Objektbaums zu finden, um eindeutig zu definieren, auf was sich ein Befehl bezieht. Wenn Du hier im Forum Skripte findest, dann steht dort auch eine 5 stellige ObjektID im Skript, diese kann aber nicht zu der ObjektID der Instanz passen, die Du ansprechen willst, da jede ObjektID eindeutig und individuell ist.

Was Du also immer machen musst ist die ObjektID an Dein System anzupassen.

Wenn hier also steht


<? 
BST_powerDevice(12345); // ObjektID der Bose Instanz 
?>

dann ist 12345 nur ein Beispiel dafür, das hier die ObjektID der Instanz stehen muss. Diese kannst Du dann entweder per Hand löschen und die passende ObjektID eintragen das wäre bei Dir


<? 
BST_powerDevice(11494); 
?>

Alternative ist es an dem Punkt, an dem die ObjektID steht diese zu löschen und dann STRG+O zu drücken, dann öffnet sich der Objektbaum und Du klickst mit der Maus auf das Objekt das Du ansprechen willst, die passende ObjektID wird dann automatisch eingefügt.

Erstmal 1000 Dank Ulli und Fozo,

aus und ein schalten funktioniert.

Wie klappt das jetzt mit laut und leiser ?
Hab knx Dimmmer angelegt.

Woher kommt ihr auf den Befehl BST_powerDevice?

Auch wie man die Senderinformation noch in einen KNX String umwandelt und auf den Bus sendet ist mir noch unklar.

Bose ein/aus :slight_smile:
Bose lauter/leiser:(
Bose preset 1-5:(
Bose Senderinformation auf KNX senden:(

Hoffentlich bald alles auf:)

Im Sorry für die vielen Noob Fragen:banghead::banghead:

Du kannst in einem Skript BST eingeben und dann einfach STRG+Space drücken und Du bekommst alle Befehle für das Modul angezeigt.
Ich schau mal wie ich Laut/Leise bei mir mit Sonos gelöst häbe. Das findest hier auch irgendwo im Forum. Sonos und KNX…
Grüße,
Peter

Gesendet von iPhone mit Tapatalk

so mal auf die schnelle ein Skript für lauter:


<?

$volumeVariable = 41096;
$actualVolume = GetValue($volumeVariable);
// lauter
$newVolume = $actualVolume+1; 
SetValue($volumeVariable, $newVolume);
BST_setDeviceVolume(11494, $newVolume);


?>

und für leiser:


<?

$volumeVariable = 41096;
$actualVolume = GetValue($volumeVariable);
// leiser
$newVolume = $actualVolume-1; 
SetValue($volumeVariable, $newVolume);
BST_setDeviceVolume(11494, $newVolume);


?>

Die ID’s sind schon auf dich abgepasst.

Das ist ein Workarround auf die schnelle. Musst du jetzt nur noch deinem Taster zuweisen mit einem Ereignis Variablenaktualisierung.

Zukünftig wird sich das vermutlich ändern, denn ich bin gerade an der Modul Version 2.0 dran, welches ich von Grund auf neu geschrieben habe. Aber das alles zu seiner Zeit.

Gruß

Uli

Hallo und erst mal vielen Dank an alle, ich kann derzeit alles von meinem KNXPanel schalten.
Jetzt wuerde ich noch eine Info benoetigen.

Der Bose Now Playing String soll ebenfalls auf dem KNXPanel angezeigt werden.
Wie verbinde ich diesen Text mit einem KNX Datenpunkt

Vielen Dank im vorraus.

Gesendet von meinem SM-T825 mit Tapatalk

Kannst es ja mal mit EIB_Str versuchen.

Skript anlegen und Wert der Variable mit Now Playing auslesen und auf den Bus schicken


$playing = GetValue(12345); // Variable mit Now Playing
EIB_Str(23456, $playing); // sendet Zeichenkette an Instanz 

Dann ein Ereignis drauf legen das bei Variablenänderung bzw. Aktualisierung der Variable Now Playing ausgeführt wird.

Es kann sein das deine NowPlaying Information nicht vollständig angezeigt wird. Es sind nicht unbegrenzt Zeichen möglich per EIB_Str.
Eventuell musst du den die Info auch schon vor dem Senden kürzen.
Gruß,
Peter

Gesendet von iPhone mit Tapatalk

Hallo Ulli,

zuerst noch vielen Dank für dein Modul und für die laufende Arbeit, an der du uns teilhaben lässt.

Ich bin jetzt dabei, einiges zu automatisieren und habe ein Problem beim „Joinen“ von 2 ST-Lautsprechern.
Das Szenario:
Am Soundtouch WLAN-Adapter „Wohnzimmer“ hängt am AUX-Eingang eine Audio-Quelle, die ich an den Lautsprecher „Bad“ weitergeben will. Das funktioniert über die ST-App auch problemlos.

Wenn ich das selbe über das Skript versuche, erfolgt keine Reaktion. Anbei das Skript:


<?
/* Musikwecker starten*/
if (GetValueBoolean(44082 /*[ergahaus\Bose Audio\Wohnzimmer\Device Power]*/) == false) {
BST_powerDevice(28215 /*[ergahaus\Bose Audio\Wohnzimmer]*/);
}
/* Auf AUX umschalten und die Standard-Lautstärke einstellen*/
BST_useDeviceAUXMode(28215 /*[ergahaus\Bose Audio\Wohnzimmer]*/);
BST_setDeviceVolume(28215 /*[ergahaus\Bose Audio\Wohnzimmer]*/, 70);

if (GetValueBoolean(17255 /*[ergahaus\Bose Audio\Bad\Device Power]*/) == false) {
BST_powerDevice(12860 /*[ergahaus\Bose Audio\Bad]*/);
BST_setDeviceVolume(12860 /*[ergahaus\Bose Audio\Bad]*/, 22);
}

BST_joinZone(12860 /*[ergahaus\Bose Audio\Bad]*/, "Wohnzimmer");

?>

Ist die Syntax hier korrekt? Was mache ich falsch?
L.G. Robert

Hallo,

BST_joinZone wird nur die Instanz aufgerufen, den Parameter „Wohnzimmer“ gibt es nicht.

Den Wert musst du vorher setzten.

Bei der „Badezimmer“-Instanz der Wert der Variable „Join Zone (MultiRoom)“ auf den Wert der Quelle setzten. Musst du im Profil nachsehen, welche Nummer das ist. Nehmen wir an es ist die 1.

Probiere doch mal als Workarround folgendes:

SetValue(„ObjektID der Variable Join Zone (MultiRoom) aus der Instanz Bad“, 1);

Beispiel:

SetValue(12345, 1);

dann kannst du Multiroom starten:

BST_joinZone(12860 /[ergahaus\Bose Audio\Bad]/);

so sieht das dann bei mir aus:
SetValue(38872 /[Devices\Bose SoundTouch\Büro\Join Zone (MultiRoom)]/, 1);
BST_joinZone(56873 /[Devices\Bose SoundTouch\Büro]/);

Das ist etwas unglücklich gelöst, wird aber in der kommenden Version sich verbessern. Habe nur noch ein anderes Projekt davor. Deshalb bitte um Geduld.

Gruß Uli

Danke, werd’s morgen gleich testen!
LG. Robert

Bose SoundTouch Modul Version 2.00

https://github.com/ubittner/SymconBoseSoundTouch.git

Mittlerweile ist es zwei Jahre her, dass ich das Bose SoundTouch Modul erstellt habe.

Mit IP-Symcon 5.0 habe ich die Gelegenheit genutzt, das Modul von Grund auf neu zu erstellen.

Wer noch kein IP-Symcon 5.0 nutzt, sollte netweder das Modulupdate nicht durchführen oder auf den Branch Version-1.00 wechseln.

Wer IP-Symcon 5.0 nutzt und aktualiseren will sollte folgende Vorgehensweise einhalten:

  1. IP-Symcon Backup erstellen.
  2. Das Modul in der Modulverwaltung zunächst löschen.
  3. Alle Bose SoundTouch Instanzen löschen.
  4. Alle existierenden BST Profile im Profilmanager löschen (ab der neuen Version wird dies automatisch erledigt).
  5. IP-Symcon neu starten.
  6. Bose SoundTouch Instanzen neu anlegen und konfigurieren.

Die Konfiguration und auch die Methodennamen haben sich grundlegend geändert.

Ich denke aber, dass der Aufwand sich in Grenzen hält.

Falls Fehler auftreten, kurze Info an mich.

Neuerungen:

  • Anpassung an IP-Symcon 5.0
  • Anwendung der Sprache, bei Deutsch wird alles in deutsch angezeigt
  • Hinzufügen von verschiedenen Audioquellen (Internet Radio, Spotify, Amazon, TuneIn)
  • Verwendung von Audiobenachrichtigungen (nicht für alle Geräte verfügbar)
  • Anzeige von Künstlerinformationen und Cover
  • Keine zusätzlichen Scripte mehr, alles wird über das Modul gesteuert

Anleitung gibt es auf GitHub.

Viel Spaß

Uli

Bein hinzufügen kommt der folgenden Fehler.
Die Instanz lässt sich danach auch nicht aufrufen

123.PNG

Bei mir auch -> aber nur in der alten Konsole

Neue Web Console funktioniert

Gerade auch gesehen.

Über die neue Console passt alles.

Danke für die Info.

Ich arbeite nur noch mit der Web-Console… Bestimmt eine form, welche von der legacy Console nicht unterstützt wird.

Gesendet von iPhone mit Tapatalk

Nein Listen kann die alte Konsole.
Der Fehler sagt doch ganz genau was du vergessen hast :wink:
Michael

Ich habe nichts vergessen [emoji6]

Dann schaue ich mir die add / Value Elemente nochmal an.

Gesendet von iPhone mit Tapatalk