Hallo obakuhl,
vielleicht kann ich hier etwas weiterhelfen. Brati hab dein Script noch etwas angepasst und erweitert. Danke für die Idee, ich komm damit sehr gut zurecht. Jetzt müsste ich bei Gelegenheit noch den Status aus den Boxen auslesen und anzeigen. Aber das sollte ja auch nicht all zu schwer sein.
Ich habe in vis die Widgets wie im Bild gebaut. Das Widget muss dann einfach die PID der zu bedienenden Box und den Befehl (aus den case abfrage) in die Objekte Command und CommandPID schreiben.
mein switch mit dem Befehlen, play, stop, Lautstärke, verschiedene streams und AUX in, Gruppen (funktioniert noch nicht richtig)
sieht so aus.
! ````
createState('javascript.1.Denon.Heos.IP_Adresse', heosip,{type: "string", role: "HEOS IP Adresse"});
createState('javascript.1.Denon.Heos.Command', "getALLPlayersInfo");
createState('javascript.1.Denon.Heos.CommandPID', "1946911914");
createState('javascript.1.Denon.Heos.Return', "");
createState('javascript.1.Denon.Heos.Verbunden', false, {
name: 'Verbindung zu HEOS',
desc: 'Verbindung zu HEOS',
type: 'boolean',
});
! on({id: "javascript.1.Denon.Heos.Command"/Commando für HEOS Aufruf/, change: "any"}, function (obj) {
befehl = getState("javascript.1.Denon.Heos.Command").val; // Befehl gleich Name des aufzurufendem case
var StreamURL = ""
if(!getState('javascript.1.Denon.Heos.Verbunden').val)
checkIP(getState('javascript.1.Denon.Heos.IP_Adresse').val); // Verbinden mit HEOS
switch (befehl) {
case "muteTogglePlayer":
sendMessage('heos://player/toggle_mute?pid='+getState('javascript.1.Denon.Heos.CommandPID').val);
break;
case "volUp":
sendMessage('heos://player/volume_up?pid='+getState('javascript.1.Denon.Heos.CommandPID').val+"/step=5");
break;
case "volDown":
sendMessage('heos://player/volume_down?pid='+getState('javascript.1.Denon.Heos.CommandPID').val+"/step=5");
break;
case "playPlayer":
sendMessage('heos://player/set_play_state?pid='+getState('javascript.1.Denon.Heos.CommandPID').val+'&state=play'); //play, pause, stop
break;
case "stopPlayer":
sendMessage('heos://player/set_play_state?pid='+getState('javascript.1.Denon.Heos.CommandPID').val+'&state=stop'); //play, pause, stop
break;
case "stream_swr3":
StreamURL = "http://mp3-live.swr3.de/swr3_m.m3u";
sendMessage('heos://browse/play_stream?pid='+getState('javascript.1.Denon.Heos.CommandPID').val+'&url='+StreamURL);
break;
case "stream_rockantenne":
StreamURL = "http://www.rockantenne.de/webradio/rockantenne.m3u";
sendMessage('heos://browse/play_stream?pid='+getState('javascript.1.Denon.Heos.CommandPID').val+'&url='+StreamURL);
break;
case "groupEG":
sendMessage('heos://group/set_group?pid=-624821035,-570512098');
break;
case "unGroupEG":
sendMessage('heos://group/set_group?pid=-624821035');
break;
case "inputAUX":
sendMessage('heos://browse/play_input?pid='+getState('javascript.1.Denon.Heos.CommandPID').val+'&input=inputs/aux_in_1');
break;
default:
console.warn("HEOS Befehl nicht bekannt!");
// falls keine der case-Klauseln mit befehl übereinstimmt
break;
}
!
});
! ````
Hoffe das hilft etwas.
Gruß