Witam postanowiłem zrobić sobie automatyzację do radia z panelu HA z zakładki media, ale coś mi to nie wychodzi. Automatyzacja polegać ma na tym, że jak fizycznie włączę radio i między czasie włączy się jakieś powiadomienie to po wygłoszeniu powiadomienia chciałbym żeby radio znowu grało do momentu aż sam ręcznie nie wyłączę je. Zobaczcie gdzie jest błąd
alias: "VLC: Zapowiedź po włączeniu Złotych Przebojów"
description: Uruchamia zapowiedź i radio Złote Przeboje bez polegania na stanie encji
triggers:
- entity_id: input_boolean.radio_zlote_przeboje
to: "on"
trigger: state
conditions: []
actions:
- action: media_player.media_stop
target:
entity_id: media_player.vlc_telnet
- action: media_player.volume_set
target:
entity_id: media_player.vlc_telnet
data:
volume_level: 0.5
- action: tts.google_translate_say
target:
entity_id: media_player.vlc_telnet
data:
message: Uruchamiam radio Złote Przeboje Poznań. Miłego słuchania!
- delay: "00:00:06"
- action: media_player.play_media
target:
entity_id: media_player.vlc_telnet
data:
media:
media_content_id: http://zloteprzeboje.pl
media_content_type: music
metadata: {}
- action: media_player.volume_set
target:
entity_id: media_player.vlc_telnet
data:
volume_level: 0.6
- action: input_boolean.turn_off
target:
entity_id: input_boolean.radio_zlote_przeboje
mode: single
Wydaje mi się że szopen ma racja. Co innego głośnik a co innego vlc_telnet to nie zmienia faktu że u mnie to nie działa … może tutaj jest problem. Sprawdziłęm logi vlc i takie coś mam
[00007fe952173c00] main input error: VLC is unable to open the MRL 'http://homeassistant:8123/media/test.mp3?authSig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIzMzhmNGEzOTQyYzA0NzczODc3MGI4MDQ4N2E1OWZhZSIsInBhdGgiOiIvbWVkaWEvdGVzdC5tcDMiLCJwYXJhbXMiOltdLCJpYXQiOjE3ODU3NTI1NjIsImV4cCI6MTc4NTgzODk2Mn0.AL-Uo0J2-0KtE5cbJMNWGBPJr329x3xw5u8qPTYyNns'. Check the log for details.
[00007fe95212ac30] access stream error: HTTP connection failure
[00007fe95212ac30] http stream error: cannot connect to 46.105.101:80
adres się nie zgadza powinien być 46.105.12.101:80
Opisałem kontekst i wyrzuciłem do Perplexity logi które podałeś z VLC. Ten LLM bazuje na przeszukiwaniu Internetu aby znaleźć podobne przypadki. Jego wnioski poniżej:
Co to oznacza dla Twojego problemu
W tej architekturze HA buduje URL do pliku i przekazuje go do add-onu, więc jeśli HA nie ma poprawnie ustawionego Internal URL / External URL, VLC może próbować pobrać media z błędnym adresem hosta. To dokładnie pasuje do komunikatu typu „Unable to determine Home Assistant URL” albo do błędnych hostów w logach.github+2
Jak to działa technicznie
Add-on VLC działa w osobnym kontenerze.
Integracja vlc_telnet steruje nim przez telnet.
Do odtwarzania lokalnych plików HA podaje add-onowi URL do zasobu media-source://... albo /media/..., ale ten URL musi być osiągalny z perspektywy add-onu.github+2
Co bym sprawdził u Ciebie
Ustawienia systemowe HA → Sieć: czy Internal URL wskazuje poprawny adres, np. http://46.105.12.101:8123 albo lokalny adres LAN.
Czy z kontenera/add-onu ten adres jest osiągalny.
Czy w automatyzacji używasz poprawnego media_content_id, najlepiej w formie media-source://media_source/local/... dla plików z /media.
Brzmią logicznie, skoro masz VLC jako kontener, to prawdopodobnie problem powstaje na styku mapowania ścieżek do zasobów HA → kontener VLC.
Tak, w Twoim przypadku ten zapis jest niepoprawny dla media_player.play_media w HA. Zamiast Markdownowego linku musisz podać surowy URL albo media-source URI. media_content_type: music jest poprawne, ale media_content_id w obecnej formie nie jest.
Co jest źle
Masz teraz:
text
media_content_type: music
media_content_id: [http://mainstream.radioagora.pl/tuba9-1.mp3](http://mainstream.radioagora.pl/tuba9-1.mp3)
To wygląda jak link z Markdowna, a HA oczekuje zwykłego stringa.
Jak to zapisać poprawnie
Jeśli chcesz odtwarzać stream internetowy, użyj po prostu:
action: media_player.play_media
target:
entity_id: media_player.vlc_telnet
data:
media_content_id: "http://mainstream.radioagora.pl/tuba9-1.mp3"
media_content_type: music
AI proponuje również użyć narzędzi deweloperskich i upewnić się, że masz poprawne entity_id
Jak to sprawdzić
Wejdź w:
Narzędzia deweloperskie → Stany
wyszukaj vlc
Tam zobaczysz dokładny entity_id. To jest właściwy identyfikator do target.entity_id.
Ja bym również sprawdził w tych narzędziach czy możesz wywołać ten URL przez wywołanie w nich tej akcji.
aby taki adres (jak zgaduję to adres WAN routera edit nie zgadłem) był osiągalny z sieci lokalnej router musi wspierać tzw. hairpining (funkcja ma też inne nazwy, chodzi o zawrócenie ruchu lokalnego do wewnątrz sieci na interfejsie WAN, większość routerów to wspiera, ale nie każdy).
można, ale to jednak za dużo kombinacji by sprawdzić w Aplikacji (Dodatku) VLC, ale możesz sprawdzić używając oficjalnego Dodatku ssh (konkretni tego o nazwie Terminal & SSH)
traceroute 46.105.12.101
BTW skoro ten adres jest ucięty (w którymś poście wyżej to widziałem) to zdecydowanie masz jakieś błędy w konfiguracji sieci (najprawdopodobniej w samym HA).
Z jeszcze innej beczki - kierowanie nieszyfrowanego ruchu przez publiczny IP to raczej kiepski pomysł (szczególnie że wywołujesz go na sztywno, a możesz dostać od operatora jakiś inny), i tu “bis do bisa” - przecież ten HA ma jakiś lokalny IP, więc jeśli coś wywołujesz lokalnie, to raczej jego powinieneś użyć… (choć zupełnie nie wnikam w to czy może istotnie do tego co chcesz uzyskać jest konieczny dostęp ze świata?).
PS dopiero sprawdzenie co to za adres nieco otwarło mi oczy
całkiem poza konkurencją (a może wręcz przeciwnie) publiczny adres IP
jest nieosiągalny z żadnej z 4 sieci do których w tym momencie mam dostęp (tj. co najmniej nie odpowiada na ping)
swoją drogą to publiczny adres należący do OVH, więc to już w ogóle wygląda ślisko
może wyjaśnij dlaczego tak twierdzisz (tj. czemu chcąc odtwarzać lokalny plik odwołujesz się do jakiegoś adresu w internecie)
szukałem adresu do bezpośredniego strimingu tego radia i żeby wykluczyć problemy z dns to szukałem sztywnego adresu i AI podało mi taki więc go wpisałem do automatyzacji, zastanawiam się nad jednym. zauważyłem, że jak włączam radio i wywołam jakąś zapowiedz to radio nie włąńcza się z powrotem i nie startuje automatyzacja nie wiedzą czasu
[00007fe952173c00] main input error: VLC is unable to open the MRL 'http://homeassistant:8123/media/test.mp3?authSig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIzMzhmNGEzOTQyYzA0NzczODc3MGI4MDQ4N2E1OWZhZSIsInBhdGgiOiIvbWVkaWEvdGVzdC5tcDMiLCJwYXJhbXMiOltdLCJpYXQiOjE3ODU3NTI1NjIsImV4cCI6MTc4NTgzODk2Mn0.AL-Uo0J2-0KtE5cbJMNWGBPJr329x3xw5u8qPTYyNns'. Check the log for details.
[00007fe95212ac30] access stream error: HTTP connection failure
[00007fe95212ac30] http stream error: cannot connect to 46.105.101:80
a tam usiłujesz odtwarzać lokalny plik http://homeassistant:8123/media/test.mp3
z czego wynika moje podejrzenie co do wadliwej konfiguracji sieci, skoro adres lokalny homeassistant jest rozwiązywany na jakimś twoim DNSie na wadliwy publiczny IP 46.105.101 (:80 wynika z protokołu http)
przy czym wywoływanie lokalnego Media Resource Locator nie wydaje się błędem,
bo gdybyś chciał odtwarzać stream z internetu, a nie lokalny plik, to umieścisz w nim właściwe odwołanie do czegoś w internecie, a nie na dysku w HA