Wznawianie odtwarzania

OK - to jednak coś błędnie skonfigurowałem.
Gdzie mam podać obecny głośnik - media_player.salon ?
dodać w subflow SmartTTS - czy oddzielny flow zrobić ?

Obecnie miałem taki przykładowy komunikat

Rozumiem że teraz zamiast do Głośnik_salon - przekieruję do Smart TTS - (niestety nie zadziałało - żadnej reakcji)

Konfigurację Smart TTS można sprawdzić, co pokazał już wcześniej jeden z przedmówców:


Wiadomość musi być odpowiednio przygotowana przed wysłaniem do flow Smart TTS, musisz podać w msg.spekaer głośnik do którego ma być wysłana wiadomość i w msg.message komunikat.

@MariuszT Super - dziękuję zadziałało.
Musiałem skonfigurować grupy a tak naprawdę “wykasować” w CONFIG

Czy możesz jeszcze podpowiedzieć jakiego “noda” wykorzystać aby w prosty sposób bez modyfikacji wszystkich nodów dodać parametry msg.speaker , msg.message, zastępując call service Głośnik_salon z mojego flow.

czy pozostaje mi przebudować wszystkie flow ? z komunikatami ?

Najprościej użyć noda “change”.

@bartik22 tak sobie kombinuję z tym Twoim flow do odtwarzania i jest fajnie, ale masz może pomysł jak zrobić, by puścić sygnał np. na dwa głośniki? Ale z np. zastrzeżeniem, że niekoniecznie na każdym jest to samo odtwarzane. Jak sobie zrobiłem duplikat tego rozwiązania, od noda “Pobieram dane…” to wszystko fajnie działa, ale komunikat idzie w różnym czasie na każdym głośniku. Zastanawiam się, czy dałoby się to jakoś zsynchronizować.

też tak mam,
można dorzucić jakiegoś noda join, że czeka na dane w z dwóch i jak dostanie to zatrzymuje i np. po 2s puszczasz komunikat…

jedyną idealną opcją było by gdy masz zrobioną grupę głosników i teraz najpierw sprawdza czy grupa jest aktywna, jeżeli jest to idzie flow całej grupy to jest proste, a jak jest nie aktywna to sprawdza każdy głośnik osobno… i to co napisałem wyżej tylko komunikat idzie do grupy głosników
wtedy będzie synchronicznie :slight_smile:

ps grupa głośniików w google a nie HA

Pokaż jak masz tego joina zrobionego?

Nie mam, tylko Ci napisałem jak to zrobić.
Przykładowy join node-red-contrib-join-wait (node) - Node-RED

Dzień dobry, próbuje zrobić powrót do odtwarzanej stacji po wysłaniu komunikatu tts na głosnik. Utknąłem bo nie wiem jak w json poprawnie wstawić zmienną global w której przechowuje ostatnią odtwarzaną ścieżkę. Próbowałem na wiele sposobów ale bez efektu.

{
    "media_content_id": "global.get("play_list")",
    "media_content_type": "music"
}


Dziękuje za pomoc.

Chyba za bardzo ‘naukowo’…
Zobacz, jak ja to robię:

[{"id":"24c8280d8ccb4572","type":"api-call-service","z":"7313a86b82ee78be","name":"Ustaw głośność","server":"869cd94c.d8cc48","version":5,"debugenabled":false,"domain":"media_player","service":"volume_set","areaId":[],"deviceId":[],"entityId":["media_player.glosnik_gabinet"],"data":"{\"volume_level\": glosnosc}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","output_location":"","output_location_type":"none","x":3080,"y":440,"wires":[["1c147b74a47217dd"]]},{"id":"a84775de368b22c8","type":"function","z":"7313a86b82ee78be","name":"Głośność pocz.","func":"var glosnosc = flow.get(\"glosnosc1\");\nmsg.payload =\n{\n    data:\n    {\n        \"volume_level\": glosnosc,\n    }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2900,"y":440,"wires":[["24c8280d8ccb4572"]]},{"id":"d53041e03a6b7a33","type":"server-state-changed","z":"7313a86b82ee78be","name":"Idle?","server":"869cd94c.d8cc48","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"media_player.glosnik_gabinet","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"idle","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":2470,"y":420,"wires":[["bfe4271e2854bff5"],[]]},{"id":"bfe4271e2854bff5","type":"switch","z":"7313a86b82ee78be","name":"flow true","property":"powiadomienie1","propertyType":"flow","rules":[{"t":"eq","v":"true","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":2600,"y":420,"wires":[["7793d9a166fa535f"]]},{"id":"1c147b74a47217dd","type":"change","z":"7313a86b82ee78be","name":"flow false","rules":[{"t":"set","p":"powiadomienie1","pt":"flow","to":"false","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":3240,"y":420,"wires":[[]]},{"id":"564fb0b2f72cd357","type":"function","z":"7313a86b82ee78be","name":"Żródło pocz.","func":"var stacja = flow.get(\"stacja1\");\nvar typ = flow.get(\"typ1\");\n\nmsg.payload =\n{\n  data:\n  {\n    \"media_content_id\": stacja,\n    \"media_content_type\": typ,\n  }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2890,"y":400,"wires":[["352d7a671ed0ba38"]]},{"id":"7793d9a166fa535f","type":"switch","z":"7313a86b82ee78be","name":"Grało?","property":"typ1","propertyType":"flow","rules":[{"t":"eq","v":"music","vt":"str"},{"t":"neq","v":"music","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":2730,"y":420,"wires":[["a84775de368b22c8","564fb0b2f72cd357"],["a84775de368b22c8"]]},{"id":"352d7a671ed0ba38","type":"api-call-service","z":"7313a86b82ee78be","name":"Ustaw źródło","server":"869cd94c.d8cc48","version":5,"debugenabled":false,"domain":"media_player","service":"play_media","areaId":[],"deviceId":[],"entityId":["media_player.glosnik_gabinet"],"data":"{\"media_content_id\": stacja, \"media_content_type\": typ}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","output_location":"","output_location_type":"none","x":3070,"y":400,"wires":[["1c147b74a47217dd"]]},{"id":"869cd94c.d8cc48","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}]

Witam. Rozpoczynam przygodę z HA i proste automatyzacje ogarniam, nawet te z komunikatami o zakończeniu prania czy zakończeniu ładowania telefonu. Ale mam problem ze wznawianiem odtwarzania na głośniku Googla. Słucham radia (z TuneIn) odtwarza się komunikat i wraca radio, aleee… nie zostaje przywrócony atrybut “media_content_type”: “music”, media_content_id zostaje poprawnie przywrócony, app_name: zmienia się na Default Media Receiver z TuneIn Free i brak atrybutu media_content_type. Następny komunikat przerywa odtwarzanie radia i już nie wraca bo node switch już nie “widzi” music.
Może ktoś coś poradzić?

Odświeżam temat …

Ja to mam zrobione w taki sposób.
Ale tak i u Ciebie …

nie zostaje przywrócony atrybut “media_content_type”: “music”, media_content_id zostaje poprawnie przywrócony, app_name: zmienia się na Default Media Receiver z TuneIn Free i brak atrybutu media_content_type.

z tą różnicą, że po następnym wywołaniu nadal działa i odtwarza muzykę.

ponowne odtwarzanie po komunikacie.json (9,6 KB)

Kolejne odświeżenie odświeżenia, jak przywrócić odtwarzanie ze Spotify premium?

Spróbuj użyć Music Asistant jako odtwarzacza . To tip,ale nie testowałem .

Witam,

Działa w przypadku załączenia z Music Asisstant, jak załączymy Spotify z aplikacji albo przez komendę na głośniku, to już nie zadziała.

Wyżej jest informacja o SmartTTS. Ten sposób działa