Odtwarzacz muzyczny radio w Home Assistant

Pewnie zastanawiałeś się w jaki sposób zrobić panel muzyczny w Home Assistant. Ja postanowiłem przygotować sobie możliwość odtwarzania wybranej przeze mnie stacji radiowej na dowolnym urządzeniu w moim domu. Dlatego powstał ten poradnik.

w artykule:

Założenia

Do stworzenia tego typu odtwarzacza możemy wykorzystać standardowe komponenty Home Assistant (rozwiązanie jest o tyle dobre, że optymalizujemy swój serwer, nie instalujemy dodatkowych wtyczek, które w miarę rozbudowy naszego smart home mogą obciążać nasze urządzenie centralne).

Moim głównym założeniem było przygotowanie takiego rozwiązania, które pozwoli w pierwszej kolejności wybrać pomieszczenie a następnie stację radiową i odtworzenie jej. W bardziej rozbudowanej wersji stworzyłem również (tym razem z wykorzystaniem niestandardowych dodatków) możliwość zarządzania muzyką w konkretnych pokojach w moim domu.

Wygląd i funkcjonalność

Postanowiłem stworzyć nową kartę o nazwie „Muzyka” z poziomu której będę zarządzał odtwarzaczem, dodatkowo potem skonfiguruję dla każdego pokoju specjalną kartę w które poza zarządzaniem oświetleniem będzie możliwość wybrania interesującej muzyki właśnie dla tego pomieszczenia.

Docelowy wygląd odtwarzacza radiowego

Powyższy przykład jest zrealizowany z wykorzystaniem podstawowych komponentów, wygląda przejrzyście i działa bardzo dobrze.

Odtwarzacz z wykorzystaniem niestandardowych komponentów

Dla bardziej zaawansowanych użytkowników lub osób lubiących minimalistyczny styl stworzyłem wersję bardziej kompaktową. Do jej stworzenia wykorzystałem Dodatki Interfejsu użytkownika z HACS (Home Assistant Community Store). Były to: Mini Media Player oraz layout-card.

Wideo-poradnik

Jak zwykle najłatwiej wytłumaczyć wszystko na filmie, dlatego zapraszam do obejrzenia poradnika:

Skrypty odtwarzacza

Jako uzupełnienie filmu umieszczam wszystkie skrypty, które możesz sobie skopiować i wkleić do swojego Home Assistanta.

scripts.yaml

#Skrypt Odtwarzacza Multimedialnego

mediaplayer_play:
  alias: Graj / Play
  sequence:
  - service: media_player.volume_set
    data:
      entity_id: >
        {% if is_state("input_select.mediaplayer_glosnik", "Sypialnia") %} media_player.sypialnia_wszystkie
        {% elif is_state("input_select.mediaplayer_glosnik", "Salon") %} media_player.ramka
        {% elif is_state("input_select.mediaplayer_glosnik", "Dzieci") %} media_player.glosnik_dzieci
        {% endif %}
      volume_level: '{{ states("input_number.mediaplayer_glosnosc") }}'
  - service: media_player.play_media
    data:
      entity_id: >
        {% if is_state("input_select.mediaplayer_glosnik", "Sypialnia") %} media_player.sypialnia_wszystkie
        {% elif is_state("input_select.mediaplayer_glosnik", "Salon") %} media_player.ramka
        {% elif is_state("input_select.mediaplayer_glosnik", "Dzieci") %} media_player.glosnik_dzieci
        {% endif %}
      media_content_id: >
        {% if is_state("input_select.mediaplayer_zrodlo", "Antyradio") %} http://ant-waw-01.cdn.eurozet.pl:8602
        {% elif is_state("input_select.mediaplayer_zrodlo", "Radio Zet") %} http://radiozetmp3-01.eurozet.pl:8400
        {% elif is_state("input_select.mediaplayer_zrodlo", "Zlote Przeboje") %} http://wroclaw.radio.pionier.net.pl:8000/pl/zloteprzeboje.ogg
        {% endif %}
      media_content_type: 'music'
      extra:
        thumb: >
          {% if is_state("input_select.mediaplayer_zrodlo", "Antyradio") %} https://hejsmart.pl/ha/antyradio.png
          {% elif is_state("input_select.mediaplayer_zrodlo", "Radio Zet") %} https://hejsmart.pl/ha/radiozet.png
          {% elif is_state("input_select.mediaplayer_zrodlo", "Zlote Przeboje") %} https://hejsmart.pl/ha/zloteprzeboje.png
          {% endif %}
        title: "{{states('input_select.mediaplayer_zrodlo')}}"

configuration.yaml

w pliku konfiguracyjnym musisz dodać poniższe linijki (które definiują nowo dodane pliki)

input_number: !include input_number.yaml
input_select: !include input_select.yaml

Sprawdź czy posiadasz też definicję pliku ze skryptem script: !include scripts.yaml

input_select.yaml

#źródło odtwarzacza

mediaplayer_zrodlo:
  name: 'Co chcesz słuchać'
  options:
   - 'Antyradio'
   - 'Radio Zet'
   - 'Zlote Przeboje'
  initial: 'Radio Zet'
  icon: mdi:radio
  
#Głośnik odtwarzacza

mediaplayer_glosnik:
  name: 'Gdzie chcesz słuchać'
  options:
   - 'Sypialnia'
   - 'Salon'
   - 'Dzieci'
  initial: 'Sypialnia'
  icon: mdi:speaker-wireless

input_number.yaml

#Głośność Odtwarzacza

mediaplayer_glosnosc:
  name: Głośność
  icon: mdi:volume-high
  initial: 0.3
  min: 0
  max: 1
  step: 0.05
  mode: box

Dashboard – skrypt

type: horizontal-stack
cards:
  - type: entities
    entities:
      - entity: input_number.mediaplayer_glosnosc
      - entity: input_select.mediaplayer_glosnik
      - entity: input_select.mediaplayer_zrodlo
    footer:
      type: buttons
      entities:
        - entity: script.mediaplayer_play
          name: Uruchom / Play
          icon: mdi:play
  - type: vertical-stack
    cards:
      - type: media-control
        entity: media_player.sypialnia_wszystkie
        name: Sypialnia
      - type: media-control
        entity: media_player.ramka
        name: Salon
      - type: media-control
        entity: media_player.glosnik_dzieci
        name: Dzieci
Postaw mi kawę na buycoffee.to
5 3 votes
Article Rating
Subscribe
Powiadom o
guest
15 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments
sdf
sdf
2 lat temu

Bardzo dziekuje I poizdrawiam

Luc
Luc
1 rok temu

Czy jest możliwość uruchomienia podobnego rozwiązania z wykorzystaniem amplitunera Denon, Marantz. HA wykrywa mi taki amplituner jako mediaplayer, jednak domyślnie mogę go tylko włączyć/wyłączyć, zmienić źródło i głośność. Muzyki nie odtwarza.
Może ma Pan już jakieś gotowe rozwiązanie.

ArturB
ArturB
1 rok temu

Czy posiadane glosniki Google Home maja juz mozliwosc korzystania z PL i sterowania domem po polsku?

Tomek
Tomek
1 rok temu

Zrobiłem wg poradnika i mam problem:
Po kliknięciu na button uruchamia się skrypt i automatycznie się wyłącza. Muzyka nie gra. Gdzie może być problem?

Lukasz
Lukasz
1 rok temu

Ogromne dzięki za super poradnik. Zastanawiam się jak ten skrypt (lub podobny) rozbudować o możliwość uruchamiania wybranej stacji radiowej o określonej porze w wybrane dni tygodnia. Coś takiego byłoby super funkcjonalnością.

Przemek
Przemek
1 rok temu

Witam jaka jest strona do radia. Chodzi o linki

Michał
Michał
1 rok temu

Hej, udało mi sie wszystko ładnie ogarnąć według poradnika, chociaz moje głośniki nie chciały do konca współpracowac 🙂 Mam jednak jeden problem, nie jestem w stanie wymusic, żeby ten panel media control kolorował się jak u Ciebie – próbowałem już z różnymi linkami, formatami obrazów, dla pojedynczego wpisu, z lokalną ścieżką – żadna opcja nie działa :/ Masz moze jakas wskazówke? W necie niewiele znalazłem póki co. Z góry dzięki 🙂

seba
seba
Reply to  Bartosz Barabasz
8 miesięcy temu

No właściwie też mam ten problem a w dodatku nie odtwarza stacji radiowych

Waldek
Waldek
1 rok temu

Czy można ogarnąć ten odtwarzacz muzyczny wykorzystując radio browser? Jest tam o wiele więcej stacji radiowych.Pozdrawiam

Robson
Robson
Reply to  Bartosz Barabasz
1 rok temu

Świetny poradnik. Wszystko działa jak trzeba, poza jednym :). Niestety z media playerem homepod mini nie chce działąć.

Marcin
Marcin
3 miesięcy temu

Panie Bartoszu, świetna robota, dziękuję bardzo. Może Pan doradzić jak zmienić wybór radiostacji i zamiast drop down menu zrobić ikony radiostacji do kliknięcia, a zamiast menu wyboru głośnika, ikony wyboru głośnika?

15
0
Would love your thoughts, please comment.x