Problem z media_player.join w node-red

Witam, mam problem jak w temacie czyli z użyciem media_player.join w node-red. Posiadam 2 głośniki google home mini media_player.salon i media_player.sypialnia, założoną grupę głośników w google Home media_player.glosniki_ss jak i HA ale nie mogę sobie poradzić z użyciem media_player.join. Próbowałem jak poniżej ale bez skutku.

[
    {
        "id": "przycisk_salon_do_sypialni",
        "type": "inject",
        "z": "c617c3f41b6c4831",
        "name": "Dołącz Salon do Sypialni",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 270,
        "y": 4220,
        "wires": [
            [
                "join_salon_sypialnia"
            ]
        ]
    },
    {
        "id": "join_salon_sypialnia",
        "type": "api-call-service",
        "z": "c617c3f41b6c4831",
        "name": "Salon do Sypialnia",
        "server": "42e1a8c4.ec01f8",
        "version": 7,
        "debugenabled": false,
        "action": "media_player.join",
        "floorId": [],
        "areaId": [],
        "deviceId": [],
        "entityId": [],
        "labelId": [],
        "data": "{\"entity_id\":\"media_player.salon\", \"group_members\":[\"media_player.sypialnia\"]}",
        "dataType": "json",
        "mergeContext": "",
        "mustacheAltTags": false,
        "outputProperties": [],
        "queue": "none",
        "blockInputOverrides": false,
        "domain": "media_player",
        "service": "join",
        "target": {},
        "service_domain": "media_player",
        "mergecontext": "",
        "x": 500,
        "y": 4220,
        "wires": [
            [
                "e69c27267badeea3"
            ]
        ]
    },
    {
        "id": "e69c27267badeea3",
        "type": "debug",
        "z": "c617c3f41b6c4831",
        "name": "media_player.join",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 710,
        "y": 4220,
        "wires": []
    },
    {
        "id": "42e1a8c4.ec01f8",
        "type": "server",
        "name": "Home Assistant",
        "version": 5,
        "addon": true,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": "30",
        "areaSelector": "friendlyName",
        "deviceSelector": "friendlyName",
        "entitySelector": "friendlyName",
        "statusSeparator": "at: ",
        "statusYear": "hidden",
        "statusMonth": "short",
        "statusDay": "numeric",
        "statusHourCycle": "h23",
        "statusTimeFormat": "h:m",
        "enableGlobalContextStore": true
    }
]

dziękuję za wszelką pomoc oraz sugestie.

Ale co dokładnie chcesz osiągnąć – chodzi Ci o dynamiczne grupy głośników?

Najlepiej po prostu utworzyć sobie grupę głośników w aplikacji Google Home. Jak już ją zrobisz, to pojawi się w Home Assistant jako osobny media_player (np. media_player.glosniki_ss). Wtedy wystarczy puszczać muzykę/TTS na tę encję i gra na wszystkich głośnikach z grupy.

Tą funkcję obsługują tylko wybrane integracje, z tego co kojarzę to Yamaha MusicCast i bodajże Sonos (których protokoły są dedykowane pod low latency), czy doszły w ostatnich miesiącach jakieś inne nie wiem.

MA natomiast pozwala na grupowanie odtwarzaczy z dowolnej integracji (można do niego importować odtwarzacze z HA), ale trzeba mieć w głowie ograniczenia technologiczne (bo różne sprzęty będą o rostu grały asynchronicznie)

edit - nie spojrzałem że chodzi o NR, a nie o HA, więc post w kubeł

Chciałbym aby do grającego już głośnika dołączył drugi z tą samą audycją bez rozjeżdżania się.

Nie ma znaczenia czy HA czy NR, chodzi o synchroniczne odtwarzanie na kilku głośnikach, wywołanie akcji HA w NR rządzi się takimi samymi prawami.

HA Info.

ACTION MEDIA_PLAYER.JOIN Pozwala grupować odtwarzacze multimedialne razem w celu synchronicznego odtwarzania. Działa tylko w obsługiwanych systemach audio multiroom. Czyli nie da się zrobić na jakiś tam głośnikach.

Możesz to sobie sprawdzić w Narzędzia Deweloperskie → Akcje

Jeżeli w Cele nie możesz wybrać żadnej encji to twoje głośniki nie posiadają takiej funkcjonalności.

2 Likes

Dziękuję, jestem w tej części użytkowników którym głośniki tego nie obsługują.

Myślę, że należysz do znakomitej większości.

Tak jak pisałem music-assistant potrafi bez problemu stworzyć grupy z dowolnych odtwarzaczy (ale testowałem łącząc zmieszany różny sprzęt i było to nie do przyjęcia, jakkolwiek na dostatecznie jednakowym rezultaty pewnie będą sensowne).

Jeżeli to głośniki Google to grupę można stworzyć w samej aplikacji Home, jak to działa nie mam pojęcia bo nigdy tego nie sprawdzałam.

Grupa taka z Home działa bardzo dobrze, jest widoczna w HA jak i zewnętrznych odtwarzaczach jak np. Spotify. A muzyka puszczona na grupę jest zsynchronizowana i bez opóźnień.

Tak miałeś czy tak zrobiłeś?