NEWS
[Frage] Denon Heos (Multiroom WIFI Speaker)
-
Guten Morgen,
Ich versuche gerade meine Denon Heos Boxen
ü
ber ioBroker zu kontrollieren um z.B. die Musik mit meinen HM 6-fach Schaltern zu steuern.Da es ja leider noch keinen Adapter daf
ü
r gibt bin ich bei meiner Suche auf folgende Node.js Module gesto
ß
en. Konnte mich aber bis jetzt nicht entscheiden welches f
ü
r mich b.z.w. ioBroker besser geeignet ist.https://github.com/WeeJeWel/node-denon-heos
Da meine Programmierk
ü
nste etwas eingeschr
ä
nkt sind wollte ich mal fragen ob schon jemand etwas in die Richtung gebaut hat?Beide obigen Module sind eigentlich ganz ok und ich konnte damit Infos aus den Boxen auslesen. Weiter bin ich aber bisher aus Zeitmangel nicht gekommen.
Gru
ß
Sebastian
-
Lies doch mal hier: http://forum.iobroker.net/viewtopic.php?f=8&t=5673
Ev. kanst Du dich dort beteiligen. Da geht es um einen universellen upnp Adapter, welcher dann verschiedene Systeme steuern k
ö
nnte.Allenfalls k
ö
nntest Du auch mit den Modulen und dem Node-Red oder JavaScript Adapter etwas machen. -
Welche Funktionen Brauchst du?
Eventuell ist das http://forum.iobroker.net/viewtopic.php?f=8&t=5673 hilfreich f
ü
r dich sein kann.F
ü
r mich w
ä
re es auf jedenfall Hilfreich wenn du das Sonos Script aus dem ersten Post nimmst und Testest was davon beim Heos System geht und was nicht.ykuendig war schneller
-
-
Hey, erstmal vielen Dank f
ü
r die vielen Antworten.Bin leider erstmal ein paar tage weg, werde mir dann aber alles mal genauer ansehen.
@Jey Cee, werde mal testen was das Script mit den Heos anstellt
Als Funktionen w
ü
rde ich gerne nat
ü
rlich die Lautst
ä
rke individuell f
ü
r einzelne Boxen und f
ü
r Gruppen regeln, bestimmte Boxen zur TV Soundbar hinzuf
ü
gen und dann noch bestimmte Soundquellen aktivieren. Ja, sicherlich f
ü
r den Anfang etwas viel. Erstmal bin ich
ü
ber alles froh was funktioniert. Play, Stop, Laut/Leise und Anzeige der aktuellen Musik/Quelle. Aber das ist ja in allen genannten Varianten auch schon umgesetzt.@Brati bin etwas
ü
berrascht, dass Heos Telnet verwendet. Kann man die Boxen tats
ä
chlich
ü
ber Konsole steuern?Ich sehen schon die Abende in n
ä
chster Zeit sind gerettet. Da gibt's ja einiges zum Spielen und Testen.Gru
ß
Sebastian
-
Ein Adapter w
ä
re super cool, aber bis es soweit ist, ist ein recht einfacher Work-Around "mit vorhandenen Tools" aktuell eine TCP-Node via NodeRed, da die Heos-Ger
ä
te ja per Telnet-Befehl ansteuerbar sind. Diese Node(s)
ü
bertr
ä
gt bei mir aktuell die Einstellungen f
ü
r Volume und Play_State sobald sie im ioBroker ge
ä
ndert werden (jeder Heos ist bei mir als Objekt angelegt). Es gibt zwar keinen auslesbaren "R
ü
ckkanal", der mir den Status des Lautsprechers anzeigt, aber f
ü
r besagte rudiment
ä
re Optionen erstmal ausreichend.Ich habe f
ü
r die "au
ß
ergew
ö
hnlichen" Befehle (also ein command-Item in meinem Heos-Objekt angelegt, in das einfach der gesamte Befehl geschickt wird. NodeRed schickt ihn dann weiter. Komplexere Befehle k
ö
nnen so von JavaScripten aus abgerufen werden.Was man wissen muss ist die IP und die Player-ID. Letztere ist recht simpel abrufbar
ü
ber den Telnet-Befehl get_players via Putty, denn dort "antwortet" der Heos auch lesbar. Dann kann man die Befehle wie in der Denon-Steuerprotokoll-Dokumentation ( http://rn.dmglobal.com/euheos/HEOS_CLI_
…
cation.pdf ) beschrieben verschicken.Ein Befehl sieht so aus:
> heos://player/set_play_state?pid=12345678&state=play_stateHoffe es hilft dem ein oder anderen

-
Hallo,
weil das HEOS System ja dynamisch ist und mit das anpassen der Expect Scripte doch etwas nervig war, habe ich mich am Denon Script aus diesem Thread probiert:
http://forum.iobroker.net/viewtopic.php
…
=40#p82336Und Tatsache man kann die Boxen aus JS ansprechen. Einfach die "case" Varianten mit den Befehlen erweitern, diese werden aus vis
ü
ber den State "javascript.1.Denon.Heos.Command"
ü
bergeben. Man k
ö
nnte auch den ganzen Link aus vis
ü
bertragen, dann br
ä
uchte man die case Abfrage nicht. Ich baue das bei Zeiten noch aus, die Auswertung des Status l
ä
uft bei mir noch
ü
ber Expect.<size size="150">http://forum.iobroker.net/viewtopic.php?f=30&t=5693#p115554</size>
! ````
var heosip = '19.16.178.63', //hier die IP der HEO Box eintragen*
net = require('net'),
client;
! 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 caseif(!getState('javascript.1.Denon.Heos.Verbunden').val) checkIP(getState('javascript.1.Denon.Heos.IP_Adresse').val); // Verbinden mit HEOS switch (befehl) { case "dividing": sendMessage('heos://browse/play_stream?pid=140815639&sid=1028&cid=CID-55&mid=s134548'); break; case "morow": sendMessage('heos://browse/play_stream?pid=140815639&sid=1028&cid=CID-55&mid=s17213'); break; case "radio1": sendMessage('heos://browse/play_stream?pid=140815639&sid=1028&cid=CID-55&mid=s25111'); break; case "teddy": sendMessage('heos://browse/play_stream?pid=140815639&url=http://streamtdy.ir-media-tec.com/live/mp3-128/web/play.mp33'); break; default: console.warn("HEOS Befehl nicht bekannt!"); // falls keine der case-Klauseln mit befehl übereinstimmt break; }!
});
! checkIP(getState('javascript.1.Denon.Heos.IP_Adresse').val);
! /** Funktion Verbindung zur Box---------------------------------------------------------- */
function checkIP(IP){ //IP Adresse pr
ü
fen
if(net.isIPv4(IP)){
setTimeout(function () {
client=Connect(IP);
},2000);
}
else{console.error('ung
ü
ltige IP Adresse')}
}function Connect(IP){ // zur Box Verbinden
var client = net.connect({host:IP, port:1255}); client.setKeepAlive(true,5000); console.log('Connectig...'); client.on('error',function(error) { console.error(error); killClient(client); }); client.on('connect', function () { //Verbindung hergestellt {setState("javascript.1.Denon.Heos.Verbunden",val=true,akt=true);} console.log('Verbunden mit Denon Heos!'); if (getState("javascript.1.Denon.Heos.Verbunden").val) console.log ("Variable ist true"); });! client.on('end', function () { //die Gegenseite hat die Verbindung geschlossen
console.warn('Heos hat die Verbindung geschlossen !');
killClient(client);
});return client;
}//end of Function Connect! /** Funktion Nachricht Senden---------------------------------------------------------- /
function sendMessage(message) {
if(getState('javascript.1.Denon.Heos.Verbunden').val){
client.write(message + "\n");
console.log("Message versandt: "+ message);
}
else
console.log("Keine Verbindung - keine Message versandt!");
}
! /* Funktion Verbindung beenden---------------------------------------------------------- */
function killClient(client){
client.destroy();
client.unref();
setState("javascript.1.Denon.Heos.Verbunden"/javascript.1.Denon.Heos.Verbunden/, false);
console.log('Connection closed!');
}// end of Function CennectEnd
! onStop(function () {
if(getState('javascript.1.Denon.Heos.Verbunden').val){killClient(client)};
}, 2000 /ms/);
! createState('javascript.1.Denon.Heos.IP_Adresse', heosip,{type: "string", role: "HEOS IP Adresse"});
createState('javascript.1.Denon.Heos.Verbunden', false, {
name: 'Verbindung zu HEOS',
desc: 'Verbindung zu HEOS',
type: 'boolean',
});
! ````Die IP und PID muss angepasst werden und das Script l
ä
uft bei mir in der 2. JS Instanz also javascript.1
…
.Gr
ü
ß
eBrati
-
Hallo Brati, danke erstmal f
ü
r deinen Denkansto
ß
Heos Ger
ä
te
ü
ber Javascript zu steuern. Bei mir wird auch ein neuer Ordner im Bereits vorhanden Denon Ordner (erstellt durch das Denonscript) erstellt (arbeite mit einer javascript instanz, javascript.0)
doch verstehe ich nicht wie es weiter geht. Ich habe das Script nat
ü
rlich angepasst, die Verbindung scheint ja auch aufgebaut zu werden, doch wie kann ich nun etwas steuern? Also z.B. Pause oder Play?Viele Gr
ü
ß
eBen
-
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
ß
-
Nabend,
hab den Beitrag von heute morgen gel
ö
scht und mich noch mal an das Script gesetzt. Der Status kann jetzt ausgelesen werden und vor allem das Album Cover finde ich genial :lol:So sieht es aus:

Das ist das Script:
! ````
/** HEOS Control v 0.6 vom 25.01.2018-
HEOS CLI Protokoll: http://rn.dmglobal.com/euheos/HEOS_CLI_ProtocolSpecification.pdf -
HowTo Infos zu HEOS auslesen: https://www.loxforum.com/forum/faqs-tutorials-howto-s/5665-howto-denon-heos-als-multiroom-l%C3%B6sung -
Funktion -
- IP und PID der Box im State unter Objekte ergänzen -
- LogIn Daten in den Objekten ergänzen -
- mittels Widget werden im State ...Denon.Heos.Command die auszuführenden Kommandos übergeben. -
jedes Kommando muss sich dann im switch/ case Teil wieder finden und dort die Links aus dem CLI Protokoll hinterlegt sein
*/
! var heosip = getState('javascript.' + instance + '.Denon.Heos.IP_Adresse').val,
heospid = getState("javascript." + instance + ".Denon.Heos.PID").val,
logging = false, // true = Ausgabe im Log
net = require('net'),
befehl = "",
level = "",
volume = 0,
client ;
! log('Script ' + name + ' started by ' + instance + '!');
! /** Befehl aus dem State Command ausf
ü
hren */
on({id: "javascript." + instance + ".Denon.Heos.Command"/Commando f
ü
r HEOS Aufruf/, change: "any"}, function (obj) {
befehl = getState("javascript." + instance + ".Denon.Heos.Command").val; // Befehl gleich Name des aufzurufendem case/** in diesem Bereich wird der Status bei Befehlsaufruf getriggert */ if(!getState('javascript.' + instance + '.Denon.Heos.Verbunden').val) checkIP(getState('javascript.' + instance + '.Denon.Heos.IP_Adresse').val); // Verbinden mit HEOS if (befehl != "getvol" && befehl != "getstate" && befehl !="getmedia"){ // Status Infos Pollen setStateDelayed("javascript." + instance + ".Denon.Heos.Command", 'getvol', 500, false); setStateDelayed("javascript." + instance + ".Denon.Heos.Command", 'getstate', 2500, false); setStateDelayed("javascript." + instance + ".Denon.Heos.Command", 'getmedia', 3500, false); } if (befehl == "getmedia"){ // Status Infos Pollen setStateDelayed("javascript." + instance + ".Denon.Heos.Command", 'getvol', 500, false); setStateDelayed("javascript." + instance + ".Denon.Heos.Command", 'getstate', 2500, false); } switch (befehl) { case "getvol": sendMessage('heos://player/get_volume?pid=' + heospid + ''); break; case "getstate": sendMessage('heos://player/get_play_state?pid=' + heospid + ''); break; case "getmedia": sendMessage('heos://player/get_now_playing_media?pid=' + heospid + ''); break; case "sign": // Sign In der Box ausführen sendMessage('heos://system/sign_in?un=' + getState('javascript.' + instance + '.Denon.Heos.Login').val + '&pw=' + getState('javascript.' + instance + '.Denon.Heos.LoginPW').val); break; case "play": // Play Starten sendMessage('heos://player/set_play_state?pid=' + heospid + '&state=play'); break; case "pause": // Box Pause sendMessage('heos://player/set_play_state?pid=' + heospid + '&state=pause'); break; case "stop": // Box Stop sendMessage('heos://player/set_play_state?pid=' + heospid + '&state=stop'); break; case "volslider": sendMessage('heos://player/set_volume?pid=' + heospid + '&level=' + volume); break; case "vol15": // Volume auf 15 sendMessage('heos://player/set_volume?pid=' + heospid + '&level=15'); break; case "vol20": // Volume auf 20 sendMessage('heos://player/set_volume?pid=' + heospid + '&level=20'); break; case "vol0": // Volume auf 20 sendMessage('heos://player/set_volume?pid=' + heospid + '&level=0'); break; case "voldown": // Volume 5 runter sendMessage('heos://player/volume_down?pid=' + heospid + '&step=5'); break; case "volup": // Volume 5 runter sendMessage('heos://player/volume_up?pid=' + heospid + '&step=5'); break; case "dividing":// Dividing Line abspielen - TuneIn Heos Favorit sendMessage('heos://browse/play_stream?pid=' + heospid + '&sid=1028&cid=CID-55&mid=s134548'); break; case "morow": // Morow Prog FM abspielen - TuneIn Heos Favorit sendMessage('heos://browse/play_stream?pid=' + heospid + '&sid=1028&cid=CID-55&mid=s17213'); break; case "radio1": // Radio1 abspielen - TuneIn Heos Favorit sendMessage('heos://browse/play_stream?pid=' + heospid + '&sid=1028&cid=CID-55&mid=s25111'); break; case "teddy": // Radio Teddy abspielen - TuneIn Heos Favorit sendMessage('heos://browse/play_stream?pid=' + heospid + '&sid=1028&cid=CID-55&mid=s80044'); break; default: console.warn("HEOS Befehl -- " + befehl + " -- nicht bekannt!"); // falls keine der case-Klauseln mit befehl übereinstimmt break; }!
});
! checkIP(getState('javascript.' + instance + '.Denon.Heos.IP_Adresse').val);
! /** Volume
ü
ber Slider steuern---------------------------------------------------------- */
! on({id: "javascript." + instance + ".Denon.Heos.Volume"/Commando f
ü
r HEOS Aufruf/, change: "ne"}, function (obj) {befehl = getState("javascript." + instance + ".Denon.Heos.Command").val; // Befehl gleich Name des aufzurufendem case volume = getState("javascript." + instance + ".Denon.Heos.Volume").val; // neue Volume auslesen if (befehl != "getvol") setStateDelayed("javascript." + instance + ".Denon.Heos.Command", 'volslider', 1000, false); });! /** Funktion Verbindung zur Box---------------------------------------------------------- */
function checkIP(IP){ //IP Adresse pr
ü
fen
if(net.isIPv4(IP)){
setTimeout(function () {
client=Connect(IP);
},2000);
}
else{console.error('ung
ü
ltige IP Adresse')}
}function Connect(IP){ // zur Box Verbinden
var client = net.connect({host:IP, port:1255}); client.setKeepAlive(true,5000); console.log('Connectig...'); client.on('error',function(error) { console.error(error); killClient(client); }); client.on('connect', function () { //Verbindung hergestellt {setState("javascript." + instance + ".Denon.Heos.Verbunden",val=true,akt=true);} console.log('Verbunden mit Denon Heos!'); if (getState("javascript." + instance + ".Denon.Heos.Verbunden").val) console.log ("Variable ist true"); });! client.on('end', function () { //die Gegenseite hat die Verbindung geschlossen
console.warn('Heos hat die Verbindung geschlossen !');
killClient(client);
});client.on('data', function (data) { if (logging) console.log(data.toString()); //log für kommende Daten ################################################################################################ response(data); });return client;
}//end of Function Connect! /** Funktion Nachricht Senden---------------------------------------------------------- /
function sendMessage(message) {
if(getState('javascript.' + instance + '.Denon.Heos.Verbunden').val){
client.write(message + "\n");
if (logging) console.log("Message versandt: "+ message);
}
else
console.log("Keine Verbindung - keine Message versandt!");
}
! /* Funktion Daten empfangen ---------------------------------------------------------- */
function response (data) {var HEOS_Response=data.toString().replace(/[\n\r]/g, ''); // Steuerzeichen "CR" entfernen messageJSON = JSON.parse(HEOS_Response); // JSON Objekt einlesen if (befehl == "getmedia") { // aktuelle Medieninfo einlesen try { setState('javascript.' + instance + '.Denon.Heos.song',messageJSON.payload.song); setState('javascript.' + instance + '.Denon.Heos.station',messageJSON.payload.station); setState('javascript.' + instance + '.Denon.Heos.Artist',messageJSON.payload.artist); setState('javascript.' + instance + '.Denon.Heos.image_url',messageJSON.payload.image_url); setState('javascript.' + instance + '.Denon.Heos.Artist',messageJSON.payload.artist); setState('javascript.' + instance + '.Denon.Heos.type',messageJSON.payload.type); } catch(e){ log('HEOS get Media Error:' + e); setState('javascript.' + instance + '.Denon.Heos.song', "fail"); setState('javascript.' + instance + '.Denon.Heos.station', "fail"); setState('javascript.' + instance + '.Denon.Heos.Artist', "fail"); } } if (befehl == "getvol") { // aktuelle Volume einlesen try { level = HEOS_Response.split('level='); level = level[1].split('"'); setState('javascript.' + instance + '.Denon.Heos.Volume',level[0]); } catch(e){ log('HEOS getVol Error:' + e); } } if (befehl == "getstate") { // aktuelle PlayState einlesen try { level = HEOS_Response.split('state='); level = level[1].split('"'); setState('javascript.' + instance + '.Denon.Heos.State',level[0]); } catch(e){ log('HEOS getState Error:' + e); } }}
! /** Funktion Verbindung beenden---------------------------------------------------------- */
function killClient(client){
client.destroy();
client.unref();
setState("javascript." + instance + ".Denon.Heos.Verbunden"/javascript.1.Denon.Heos.Verbunden/, false);
console.log('Connection closed!');
}// end of Function CennectEnd
! onStop(function () {
if(getState('javascript.' + instance + '.Denon.Heos.Verbunden').val){killClient(client)}
}, 2000 /ms/);
! createState('javascript.' + instance + '.Denon.Heos.Command', "", {role: 'Commando f
ü
r HEOS Aufruf'});
createState('javascript.' + instance + '.Denon.Heos.PID', "", {desc: 'PID f
ü
r HEOS Box'});
createState('javascript.' + instance + '.Denon.Heos.Login', "", {role: 'Login HEOS Konto'});
createState('javascript.' + instance + '.Denon.Heos.LoginPW', "", {role: 'Passwort HEOS Konto'});
createState('javascript.' + instance + '.Denon.Heos.Volume', "", {role: 'Abgefragte Volume f
ü
r HEOS'});
createState('javascript.' + instance + '.Denon.Heos.State', "", {role: 'State von HEOS'});
createState('javascript.' + instance + '.Denon.Heos.station', "", {role: 'aktuelles Medium von HEOS'});
createState('javascript.' + instance + '.Denon.Heos.Artist', "", {role: 'aktueller Artist von HEOS'});
createState('javascript.' + instance + '.Denon.Heos.song', "", {role: 'aktueller Song von HEOS'});
createState('javascript.' + instance + '.Denon.Heos.image_url', "", {role: 'aktuelle image_url von HEOS'});
createState('javascript.' + instance + '.Denon.Heos.type', "", {role: 'aktueller Quellen Type von HEOS'});
! createState('javascript.' + instance + '.Denon.Heos.IP_Adresse', heosip,{type: "string", role: "HEOS IP Adresse"});
createState('javascript.' + instance + '.Denon.Heos.Verbunden', false, {
name: 'Verbindung zu HEOS',
desc: 'Verbindung zu HEOS',
type: 'boolean',
});
! ````Zur Funktion:
Ü
ber den State heos.command wird der Befehl
ü
bergeben, welcher mit einem Wert im switch/ case Teil
ü
bereinstimmen muss. Dort m
ü
ssen die Links auf die eigenen Favoriten angepasst werden.Dazu bitte die http://rn.dmglobal.com/euheos/HEOS_CLI_ProtocolSpecification.pdf verwenden und https://www.loxforum.com/forum/faqs-tutorials-howto-s/5665-howto-denon-heos-als-multiroom-l%C3%B6sung gibt es viele Infos zum Auslesen der PID usw.
ViewExport:
! ````
[{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"volup","text":"","src":"/vis.0/main/img/svg/control_plus.svg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"7px","top":"80px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"voldown","text":"","src":"/vis.0/main/img/svg/control_minus.svg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"187px","top":"80px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"play","text":"","src":"/icons-mfd-svg/audio_play.svg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"7px","top":"8px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"pause","text":"","src":"/icons-mfd-svg/audio_pause.svg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"67px","top":"8px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"stop","text":"","src":"/icons-mfd-svg/audio_stop.svg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"127px","top":"8px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"dividing","text":"","src":"/vis.0/main/img/Dividing_Line.png","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"67px","top":"247px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"teddy","text":"","src":"/vis.0/main/img/Radio_Teddy.jpg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"7px","top":"247px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"morow","text":"","src":"/vis.0/main/img/morow.jpg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"127px","top":"247px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"radio1","text":"","src":"/vis.0/main/img/Radio1.jpg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"187px","top":"245px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"name":"Aktuelle Lautst
ä
rke","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"html_prepend":"Station: ","g_css_border":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"10px","top":"160px","width":"47px","height":"25px","color":"rgb(255, 255, 255)","font-size":"small","letter-spacing":"","word-spacing":"","line-height":"2","text-align":"left"},"widgetSet":"basic"},{"tpl":"tplFrame","data":{"g_fixed":false,"g_visibility":true,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":"play","visibility-groups-action":"hide","title":"","title_color":"black","title_top":"-10","title_left":"15","header_height":"0","header_color":"black","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-oid":"javascript.1.Denon.Heos.State","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"24px","top":"64px","width":"15px","height":"5px","background":"green","border-radius":"3px"},"widgetSet":"basic"},{"tpl":"tplFrame","data":{"g_fixed":false,"g_visibility":true,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":"pause","visibility-groups-action":"hide","title":"","title_color":"black","title_top":"-10","title_left":"15","header_height":"0","header_color":"black","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-oid":"javascript.1.Denon.Heos.State","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"84px","top":"64px","width":"15px","height":"5px","background":"darkorange","border-radius":"3px"},"widgetSet":"basic"},{"tpl":"tplFrame","data":{"g_fixed":false,"g_visibility":true,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":"stop","visibility-groups-action":"hide","title":"","title_color":"black","title_top":"-10","title_left":"15","header_height":"0","header_color":"black","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-oid":"javascript.1.Denon.Heos.State","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"144px","top":"64px","width":"15px","height":"5px","background":"darkred","border-radius":"3px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"name":"Aktuelle Lautst
ä
rke","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"html_prepend":"Artist: ","g_css_border":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"10px","top":"180px","width":"47px","height":"26px","color":"rgb(255, 255, 255)","font-size":"small","letter-spacing":"","word-spacing":"","line-height":"2","text-align":"left"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"name":"Aktuelle Lautst
ä
rke","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"html_prepend":"Song: ","g_css_border":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"10px","top":"200px","width":"47px","height":"26px","color":"rgb(255, 255, 255)","font-size":"small","letter-spacing":"","word-spacing":"","line-height":"2","text-align":"left"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.1.Denon.Heos.station","visibility-cond":"==","visibility-val":1,"name":"Aktuelle Lautst
ä
rke","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"html_prepend":"","g_css_border":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"60px","top":"160px","width":"270px","height":"26px","color":"rgb(255, 255, 255)","font-size":"small","letter-spacing":"","word-spacing":"","line-height":"2","text-align":"left"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.1.Denon.Heos.Artist","visibility-cond":"==","visibility-val":1,"name":"Aktuelle Lautst
ä
rke","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"html_prepend":"","g_css_border":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"60px","top":"180px","width":"270px","height":"26px","color":"rgb(255, 255, 255)","font-size":"small","letter-spacing":"","word-spacing":"","line-height":"2","text-align":"left"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.1.Denon.Heos.song","visibility-cond":"==","visibility-val":1,"name":"Aktuelle Lautst
ä
rke","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"html_prepend":"","g_css_border":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"60px","top":"200px","width":"270px","height":"26px","color":"rgb(255, 255, 255)","font-size":"small","letter-spacing":"","word-spacing":"","line-height":"2","text-align":"left"},"widgetSet":"basic"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"vol15","text":"15","src":"","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"67px","top":"80px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"vol20","text":"20","src":"","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"127px","top":"80px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"name":"Aktuelle Lautst
ä
rke","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"html_prepend":"Vol: ","g_css_border":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"10px","top":"140px","width":"47px","height":"25px","color":"rgb(255, 255, 255)","font-size":"small","letter-spacing":"","word-spacing":"","line-height":"2","text-align":"left"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.1.Denon.Heos.Volume","visibility-cond":"==","visibility-val":1,"name":"Aktuelle Lautst
ä
rke","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_gestures":false,"html_prepend":"","g_css_border":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"60px","top":"140px","width":"270px","height":"26px","color":"rgb(255, 255, 255)","font-size":"small","letter-spacing":"","word-spacing":"","line-height":"2","text-align":"left"},"widgetSet":"basic"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"getmedia","text":"Status","src":"","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"350px","top":"9px","width":"50px","height":"50px","font-size":"small"},"widgetSet":"jqui"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"sign","text":"SignIn","src":"","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"290px","top":"9px","width":"50px","height":"50px","font-size":"small"},"widgetSet":"jqui"},{"tpl":"tplValueStringImg","data":{"oid":"javascript.1.Denon.Heos.image_url","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"60000","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"250px","top":"144px","width":"150px","height":"150px","position":""},"widgetSet":"basic"},{"tpl":"tplIconState","data":{"oid":"javascript.1.Denon.Heos.Command","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"value":"vol0","text":"","src":"/vis.0/main/img/svg/audio_volume_mute.svg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"247px","top":"80px","width":"50px","height":"50px"},"widgetSet":"jqui"},{"tpl":"tplIconStateBool","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"false_src":"/vis.0/main/img/svg/control_plus.svg","click_id":"javascript.0.Denon.Heos.Command","click_value":"volup","true_src":"/vis.0/main/img/svg/control_plus.svg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"297px","top":"73px"},"widgetSet":"jqui"},{"tpl":"tplIconStateBool","data":{"oid":"nothing_selected","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"false_src":"/vis.0/main/img/svg/control_plus.svg","click_id":"javascript.0.Denon.Heos.Command","click_value":"volup","true_src":"/vis.0/main/img/svg/control_plus.svg","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"326px","top":"27px"},"widgetSet":"jqui"}]Was noch fehlt: - Gruppensteuerung - verschiedene Boxen steuern (hab momentan nur eine) - Status regelmäßig pollen Ich empfehle solche Scripte nicht in der 1\. Instanz von JS laufen zu lassen. Läuft beim Parsen was schief, stürzt die ganze Instanz ab und somit alle Scripte dort. ****<u>######## Updates#######</u>**** V 0.6 vom 25.01.2018 - das Script reagiert auf das Setzen des State "Volume" -> Einbindung Widget Slider möglich - JS Instanz wird automatisch ausgelesen Grüße Brati -
-
Hallo Brati, hallo Sebastian,
Danke f
ü
r Eure Ideen. Jetzt habe ich einen Ansatz an dem man weiter arbeiten kann. Dein Skript Brati sieht super aus. Auf den ersten Blick sind mir nur ein paar Rechtschreibfehler aufgefallen(z.B. "Connectig"), und beim Widget scheinst du 2 mal "javascript.0" noch zu verwenden. Ich habe schon angefangen, das Ganze f
ü
r meine Bed
ü
rfnisse anzupassen. Die Steuerung
ü
ber den Commandbefehl
ü
ber Objekte ist problemlos m
ö
glich, ich denke das n
ä
chste Gro
ß
e sind die Gruppensteuerung sowie ein regelm
ä
ß
iges abfragen der aktuellen Parameter. Werde das WE mal was probieren, wenn nicht bis dahin schon jemand von Euch eine saubere L
ö
sung gefunden hat 
Viele Gr
ü
ß
eBen
-
Morjens,
vielleicht k
ö
nnen wir ja zusammen ein Script weiter bauen, was sich nur in den case Befehlen unterscheidet. Alles andere Variable ist in States ausgelagert. Die JS Instanz kann man wohl auch variabel gestalten.Regelm
ä
ß
ig abfragen geht einfach
ü
ber schedule, ich w
ü
rde das Intervall bei Playstate Stop aber l
ä
nger setzen als bei Play.Das Widget schau ich mir noch mal an, hab gar keine Objekte mehr in Javascript.0
Gr
ü
ß
e BratiVon unterwegs gesendet
…
-
Guten Morgen,
bei der Lautst
ä
rke habe ich mir
ü
berlegt, das es doch cleverer w
ä
re, wenn diese
ü
ber einen 'slider' als Vis Element gesteuert werden kann, der Werte zwischen 0 und z. B 30 (w
ä
re dann in diesem Fall die max. Lautst
ä
rke)
ü
bergibt.Gestern Abend habe ich aus dem Denon Skript die Schleife rauskopiert und in das Heos Skript eingebaut, aber noch nicht weiter angepasst. Ich denke mit dieser sollte es m
ö
glich sein. Wenn
ü
ber Spotify Musik geh
ö
rt wird gibt es sowieso st
ä
ndigen Austausch zwischen der Box und dem Netzwerk, da wird ich eine weitere Abfrage, in welchem state die Box sich befindet nicht ins Gewicht fallen.Das wird ein Bastel Wochenende

Lg Ben
-
Soll keine Konkurrenz sein, eher eine Alternative, welche auch mehrere HEOS Player unterst
ü
tzt.http://forum.iobroker.net/viewtopic.php
…
03#p119303Danke f
ü
r die Inspiration hier. -
Soll keine Konkurrenz sein, eher eine Alternative, welche auch mehrere HEOS Player unterst
ü
tzt.http://forum.iobroker.net/viewtopic.php
…
03#p119303Danke f
ü
r die Inspiration hier. `Hut ab und gleich den richtigen Ansatz gew
ä
hlt. Da ja HEOS alles auslesen l
ä
sst, muss man es ja auch intigrieren k
ö
nnen.Ich werde mich mit deinem Script weiter besch
ä
ftigen :). -
Soll keine Konkurrenz sein, eher eine Alternative, welche auch mehrere HEOS Player unterst
ü
tzt.http://forum.iobroker.net/viewtopic.php
…
03#p119303Danke f
ü
r die Inspiration hier. `Hut ab und gleich den richtigen Ansatz gew
ä
hlt. Da ja HEOS alles auslesen l
ä
sst, muss man es ja auch intigrieren k
ö
nnen.Ich werde mich mit deinem Script weiter besch
ä
ftigen :).
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden