Hallo Werner und die anderen Squeezbox Besitzer
Danke für das Skript, da kann man wieder ein paar neue Ideen aufschnappen und es muss nicht jeder wieder bei Null anfangen.
Soweit wie Du bin ich noch lange nicht, ich kann nur die Standartsachen an/aus lauter/leise play/stop vor/zurück. Dafür hab ich es so gelöst(da ich zu faul war jeder Squeezebox für jede Taste die IDs in nem Skript einzutragen) das sich IPS selber die IDs raussucht. Also für jede SB hab ich einen Ordner und in dem gibt es immer die gleichen Variablennamen(Power, Steuerung,Lautstärke usw) und alle haben das gleiche Schaltscript.
Wenn ich jetzt im Webfront z.B. Stop drücke schaut IPS mit
$befehl = IPS_GETNAME($IPS_VARIABLE);
nach wie die Variable heißt, also hier z.b. Steuerung dann schaut es nach in welchem Ordner die Variable ist mit
$player = IPS_GetParent($IPS_VARIABLE);
und damit kann ich jetzt die mac adresse des Players rausfinden mit
switch ($player)
{
case 45071:
{
// echo "SCHHLAF";
$mac="00:04:20:27:82:8b";
}
break;
case 59064:
{
//echo "Router";
$mac="00:1a:92:21:0f:e4";
}
break;
case 38029:
{
//echo "BOOM";
$mac="00:04:20:1f:6d:7d";
}
}
und nachdem ich den Befehl und die mac adresse kenne kann ich die Befehle an die richtige Box schicken.
switch ($befehl)
{
case "Power":
{
if (getvalue($IPS_VARIABLE))
$if = ' power 0';
else
$if = ' power 1';
CSCK_SendText(34493 /*[Client Socket Squeeze]*/, $mac.$if.chr(13));
}
break;
case "Lautstärke":
{
// echo "Lautstärke".$mac;
CSCK_SendText(34493 /*[Client Socket Squeeze]*/, $mac." mixer volume ".$IPS_VALUE.chr(13));
}
break;
case "Steuerung":
{
// echo "Steuerung".$IPS_VALUE;
switch ($IPS_VALUE)
{
case 0:
{ $cmd = " stop";
break;}
case 1:
{ $cmd = " pause";
break;}
case 2:
{ $cmd = " play";
break;}
case 3:
{ $cmd = " button jump_fwd";
break;}
case 4:
{ $cmd = " playlist jump -1";
break;}
}
CSCK_SendText(34493 /*[Client Socket Squeeze]*/, $mac.$cmd.chr(13));
}
break;
}
Ist halt noch nicht so umfangreich mit Playlisten und Favoriten aber vielleicht eine Anregung wie man sich die Neuanlage einer Squeezebox vereinfachen kann.
Ich muss nur einen Ordner und die Variablen anlegen (wollte ich eigentlich mit nem Skript machen aber noch keine Zeit dafür gefunden) und dann im switch ($player) die ID des Orders und die mac adresse im Schaltskript eintragen und schon kann man die Box steueren.
Zum auslesen/mithören hab ich es auch so gelöst aber das Skript muss ich erst noch überarbeiten damit man versteht was da gemacht wird.
Aber jetzt muss ich erstmal dein Skript bei mir mit einfließen lassen. Also nochmal Danke dafür.
Gruß Jannis
Skripte sind weiter unten.