NEWS
Neuer Adapter: Yamaha MusicCast
-
Ok,
der Fehler tritt wohl auf, wenn 1 Lautsprecher (also die IP) nicht erreichbar ist (weil z.B. der Lautsprecher nicht am Netz ist).
Sollte / könnte man dies per Script im Adapter nicht abfangen ? `
Im Verstärker gibt es eine Funktion Uhr/Clock. Diese ist nur für einen Tag setzbar. Es gibt an anderen Geräten Wochentagseinstellungen wo die Variable "anz", die zum Fehler führte, benutzt wird.
Beim copy und paste ist da wohl nix von mir geändert worden.
Hängt also nicht daran, ob etwas im Netz nicht erreichbar ist.
Mit der Version 0.1.1 von GitHub sollte es jetzt besser sein und bei den Objekten auch ein clock vorhanden sein.
Bitte testen und berichten.
Gruß
Klaus
-
Ich kann ab Version 0.1.x nicht mehr meine Yamaha YAS-306 Soundbar richtig steuern. Einschalten geht nicht, aber ausschalten funktioniert. Mute schaltet ebenfalls aus... Bin jetzt auf 0.0.9 da funktioniert alles bestens.
-
@foxthefox said in Neuer Adapter: Yamaha MusicCast:
Mit der Version 0.1.1 von GitHub sollte es jetzt besser sein und bei den Objekten auch ein clock vorhanden sein.
Hallo, diesen DP habe ich bei meinen RX-V481 nicht?
-
@foxthefox said in Neuer Adapter: Yamaha MusicCast:
Im Verstärker gibt es eine Funktion Uhr/Clock. Diese ist nur für einen Tag setzbar. Es gibt an anderen Geräten Wochentagseinstellungen wo die Variable "anz", die zum Fehler führte, benutzt wird.
Mit der Version 0.1.1 von GitHub sollte es jetzt besser sein und bei den Objekten auch ein clock vorhanden sein.Bitte testen und berichten.
Gruß
Klaus
Hallo Klaus,
habe 0.1.1 installiert.
Fehler ist immer noch da.
Clock ist bei mir nicht vorhanden. (habe auch Objekte gelöscht und neu erstellen lassen; trotzdem nicht da)mfg
Dieter -
@Sinalco sagte in Neuer Adapter: Yamaha MusicCast:
Ich kann ab Version 0.1.x nicht mehr meine Yamaha YAS-306 Soundbar richtig steuern. Einschalten geht nicht, aber ausschalten funktioniert. Mute schaltet ebenfalls aus... Bin jetzt auf 0.0.9 da funktioniert alles bestens.
Ich hab jetzt mal 0.1.1 direkt von Github installiert aber das Problem besteht immer noch.
Hier mal der Log mit Debug Ausgabe:
musiccast.0 2019-03-08 19:50:16.450 debug system.adapter.admin.0: logging true musiccast.0 2019-03-08 19:50:11.477 debug sent power succesfully to main with false musiccast.0 2019-03-08 19:50:11.458 debug sent power succesfully to main with false musiccast.0 2019-03-08 19:50:11.452 debug IP configured : 192.168.178.26 for UID 01915823 musiccast.0 2019-03-08 19:50:11.452 debug config items : [{"ip":"192.168.178.26","type":"YAS-306","uid":"01915823","name":"Soundbar"}] musiccast.0 2019-03-08 19:50:11.451 debug device with uid = 01915823 musiccast.0 2019-03-08 19:50:11.451 info MusicCast: musiccast.0.YAS-306_01915823.main.power identified for command with false musiccast.0 2019-03-08 19:50:11.451 debug stateChange musiccast.0.YAS-306_01915823.main.power {"val":false,"ack":false,"ts":1552071011440,"q":0,"from":"system.adapter.javascript.0","user":"system.user.admin","lc":1552071011427} musiccast.0 2019-03-08 19:50:11.438 debug IP configured : 192.168.178.26 for UID 01915823 musiccast.0 2019-03-08 19:50:11.437 debug config items : [{"ip":"192.168.178.26","type":"YAS-306","uid":"01915823","name":"Soundbar"}] musiccast.0 2019-03-08 19:50:11.437 debug device with uid = 01915823 musiccast.0 2019-03-08 19:50:11.436 info MusicCast: musiccast.0.YAS-306_01915823.main.power identified for command with false musiccast.0 2019-03-08 19:50:11.435 debug stateChange musiccast.0.YAS-306_01915823.main.power {"val":false,"ack":false,"ts":1552071011427,"q":0,"from":"system.adapter.javascript.0","user":"system.user.admin","lc":1552071011427} musiccast.0 2019-03-08 19:50:11.434 debug stateChange musiccast.0.YAS-306_01915823.main.disable_flags {"val":0,"ack":true,"ts":1552071011402,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108425} musiccast.0 2019-03-08 19:50:11.432 debug stateChange musiccast.0.YAS-306_01915823.main.link_audio_quality {"val":"uncompressed","ack":true,"ts":1552071011401,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":15520531 musiccast.0 2019-03-08 19:50:11.431 debug stateChange musiccast.0.YAS-306_01915823.main.link_audio_delay {"val":"audio_sync","ack":true,"ts":1552071011400,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":155205310842 musiccast.0 2019-03-08 19:50:11.429 debug stateChange musiccast.0.YAS-306_01915823.main.link_control {"val":"speed","ack":true,"ts":1552071011399,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108423} musiccast.0 2019-03-08 19:50:11.427 debug stateChange musiccast.0.YAS-306_01915823.main.bass_extension {"val":true,"ack":true,"ts":1552071011398,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108422} musiccast.0 2019-03-08 19:50:11.426 debug stateChange musiccast.0.YAS-306_01915823.main.subwoofer_volume {"val":4,"ack":true,"ts":1552071011397,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108422} musiccast.0 2019-03-08 19:50:11.424 debug stateChange musiccast.0.YAS-306_01915823.main.clear_voice {"val":true,"ack":true,"ts":1552071011396,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108421} musiccast.0 2019-03-08 19:50:11.423 debug stateChange musiccast.0.YAS-306_01915823.main.sound_program {"val":"music","ack":true,"ts":1552071011395,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108420} musiccast.0 2019-03-08 19:50:11.421 debug stateChange musiccast.0.YAS-306_01915823.main.distribution_enable {"val":true,"ack":true,"ts":1552071011394,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108419} musiccast.0 2019-03-08 19:50:11.420 debug stateChange musiccast.0.YAS-306_01915823.main.input {"val":"tv","ack":true,"ts":1552071011393,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108419} musiccast.0 2019-03-08 19:50:11.418 debug stateChange musiccast.0.YAS-306_01915823.main.max_volume {"val":100,"ack":true,"ts":1552071011392,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108418} musiccast.0 2019-03-08 19:50:11.417 debug stateChange musiccast.0.YAS-306_01915823.main.mute {"val":false,"ack":true,"ts":1552071011391,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552071011133} musiccast.0 2019-03-08 19:50:11.415 debug stateChange musiccast.0.YAS-306_01915823.main.volume {"val":52,"ack":true,"ts":1552071011390,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108417} musiccast.0 2019-03-08 19:50:11.413 debug stateChange musiccast.0.YAS-306_01915823.main.power {"val":"standby","ack":true,"ts":1552071011389,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552071011389} musiccast.0 2019-03-08 19:50:11.409 debug stateChange musiccast.0.YAS-306_01915823.main.response_code {"val":0,"ack":true,"ts":1552071011385,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108414} musiccast.0 2019-03-08 19:50:11.405 debug stateChange musiccast.0.YAS-306_01915823.main.getStatus {"val":{"response_code":0,"power":"standby","volume":52,"mute":false,"max_volume":100,"input":"tv","distribution_enable":true,"sound_program":" musiccast.0 2019-03-08 19:50:11.403 debug stateChange musiccast.0.YAS-306_01915823.netusb.shuffle_available {"val":["off","on"],"ack":true,"ts":1552071011365,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":155207101 musiccast.0 2019-03-08 19:50:11.402 debug stateChange musiccast.0.YAS-306_01915823.netusb.repeat_available {"val":["off","one","all"],"ack":true,"ts":1552071011364,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":155 musiccast.0 2019-03-08 19:50:11.401 debug stateChange musiccast.0.YAS-306_01915823.netusb.attribute {"val":16777247,"ack":true,"ts":1552071011363,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552071011363} musiccast.0 2019-03-08 19:50:11.400 debug stateChange musiccast.0.YAS-306_01915823.netusb.auto_stopped {"val":false,"ack":true,"ts":1552071011362,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108441} musiccast.0 2019-03-08 19:50:11.398 debug stateChange musiccast.0.YAS-306_01915823.netusb.usb_devicetype {"val":"unknown","ack":true,"ts":1552071011361,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108441} musiccast.0 2019-03-08 19:50:11.397 debug stateChange musiccast.0.YAS-306_01915823.netusb.albumart_id {"val":8031,"ack":true,"ts":1552071011361,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108440} musiccast.0 2019-03-08 19:50:11.396 debug stateChange musiccast.0.YAS-306_01915823.netusb.albumart_url {"val":"","ack":true,"ts":1552071011360,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108439} musiccast.0 2019-03-08 19:50:11.395 debug stateChange musiccast.0.YAS-306_01915823.netusb.track {"val":"","ack":true,"ts":1552071011359,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108438} musiccast.0 2019-03-08 19:50:11.394 debug stateChange musiccast.0.YAS-306_01915823.netusb.album {"val":"","ack":true,"ts":1552071011359,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108438} musiccast.0 2019-03-08 19:50:11.392 debug stateChange musiccast.0.YAS-306_01915823.netusb.artist {"val":"","ack":true,"ts":1552071011358,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108437} musiccast.0 2019-03-08 19:50:11.391 debug stateChange musiccast.0.YAS-306_01915823.netusb.total_time {"val":0,"ack":true,"ts":1552071011357,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108436} musiccast.0 2019-03-08 19:50:11.390 debug stateChange musiccast.0.YAS-306_01915823.netusb.play_time {"val":-60000,"ack":true,"ts":1552071011356,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108436} musiccast.0 2019-03-08 19:50:11.387 debug stateChange musiccast.0.YAS-306_01915823.netusb.shuffle_stat {"val":"off","ack":true,"ts":1552071011353,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108435} musiccast.0 2019-03-08 19:50:11.382 debug stateChange musiccast.0.YAS-306_01915823.netusb.repeat_stat {"val":"off","ack":true,"ts":1552071011346,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108434} musiccast.0 2019-03-08 19:50:11.381 debug stateChange musiccast.0.YAS-306_01915823.netusb.playback {"val":"stop","ack":true,"ts":1552071011345,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108433} musiccast.0 2019-03-08 19:50:11.379 debug stateChange musiccast.0.YAS-306_01915823.netusb.play_queue_type {"val":"system","ack":true,"ts":1552071011344,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108433} musiccast.0 2019-03-08 19:50:11.378 debug stateChange musiccast.0.YAS-306_01915823.netusb.input {"val":"bluetooth","ack":true,"ts":1552071011341,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552071011341} musiccast.0 2019-03-08 19:50:11.376 debug stateChange musiccast.0.YAS-306_01915823.netusb.response_code {"val":0,"ack":true,"ts":1552071011337,"q":0,"from":"system.adapter.musiccast.0","user":"system.user.admin","lc":1552053108431} musiccast.0 2019-03-08 19:50:11.335 debug Zone Status Update disable_flags at 0 musiccast.0 2019-03-08 19:50:11.335 debug Zone Status Update link_audio_quality at uncompressed musiccast.0 2019-03-08 19:50:11.335 debug Zone Status Update link_audio_delay at audio_sync musiccast.0 2019-03-08 19:50:11.334 debug Zone Status Update link_control at speed musiccast.0 2019-03-08 19:50:11.334 debug Zone Status Update bass_extension at true musiccast.0 2019-03-08 19:50:11.334 debug Zone Status Update subwoofer_volume at 4 musiccast.0 2019-03-08 19:50:11.333 debug Zone Status Update clear_voice at true musiccast.0 2019-03-08 19:50:11.330 debug Zone Status Update sound_program at music musiccast.0 2019-03-08 19:50:11.330 debug Zone Status Update distribution_enable at true musiccast.0 2019-03-08 19:50:11.330 debug Zone Status Update input at tv musiccast.0 2019-03-08 19:50:11.329 debug Zone Status Update max_volume at 100 musiccast.0 2019-03-08 19:50:11.329 debug Zone Status Update mute at false musiccast.0 2019-03-08 19:50:11.329 debug Zone Status Update volume at 52 musiccast.0 2019-03-08 19:50:11.328 debug Zone Status Update power at standby musiccast.0 2019-03-08 19:50:11.328 debug Zone Status Update response_code at 0 musiccast.0 2019-03-08 19:50:11.327 debug got status info succesfully from 192.168.178.26 for main musiccast.0 2019-03-08 19:50:11.327 debug stateChange musiccast.0.YAS-306_01915823netusb.getPlayInfo {"val":{"response_code":0,"input":"bluetooth","play_queue_type":"system","playback":"stop","repeat":"off","shuffle":"off","play_time":-60000 musiccast.0 2019-03-08 19:50:11.324 debug albumart musiccast.0 2019-03-08 19:50:11.318 debug got Netusb playinfo succesfully from 192.168.178.26with "{\"response_code\":0,\"input\":\"bluetooth\",\"play_queue_type\":\"system\",\"playback\":\"stop\",\"repeat\":\"off\",\"shuffle\":\"off\",\"pl musiccast.0 2019-03-08 19:50:11.305 debug processing update from: [object Object] with {"main":{"signal_info_updated":true},"netusb":{"play_info_updated":true,"play_queue":{"updated":true}},"device_id":"00A0DEFEA471"} musiccast.0 2019-03-08 19:50:11.304 debug server got:{"main":{"signal_info_updated":true},"netusb":{"play_info_updated":true,"play_queue":{"updated":true}},"device_id":"00A0DEFEA471"} from 192.168.178.26 musiccast.0 2019-03-08 19:50:11.206 debug sent power succesfully to main with false musiccast.0 2019-03-08 19:50:11.190 debug sent power succesfully to main with false musiccast.0 2019-03-08 19:50:11.186 debug IP configured : 192.168.178.26 for UID 01915823 musiccast.0 2019-03-08 19:50:11.186 debug config items : [{"ip":"192.168.178.26","type":"YAS-306","uid":"01915823","name":"Soundbar"}] musiccast.0 2019-03-08 19:50:11.185 debug device with uid = 01915823 musiccast.0 2019-03-08 19:50:11.185 info MusicCast: musiccast.0.YAS-306_01915823.main.power identified for command with false musiccast.0 2019-03-08 19:50:11.183 debug stateChange musiccast.0.YAS-306_01915823.main.power {"val":false,"ack":false,"ts":1552071011176,"q":0,"from":"system.adapter.javascript.0","user":"system.user.admin","lc":1552071011163} musiccast.0 2019-03-08 19:50:11.172 debug IP configured : 192.168.178.26 for UID 01915823 musiccast.0 2019-03-08 19:50:11.172 debug config items : [{"ip":"192.168.178.26","type":"YAS-306","uid":"01915823","name":"Soundbar"}] musiccast.0 2019-03-08 19:50:11.171 debug device with uid = 01915823 musiccast.0 2019-03-08 19:50:11.171 info MusicCast: musiccast.0.YAS-306_01915823.main.power identified for command with false
-
zu clock
erscheint bei mir bei einem Lautsprecher 021 (also die neuen MC 20)
Bei den alten (010 und 030) erscheint der Punkt "clock" nicht.
Ebenfalls bei meinem Receiver RX-v685 nicht.Vermutlich erscheint "clock" nur bei den Lautsprechern die dies auch anbieten ?!?!!?
mfg
Dieter -
Hallo, bei mir wird im Yamaha Adapter Clock angezeigt. Im MusicCast Adapter nicht.
Also den DP gibt es und funktioniert auch unter RDSCLOCK.YAMAHA
MusicCast
-
sigi hast recht.
Im yamaha Adapter (bei mir für den Receiver RX-v685) hab ich auch den Punkt rdsclock.
Im MC nicht.
-
Hallo Leute,
ich bin in den letzten Wochen von Bose SoundTouch auf Musiccast umgestiegen. Der SoundTouch-Adapter von ioBroker hat bisher ganz gut funktioniert, nur musste man pro Lautsprecher eine eigene Instanz anlegen, dies scheint mit dem Musiccast Adapter besser gelöst zu sein. Nur muss ich hier mit den ganzen Paramentern erst einmal durchsteigen. Trotzdem vorab ein großes Danke an Fox!
Ich habe folgende Komponenten:
- 1x AVR RX-V683
- 3x MusicCast 20 (WX-021)
- 1x ISX-80
Die MC 20 wurden von der Suche leider nicht automatisch erkannt. Manuell hinzufügen hat soweit geklappt, allerdings habe ich hier bemerkt, dass bei den erkannten anderen Geräten die System-ID und nicht die Geräte-ID unter Geräte-ID eingetragen wird.
Ich vermute, dass die System-ID das genaue Modell identifiziert - somit kommt es wohl zu Problemen bei mehreren Lautsprechern/Receivern des selben Modells, was bei einem Multiroom-System durchaus passieren kann. Sollte evtl. in der nächsten Version angepasst werden?
Ansonsten bin ich mich mal durch die Datenpunkte wühlen.. gibt hier ja einige.
Danke nochmal vorab!
Viele Grüße,
Alex -
@Unbeliveable89
Den bug habe ich auch bemerkt - man kann aktuell nicht mehr als einen Receiver unterstützen (insbesondere Problem bei Multi-Zone Yamaha Receivern).
Ein einfacher Workaround ist, die Konfiguration als JSON-Datei im Musiccast Adapter zu exportieren (dafür gibt es da extra einen Knopf), dann leicht darin pro Receiver die uid zu ändern und dann wieder zu importieren.Plötzlich hat man alle Receiver als Objekte und kann sie einzeln ansteuern.
Ich hoffe aber auch, dass das gefixt wird
-
Hallo zusammen,
habe seit einer Woche jetzt auch ein Yamaha AVR/Multiroom-System (RX-A 1080 + 4 Stück WX-021 (2 davon Surround-Back-LS))
Habe nun den MusicCast-Adapter in Betrieb genommen und mich durch die DP gearbeitet. Soweit erstmal alles klar.
VIELEN DANK AN KLAUS FÜR DIE TOLLE ARBEIT
Bei einem Punkt brauche ich aber Eure Hilfe: Wie kann ich Räume verlinken bzw. wieder aufheben?
Danke vorab!
Grüße
Frank
-
@frank2604 sagte in Neuer Adapter: Yamaha MusicCast:
Wie kann ich Räume verlinken bzw. wieder aufheben?
Meinst du Räume gruppieren?
Dies geht mit dem Adapter nicht.
Muss du manuell mit einem Script machen.
mfg
-
Hallo Dieter,
Danke für Deine Rückmeldung.
Hmm, mit Skripten kenne ich mich nicht aus. Hättest Du die Nerven, mich dabei an die Hand zu nehmen?
Frank
-
Hallo,
du musst dir die api Befehle für dein Modell bei deinem Verkäufer besorgen.
Direkt bei yamaha funktioniert dies i.d.R. nicht. Diese fragen deinen Verkäufer und senden letztendlich die api an deinen Händler.Nach mehrmaligen Mails mit yamaha (und diese haben das dann intern abklären müssen) hab ich die api für mein Modell vom Händler als auch von yamaha bekommen.
Diese musst du zuerst besorgen.
Und dann halt versuchen ein script zu erstellen.mfg
-
OK, klingt als hättest Du das "Räume gruppieren" bei Dir so umgesetzt. Werde mich um die api Befehle kümmern. Hast Du eventuell eine Beispiel für ein solches Skript?
Danke & Grüße
Frank
-
// ************************************************************************************************************************************************** // Yamaha - Gruppe einstellen und löschen per Script // @ 2019_02 bahnuhr // ************************************************************************************************************************************************** // Variablen var v_server = "", v_client = [], v_random = "", i_ende = 120, logging = false, request = require('request'); // ************************************************************************************************************************************************** // Trigger // ************************************************************************************************************************************************** on({id: "javascript.0.Status.Yamaha.Gruppe.einstellen", change: "ne", val: true}, function() { start_setzen(); }); on({id: "javascript.0.Status.Yamaha.Gruppe.loeschen", change: "ne", val: true}, function() { start_loeschen(); }); // ************************************************************************************************************************************************** // Programme Start - setzen und löschen // ************************************************************************************************************************************************** function start_setzen() { // Ablauf des Scriptes // Master und Client ermitteln Master_ermitteln(); Client_ermitteln(); v_random = ""; for (x=1; x<=32; x++) v_random = v_random + String(Math.floor(Math.random() * 10)); if (logging) log('start_setzen: v_random = ' + v_random); if (v_server !== "" && v_client.length > 0) { MusicCast_Client_setzen(); MusicCast_Master_setzen(); } else log("start_setzen: Gruppe nicht gesetzt !"); // prüfen ob mindestens 1 Server und 1 Client gesetzt ist Lautstaerke_setzen(); pruefen_client_gesetzt(); } function start_loeschen() { // Client loeschen for (x = 110; x <= i_ende ; x++) pruef_client(x); // 1. und letzte IP -> 192.168.243..... // Master loeschen und Distribution stop for (x = 110; x <= i_ende ; x++) pruef_master(x); // 1. und letzte IP -> 192.168.243..... setState('javascript.0.Status.Yamaha.Gruppe.Mitteilung', "Gruppe gelöscht."); setStateDelayed('javascript.0.Status.Yamaha.Gruppe.Mitteilung', "", 3000); } // ************************************************************************************************************************************************** // Unterprogramme Starten // ************************************************************************************************************************************************** function Master_ermitteln() { if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Wohnzimmer').val) v_server = "192.168.243.110"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Schlafzimmer').val) v_server = "192.168.243.111"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Philipp').val) v_server = "192.168.243.112"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Buero').val) v_server = "192.168.243.113"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Bad_EG').val) v_server = "192.168.243.114"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Kueche').val) v_server = "192.168.243.115"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Fitnessraum').val) v_server = "192.168.243.116"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Hobbyraum').val) v_server = "192.168.243.117"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Gaeste-WC').val) v_server = "192.168.243.118"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Sauna').val) v_server = "192.168.243.119"; else if (getState('javascript.0.Status.Yamaha.Gruppe.Master_Test2').val) v_server = "192.168.243.120"; if (logging) log('Master_ermitteln: v_server = ' + v_server); return v_server; } function Client_ermitteln() { v_client = []; if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Wohnzimmer').val && getState('ping.0.Asus-Buero.192_168_243_110').val) v_client.push ("192.168.243.110"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Schlafzimmer').val && getState('ping.0.Asus-Buero.192_168_243_111').val) v_client.push ("192.168.243.111"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Philipp').val && getState('ping.0.Asus-Buero.192_168_243_112').val) v_client.push ("192.168.243.112"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Buero').val && getState('ping.0.Asus-Buero.192_168_243_113').val) v_client.push ("192.168.243.113"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Bad_EG').val && getState('ping.0.Asus-Buero.192_168_243_114').val) v_client.push ("192.168.243.114"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Kueche').val && getState('ping.0.Asus-Buero.192_168_243_115').val) v_client.push ("192.168.243.115"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Fitnessraum').val && getState('ping.0.Asus-Buero.192_168_243_116').val) v_client.push ("192.168.243.116"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Hobbyraum').val && getState('ping.0.Asus-Buero.192_168_243_117').val) v_client.push ("192.168.243.117"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Gaeste-WC').val && getState('ping.0.Asus-Buero.192_168_243_118').val) v_client.push ("192.168.243.118"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Sauna').val && getState('ping.0.Asus-Buero.192_168_243_119').val) v_client.push ("192.168.243.119"); if (getState('javascript.0.Status.Yamaha.Gruppe.Client_Test').val && getState('ping.0.Asus-Buero.192_168_243_120').val) v_client.push ("192.168.243.120"); if (logging) log('Client_ermitteln: v_client = ' + v_client.join(', ')); return v_client; } function MusicCast_Client_setzen() { for (x=0; x < v_client.length ; x++) { var options = {uri: 'http://' + v_client[x] + '/YamahaExtendedControl/v1/dist/setClientInfo', method: 'POST', json: {group_id:v_random, zone:"main", server_ip_address: v_server }}; request(options); if (logging) log('MusicCast_Client_setzen: v_client = ' + v_client[x]); } } function MusicCast_Master_setzen() { // Master setzen var options = {uri: 'http://' + v_server + '/YamahaExtendedControl/v1/dist/setServerInfo', method: 'POST', json: {group_id:v_random, zone:"main", type:"add", client_list:[v_client]}}; request(options); // Distribution starten request('http://' + v_server + '/YamahaExtendedControl/v1/dist/startDistribution?num=0'); // prüfen ob "working" setTimeout(function() { request('http://' + v_server + '/YamahaExtendedControl/v1/dist/getDistributionInfo', function (error, response, body) { if (!error && response.statusCode == 200) { var obj = JSON.parse(body); if (logging) log ("MusicCast_Master_setzen: "+ v_server + ": obj.role = " + obj.role + " / obj.status = " + obj.status); if (obj.role == "server" && obj.status == "working") { setState('javascript.0.Status.Yamaha.Gruppe.Mitteilung', "Gruppe erstellt."); setStateDelayed('javascript.0.Status.Yamaha.Gruppe.Mitteilung', "", 3000); } else { setState ('javascript.0.Status.Yamaha.Gruppe.Mitteilung', "Gruppe nicht erstellt."); setStateDelayed('javascript.0.Status.Yamaha.Gruppe.Mitteilung', "", 3000); } } }); },2000); } function pruefen_client_gesetzt() { setTimeout(function() { for (x = 110; x <= i_ende ; x++) { // 1. und letzte IP -> 192.168.243..... pruefen_client_unter(x); } },3000); } function pruefen_client_unter(x) { if (getState('ping.0.Asus-Buero.192_168_243_' + x).val) { request('http://192.168.243.' + x + '/YamahaExtendedControl/v1/dist/getDistributionInfo', function (error, response, body) { if (!error && response.statusCode == 200) { var obj = JSON.parse(body); if (obj.group_id == "00000000000000000000000000000000" && (obj.role == "none" || obj.role == "client") ) { if (x == 110) setState('javascript.0.Status.Yamaha.Gruppe.Client_Wohnzimmer', false); if (x == 111) setState('javascript.0.Status.Yamaha.Gruppe.Client_Schlafzimmer', false); if (x == 112) setState('javascript.0.Status.Yamaha.Gruppe.Client_Philipp', false); if (x == 113) setState('javascript.0.Status.Yamaha.Gruppe.Client_Buero', false); if (x == 114) setState('javascript.0.Status.Yamaha.Gruppe.Client_Bad_EG', false); if (x == 115) setState('javascript.0.Status.Yamaha.Gruppe.Client_Kueche', false); if (x == 116) setState('javascript.0.Status.Yamaha.Gruppe.Client_Fitnessraum', false); if (x == 117) setState('javascript.0.Status.Yamaha.Gruppe.Client_Hobbyraum', false); if (x == 118) setState('javascript.0.Status.Yamaha.Gruppe.Client_Sauna', false); if (x == 119) setState('javascript.0.Status.Yamaha.Gruppe.Client_Gaeste-WC', false); if (x == 120) setState('javascript.0.Status.Yamaha.Gruppe.Client_Test2', false); if (logging) log ("pruefen_client_gesetzt: Anzeige VIS - client " + x + " auf false gesetzt!"); } else { if (logging) log ("pruefen_client_gesetzt: Anzeige VIS - client " + x + " alles ok!"); } } }); } } // ************************************************************************************************************************************************** // Unterprogramme Löschen // ************************************************************************************************************************************************** function pruef_client(x) { if (getState('ping.0.Asus-Buero.192_168_243_' + x).val) { request('http://192.168.243.' + x + '/YamahaExtendedControl/v1/dist/getDistributionInfo', function (error, response, body) { if (!error && response.statusCode == 200) { var obj = JSON.parse(body); if (logging) log ("löschen - pruef_client 192.168.243." + x + ": obj.group_id = " + obj.group_id + " / obj.role = " + obj.role); if (obj.group_id != "00000000000000000000000000000000" && obj.role == "client") MusicCast_Client_loeschen(x); } }); } } function MusicCast_Client_loeschen(x) { var options = {uri: 'http://192.168.243.' + x + '/YamahaExtendedControl/v1/dist/setClientInfo', method: 'POST', json: {group_id:""}}; if (logging) log ("MusicCast_Client_loeschen: Client 192.168.243." + x + ": gelöscht!"); request(options); } function pruef_master(x) { if (getState('ping.0.Asus-Buero.192_168_243_' + x).val) { request('http://192.168.243.' + x + '/YamahaExtendedControl/v1/dist/getDistributionInfo', function (error, response, body) { if (!error && response.statusCode == 200) { var obj = JSON.parse(body); if (logging) log ("löschen - pruef_master 192.168.243." + x + ": obj.group_id = " + obj.group_id + " / obj.role = " + obj.role); if (obj.group_id != "00000000000000000000000000000000" && obj.role == "server") MusicCast_Master_loeschen(x); } }); } } function MusicCast_Master_loeschen(x) { // Distribution stop request('http://192.168.243.' + x + '/YamahaExtendedControl/v1/dist/stopDistribution'); var options = {uri: 'http://192.168.243.' + x + '/YamahaExtendedControl/v1/dist/setServerInfo', method: 'POST', json: {group_id:""}}; if (logging) log ("MusicCast_Master_loeschen: Master 192.168.243." + x + ": gelöscht!"); request(options); } // ************************************************************************************************************************************************** // Sonstiges // ************************************************************************************************************************************************** function Lautstaerke_setzen() { request('http://' + v_server + '/YamahaExtendedControl/v1/main/getStatus', function (error, response, body) { if (!error && response.statusCode == 200) { var obj = JSON.parse(body); if (v_server == "192.168.243.110") { setState("musiccast.0.RX-V685_0DA87303.main.volume", 71); if (logging) log ("Lautstaerke_setzen: Master: 192.168.243.110 Lautstärke gesetzt auf: 71"); Laut_Master_volume = 26; } else { Laut_Master_volume = obj.volume; if (logging) log ("Lautstaerke_setzen: Master: " + v_server + " Lautstärke ist: " + obj.volume); } for (x=0; x < v_client.length ; x++) { if (v_client[x] == "192.168.243.110") { setState("musiccast.0.RX-V685_0DA87303.main.volume", 71); if (logging) log ("Lautstaerke_setzen: Client: " + v_client[x] + " Lautstärke gesetzt auf: 71"); } else { request('http://' + v_client[x] + '/YamahaExtendedControl/v1/main/setVolume?volume='+ Laut_Master_volume); if (logging) log ("Lautstaerke_setzen: Client: " + v_client[x] + " Lautstärke ist: " + Laut_Master_volume); } } } }); }
Und in VIS sieht es so aus:
Aufnahme_2019_05_12_08_39_05_53.mp4
Ist aber nicht einfach zu verstehen.
Du musst die Variablen manuell anlegen.
Weiterhin hab ich ping eingebaut um zu ermitteln ob die Lautsprecher am Netz sind.
Daneben musst du noch ein Script schreiben, das nur 1 x Master zulässt.
Weiterhin müssen die Lautsprecher aufsteigende IP haben.Fazit:
Wollte es eigentlich nicht zur Verfügung stellen, da es doch äußerst auf mich abgestimmt ist.
Aber vielleicht kommst du damit zurecht.mfg
Nachtrag:
Und wenn dem Entwickler "foxthefox" die api Bausteine gefallen, dann kann er diese gerne verwenden.
Aber dann kann er ja auch mal bei Verwendung meiner Script - Bausteine meinen forum Namen ja zumindest mal erwähnen. -
Hallo Dieter,
Danke für Deine Hilfe, aber da steige ich aus. Dann lässt sich das für mich leider nicht mit ioBroker umsetzen. Muss ich zum Gruppieren der Räume dann doch zum iPhone greifen.
Trotzdem nochmals Danke.
Frank
-
Hier noch ein Hinweis für Klaus:
Der musiccast-Adapter bekommt nicht mit, wenn der Receiver über HDMI-CEC an- oder ausgeschaltet wurde. Der Status vom DP power ändert sich nur bei Bedienung über die Yamaha FB.
Der Yamaha-Adapter hingegen schaltet auch bei HDMI-CEC den DP power um.
Habe daher vorübergehend den Yamaha-Adapter mit hinzugenommen. Falls man das lösen kann, würde ich aber gerne nur den musiccast verwenden.
Grüße
Frank
-
Hi,
ich glaube, ich leide an einem ähnlichen Problem:
Ich nutze 5 Musiccast Komponenten. Darunter ist ein Receiver sowie weitere Lautsprecher.
Auf meinem iobroker Dashboard habe ich Schalter, um die einzelnen Lautsprechern ein/aus zu schalten. Der Schalter funktioniert zwar, zeigt aber normalerweise den falschen Status an, wenn der Lautsprecher zB über die Musiccast App angeschalten wurde. Gibt es hier noch etwas zum Einstellen?VG & Danke
-
Ich habe auch probleme mit dem MusicCast adapter, weil er keine Status-Änderungen mitbekommt. Als Notlösung habe ich jetzt einen Status eingebaut, mit dem man ein einfaches Refresh von außen anstoßen kann (das kann man dann leicht über javascript-Timer machen).
Evtl. bau ich das Polling mit Intervall noch direkt da ein.
Hier sieht man meine Änderung (einfach triggerForceRefresh=true setzen macht den refresh):
https://github.com/mghomedev/ioBroker.musiccast