Yamaha MusicCast Shortcuts Kurzbefehle

  • UPDATE Anfang


    Hallo liebe MusicCast-Nutzer. Ich habe mir was tolles gebastelt und für die jenigen, die damit ihr Haus beschallen möchten, gebe ich euch die ganzen Links. Danke auch an AnMiPe :) In Version 2.0 werde ich diese mit einem Wecker integrieren, wenn das klappen sollte :)


    (Ihr müsst natürlich eure eigene IP-Adressen einsetzen)


    Also ich habe mehrere Links, die zusammen Arbeiten,


    1.

    vorab der Lautstärker Regler:

    Leiser:

    https://www.icloud.com/shortcu…f8b164e2a84da969d544670b6

    Lauter:

    https://www.icloud.com/shortcu…1e9ff4da6a88617a2c688db1f

    Da seht ihr den Wert 10 und 4. Das ist so, weil Receiver anders in der Lautstärke reguliert werden als die tragbaren Boxen.

    (Im Widget anzeigen: Ja)


    2.

    von jedem eurer MusicCast-Geräten ein Ein-/Ausschlater anlegen:

    An:

    https://www.icloud.com/shortcu…6c91a4f5ea678bfe53cc8a152

    Aus:

    https://www.icloud.com/shortcu…9edcb4d059898d8335b6937a3

    (Im Widget anzeigen: Nein)


    3.

    zusätzlich, wenn ihr mehr als 2 MusicCast-Geräte habt, dann braucht ihr einen Schalter, der alle auf einmal Ein-/Ausschaltet

    Alle An:

    https://www.icloud.com/shortcu…373bf40a2b30674e03f6da55b

    Alle Aus:

    https://www.icloud.com/shortcu…104c840ea858c0ae580cfefac

    (Im Widget anzeigen: Nein)


    4.

    Ihr solltet, wenn ihr aus all euren Geräten zum Beispiel Internet-Radio hören möchtet, auf jedem den gleichen Sendeplatz mit dem Sender belegen und speichern. So ist der Comfort nachher höher.


    5.

    jetzt von jedem einzelnen Radiosender, das ihr später auswählen möchtet, einen Schalter machen.

    Unter "Überall" steht bei mir "*verlinkt* M... einschalten", da muss natürlich "Alle An" ausgewählt werden.

    Die Geräte starten auch leise. Ich wollte nicht immer erschreckt werden (volume=3).

    "group_id" ist irgendeine Zahl, die könnt ihr ändern.

    Hier mein Radiosender, den ich GOA gennant habe:

    https://www.icloud.com/shortcu…af35f4e04aa05fbfea33ab1d3

    (Im Widget anzeigen: Nein)


    6.

    nun einen Schalter, den ihr im Widget anklickt um alles zu starten. Bei mir heisst dieser "Radio":

    https://www.icloud.com/shortcu…8cdc44977b75e78ff6db3beb5

    (Im Widget anzeigen: Ja)


    7.

    zu guter letzt ein Schalter im Widget, womit ihr entweder Alle oder einzelne MusicCast Geräte ausschalten könnt:

    https://www.icloud.com/shortcu…f429b47d98e4f4a29d2e9ee2c

    (Im Widget anzeigen: Ja)




    Ich hoffe es macht euch Spass! Für Fragen oder Verbesserungsvorschläge bin ich sehr offen. Für Likes würde ich mich freuen.



    UPDATE Ende




    Habe es durch Zufall gefunden, endlich! Ich möchte es nicht verlieren und euch Nutzern dieser Geräte nicht vorenthalten!
    Die API von Yamaha :love:
    Sobald ich meinen ersten Shortcut fertig gestellt habe, werde ich es hier veröffentlichen. So kompliziert ist das gar nicht, wenn man es verstanden hat.


    Update:
    Habe noch zwei PDF mit API gefunden. Siehe Download...

  • Kann mir einer vielleicht helfen, dessen English etwas besser ist als der von mir :)

    Ich suche nach dem Befehl in der PDF. Mein Vorhaben:
    Wohnzimmer Receiver spielt Musik. Küche und Kinderzimmer sollen auch das gleiche spielen. Mit MusicCast App weise ich die beiden Räume zum Wohnzimmer hinzu.
    Da gibt es bestimmt eine API zu, finde diese aber nicht. Für mich ist das irgendwie nicht schlüssig. Wenn jemand helfen kann, wäre ich sehr dankbar :)

  • Hi,


    leider gibt es da nicht einen Befehl, sondern man muss eine Reihe Befehle nach einander durchführen.

    Außerdem muss man noch Inhalte im POST mitschicken. Ich habe meine Musiccast Geräte leider nicht mehr und ich hatte es damals in einem Homematic Skript gemacht, daher kann ich dir nicht die Befehle passend für einen Shortcut liefern. Aber im Prinzip geht das so:


    1. Schritt - Eine Distribution starten und definieren. Es gibt einen Master und Clients. Die Clients müssen in die Liste.

    Die GroupID kann man sich ausdenken. Meine war bspw. "a89b0f9f2d334b63bab6bcc48a0587f0"

    POST Json: {"group_id":"a89b0f9f2d334b63bab6bcc48a0587f0", "zone":"main","type":"add","client_list":[GRUPPE DER SPEAKER-IPS]}

    URL: http://MASTER-IP/YamahaExtendedControl/v1/dist/setServerInfo


    2. Schritt - JEDEM Client die Gruppe mitteilen (= Eine URL/Aufruf je Client)

    POST Json: {"group_id":"a89b0f9f2d334b63bab6bcc48a0587f0", "zone":["main"],"server_ip_address":"MASTER-IP"}

    URL: http://CLIENT-IP/YamahaExtendedControl/v1/dist/setClientInfo


    3. Schritt - Distribution starten

    URL: http://MASTER-IP/YamahaExtende…t/startDistribution?num=0


    4. Schritt - Optionalen Namen vergeben

    POST Json = {"name": "Wohnzimmer+Sofa"}

    Url: http://MASTER-IP/YamahaExtendedControl/v1/dist/setGroupName


    Viel Erfolg!

    Gruß

    Andre

  • Hallo,


    ich versuche gerade eine Musiccast Gruppe über ein Homematic Script zu erstellen.

    Leider verzweifel ich gerade daran das ich nicht weiß wie ich die Inhalte im POST mitschicke.


    Die normale funktionen (an, aus, eingang, lautstärke...) steuer ich einfach über die normale URL die ich aus einem Script aufrufe.

    Das funktioniert soweit auch ganz gut.


    Kann mir jemand, eventuell AnMiPe, sagen wie das ausehen muss.


    Danke


    EDIT:

    So habe ich es versucht:

    string url="\"http://192.168.178.33/YamahaExtendedControl/v1/dist/setserverInfo?group_id=123&zone=main&type=add&client_list=[192.168.178.33,192.168.178.34]\"";

    system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

  • Hi basti1703


    ich habe extra ein altes CCU Backup durchsucht und folgendes für dich gefunden.


    Code
    postJson = "{\"group_id\":\""#groupID#"\", \"zone\":[\"main\"],\"server_ip_address\":\"" # ipSoundbar # "\"}";
    WriteLine(postJson);
    url="http://" # ipSpeakerKueche # "/YamahaExtendedControl/v1/dist/setClientInfo";
    string request="/usr/local/addons/cuxd/curl -X POST -H \"Content-Type: application/json\" -d '" # postJson # "' "# url;
     dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(request);
    dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
    var v = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
    WriteLine(v);


    Ich habe die Befehle allerdings über den CUXD gesendet. Das soll auch zuverlässiger funktionieren als über System.Exec.


    Gruß

    Andre