NEWS
[Frage] Yamaha Musicast
-
Hallo
Ich wollte hier mal fragen, ob jemand das Musicsystem Yamaha Musicast über ioBroker betreibt, wenn ja, wie.
https://ch.yamaha.com/de/products/conte … musiccast/
Würde diese gerne steuern können.
Gruss
Ritschi
-
Hallo
Ich wollte hier mal fragen, ob jemand das Musicsystem Yamaha Musicast über ioBroker betreibt, wenn ja, wie.
https://ch.yamaha.com/de/products/conte … musiccast/
Würde diese gerne steuern können.
Gruss
Ritschi `
Kannst du mal den upnp Adapter installieren und mir den Objekt Baum zukommen lassen?
-
Hallo ,
ich würde mich da gerne anschliessen,
ich hab den UPNP installiert, aber wie kann ich die Objekte jetzt hier rein kopieren.
Gruß Tobbi
-
Danke Ritschi für die Screenshots.
ich hab den UPNP installiert, aber wie kann ich die Objekte jetzt hier rein kopieren. `
Im Reiter Objekte findest du einen Pfeil nach unten Button, da drauf klicken dann wird der Gewählte Ordner mit allen Objekten als JSON Datei exportiert.
Soweit ich das von den Screenshots beurteilen kann, ist es nicht möglich Sonderfunktionen des Yamaha Systems zu steuern. Das heisst es stehen nur Wiedergabe und Lautstärke Elemente zur Verfügung.
Bitte Testet mal das skript im Spoiler und sagt mir welche Funktionen davon nicht funktionieren. Ihr müsst nur die ersten 2 Zeilen anpassen den Rest macht das Skript.
Anschließend habt ihr neue Objekte in dem Pfad den ihr bei "var control" angebt. Die meissten davon sind boolsche werte, das heisst wenn sie auf "true" gesetzt werden wird der Befehl ausgeführt.
! ````
var device = 'upnp.0.192_168_0_230_-_Sonos_PLAY:1'; //hier das upnp Gerät eintragen das gesteuert werden soll
var control = 'javascript.0.Sonos_Bad'; //hier das Objekt eintragen wo die Steuerobjekte angelegt werden sollen
var oldVol; //Wird zur Berechnung der neuen Lautstärke genutzt
! //createState(name, initialValue, forceCreation, common, native, callback);
createState(control + '.MediaControl.Play', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.play'});
createState(control + '.MediaControl.Pause', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.pause'});
createState(control + '.MediaControl.Next', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.next'});
createState(control + '.MediaControl.Previous', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.previous'});
createState(control + '.MediaControl.Stop', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.stop'});
createState(control + '.AudioControl.Vol_UP', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.volume_up'});
createState(control + '.AudioControl.Vol_Down', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.volume_down'});
createState(control + '.AudioControl.Mute', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.mute'});
createState(control + '.SleepTimer', false, {type: 'string', read: 'true', write: 'true'});
createState(control + '.MediaControl.MediaURL', false, {type: 'string', read: 'true', write: 'true'}); //Muss so aussehen: http://127.0.0.1:1234/Ordner/Name.mp3
createState(control + '.MediaControl.PlayMode', false, {type: 'string', read: 'true', write: 'true'}); //Mögliche Werte: NORMAL REPEAT_ALL REPEAT_ONE SHUFFLE_NOREPEAT SHUFFLE SHUFFLE_REPEAT_ONE
createState(control + '.MediaControl.Crossfade', false, {type: 'boolean', read: 'true', write: 'true', role: 'button.crossfade'});
createState(control + '.MediaControl.ClearPlaylist', false, {type: 'boolean', read: 'true', write: 'true'});
! //Media Controls
on({id: control + '.MediaControl.Play', val: true
}, function(obj){//Wiedergabe starten setState(device + '.MediaRenderer.AVTransport.Play.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.AVTransport.Play.Speed', 1); setState(device + '.MediaRenderer.AVTransport.Play', 'send'); setState(control + '.MediaControl.Play', false); });
on({id: control + '.MediaControl.Pause', val: true
}, function(obj){//Wiedergabe pausieren setState(device + '.MediaRenderer.AVTransport.Pause.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.AVTransport.Pause', 'send'); setState(control + '.MediaControl.Pause', false); });
! on({id: control + '.MediaControl.Next', val: true
}, function(obj){//Wiedergabe pausieren setState(device + '.MediaRenderer.AVTransport.Next.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.AVTransport.Next', 'send'); setState(control + '.MediaControl.Next', false); });
on({id: control + '.MediaControl.Previous', val: true
}, function(obj){//Wiedergabe pausieren setState(device + '.MediaRenderer.AVTransport.Previous.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.AVTransport.Previous', 'send'); setState(control + '.MediaControl.Previous', false); });
on({id: control + '.MediaControl.Stop', val: true
}, function(obj){//Wiedergabe stoppen setState(device + '.MediaRenderer.AVTransport.Stop.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.AVTransport.Stop', 'send'); setState(control + '.MediaControl.Stop', false); });
on({id: control + '.MediaControl.PlayMode'
}, function(obj){
setState(device + '.MediaRenderer.AVTransport.SetPlayMode.InstanceID', getInstanceID());
setState(device + '.MediaRenderer.AVTransport.SetPlayMode.NewPlayMode', obj.newState.val);
setState(device + '.MediaRenderer.AVTransport.SetPlayMode', 'send');
});! on({id: control + 'MediaControl.MediaURL'
}, function(obj){
setState(device + '.MediaRenderer.AVTransport.SetAVTransportURI.CurrentURI', obj.newState.val);
setState(device + '.MediaRenderer.AVTransport.SetAVTransportURI.InstanceID', getInstanceID());
setState(device + '.MediaRenderer.AVTransport.SetAVTransportURI', 'send');
});
! on({id: control + '.MediaControl.ClearPlaylist', val: true
}, function(obj){
setState(device + '.MediaRenderer.AVTransport.RemoveAllTracksFromQueue.InstanceID', getInstanceID());
setState(device + '.MediaRenderer.AVTransport.RemoveAllTracksFromQueue', 'send');
setState(control + '.MediaControl.ClearPlaylist', false);
});
! var oldCrossfadeMode
on({id: control + '.MediaControl.Crossfade', val: true
}, function(){
var oldCrossfadeMode = getState(device + '.MediaRenderer.AVTransport.CurrentCrossfadeMode').val;if(oldCrossfadeMode == 0){ setState(device + '.MediaRenderer.AVTransport.SetCrossfadeMode.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.AVTransport.SetCrossfadeMode.CrossfadeMode', 1); setState(device + '.MediaRenderer.AVTransport.SetCrossfadeMode', 'send'); setState(control + '.MediaControl.Crossfade', false); }else{ setState(device + '.MediaRenderer.AVTransport.SetCrossfadeMode.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.AVTransport.SetCrossfadeMode.CrossfadeMode', 0); setState(device + '.MediaRenderer.AVTransport.SetCrossfadeMode', 'send'); setState(control + '.MediaControl.Crossfade', false); } });
//Audio Controls
on({id: control + '.AudioControl.Vol_UP', val: true
}, function(obj){
oldVol = getState(device + '.MediaRenderer.RenderingControl.Volume').val;newVol = parseInt(oldVol) + 5; //der Wert um den die Lautstärke geändert wird, kann beliebig geändert werden //neue Lautstärke senden setState(device + '.MediaRenderer.RenderingControl.SetVolume.Channel', 'Master'); setState(device + '.MediaRenderer.RenderingControl.SetVolume.DesiredVolume', newVol); setState(device + '.MediaRenderer.RenderingControl.SetVolume.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.RenderingControl.SetVolume', 'send'); setState(control + '.AudioControl.Vol_UP', false); });
on({id: control + '.AudioControl.Vol_Down', val: true
}, function(obj){
oldVol = getState(device + '.MediaRenderer.RenderingControl.Volume').val;newVol = parseInt(oldVol) - 5; //der Wert um den die Lautstärke geändert wird, kann beliebig geändert werden //neue Lautstärke senden setState(device + '.MediaRenderer.RenderingControl.SetVolume.Channel', 'Master'); setState(device + '.MediaRenderer.RenderingControl.SetVolume.DesiredVolume', newVol); setState(device + '.MediaRenderer.RenderingControl.SetVolume.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.RenderingControl.SetVolume', 'send'); setState(control + '.AudioControl.Vol_Down', false); });
on({id: control + '.AudioControl.Mute', val: true
}, function(){
var oldMute = getState(device + '.MediaRenderer.RenderingControl.Mute').val;if(oldMute == 0){ setState(device + '.MediaRenderer.RenderingControl.SetMute.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.RenderingControl.SetMute.Channel', 'Master'); setState(device + '.MediaRenderer.RenderingControl.SetMute.DesiredMute', 1); setState(device + '.MediaRenderer.RenderingControl.SetMute', 'send'); //oldVol = getState(device + '.MediaRenderer.RenderingControl.Volume').val; setState(control + '.AudioControl.Mute', false); }else{ setState(device + '.MediaRenderer.RenderingControl.SetMute.InstanceID', getInstanceID()); setState(device + '.MediaRenderer.RenderingControl.SetMute.Channel', 'Master'); setState(device + '.MediaRenderer.RenderingControl.SetMute.DesiredMute', 0); setState(device + '.MediaRenderer.RenderingControl.SetMute', 'send'); setState(control + 'AudioControl.Mute', false); } });
! //Funktionen
function getInstanceID(){
var IID = getState(device + '.MediaRenderer.AVTransport.A_ARG_TYPE_InstanceID').val;
return(IID);
} -
Hi Jey cee
Schon wieder was gelernt
Nun aber auch schon meine nächste Frage….
Wie kann ich denn das Skript testen?
-
Ok, jetzt muss ich wissen wo du stehst.
JavaScript Adapter installiert?
Schon mal ein Skript erstellt oder ein fertiges kopiert und gestartet?
Button in Vis angelegt der den Wert eines Objekts setzt?
-
Ich habe mich noch nie mit Skripten auseinandergesetzt.
Aber einmals ist das erste mal…..habe Javascript installiert.
Da auf Skripte, ein neues erstellt und eingefügt und gespeichert.
Muss die IP Adresse mit _ eingegeben werden oder mit einem . Also 192. oder 192_
Wäre das so für den Moment richtig?````
var device = 'upnp.0.192.168.1.111-_Sonos_PLAY:1'Nun sehe ich folgendes unter Objekte: ![620_bildschirmfoto_2017-03-15_um_22.50.25.png](/assets/uploads/files/620_bildschirmfoto_2017-03-15_um_22.50.25.png) Bei vis habe ich mal folgenden Button versucht, klappt aber bei mute, Pause & Vol. nicht. ![620_bildschirmfoto_2017-03-15_um_23.13.12.png](/assets/uploads/files/620_bildschirmfoto_2017-03-15_um_23.13.12.png) Danke für deine Geduld mit einem Greenhorn & gute Nacht Ritschi
-
Muss die IP Adresse mit _ eingegeben werden oder mit einem . Also 192. oder 192_
Wäre das so für den Moment richtig?
var device = 'upnp.0.192.168.1.111-_Sonos_PLAY:1'
`"device" ist eine Variable mit "var" wird sie als solche deklariert. Sie nimmt die Objekt id auf.
Am einfachsten ist es du benutzt den Button rechts oben "ID Einfügen" im Skript Editor, dann geht ein Fenster auf wo du die Objekte auswählen kannst.
Hier suchst du dir deinen Player unter "upnp.0" raus.
Deine ID sollte dann so aussehen, wenn ich das in deinem Screenshot richtig gesehen hab: "upnp.0.Badezimmer"/Badezimmer/
Dein Widget in vis sieht gut aus und sollte dann auch funktionieren wenn du die richtige ID bei "device" eingesetzt hast.
Danke für deine Geduld mit einem Greenhorn & gute Nacht `
Das mach ich gerne wenn ich seh das es etwas bringt. -
Hi Jey Cee
Ich habe das mal so umgesetzt.
Nun sieht das Script am Anfang so aus:
var device = '"upnp.0.Badezimmer.MediaRenderer""/*Badezimmer*/'; //hier das upnp Gerät eintragen das gesteuert werden soll var control = 'javascript.0.Badezimmer'; //hier das Objekt eintragen wo die Steuerobjekte angelegt werden sollen var oldVol; //Wird zur Berechnung der neuen Lautstärke genutzt
aber leider funktioniert der Button in Vis nicht.
Habe es mit Pause, Mute, Vol up, Vol down versucht.
Hast du noch tipps?
Gruss
Ritschi
-
Ja, ".MediaRenderer" muss weg. Das Übergeordnete Objekt wäre das richtige, lässt sich aber Wohl nicht auswählen. Da muss ich mir noch was einfallen lassen.
Sorry für die Umstände.
Gesendet von meinem m8 mit Tapatalk
-
Leider auch jetzt noch keine Reaktion.
Im log ist mir noch aufgefallen, dass da immer wieder dieselben upnp errors kommen:
qupnp.0 2017-03-16 19:21:38.186 info Auto discover: true upnp.0 2017-03-16 19:21:38.186 info starting. Version 0.3.6 in /Users/Server/iobroker/node_modules/iobroker.upnp, node: v4.4.4 upnp.0 2017-03-16 19:21:07.569 info Alive and sid states cleared upnp.0 2017-03-16 19:21:06.559 info cleaned everything up... upnp.0 2017-03-16 19:21:06.559 info Alive and sid states cleared upnp.0 2017-03-16 19:21:06.557 error at Object.write (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:1022:11) upnp.0 2017-03-16 19:21:06.557 error at beginWhiteSpace (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:967:7) upnp.0 2017-03-16 19:21:06.557 error at strictFail (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:693:7) upnp.0 2017-03-16 19:21:06.557 error at error (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:669:5) upnp.0 2017-03-16 19:21:06.557 error at emit (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:640:35) upnp.0 2017-03-16 19:21:06.557 error at Object.onerror (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/lib/xml2js.js:308:26) upnp.0 2017-03-16 19:21:06.557 error at Parser.emit (events.js:169:7) upnp.0 2017-03-16 19:21:06.557 error at emitOne (events.js:77:13) upnp.0 2017-03-16 19:21:06.557 error at Parser. (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/lib/xml2js.js:487:18) upnp.0 2017-03-16 19:21:06.557 error at /Users/Server/iobroker/node_modules/iobroker.upnp/main.js:1330:63 upnp.0 2017-03-16 19:21:06.557 error TypeError: Cannot read property 'Event' of undefined upnp.0 2017-03-16 19:21:06.554 error uncaught exception: Cannot read property 'Event' of undefined upnp.0 2017-03-16 19:20:38.346 info Auto discover: true upnp.0 2017-03-16 19:20:38.341 info starting. Version 0.3.6 in /Users/Server/iobroker/node_modules/iobroker.upnp, node: v4.4.4 upnp.0 2017-03-16 19:20:07.715 info Alive and sid states cleared upnp.0 2017-03-16 19:20:06.708 info cleaned everything up... upnp.0 2017-03-16 19:20:06.707 info Alive and sid states cleared upnp.0 2017-03-16 19:20:06.704 error at Object.write (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:991:14) upnp.0 2017-03-16 19:20:06.704 error at end (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:674:47) upnp.0 2017-03-16 19:20:06.704 error at strictFail (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:693:7) upnp.0 2017-03-16 19:20:06.704 error at error (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:669:5) upnp.0 2017-03-16 19:20:06.704 error at emit (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/node_modules/sax/lib/sax.js:640:35) upnp.0 2017-03-16 19:20:06.704 error at Object.onerror (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/lib/xml2js.js:308:26) upnp.0 2017-03-16 19:20:06.704 error at Parser.emit (events.js:169:7) upnp.0 2017-03-16 19:20:06.704 error at emitOne (events.js:77:13) upnp.0 2017-03-16 19:20:06.704 error at Parser. (/Users/Server/iobroker/node_modules/iobroker.upnp/node_modules/xml2js/lib/xml2js.js:487:18) upnp.0 2017-03-16 19:20:06.704 error at /Users/Server/iobroker/node_modules/iobroker.upnp/main.js:1330:63 upnp.0 2017-03-16 19:20:06.704 error TypeError: Cannot read property 'Event' of undefined upnp.0 2017-03-16 19:20:06.702 error uncaught exception: Cannot read property 'Event' of undefined upnp.0 2017-03-16 19:19:38.297 info Auto discover: true upnp.0 2017-03-16 19:19:38.292 info starting. Version 0.3.6 in /Users/Server/iobroker/node_modules/iobroker.upnp, node: v4.4.4 upnp.0 2017-03-16 19:19:07.699 info Alive and sid states cleared upnp.0 2017-03-16 19:19:06.690 info cleaned everything up... upnp.0 2017-03-16 19:19:06.689 info Alive and sid states cleared upnp.0 2017-03-16 19:19:06.686 error at Decoder.add (/Users/Server/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:246:12) upnp.0 2017-03-16 19:19:06.686 error at Decoder.Emitter.emit (/Users/Server/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20) upnp.0 2017-03-16 19:19:06.686 error at Decoder. (/Users/Server/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) upnp.0 2017-03-16 19:19:06.686 error at Manager.ondecoded (/Users/Server/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:332:8) upnp.0 2017-03-16 19:19:06.686 error at Manager.Emitter.emit (/Users/Server/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) upnp.0 2017-03-16 19:19:06.686 error at Manager. (/Users/Server/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) upnp.0 2017-03-16 19:19:06.686 error at Socket.onpacket (/Users/Server/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12) upnp.0 2017-03-16 19:19:06.686 error at Socket.onack (/Users/Server/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:312:9) upnp.0 2017-03-16 19:19:06.686 error at Socket. (/Users/Server/iobroker/node_modules/iobroker.upnp/main.js:1289:27) upnp.0 2017-03-16 19:19:06.686 error at new setNewState (/Users/Server/iobroker/node_modules/iobroker.upnp/main.js:1321:72) upnp.0 2017-03-16 19:19:06.686 error TypeError: Cannot read property 'LastChange' of undefined upnp.0 2017-03-16 19:19:06.684 error uncaught exception: Cannot read property 'LastChange' of undefined
Kann das sein, dass es mit dem zusammenhängt?
-
Kann das sein, dass es mit dem zusammenhängt? `
Ja, sieht nach einem Problem im Adapter aus.Kannst du bitte mal das Logging für den Adapter auf "Debug" stellen.
-
gemacht.
Sende dir das Log als PN, hat bisschen viel Infos drin….
-
Hoffentlich auch die dich brauch. Danke.
Gesendet von meinem m8 mit Tapatalk
-
Moin!
Die Yamaha Musiccast Geräte sprechen über einfache HTML Tags miteinander. Ich habe da eine Seite gefunden wo Code Snippets vorhanden sind. Damit wird die Funktionsweise recht gut erklärt.
! https://www.heimkino-praxis.com/yamaha- … steuerung/
Dort sind kleine Beispiele für PHP und Node.js vorhanden.Ich werde die Tage mal versuchen die Entwickler von Yahama zu erreichen, vielleicht werde ich dort etwas.
Sollte jemand einen Adapter entwickeln, ich stelle mich da ebenfalls als Tester zur Verfügung.
Gruß Mercy
-
Moin!
Eine Frage habe ich noch, welches Widget ist für die Steuerung eines Receives geeignet?
Gruß Mercy
-
Nutzt keiner iobroker um sein Homekino zu steuern?
Ich finde einfach kein Widget welches es mir ermöglicht am RX-A 2050 die Lautstärke zu ändern, die Eingangsquelle zu ändern etc.
Gruß Mercy
-
Mit Sicherheit Steuern hier einige hier Heimkino mit vis.
Aber deine Frage kann man nur Allgemein beantworten, weil keiner weiss wie du deinen Yamaha steuerst.
Es gibt zwei Arten von Widgets die dafür in Frage kommen. Einmal Ctrl toggle und Ctrl switch. Toggle wechseln zwischen true und false, bei switch kann man vorgeben was über geben wird.
Für Lautstärke und ähnliches gibt es ein increment Widget welches sich im HQ Widgets Set findet.
Ich hoffe das bringt dich in die richtige Richtung.
Gesendet von meinem m8 mit Tapatalk
-
Hi Jay Cee!
Danke für die wertvollen Hinweise.
@Jey Cee:Mit Sicherheit Steuern hier einige hier Heimkino mit vis.
Aber deine Frage kann man nur Allgemein beantworten, weil keiner weiss wie du deinen Yamaha steuerst.
Es gibt zwei Arten von Widgets die dafür in Frage kommen. Einmal Ctrl toggle und Ctrl switch. Toggle wechseln zwischen true und false, bei switch kann man vorgeben was über geben wird.
Für Lautstärke und ähnliches gibt es ein increment Widget welches sich im HQ Widgets Set findet.
Ich hoffe das bringt dich in die richtige Richtung.
Gesendet von meinem m8 mit Tapatalk `
Was habe ich vor?
Den RX-A 2050 sowie weitere Musiccast Geräte der Yamaha Reihe steuere ich zur Zeit über die Yamaha Musiccast App per Android.
Wenn ich z.B. das Homekino, bestehend aus Yamaha Geräten, einschalten will, muss ich erst in die Homematic App um dort die Jalousien herunter zu fahren. Dann die Homematic Steckdose einschalten und dann eben die Yamaha Geräte. Wenn ich meine MiLights noch in der Farbe anpassen möchte, muss ich noch die MiLight App öffnen und dort entsprechend das Licht ändern. Für mich alles kein großes Problem, aber meine Frau findet das alles viel zu umständlich. Daher der Versuch mittels ioBroker eine Oberfläche zu erstellen auf der ich das komplette Wohnzimmer mit Jaliousien, Steckdosen, Homekino Equi etc. abbilden kann und entsprechende Funktionen hinterlegen kann. Für den Yamaha wird eigentlich nur die Lautstärke und die Eingangsquelle benötigt.
Ich werde mit den Widgets mal ein wenig testen, vielleicht komme ich da weiter.
Danke für deine Infos!
Gruß Mercy
-
Irgendwie finde ich diese beiden Widgets nicht und im HQ-Widget finde ich nur den NumberKnop (Circle Knob) und der steuert die Lautstärke meines Yamaha nicht
Für Hinweise bin ich sehr dankbar!
Gruß Mercy