Witam serdecznie.
Szukam od jakiegoś czasu w necie jak zrobić radio w Mini Media Player takie jak na screenach, tzn. z taką rozwijaną listą stacji (strzałka obok przycisku power) i nie mogę znaleść żadnego tropu, może ma ktoś jakiś pomysł?
Ekspertem nie jestem, ale wydaje mi się, że zależne to będzie od tego na czym chcesz grać (platformy).
Moje głośniczki oparte są na Linkplay i wygląda to tak.
Aby była rozwijana lista konfiguracja musi zawierać “sources:”
media_player:
- platform: linkplay
host: 192.168.xxx.xxx
name: Sound Salon
icecast_metadata: 'StationNameSongTitle'
# multiroom_wifidirect: False
sources:
{ 'http://stream.radioagora.pl/tuba10-1.mp3.m3u' : 'TOKFM',
'http://stream.rcs.revma.com/ypqt40u0x1zuv' : 'MANN',
'http://31.192.216.4/rmf_classic_nt' : 'RMFClassic',
'http://stream10.radioagora.pl/tuba139-1.mp3.m3u' : 'Pogoda',
'http://stream.radioagora.pl/tuba9006-1.mp3.m3u' : 'RockRadio',
'http://ant-waw-01.cdn.eurozet.pl:8602/': 'AntyRadio',
'optical': 'TV sound',
'line-in': 'Radio tuner',
'bluetooth': 'Bluetooth',
'udisk': 'USB stick'
}
Tyle mogę pomóc, może Cię naprowadzi.
Też się nie znam, ale gdybyś podał linka źródłowego (a nie gołego screenshota) może to by było do znalezienia w tym co autor filmiku udostępnia.
Moim zdaniem musisz sobie zbudować odpowiednią encję media playera mającą listę stacji jako atrybut source_list:
w postaci listy.
Dobrze
Ja skleciłem to z tych dwóch linków:
prośba była do OPa tematu, ale @RobinI30 dzięki, niestety to rozwiązanie bezpośrednio nie zadziała ze sprzętem innym niż zgodnym z LinkPlay.
Właśnie sam się zorientowałem … no cóż nie zaszkodzi.
No to już wiemy, że mówi o łatwym dostępie do playlist, a sprzęt to Sonos (jakby co, to Ikea sprzedaje graty w ich technologii - seria Symfonisk bodajże).
Przepraszam nie dałem linka, ponieważ w filmie nie było żadnych informacji jak to zrobił. Oglądałem inne jego filmy i w żadnym nie ma nic na ten temat. Ja mam głośniczki google home mini. Spróbuję poszukać tropami jakie podaliście.
Również szukałem fajnego rozwiązania z radiem i znalazłem coś takiego. Jestem początkujący, więc opiszę łopatologicznie rozwiązanie jakie zastosowałem u siebie. Niestety, nie mam pojęcia jak to wstawić, żeby były zachowanie wcięcia itp., dlatego załączam plik.
Obsługuje 3 głośniki, w tym 2 google mini. Do tego w NR automatyzacja, która włącza radio w kuchni w chwili kiedy dzwoni budzi w telefonie (znalezione na tu na forum).
W katalogu “config” utworzyłem podkatalog “packages” w nim plik: chromecast_radio.yaml
input_select:
radio_station:
name: 'Wybór stacji:'
options:
- Radio Plus
- Radio Zet
- Radio RMF FM
- Radio Olsztyn
- Radio Gdańsk
- Melo Radio
- Anty Radio
- Radio Pik
- Program 1
- Program 2
- Program 3
initial: Radio Plus
icon: mdi:radio
chromecast_radio:
name: 'Wybór głośnika:'
options:
- Kuchnia
- Sypialnia
- Salon
initial: Kuchnia
icon: mdi:speaker-wireless
input_number:
volume_radio:
name: 'Głośność'
icon: mdi:volume-high
initial: 0.3
min: 0
max: 1
step: 0.05
automation:
- alias: 'Wybierz stację'
trigger:
- platform: state
entity_id: input_select.radio_station
action:
- service: script.radio
- alias: 'Ustaw głośność'
trigger:
platform: state
entity_id: input_number.volume_radio
action:
service: media_player.volume_set
data_template:
entity_id: >
{% if is_state("input_select.chromecast_radio", "Kuchnia") %} media_player.googlehome6593
{% elif is_state("input_select.chromecast_radio", "Sypialnia") %} media_player.glosnik_w_sypialni
{% elif is_state("input_select.chromecast_radio", "Salon") %} media_player.play_fi_device_27d0b6
{% endif %}
volume_level: '{{ states.input_number.volume_radio.state }}'
script:
radio_play:
alias: ''
sequence:
- service: media_player.volume_set
data_template:
entity_id: >
{% if is_state("input_select.chromecast_radio", "Kuchnia") %} media_player.googlehome6593
{% elif is_state("input_select.chromecast_radio", "Sypialnia") %} media_player.glosnik_w_sypialni
{% elif is_state("input_select.chromecast_radio", "Salon") %} media_player.play_fi_device_27d0b6
{% endif %}
volume_level: '{{ states.input_number.volume_radio.state }}'
- service: media_player.play_media
data_template:
entity_id: >
{% if is_state("input_select.chromecast_radio", "Kuchnia") %} media_player.googlehome6593
{% elif is_state("input_select.chromecast_radio", "Sypialnia") %} media_player.glosnik_w_sypialni
{% elif is_state("input_select.chromecast_radio", "Salon") %} media_player.play_fi_device_27d0b6
{% endif %}
media_content_id: >
{% if is_state("input_select.radio_station", "Radio Plus") %} https://ext03.ic.smcdn.pl/4130-1.mp3
{% elif is_state("input_select.radio_station", "Radio Zet") %} https://zt.cdn.eurozet.pl/zet-net.mp3
{% elif is_state("input_select.radio_station", "Radio RMF FM") %} https://rs101-krk-cyfronet.rmfstream.pl/rmf_fm
{% elif is_state("input_select.radio_station", "Radio Olsztyn") %} http://rostr1.radioolsztyn.pl:8010/RO.mp3
{% elif is_state("input_select.radio_station", "Radio Gdańsk") %} http://stream.task.gda.pl:8000/rg1
{% elif is_state("input_select.radio_station", "Melo Radio") %} http://ml.cdn.eurozet.pl/mel-ols.mp3
{% elif is_state("input_select.radio_station", "Anty Radio") %} http://an01.cdn.eurozet.pl/ant-waw.mp3
{% elif is_state("input_select.radio_station", "Radio Pik") %} http://stream.radiopik.pl:9004/
{% elif is_state("input_select.radio_station", "Program 1") %} http://stream3.polskieradio.pl:8900/
{% elif is_state("input_select.radio_station", "Program 2") %} http://stream3.polskieradio.pl:8902/
{% elif is_state("input_select.radio_station", "Program 3") %} http://stream3.polskieradio.pl:8904/
{% endif %}
media_content_type: 'audio/mp4'
radio_stop:
alias: ''
sequence:
- service: media_player.turn_off
data_template:
entity_id: >
{% if is_state("input_select.chromecast_radio", "Kuchnia") %} media_player.googlehome6593
{% elif is_state("input_select.chromecast_radio", "Sypialnia") %} media_player.glosnik_w_sypialni
{% elif is_state("input_select.chromecast_radio", "Salon") %} media_player.play_fi_device_27d0b6
{% endif %}
Następnie w configuration.yaml dodaj
packages: !include_dir_named packages
Konfiguracja karty encje
entities:
- entity: input_select.radio_station
- entity: input_select.chromecast_radio
- entity: input_number.volume_radio
- entity: script.radio_play
icon: mdi:play
- entity: script.radio_stop
icon: mdi:stop
header:
image: /local/images/radio.jpeg
type: picture
show_header_toggle: false
type: entities
chromecast_radio.yaml (4,2 KB)
Sprawdź czy dobrze poprawiłem Twojego posta.
Przed kodem (i po) dodatkowa linia z trzema odwrotnymi apostrofami (to ten znaczek spod klawisza tyldy, swoją drogą to takie samo formatowanie jak na githubie) ```
Poległem na tym i przy sprawdzaniu konfiguracji przed restartem serwera wyskakuje mi: Integration error: packages - Integration ‘packages’ not found.
To nie może być byle gdzie
@Tomis, ciekawe rozwiązanie, widzę potencjał w innych zastosowaniach - wybór urządzenia + funkcja.
Zawsze nie wiedziałem jak rozwiązać integrację wielu urządzeń z podobnymi funkcjami, aby nie powielać wszystkiego wielokrotnie. Szczelnie w multimediach i głowicach termostatycznych się to przyda.