YAMAHA Musiccast

Ja, die IP des MAster siehst du im Router oder in der MusiccastApp in den Raumeinstellungen unter Informationen.
Ich habe es auch mal mit dem Gerätenamen aus der App getestet, funktionert zwar auch, aber nicht zuverlässig. Wahrscheinlich wird hier die Kombination aus Namen und IP irgendwo temporär zwischengespeichert, aber nicht lange genug.
Die Group-ID kannst du selbst festlegen, sie muss nur soviele Zeichen haben wie in meinem Beispiel.

hi,
bin grad fleißig am tippen…
muss dort auch eine verzögerung von 2 s hin=?

ist nach group id extra leer? oder soll ich da in die"" die id eintragen die ich genommen habe?

muss ich hier master und client durch ip adressen ersetzten??

dann noch generell:

was gebe ich bei „Content type“ ein?

wie regele ich die lautstärke?

und wie bringe ich die geräte dann zum abspielen des netradio senders?

bzw können die geräte dann auch von meinem server die hörspiele der kinder abspielen zb jeden abend um 20 uhr? ^^
aktuell sieht es so aus bei mir:

vielen dank für euren support ihr helft mir echt gut weiter

LG

edit:
ps: ich kann irgendwie max 2 links posten und deswegen sind die links verändert …

Da klappt das bei mir ohne Verzögerung.

Das ist extra leer um den Normalzustand wieder herzustellen. Habe nicht getestet ob man die stehen lassen kann.

Das ist der Name der DistributionGroup der dann in der Musiccast-App angezeigt wird. Bei mir z.B. „Wohnzimmer+Küche“. Kannst du frei wählen.

Da brauchst du nichts angeben.

Das findest du in der weiter oben verlinkten PDF.

Dein gepostetes HG startet zwar die DistributioGroup, aber stoppt sie auch gleich wieder.
Das musst du in verschiedene HGs schreiben.

Irgendwie funktioniert es nicht …

Kriegst du denn die einfachen Sachen AN, AUS, LAUTER, LEISER etc. hin?

Yamaha MusicCast HTTP simplified API for ControlSystems.pdf (396,6 KB)
hi mithilfe diesen dokuments habe ich es geschafft anzukriegen aus geht aber nicht lauter und leiser habe ich nicht ausprobiert

DOC-20171230-WA0033.pdf (591,8 KB)
dieses dok hat nicht geholfen und demnach auch nicht funktioniert es wird keine grueppe gebildet …

Der Befehl für AN hat ja am Ende power=on, AUS hat aber nicht power=off, sondern power=standby. Da bin ich zuerst auch drauf reingefallen.

Lauter in 2er-Schritten ist z.B. YamahaExtendedControl/v1/main/setVolume?volume=down&step=2
Leiser in 2er-Schritten ist YamahaExtendedControl/v1/main/setVolume?volume=up&step=2

Lautstärke auf den Wert 20 stellen ist YamahaExtendedControl/v1/main/setVolume?volume=20

Gruppe erstellen klappt bei mir mit folgender Reihenfolge

  1. Client
    POST …/YamahaExtendedControl/v2/dist/setClientInfo
    in Body dann die Werte von weiter oben
  2. Server
    POST …YamahaExtendedControl/v2/dist/setServerInfo
    in Body dann die Werte von weiter oben

1 Sekunde Pause
3. Server
POST …/YamahaExtendedControl/v2/dist/setGroupName
in Body dann die Werte von weiter oben
2 Sekunden Pause
4. Server
GET …/YamahaExtendedControl/v2/dist/startDistribution?num=0

Und irgendwann stellt ihr euch doch nen Raspberry Pi mit iobroker auf und simuliert die Yamahas über Node. :wink:

:coffee:

das habe ich inzwischen geschafft

das versuche ich jetzt


es wird keine gruppe erstellt

die übersicht des HG sieht so aus

angehen tut die box in der küche die anderen boxen werden nicht der küche hinzugefügt

Ich weiß jetzt nicht, ob es nur an den Screenshots liegt, aber darauf sieht es so aus, also ob ein paar Klammern fehlen.

Ich habe genau alles gecopy pasted… Außer den geschweiften klammern …

Die geschweiften Klammern sind auch nötig. Das erste Zeichen im Body muss „{“ sein, und das letzte „}“.

Ich versuchte es nochmal

Für mich sind die Infos der Gruppenbildung über POST Befehle ganz neu…danke für die Infos!
Hier habe ich die entsprechende advanced Doku gefunden:
https://www.symcon.de/forum/attachment.php?attachmentid=45621&d=1537699940

Bei mir läuft es jetzt auch mit homee.
Was ich geändert habe sind nur zwei Dinge gegenüber der o.g. Anleitung:

-Andere Group ID welche ich mir via http://IP-des-Master/YamahaExtendedControl/v1/dist/getDistributionInfo habe ausgeben lassen, als ich diesen zuvor via App mit einem anderen Lautsprecher verlinkt habe.
-Andere Anführungsstriche. Man darf augenscheinlich nur " verwenden.

Nun läuft es.

Ja, sich die Infos anzeigen zu lassen hat mir auch bei so manchen Sachen geholfen. :+1:

Was ich noch als Hinweis hier loswerden möchte ist, dass bei meiner obigen Anleitung der Groupmaster bereits eingeschaltet ist und ich nur nur die Distributiongroup starte und Clients hinzufüge. Die Clients werden dabei automatisch eingeschaltet.
Ich weiß nicht was passiert, wenn der Master noch nicht an ist. Diesen Anwendungsfall hatte ich noch nicht.

Hi, magst Du den Flow dazu bereitstellen?

VG Andi :cowboy_hat_face:

Klar. Du wirst feststellen, dass der Sender-Slider ohne Funktion ist.

[
    {
        "id": "b06b5aab.a1258",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "Lautstärke",
        "func": "var test = msg.payload.targetValue;\nreturn {payload: test};",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 1010,
        "y": 160,
        "wires": [
            [
                "32c0ef1f.35f7f8"
            ]
        ]
    },
    {
        "id": "39852261.56b03e",
        "type": "http request",
        "z": "adf49df2.7ba35",
        "name": "Receiver an",
        "method": "GET",
        "ret": "txt",
        "paytoqs": false,
        "url": "http://192.168.188.30/YamahaExtendedControl/v1/main/setPower?power=on",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 1190,
        "y": 80,
        "wires": [
            []
        ]
    },
    {
        "id": "f4d3c4b5.c68e4",
        "type": "switch",
        "z": "adf49df2.7ba35",
        "name": "",
        "property": "payload.targetValue",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "1",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 990,
        "y": 100,
        "wires": [
            [
                "39852261.56b03e"
            ],
            [
                "8ade8988.cb2e58"
            ]
        ]
    },
    {
        "id": "8ade8988.cb2e58",
        "type": "http request",
        "z": "adf49df2.7ba35",
        "name": "Receiver aus",
        "method": "GET",
        "ret": "txt",
        "paytoqs": false,
        "url": "http://192.168.188.30/YamahaExtendedControl/v1/main/setPower?power=standby",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 1190,
        "y": 120,
        "wires": [
            []
        ]
    },
    {
        "id": "32c0ef1f.35f7f8",
        "type": "http request",
        "z": "adf49df2.7ba35",
        "name": "Volume",
        "method": "GET",
        "ret": "txt",
        "paytoqs": false,
        "url": "http://192.168.188.30/YamahaExtendedControl/v1/main/setVolume?volume={{payload}}",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 1180,
        "y": 160,
        "wires": [
            []
        ]
    },
    {
        "id": "6c4a0b88.caea44",
        "type": "http request",
        "z": "adf49df2.7ba35",
        "name": "Status abfragen",
        "method": "GET",
        "ret": "txt",
        "paytoqs": false,
        "url": "http://192.168.188.30/YamahaExtendedControl/v1/main/getStatus",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 240,
        "y": 100,
        "wires": [
            [
                "7f77b8b4.60d608"
            ]
        ]
    },
    {
        "id": "7f77b8b4.60d608",
        "type": "json",
        "z": "adf49df2.7ba35",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 110,
        "y": 160,
        "wires": [
            [
                "abe8d8a1.dc7e38"
            ]
        ]
    },
    {
        "id": "bfbb075d.243a98",
        "type": "inject",
        "z": "adf49df2.7ba35",
        "name": "",
        "repeat": "15",
        "crontab": "",
        "once": true,
        "onceDelay": "5",
        "topic": "",
        "payload": "state",
        "payloadType": "str",
        "x": 90,
        "y": 100,
        "wires": [
            [
                "6c4a0b88.caea44"
            ]
        ]
    },
    {
        "id": "22308d99.c50af2",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "Subwoofer",
        "func": "var test = msg.payload.targetValue;\nreturn {payload: test};",
        "outputs": 1,
        "noerr": 0,
        "x": 1010,
        "y": 200,
        "wires": [
            [
                "32f07b43.af4884"
            ]
        ]
    },
    {
        "id": "82dc017a.cbc4c",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "Bass",
        "func": "var test = msg.payload.targetValue;\nreturn {payload: test};",
        "outputs": 1,
        "noerr": 0,
        "x": 990,
        "y": 240,
        "wires": [
            [
                "9ff1d8e2.b07498"
            ]
        ]
    },
    {
        "id": "a4957be9.86edb8",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "Treble",
        "func": "var test = msg.payload.targetValue;\nreturn {payload: test};",
        "outputs": 1,
        "noerr": 0,
        "x": 990,
        "y": 280,
        "wires": [
            [
                "ad6a799c.403798"
            ]
        ]
    },
    {
        "id": "6389d080.737c3",
        "type": "homeeDevice",
        "z": "adf49df2.7ba35",
        "virtual-homee": "",
        "name": "Yamaha Wohnen",
        "nodeId": "140",
        "showNodeId": true,
        "profile": "1001",
        "icon": "nodeicon_speaker",
        "attributes": [
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 1,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 140,
                "type": 1,
                "node_id": 140
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 161,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 141,
                "type": 2,
                "node_id": 140
            },
            {
                "instance": 2,
                "minimum": -12,
                "maximum": 12,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 142,
                "type": 2,
                "node_id": 140
            },
            {
                "instance": 3,
                "minimum": -12,
                "maximum": 12,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 143,
                "type": 2,
                "node_id": 140
            },
            {
                "instance": 4,
                "minimum": -12,
                "maximum": 12,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 144,
                "type": 2,
                "node_id": 140
            },
            {
                "instance": 5,
                "minimum": 1,
                "maximum": 5,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "Sender",
                "step_value": 1,
                "editable": 1,
                "state": 1,
                "last_changed": 12345555,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "",
                "id": 145,
                "type": 2,
                "node_id": 140
            },
            {
                "instance": 0,
                "minimum": 0,
                "maximum": 0,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "text",
                "step_value": 1,
                "editable": 0,
                "state": 1,
                "last_changed": 1543522914,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "data": "1.65",
                "id": 146,
                "type": 44,
                "node_id": 140
            }
        ],
        "statusTemplate": "",
        "x": 660,
        "y": 200,
        "wires": [
            [
                "5f8edb73.e51604"
            ]
        ]
    },
    {
        "id": "5f8edb73.e51604",
        "type": "switch",
        "z": "adf49df2.7ba35",
        "name": "",
        "property": "payload.attributeId",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "140",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "141",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "142",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "143",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "144",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 5,
        "x": 830,
        "y": 200,
        "wires": [
            [
                "f4d3c4b5.c68e4"
            ],
            [
                "b06b5aab.a1258"
            ],
            [
                "22308d99.c50af2"
            ],
            [
                "82dc017a.cbc4c"
            ],
            [
                "a4957be9.86edb8"
            ]
        ]
    },
    {
        "id": "28525967.98a136",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "OnOff",
        "func": "var test = msg.payload.power;\nif (test === \"standby\")\nreturn {payload:{\"attribute\":{\"id\":140,\"value\": 0}}};\nif (test === \"on\")\nreturn {payload:{\"attribute\":{\"id\":140,\"value\": 1}}};\n",
        "outputs": 1,
        "noerr": 0,
        "x": 450,
        "y": 100,
        "wires": [
            [
                "6389d080.737c3"
            ]
        ]
    },
    {
        "id": "fe926512.9f2758",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "Lautstärke",
        "func": "var test = msg.payload.volume;\nreturn {payload:{\"attribute\":{\"id\":141,\"value\": test}}};",
        "outputs": 1,
        "noerr": 0,
        "x": 430,
        "y": 160,
        "wires": [
            [
                "6389d080.737c3"
            ]
        ]
    },
    {
        "id": "fe6ef451.5ed7f8",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "Subwoofer",
        "func": "var test = msg.payload.subwoofer_volume;\nreturn {payload:{\"attribute\":{\"id\":142,\"value\": test}}};",
        "outputs": 1,
        "noerr": 0,
        "x": 430,
        "y": 200,
        "wires": [
            [
                "6389d080.737c3"
            ]
        ]
    },
    {
        "id": "4a77b095.cbcb7",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "Bass",
        "func": "var test = msg.payload.tone_control.bass;\nreturn {payload:{\"attribute\":{\"id\":143,\"value\": test}}};",
        "outputs": 1,
        "noerr": 0,
        "x": 410,
        "y": 240,
        "wires": [
            [
                "6389d080.737c3"
            ]
        ]
    },
    {
        "id": "ed915cb3.22f37",
        "type": "function",
        "z": "adf49df2.7ba35",
        "name": "Treble",
        "func": "var test = msg.payload.tone_control.treble;\nreturn {payload:{\"attribute\":{\"id\":144,\"value\": test}}};",
        "outputs": 1,
        "noerr": 0,
        "x": 410,
        "y": 280,
        "wires": [
            [
                "6389d080.737c3"
            ]
        ]
    },
    {
        "id": "9ff1d8e2.b07498",
        "type": "ioBroker out",
        "z": "adf49df2.7ba35",
        "name": "Bass",
        "topic": "musiccast.0.RX-V585_00A9FF33.main.bass",
        "ack": "false",
        "autoCreate": "false",
        "x": 1170,
        "y": 240,
        "wires": []
    },
    {
        "id": "ad6a799c.403798",
        "type": "ioBroker out",
        "z": "adf49df2.7ba35",
        "name": "Treble",
        "topic": "musiccast.0.RX-V585_00A9FF33.main.treble",
        "ack": "false",
        "autoCreate": "false",
        "x": 1170,
        "y": 280,
        "wires": []
    },
    {
        "id": "32f07b43.af4884",
        "type": "ioBroker out",
        "z": "adf49df2.7ba35",
        "name": "Subwoofer",
        "topic": "musiccast.0.RX-V585_00A9FF33.main.subwoofer_volume",
        "ack": "false",
        "autoCreate": "false",
        "x": 1190,
        "y": 200,
        "wires": []
    },
    {
        "id": "abe8d8a1.dc7e38",
        "type": "rbe",
        "z": "adf49df2.7ba35",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "property": "payload",
        "x": 230,
        "y": 160,
        "wires": [
            [
                "ed915cb3.22f37",
                "4a77b095.cbcb7",
                "fe6ef451.5ed7f8",
                "fe926512.9f2758",
                "28525967.98a136"
            ]
        ]
    }
]
2 „Gefällt mir“

Cool, Danke! :+1:t3: :cowboy_hat_face:

1 „Gefällt mir“