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