Wymiana radia FM na Google Cast i pilota Zigbee

Siema, postanowiłem wymienić radyjko FM na głośnik Google Nest Mini v2 w połączeniu z pilotem Philips Hue Dimmer Switch V2. Machnąłem takie coś:

[{"id":"5703909104718ee6","type":"server-state-changed","z":"783d960db54dbf1d","name":"Pilot hue łazienka","server":"89fbae45.759a4","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.pilot_hue_lazienka_action"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":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":100,"y":2640,"wires":[["5d1d590b640373f0"]]},{"id":"5d1d590b640373f0","type":"switch","z":"783d960db54dbf1d","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on_press","vt":"str"},{"t":"eq","v":"up_press","vt":"str"},{"t":"eq","v":"down_press","vt":"str"},{"t":"eq","v":"off_press","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":90,"y":2740,"wires":[["ab68bd8ea366ed1a"],["ab68bd8ea366ed1a"],["ab68bd8ea366ed1a"],["ab68bd8ea366ed1a"]]},{"id":"9efa4628856ca521","type":"group","z":"783d960db54dbf1d","name":"Wieloklik","style":{"label":true},"nodes":["d14cc89b65e475b2","ab68bd8ea366ed1a","3e955e7a23e3f7f5","bf3f5496d5dc7333","d5207f2eaa2ce83d","e315981db57a559b","2dd2b82d56019aff"],"x":234,"y":2619,"w":632,"h":162},{"id":"d14cc89b65e475b2","type":"change","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":2680,"wires":[["ab68bd8ea366ed1a"]]},{"id":"ab68bd8ea366ed1a","type":"counter","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"","init":"0","step":"1","lower":null,"upper":null,"mode":"increment","outputs":1,"x":320,"y":2720,"wires":[["3e955e7a23e3f7f5"]]},{"id":"3e955e7a23e3f7f5","type":"trigger","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"300","extend":true,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":480,"y":2720,"wires":[["bf3f5496d5dc7333","d14cc89b65e475b2"]]},{"id":"bf3f5496d5dc7333","type":"switch","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"clicks","property":"count","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"eq","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":3,"x":650,"y":2720,"wires":[["d5207f2eaa2ce83d"],["e315981db57a559b"],["2dd2b82d56019aff"]]},{"id":"d5207f2eaa2ce83d","type":"function","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"_1","func":"msg.payload += '_1'\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":2660,"wires":[["ad5d8bb98c0c3546"]]},{"id":"e315981db57a559b","type":"function","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"_2","func":"msg.payload += '_2'\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":2700,"wires":[["ad5d8bb98c0c3546"]]},{"id":"2dd2b82d56019aff","type":"function","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"_3","func":"msg.payload += '_3'\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":2740,"wires":[["ad5d8bb98c0c3546"]]},{"id":"76882f4fe0f6f5df","type":"group","z":"783d960db54dbf1d","name":"Radio","style":{"label":true},"nodes":["ca563ead4dddccbe","cb3d9d13af076c16","9ea51e6db50f3c1e","32a52432b7c2474a","ad5d8bb98c0c3546","c0e5b185e41b989f","cce6804037ba51a1","f3650dcfb21ebd55","293be7c528d3bbb5","09883dda17d51954","35bdba78b822eb38","24a9e64a5af90b4a","1425cfd76190a61e","8242a086fef98321","cc2e7dc208333fd0","913596fbcbc485f9","b1419495d4850867","f385efc2326cc41f"],"x":114,"y":2819,"w":1032,"h":382},{"id":"ca563ead4dddccbe","type":"cast-to-client","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"stacja","url":"","contentType":"audio/basic","message":"","language":"pl","ip":"192.168.0.24","port":"","volume":"","x":1030,"y":2940,"wires":[[]]},{"id":"cb3d9d13af076c16","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"następna stacja","func":"const stations = [\n    { name: \"Antyradio\", url: \"https://27783.live.streamtheworld.com/ANTYRADIOAAC.aac?dist=tunein\" },\n    { name: \"Antyradio Hard\", url: \"https://an01.cdn.eurozet.pl/ANTHAR.mp3\" },\n    { name: \"Zet\", url: \"http://zet-net-01.cdn.eurozet.pl:8400/\" },\n    { name: \"Chilli Zet\", url: \"https://ch.cdn.eurozet.pl/chi-net.mp3\" },\n    { name: \"Chilli Zet Deep\", url: \"http://ch02.cdn.eurozet.pl/CHIDEP.mp3\" },\n    { name: \"Eska\", url: \"https://waw.ic.smcdn.pl/6030-1.mp3\" },\n    { name: \"Eska Rock\", url: \"https://ic2.smcdn.pl/5380-1.mp3#ESKA_ROCK\" }, \n    { name: \"CNN\", url: \"https://tunein.cdnstream1.com/2868_96.mp3\" },\n    { name: \"Tok FM\", url: \"https://radiostream.pl/tuba10-1.mp3\" },\n    { name: \"RMF\", url: \"http://195.150.20.242:8000/rmf_fm\" }, \n    { name: \"RMF Chillout + fakty\", url: \"http://31.192.216.8/CHILLOUTF\", delay: 4000 },\n    { name: \"RMF Reggae + fakty\", url: \"http://195.150.20.7/REGGAEF\", delay: 4000 },\n    { name: \"4Music\", url: \"https://s1.slotex.pl/shoutcast/7102/stream\" },\n    { name: \"Kampus\", url: \"https://stream.radiokampus.fm/kampus\" },\n];\n\nlet index = flow.get(\"currentStationIndex\") || 0;\nindex = (index + 1) % stations.length;\nflow.set(\"currentStationUrl\", stations[index].url);\nflow.set(\"currentStationName\", stations[index].name);\nflow.set(\"currentStationIndex\", index);\nmsg.urlContainer = stations[index].url;\nmsg.payload = stations[index].name\nif (stations[index].delay){\n    msg.delay = stations[index].delay\n    flow.set(\"messageDelay\", stations[index].delay);\n} else {\n    msg.delay = 2000\n    flow.set(\"messageDelay\", 2000);\n}\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":2920,"wires":[["32a52432b7c2474a","f385efc2326cc41f"]]},{"id":"9ea51e6db50f3c1e","type":"delay","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"Czekaj","pauseType":"delayv","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1070,"y":2880,"wires":[["ca563ead4dddccbe"]]},{"id":"32a52432b7c2474a","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"url stacji","func":"msg.url = msg.urlContainer;\ndelete msg.payload\n\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":880,"y":2880,"wires":[["9ea51e6db50f3c1e"]]},{"id":"ad5d8bb98c0c3546","type":"switch","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on_press_1","vt":"str"},{"t":"eq","v":"off_press_1","vt":"str"},{"t":"eq","v":"on_press_2","vt":"str"},{"t":"eq","v":"up_press_1","vt":"str"},{"t":"eq","v":"down_press_1","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":290,"y":3040,"wires":[["293be7c528d3bbb5"],["cce6804037ba51a1","f3650dcfb21ebd55"],["c0e5b185e41b989f"],["cc2e7dc208333fd0"],["24a9e64a5af90b4a"]]},{"id":"c0e5b185e41b989f","type":"api-call-service","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"wyłącz głośnik","server":"89fbae45.759a4","version":7,"debugenabled":false,"action":"media_player.turn_off","floorId":[],"areaId":[],"deviceId":[],"entityId":["media_player.nest"],"labelId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"media_player","service":"turn_off","x":700,"y":3040,"wires":[[]]},{"id":"cce6804037ba51a1","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"aktualna stacja","func":"msg.payload = flow.get(\"currentStationName\")\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":2960,"wires":[["f385efc2326cc41f"]]},{"id":"f3650dcfb21ebd55","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"aktualny url stacji i delay","func":"delete msg.payload\nmsg.url = flow.get(\"currentStationUrl\");\nmsg.delay = flow.get(\"messageDelay\");\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":730,"y":3000,"wires":[["9ea51e6db50f3c1e"]]},{"id":"293be7c528d3bbb5","type":"api-current-state","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"następna stacja czy włączenie","server":"89fbae45.759a4","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"media_player.nest","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":270,"y":2860,"wires":[["09883dda17d51954","35bdba78b822eb38"]]},{"id":"09883dda17d51954","type":"switch","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"off","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":470,"y":2940,"wires":[["cce6804037ba51a1","f3650dcfb21ebd55"],["cb3d9d13af076c16"]]},{"id":"35bdba78b822eb38","type":"debug","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"debug 8","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":490,"y":2860,"wires":[]},{"id":"24a9e64a5af90b4a","type":"api-current-state","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"nest","server":"89fbae45.759a4","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"media_player.nest","state_type":"str","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":670,"y":3160,"wires":[["1425cfd76190a61e"]]},{"id":"1425cfd76190a61e","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"ciszej","func":"msg.volume_level = Math.max(0, msg.data.attributes.volume_level - 0.05);\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":3160,"wires":[["8242a086fef98321"]]},{"id":"8242a086fef98321","type":"api-call-service","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"","server":"89fbae45.759a4","version":7,"debugenabled":false,"action":"media_player.volume_set","floorId":[],"areaId":[],"deviceId":[],"entityId":["media_player.nest"],"labelId":[],"data":"{\"volume_level\": {{volume_level}}}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"media_player","service":"volume_set","x":990,"y":3160,"wires":[[]]},{"id":"cc2e7dc208333fd0","type":"api-current-state","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"nest","server":"89fbae45.759a4","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"media_player.nest","state_type":"str","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":670,"y":3100,"wires":[["913596fbcbc485f9"]]},{"id":"913596fbcbc485f9","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"głośniej","func":"msg.volume_level = Math.min(1, msg.data.attributes.volume_level + 0.05);\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":800,"y":3100,"wires":[["b1419495d4850867"]]},{"id":"b1419495d4850867","type":"api-call-service","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"","server":"89fbae45.759a4","version":7,"debugenabled":false,"action":"media_player.volume_set","floorId":[],"areaId":[],"deviceId":[],"entityId":["media_player.nest"],"labelId":[],"data":"{\"volume_level\": {{volume_level}}}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"media_player","service":"volume_set","x":990,"y":3100,"wires":[[]]},{"id":"f385efc2326cc41f","type":"cast-to-client","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"nazwa","url":"","contentType":"","message":"","language":"pl","ip":"192.168.0.24","port":"","volume":"","x":870,"y":2940,"wires":[[]]},{"id":"89fbae45.759a4","type":"server","name":"Home Assistant","addon":true}]

No i mam w związku z tym kilka pytań:

  1. Na niektóre stacje trzeba zaczekać zanim zaczną grać co jest upierdliwe. Skoro wiadomo z góry jaka stacja będzie następna (z pilota tylko następną można włączyć) to czy nie dało by się tego buforować. Na przykład jeśli słucham czwartej stacji z listy to piąta cały czas się buforuje a gdy kliknę “następna stacja” to zaraz po odczycie nazwy stacji zaczyna grać. Ktoś ogarniał coś takiego?
  2. Chciałbym poza radiem aby można było uruchomić jedną konkretną playlistę ze Spotify. Integrację już mam. Gdy odtwarzam coś na Spotify to integracja to od razu widzi i mam możliwość aby tym sterować z HA więc od tej strony zdaje się jest ok. Natomiast nie mam pojęcia jak zapoczątkować odtwarzanie Spotify na Nest bez użycia telefonu.

Na “uparte” streamy ja znalazłem, może niezbyt eleganckie ale działające, obejście w postaci flow, które wywołuje restart takiego streamu, po jego wywołaniu. Wyglada to mniej więcj tak:
restart
W pierwszym nodzie następuje porównanie czy aktualnie odtwarzane radio to jedno z tych upartych, drugi sprawdza na którym głośniku i potem pauza i ponownie start odtwarzania.

Co do spotify to potrzebujesz integracji z HACS - Spotcast

Nie wiem jak to obecnie się sprawuje, kiedyś używałem i u mnie działało.

1 Like

Ostatnio był jakiś problem z kluczmi sp_dc` i `sp_key nie sprawdzałem czy zostało to naprawione.

Wczoraj to ogarnąłem ale wersja 4 chyba jest martwa. Użyłem najnowszej 6-stki. Klucze sp_ z tego co czytałem niedawno przestały działać.

Trochę nad tematem posiedziałem i moje spostrzeżenia:

  1. Spotcast w wersji 6 działa przez chwilę, 2-3 strzały do encji spotcast.cośtam lecą i działają, kolejne już przestają, gdy strzelam dalej to cały HA się zwiesza, na tę chwilę pozostaje uruchomienie Spotify głosowo (nie działa polski) i wtedy następny/głośność/wyłącz nadal będzie działać z pilota.

  2. Kombinowałem z ffmpeg+icecast bo myślałem, że jak zbuforuję stream to wtedy będę mógł go startować bez początkowego czekania ale nic bardziej mylnego, to co udało mi się wystawić startowało z takim samym opóźnieniem początkowym. Teraz testuję stacje radiowe w widoku http://homeassistant.local:8123/media-browser/browser → Radio Browser → Poland, no i tutaj mam opcję wybrania głośnika Nest Mini oraz Web Browser, jako radio testowe biorę radio 357. Gdy wybrany jest Web Browser to dźwięk z kompa leci niemal natychmiastowo, gdy wybiorę Nest Mini to dźwięk pojawia się po około 17 sekundach. Nie jest to chyba problem sieciowy bo to dotyczy konkretnych stacji radiowych i dla niektórych ten problem nie występuje. Jedyne co mi do głowy przychodzi to format streamu. Czy to możliwe, że Nest Mini potrzebuje tyle czasu na zdekodowanie sygnału niektórych stacji?

Używam innych rozwiązań (MA+musiccast/airplay), więc nie wiem jak to wygląda w twoim rozwiązaniu, ale 17sek. opóźnienia to wygląda raczej na transkodowanie w tle, a nie na samo buforowanie.

Powiedz o tym coś więcej. Gdy szukam w necie musiccast to głośniki Yamaha znajduje (potwornie drogie). MA to nie wiem w ogóle co to.

Poniżej lista stacji, które wczytują mi się nieakceptowalnie długo. Czy możesz sprawdzić czy na Twoim rozwiązaniu nie ma z nimi problemu?

{ name: "Eska", url: "https://waw.ic.smcdn.pl/6030-1.mp3" },
{ name: "Eska Rock", url: "https://ic2.smcdn.pl/5380-1.mp3#ESKA_ROCK" },
{ name: "Tok FM", url: "https://radiostream.pl/tuba10-1.mp3" },
{ name: "RMF", url: "http://195.150.20.242:8000/rmf_fm" },
{ name: "RMF", url: "https://rs201-krk-cyfronet.rmfstream.pl/HARDHEAVY?listenerid=22faa5bd029362874d207dd68f5e4954&awparams=companionAds%3Atrue&aw_0_1st.version=1.1.4%3Ahtml5&aw_0_1st.playerid=RMF_Player_JS_P&aw_0_1st.skey=1649088434&aw_0_req.gdpr=false&aw_0_req.userConsentV2=CPW7rKhPW7rKhFKACAPLCHCgAAAAAEPAAB5YAAARTAJMNS8gC7EscGRaNKoUQIwrCQqgUAFFAMLREYAODgp2VgEuoAWACAVARgRAgxBRgwCAAQCAJCIgJACwQCIAiAAAAgARgIQAETAILACwMAgAFANCxACgAECQgyOCo5TAgIkWiglsrEEoK9hTCAMssAKBRGRUACJAgAWBkJCwcxwBICXCyQJMELxACMAA.YAAAD4AAAAAA&aw_0_1st.playerid=RMF_Player_JS_P&aw_0_1st.rmf_disable_preroll=true" },
{ name: "RMF Chillout + fakty", url: "http://31.192.216.8/CHILLOUTF", delay: 4000 },
{ name: "RMF Reggae + fakty", url: "http://195.150.20.7/REGGAEF", delay: 4000 },
{ name: "Kampus", url: "https://stream.radiokampus.fm/kampus" },
{ name: "Plus", url: "http://waw.ic.smcdn.pl/4990-1.aac" },

No tak, mam na myśli akurat amplituner, jeśli chodzi o musiccast to istotnie autorski system firmy Yamaha, ale to bez znaczenia, chodzi o sam fakt, że jako renderer mam system nie wprowadzający zbędnych opóźnień, a mimo to jeśli gdzieś po drodze wchodzi w rachubę transkoding to opóźnienie jest mocno zauważalne. Natomiast samo buforowanie jest zawsze wykonywane przez renderer, tego nie przeskoczysz (bo to jest wymagane do dekodowania ciągłego streeamu, ale zależnie od sprzętu to opóźnienia rzędu pojedynczych sekund).

MA=Music Assistant

raczej nie, bo to by wymagało naprawdę sporo czasu, ale nie widzę żadnej reguły, ale jeśli podrzucisz jakieś linki do streamów, które się odtwarzają dobrze, to zajrzę co w nich siedzi.

Poniższe odtwarzają mi się niemal natychmiastowo:

    { name: "Antyradio", url: "https://27783.live.streamtheworld.com/ANTYRADIOAAC.aac?dist=tunein" },
    { name: "Antyradio Hard", url: "https://an01.cdn.eurozet.pl/ANTHAR.mp3" },
    { name: "Zet", url: "http://zet-net-01.cdn.eurozet.pl:8400/" },
    { name: "Chilli Zet", url: "https://ch.cdn.eurozet.pl/chi-net.mp3" },
    { name: "Chilli Zet Deep", url: "http://ch02.cdn.eurozet.pl/CHIDEP.mp3" },
    { name: "4 Music", url: "https://s1.slotex.pl/shoutcast/7102/stream" },
    { name: "Eska Warszawa", url: "http://waw.ic.smcdn.pl/2380-2.aac" },
    { name: "Republika", url: "https://ssl-1.radiotvrepublika.pl:12698/stream" },

Technicznie nie widzę różnicy - w obu zestawach masz zarówno MP2 128kbps jak i MP4-AAC 64kbps, generalnie w każdym przypadku niski bitrate, więc przyczyny bym tu nie szukał.

Co najwyżej różnica może dotyczyć czasu odpowiedzi poszczególnych serwerów; z tym, że np. Eska w obu zestawach pochodzi z tego samego, ale możesz zamiast

http://waw.ic.smcdn.pl/4990-1.aac

spróbować np.

http://waw.ic.smcdn.pl/4990-2.aac

jakkolwiek przypuszczalnie zmiana kanałów w ramach jednego serwera będzie raczej przebiegła szybko (póki serwer pamięta, że jesteś jego klientem), to po dłuższym czasie bezczynności odpowiedź może być opóźniona.