Kilka postów wyżej masz całą konfigurację ¦
Niestety nie widzę, może dla kogoś kto jest biegły w tych konfiguracjach jest to oczywiste, niestety dla mnie nie. Mam taką konfigurację w karcie, czy tu musze jakoś dodać kolejny media_player?
entity: media_player.nesthub7b5e
name: Radio FM
shortcuts:
buttons:
- id: http://ext03.ic.smcdn.pl:8000/2420-1.mp3
name: ESKA
type: music
- id: http://play.strefa.fm:8000/stream
name: PTB
type: music
type: custom:mini-media-player
Jak to zrobić:
https://forum.arturhome.pl/t/szybkie-porady-artura-robimy-sobie-radio-problem/202/75?u=artpc
O konfiguracji Packages
czytaj tu https://forum.arturhome.pl/t/package-w-home-assistant/707 @macek
Podziękowania dla użytkownika Kabala Cata
z forum HA za udostępnienie kodu.
Nowy styl Obsługi Radia Mushroom Cards
Kod packages: https://pastebin.com/4nU2bFqS
Kod Karty :
type: custom:stack-in-card
mode: vertical
keep:
box_shadow: true
border_radius: true
margin: true
outer_padding: true
background: true
cards:
- type: vertical-stack
cards:
- type: conditional
conditions:
- entity: media_player.pokoj_dzienny
state_not: 'off'
card:
type: custom:mini-media-player
style: |
:host {
--mini-media-player-name-font-weight: 500;
--mini-media-player-artwork-opacity: 1;
--mini-media-player-media-cover-info-color: white;
--mini-media-player-overlay-base-color: #2196f3;
}
entity: media_player.pokoj_dzienny
info: scroll
artwork: cover
volume_stateless: false
toggle_power: true
hide:
runtime_remaining: false
runtime: false
info: false
power: true
power_state: false
progress: false
source: false
play_stop: true
volume_level: false
controls: true
volume: true
icon: true
name: false
- type: conditional
conditions:
- entity: media_player.artur_s_echo_show
state_not: standby
card:
type: custom:mini-media-player
style: |
:host {
--mini-media-player-name-font-weight: 500;
--mini-media-player-artwork-opacity: 1;
--mini-media-player-media-cover-info-color: white;
--mini-media-player-overlay-base-color: #2196f3;
}
entity: media_player.artur_s_echo_show
info: scroll
artwork: cover
volume_stateless: false
toggle_power: true
hide:
runtime_remaining: false
runtime: false
info: false
power: true
power_state: false
progress: false
source: false
play_stop: true
volume_level: false
controls: true
volume: true
icon: true
name: false
- type: conditional
conditions:
- entity: media_player.googlehome4300
state: playing
card:
type: custom:mini-media-player
style: |
:host {
--mini-media-player-name-font-weight: 500;
--mini-media-player-artwork-opacity: 1;
--mini-media-player-media-cover-info-color: white;
--mini-media-player-overlay-base-color: #2196f3;
}
entity: media_player.googlehome4300
info: scroll
artwork: cover
volume_stateless: false
toggle_power: true
hide:
runtime_remaining: false
runtime: false
info: false
power: true
power_state: false
progress: false
source: false
play_stop: true
volume_level: false
controls: true
volume: true
icon: true
name: false
- type: conditional
conditions:
- entity: media_player.artur_s_echo_dot
state: playing
card:
type: custom:mini-media-player
style: |
:host {
--mini-media-player-name-font-weight: 500;
--mini-media-player-artwork-opacity: 1;
--mini-media-player-media-cover-info-color: white;
--mini-media-player-overlay-base-color: #2196f3;
}
entity: media_player.artur_s_echo_dot
info: scroll
artwork: cover
volume_stateless: false
toggle_power: true
hide:
runtime_remaining: false
runtime: false
info: false
power: true
power_state: false
progress: false
source: false
play_stop: true
volume_level: false
controls: true
volume: true
icon: true
name: false
- square: false
columns: 4
type: grid
cards:
- type: custom:mushroom-template-card
style: |
:host {
--primary-text-color:
{% if is_state('input_select.chromecast_radio', 'Lazienka')%} #2196f3
{% else %} #9e9e9e
{% endif %}
}
secondary: ''
icon: mdi:shower-head
entity: media_player.pokoj_dzienny
primary: Łazienka
multiline_secondary: true
icon_color: >-
{{ is_state("input_select.chromecast_radio", "Lazienka") | iif("blue",
"disabled") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Lazienka
target:
entity_id: input_select.chromecast_radio
fill_container: true
hold_action:
action: more-info
layout: vertical
- type: custom:mushroom-template-card
style: |
:host {
--primary-text-color:
{% if is_state('input_select.chromecast_radio', 'Kuchnia')%} #2196f3
{% else %} #9e9e9e
{% endif %}
}
secondary: ''
icon: mdi:silverware-fork-knife
entity: media_player.artur_s_echo_show
primary: Kuchnia
multiline_secondary: true
icon_color: >-
{{ is_state("input_select.chromecast_radio", "Kuchnia") | iif("blue",
"disabled") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Kuchnia
target:
entity_id: input_select.chromecast_radio
fill_container: true
layout: vertical
hold_action:
action: more-info
- type: custom:mushroom-template-card
style: |
:host {
--primary-text-color:
{% if is_state('input_select.chromecast_radio', 'Salon')%} #2196f3
{% else %} #9e9e9e
{% endif %}
}
secondary: ''
icon: mdi:television-classic
entity: media_player.googlehome4300
primary: Salon
multiline_secondary: true
icon_color: >-
{{ is_state("input_select.chromecast_radio", "Salon") | iif("blue",
"disabled") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Salon
target:
entity_id: input_select.chromecast_radio
fill_container: true
layout: vertical
hold_action:
action: more-info
- type: custom:mushroom-template-card
style: |
:host {
--primary-text-color:
{% if is_state('input_select.chromecast_radio', 'Salon Alexa')%} #2196f3
{% else %} #9e9e9e
{% endif %}
}
secondary: ''
icon: mdi:laptop
entity: media_player.artur_s_echo_dot
primary: Salon Alexa
multiline_secondary: true
icon_color: >-
{{ is_state("input_select.chromecast_radio", "Salon Alexa") |
iif("blue", "disabled") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Salon Alexa
target:
entity_id: input_select.chromecast_radio
fill_container: true
layout: vertical
hold_action:
action: more-info
- type: entities
entities:
- type: custom:fold-entity-row
padding: 0
style:
ha-icon:
$: |
ha-svg-icon {
color: #ff5722;
}
head:
type: custom:button-card
name: Polskie Stacje Radiowe
tap_action:
action: none
styles:
card:
- margin-bottom: 0px
- padding-bottom: 0px
- padding-top: 0px
- box-shadow: none
name:
- justify-self: start
- padding-left: 8px
- font-size: 15px
- font-weight: bold
- color: '#795548'
entities:
- type: custom:mushroom-chips-card
card_mod:
style: |
ha-card {
--chip-border-radius: 12px;
--primary-text-color: grey;
}
chips:
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "RMF FM") |
iif("blue", "disabled") }}
content: RMF FM
icon: >-
{{ is_state("input_select.radio_station", "RMF FM") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: RMF FM
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "Meloradio") |
iif("blue", "disabled") }}
content: Meloradio
icon: >-
{{ is_state("input_select.radio_station", "Meloradio") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Meloradio
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "RadioZET") |
iif("blue", "disabled") }}
content: RadioZET
icon: >-
{{ is_state("input_select.radio_station", "RadioZET") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: RadioZET
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "Eska") |
iif("blue", "disabled") }}
content: Eska
icon: >-
{{ is_state("input_select.radio_station", "Eska") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Eska
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "Na Cały Dzień") |
iif("blue", "disabled") }}
content: Na Cały Dzień
icon: >-
{{ is_state("input_select.radio_station", "Na Cały Dzień") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Na Cały Dzień
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "MagicFM") |
iif("blue", "disabled") }}
content: Magic FM
icon: >-
{{ is_state("input_select.radio_station", "MagicFM") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: MagicFM
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "Rock Radio") |
iif("blue", "disabled") }}
content: Rock Radio
icon: >-
{{ is_state("input_select.radio_station", "Rock Radio") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Rock Radio
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "RadioMedias") |
iif("blue", "disabled") }}
content: Radio Medias
icon: >-
{{ is_state("input_select.radio_station", "RadioMedias") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: RadioMedias
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "RadioPetrecere") |
iif("blue", "disabled") }}
content: Radio Petrecere
icon: >-
{{ is_state("input_select.radio_station", "RadioPetrecere") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: RadioPetrecere
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "NationalFM") |
iif("blue", "disabled") }}
content: National FM
icon: >-
{{ is_state("input_select.radio_station", "NationalFM") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: NationalFM
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "WefunkRadio") |
iif("blue", "disabled") }}
content: WeFunk Radio
icon: >-
{{ is_state("input_select.radio_station", "WefunkRadio") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: WefunkRadio
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "FunkyRadio") |
iif("blue", "disabled") }}
content: Funky Radio
icon: >-
{{ is_state("input_select.radio_station", "FunkyRadio") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: FunkyRadio
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "Open FM-Praca") |
iif("blue", "disabled") }}
content: Open FM-Praca
icon: >-
{{ is_state("input_select.radio_station", "Open FM-Praca") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Open FM-Praca
target:
entity_id: input_select.radio_station
alignment: null
- type: entities
entities:
- type: custom:fold-entity-row
padding: 0
style:
ha-icon:
$: |
ha-svg-icon {
color: #ff5722;
}
head:
type: custom:button-card
name: Lokalne
tap_action:
action: none
styles:
card:
- margin-bottom: 0px
- padding-bottom: 0px
- padding-top: 0px
- box-shadow: none
name:
- justify-self: start
- padding-left: 8px
- font-size: 15px
- font-weight: bold
- color: '#795548'
entities:
- type: custom:mushroom-chips-card
card_mod:
style: |
ha-card {
--chip-border-radius: 12px;
--primary-text-color: grey;
}
chips:
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "P1") | iif("blue",
"disabled") }}
content: P1
icon: >-
{{ is_state("input_select.radio_station", "P1") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: P1
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "P2") | iif("blue",
"disabled") }}
content: P2
icon: >-
{{ is_state("input_select.radio_station", "P2") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: P2
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "P3") | iif("blue",
"disabled") }}
content: P3
icon: >-
{{ is_state("input_select.radio_station", "P3") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: P3
target:
entity_id: input_select.radio_station
- type: template
entity: input_select.radio_station
icon_color: >-
{{ is_state("input_select.radio_station", "P4") | iif("blue",
"disabled") }}
content: P4
icon: >-
{{ is_state("input_select.radio_station", "P4") |
iif("mdi:checkbox-blank-circle",
"mdi:checkbox-blank-circle-outline") }}
tap_action:
action: call-service
service: input_select.select_option
service_data:
option: P4
target:
entity_id: input_select.radio_station
- type: custom:mushroom-chips-card
chips:
- type: action
icon_color: blue
icon: mdi:play
tap_action:
action: call-service
service: script.radio
service_data: {}
target: {}
- type: action
icon_color: deep-orange
icon: mdi:stop
tap_action:
action: call-service
service: script.radiostop
service_data: {}
target: {}
- type: action
tap_action:
action: call-service
service: input_number.decrement
service_data: {}
target:
entity_id: input_number.volume_radio
icon: mdi:volume-minus
icon_color: grey
- type: template
card_mod: null
content: >-
{{ state_attr('media_player.googlehome4300', 'volume_level') |
round(2,default="0") }}
style: |
ha-card {
box-shadow: 0px 0px;
}
- type: action
icon: mdi:volume-plus
tap_action:
action: call-service
service: input_number.increment
service_data: {}
target:
entity_id: input_number.volume_radio
icon_color: grey
- type: custom:mushroom-entity-card
entity: input_number.volume_radio
- type: custom:my-slider
entity: input_number.volume_radio
height: 20px
mainSliderColor: '#7dbde8'
secondarySliderColor: '#f2590c'
thumbWidth: 5px
thumbHeight: 30px
thumbColor: black
thumbHorizontalPadding: 0px
thumbVerticalPadding: 0px
Do obsługi suwaka wymagany custom:my-slider
https://github.com/AnthonMS/my-cards
Super robota ! już widzę u siebie modyfikację i poprawę tego co mam u siebie
Pytanie dodatkowe - co to są “Lokalne” ? jakieś lokalne odtwarzacze czy jak ?
PS
trochę nieścisłości jest w samym kodzie - np masz tutja radio MagicFM ale nie ma do niego odwołania, podobnie z RockRadio, za to w odnośnikach jest AntyRadio ale nie ma w wyborze. oczywiście dla mnie no problemo sobie przerobiłem, ale może ktoś za chwile pytac o to
Nie uzupełnione więc nic tam niema, możesz dodać tam jakieś inne stacje. Kod nie uzupełniony bo każdy i tak musi pod siebie ustawić.
OK myślałem że to jakieś znowu fajne opcje o których zwykły śmiertelnicy jak ja nie mają pojęcia
aktualnie modyfikuję aby nie korzystać z mushroom bo jakoś osobiście nie przepadam więc później wrzucę podobne rozwiązanie (bo jest zajebiste!!) dla innych.
EDIT:
dla potomnych jeżeli ktoś nie przepada za Mushroom - poniżej oparte na Custom:button-card:
oczywiście całość zawiera dużo więcej odtwarzaczy jak na screenie, w zależności od uruchomienia więc trzeba dostosować pod siebie.
button_card_templates:
audio_wybor_glosnika:
template:
- ta_powiekszenie
type: custom:button-card
name: '[[[ return variables.nazwa ]]]'
icon: '[[[ return variables.ikona ]]]'
variables:
wysokosc: 70px
ikona: mdi:speaker
wybrany_glosnik: input_select.audio_select
triggers_update: all
show_last_changed: false
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.audio_select
option: '[[[ return variables.nazwa ]]]'
state:
- value: unavailable
styles:
icon:
- color: grey
styles:
icon:
- color: >
[[[ if (states[variables.wybrany_glosnik].state == variables.nazwa )
return 'rgba(255, 214, 10, 1)'
else return 'var(--state-icon-color)'; ]]]
- border: >
[[[ if (states[variables.wybrany_glosnik].state == variables.nazwa )
return 'rgba(255, 214, 10, 1)'
else return 'var(--state-icon-color)'; ]]]
grid:
- grid-template-areas: '"i" "n"'
- grid-template-rows: 1fr min-content
card:
- height: '[[[ return variables.wysokosc ]]]'
- background-color: rgba(0, 0, 0, 0.1)
- padding: 5px 5%
- border: >
[[[ if (states[variables.wybrany_glosnik].state == variables.nazwa )
return 'solid 1px deepskyblue'; else return ''; ]]]
- box-shadow: >
[[[ if (states[variables.wybrany_glosnik].state == variables.nazwa )
return '0 0 0.95rem 0.01rem deepskyblue'; else return ''; ]]]
name:
- color: '#9e9e9e'
- font-size: 80%
- white-space: normal
audio_wybor_radia:
template:
- ta_powiekszenie
type: custom:button-card
name: '[[[ return variables.nazwa ]]]'
icon: '[[[ return variables.ikona ]]]'
variables:
wysokosc: 30px
ikona: mdi:checkbox-blank-circle-outline
wybor: null
show_last_changed: false
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.radio_station
option: >
[[[ if (variables.wybor == null) return variables.nazwa; else return
variables.wybor ]]]
state:
- value: '[[[ return variables.nazwa ]]]'
styles:
card:
- box-shadow: 0 0 0.95rem 0.01rem deepskyblue
icon:
- color: rgba(255, 214, 10, 1)
icon: mdi:checkbox-blank-circle
- value: '[[[ return variables.wybor ]]]'
styles:
card:
- box-shadow: 0 0 0.95rem 0.01rem deepskyblue
icon:
- color: rgba(255, 214, 10, 1)
icon: mdi:checkbox-blank-circle
layout: icon_name
styles:
grid:
- grid-template-columns: 25%
icon:
- color: '#9e9e9e'
card:
- height: '[[[ return variables.wysokosc ]]]'
- background-color: rgba(0, 0, 0, 0.1)
name:
- color: '#9e9e9e'
- font-size: 70%
- white-space: normal
audio_przyciski:
template:
- ta_powiekszenie
type: custom:button-card
name: '[[[ return variables.nazwa ]]]'
icon: '[[[ return variables.ikona ]]]'
variables:
ikona: mdi:checkbox-blank-circle-outline
kolor: white
show_last_changed: false
show_name: false
color: auto
show_icon: true
tap_action:
action: call-service
layout: icon
styles:
grid:
- grid-template-areas: '"i"'
icon:
- height: 50%
- width: 50%
- color: '[[[ return variables.kolor ]]]'
card:
- border-radius: 50%
- width: min(50vw, 60px)
- height: min(50vw, 60px)
- background-color: rgba(0, 0, 0, 0.1)
ta_powiekszenie:
style: |
ha-card:hover {transform: scale(1.05);box-shadow: 0 0 10px;}
no i oczywiście wkładka do dashboard:
type: vertical-stack
cards:
- square: false
columns: 1
type: grid
cards:
- type: conditional
condition: and
conditions:
- entity: media_player.spotify_marcin
state_not: idle
card:
artwork: cover
type: custom:mini-media-player
info: scroll
entity: media_player.spotify_marcin
source: full
volume_stateless: false
group: false
- type: conditional
condition: and
conditions:
- entity: media_player.spotify_julia
state_not: idle
card:
artwork: cover
type: custom:mini-media-player
info: scroll
entity: media_player.spotify_julia
source: full
volume_stateless: false
group: false
- type: conditional
condition: and
conditions:
- entity: media_player.spotify_oliwia
state_not: idle
card:
artwork: cover
type: custom:mini-media-player
info: scroll
entity: media_player.spotify_oliwia
source: full
volume_stateless: false
group: false
- type: conditional
condition: and
conditions:
- entity: media_player.kuchnia
state_not: 'off'
- entity: media_player.kuchnia
state_not: unavailable
card:
type: custom:mini-media-player
entity: media_player.kuchnia
info: scroll
hide:
controls: true
group: true
- type: conditional
condition: and
conditions:
- entity: media_player.biuro
state_not: 'off'
- entity: media_player.biuro
state_not: unavailable
card:
type: custom:mini-media-player
entity: media_player.biuro
info: scroll
hide:
controls: true
group: true
- type: conditional
condition: and
conditions:
- entity: media_player.julia
state_not: 'off'
- entity: media_player.julia
state_not: unavailable
card:
type: custom:mini-media-player
entity: media_player.julia
info: scroll
hide:
controls: true
group: true
- type: conditional
condition: and
conditions:
- entity: media_player.oliwia
state_not: 'off'
- entity: media_player.oliwia
state_not: unavailable
card:
type: custom:mini-media-player
entity: media_player.oliwia
info: scroll
hide:
controls: true
group: true
- type: conditional
condition: and
conditions:
- entity: media_player.sypialnia
state_not: 'off'
- entity: media_player.sypialnia
state_not: unavailable
card:
type: custom:mini-media-player
entity: media_player.sypialnia
info: scroll
hide:
controls: true
group: true
- type: conditional
condition: and
conditions:
- entity: media_player.salon_music
state_not: 'off'
- entity: media_player.salon_music
state_not: unavailable
card:
type: custom:mini-media-player
entity: media_player.salon_music
info: scroll
hide:
controls: true
group: true
- square: false
columns: 6
type: grid
cards:
- type: custom:button-card
template:
- audio_wybor_glosnika
variables:
nazwa: Kuchnia
ikona: mdi:silverware-fork-knife
entity: media_player.kuchnia
- type: custom:button-card
template:
- audio_wybor_glosnika
variables:
nazwa: Biuro
ikona: mdi:desk
entity: media_player.biuro
- type: custom:button-card
template:
- audio_wybor_glosnika
variables:
nazwa: Julia
ikona: mdi:face-woman
entity: media_player.julia
- type: custom:button-card
template:
- audio_wybor_glosnika
variables:
nazwa: Oliwia
ikona: mdi:face-woman
entity: media_player.oliwia
- type: custom:button-card
template:
- audio_wybor_glosnika
variables:
nazwa: Sypialnia
ikona: mdi:bed
entity: media_player.sypialnia
- type: custom:button-card
template:
- audio_wybor_glosnika
variables:
nazwa: Amplituner
ikona: mdi:music-box-multiple
entity: media_player.salon_music
- type: entities
entities:
- type: custom:fold-entity-row
padding: 0
open: true
style:
ha-icon:
$: |
ha-svg-icon {
color: #ff5722;
}
head:
type: custom:button-card
name: Spotify
tap_action:
action: none
styles:
card:
- margin-bottom: 0px
- padding-bottom: 0px
- padding-top: 0px
- box-shadow: none
name:
- justify-self: start
- padding-left: 8px
- font-size: 15px
- font-weight: bold
- color: '#795548'
entities:
- type: custom:layout-card
clayout: vertical
cards:
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Daily Mix 1
wybor: Spotify Daily Mix 1
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Daily Mix 2
wybor: Spotify Daily Mix 2
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Daily Mix 3
wybor: Spotify Daily Mix 3
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Daily Mix 4
wybor: Spotify Daily Mix 4
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Spotify Trening
wybor: Spotify Trening 2022
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Uśmiechnij się
wybor: Spotify Uśmiechnij się
entity: input_select.radio_station
- type: custom:fold-entity-row
padding: 0
style:
ha-icon:
$: |
ha-svg-icon {
color: #ff5722;
}
head:
type: custom:button-card
name: Radia klasyczne
tap_action:
action: none
styles:
card:
- margin-bottom: 0px
- padding-bottom: 0px
- padding-top: 0px
- box-shadow: none
name:
- justify-self: start
- padding-left: 8px
- font-size: 15px
- font-weight: bold
- color: '#795548'
entities:
- type: custom:layout-card
clayout: vertical
cards:
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: RMF FM
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: RMF MAXX
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: RMF Classisc
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: AntyRadio
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Classisc Rock
wybor: Absolute Radio Classisc Rock
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Meloradio
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Muzo Radio
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: RadioZET
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: ChilliZet
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Eska
entity: input_select.radio_station
- type: custom:fold-entity-row
padding: 0
style:
ha-icon:
$: |
ha-svg-icon {
color: #ff5722;
}
head:
type: custom:button-card
name: Open FM
tap_action:
action: none
styles:
card:
- margin-bottom: 0px
- padding-bottom: 0px
- padding-top: 0px
- box-shadow: none
name:
- justify-self: start
- padding-left: 8px
- font-size: 15px
- font-weight: bold
- color: '#795548'
entities:
- type: custom:layout-card
clayout: vertical
cards:
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Na Cały Dzień
wybor: Open FM-Na Cały Dzień
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Praca
wybor: Open FM-Praca
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: 90`s Hits
wybor: Open FM-90`s Hits
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Polski Rock
wybor: Open FM-Polski Rock
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Classic Rock
wybor: Open FM-Classic Rock
entity: input_select.radio_station
- type: custom:button-card
template:
- audio_wybor_radia
variables:
nazwa: Bieganie
wybor: Open FM-Bieganie
entity: input_select.radio_station
state_color: true
- square: false
columns: 7
type: grid
cards:
- type: custom:button-card
template:
- audio_przyciski
variables:
nazwa: Play
ikona: mdi:skip-backward
kolor: grey
tap_action:
action: call-service
service: media_player.media_previous_track
service_data:
entity_id: media_player.spotify_marcin
- type: custom:button-card
template:
- audio_przyciski
variables:
nazwa: Play
ikona: mdi:play
kolor: deepskyblue
tap_action:
action: call-service
service: script.radio
service_data: {}
target: {}
- type: custom:button-card
template:
- audio_przyciski
variables:
nazwa: Play
ikona: mdi:stop
kolor: red
tap_action:
action: call-service
service: script.radiostop
service_data: {}
target: {}
- type: custom:button-card
template:
- audio_przyciski
variables:
nazwa: Play
ikona: mdi:skip-forward
kolor: grey
tap_action:
action: call-service
service: media_player.media_next_track
service_data:
entity_id: media_player.spotify_marcin
- type: custom:button-card
template:
- audio_przyciski
variables:
nazwa: Play
ikona: mdi:volume-minus
tap_action:
action: call-service
service: input_number.decrement
service_data:
entity_id: input_number.volume_radio
- type: custom:button-card
entity: input_number.volume_radio
show_name: false
show_icon: true
show_state: true
styles:
grid:
- grid-template-areas: '"i" "s"'
- grid-template-rows: 40% 60%
icon:
- height: 50%
- width: 50%
card:
- border-radius: 50%
tap_action:
action: none
- type: custom:button-card
template:
- audio_przyciski
variables:
nazwa: Play
ikona: mdi:volume-plus
tap_action:
action: call-service
service: input_number.increment
service_data:
entity_id: input_number.volume_radio
- type: custom:my-slider
entity: input_number.volume_radio
height: 20px
mainSliderColor: '#7dbde8'
secondarySliderColor: '#f2590c'
thumbWidth: 5px
thumbHeight: 30px
thumbColor: black
thumbHorizontalPadding: 0px
thumbVerticalPadding: 0px
wybór radia czy odtwarzacza zbudowany na tej samej zasadzie jak @artpc więc nie będę powtarzać, poza tym każdy robi pod siebie.
Jedynie co to może script się przydać:
radio:
alias: Play Radio on Chromecast Audio
sequence:
- service: media_player.volume_set
data_template:
entity_id: >
{% if is_state("input_select.audio_select", "Cały dom") %} media_player.home
{% elif is_state("input_select.audio_select", "Dzieci") %} media_player.kids
{% elif is_state("input_select.audio_select", "Amplituner") %} media_player.salon_music
{% elif is_state("input_select.audio_select", "Kuchnia") %} media_player.kuchnia
{% elif is_state("input_select.audio_select", "Julia") %} media_player.julia
{% elif is_state("input_select.audio_select", "Oliwia") %} media_player.oliwia
{% elif is_state("input_select.audio_select", "Sypialnia") %} media_player.sypialnia
{% elif is_state("input_select.audio_select", "Biuro") %} media_player.biuro
{% endif %}
volume_level: '{{ states.input_number.volume_radio.state }}'
- service: media_player.play_media
data_template:
entity_id: >
{% if is_state("input_select.audio_select", "Cały dom") %} media_player.home
{% elif is_state("input_select.audio_select", "Dzieci") %} media_player.kids
{% elif is_state("input_select.audio_select", "Amplituner") %} media_player.salon_music
{% elif is_state("input_select.audio_select", "Kuchnia") %} media_player.kuchnia
{% elif is_state("input_select.audio_select", "Julia") %} media_player.julia
{% elif is_state("input_select.audio_select", "Oliwia") %} media_player.oliwia
{% elif is_state("input_select.audio_select", "Sypialnia") %} media_player.sypialnia
{% elif is_state("input_select.audio_select", "Biuro") %} media_player.biuro
{% endif %}
media_content_id: >
{% if is_state("input_select.radio_station", "RMF FM") %} http://217.74.72.11/rmf_fm
{% elif is_state("input_select.radio_station", "RMF MAXX") %} http://www.rmfon.pl/n/rmfmaxxx.pls
{% elif is_state("input_select.radio_station", "RMF Classic") %} http://rmfstream1.interia.pl:8000/rmf_classic
{% elif is_state("input_select.radio_station", "AntyRadio") %} http://stream.polandrockfestival.pl:8000/
{% elif is_state("input_select.radio_station", "Absolute Radio Classisc Rock") %} http://icy-e-bab-04-cr.sharp-stream.com/absoluteclassicrock.mp3
{% elif is_state("input_select.radio_station", "Meloradio") %} https://ml.cdn.eurozet.pl/mel-net.mp3
{% elif is_state("input_select.radio_station", "Muzo Radio") %} http://stream4.nadaje.com/muzo
{% elif is_state("input_select.radio_station", "RadioZET") %} https://zt.cdn.eurozet.pl/zet-tun.mp3
{% elif is_state("input_select.radio_station", "ChilliZet") %} http://chi-net.cdn.eurozet.pl:8900/
{% elif is_state("input_select.radio_station", "Eska") %} http://www.pldm.ml/radio.php?id=-1&url=http://www.eskago.pl/radio/eska-malopolska-zakopane
{% elif is_state("input_select.radio_station", "Złote przeboje") %} http://mainstream.radioagora.pl/tuba9-1.mp3
{% elif is_state("input_select.radio_station", "Open FM-Na Cały Dzień") %} https://stream.open.fm/69
{% elif is_state("input_select.radio_station", "Open FM-Praca") %} https://stream.open.fm/109?type=.aac
{% elif is_state("input_select.radio_station", "Open FM-90`s Hits") %} https://stream.open.fm/14
{% elif is_state("input_select.radio_station", "Open FM-Polski Rock") %} https://stream.open.fm/29
{% elif is_state("input_select.radio_station", "Open FM-Classic Rock") %} https://stream.open.fm/32
{% elif is_state("input_select.radio_station", "Open FM-Bieganie") %} https://stream.open.fm/116
{% elif is_state("input_select.radio_station", "Jedynka") %} http://mp3.polskieradio.pl:8900/
{% elif is_state("input_select.radio_station", "Dwójka") %} http://mp3.polskieradio.pl:8902/
{% elif is_state("input_select.radio_station", "Trójka") %} http://mp3.polskieradio.pl:8904/
{% elif is_state("input_select.radio_station", "Spotify Daily Mix 1") %} spotify:playlist:37i9dQZF1E3agq9f3jFqW4
{% elif is_state("input_select.radio_station", "Spotify Daily Mix 2") %} spotify:playlist:2RuNT5VY7IkcBStral458K?si
{% elif is_state("input_select.radio_station", "Spotify Daily Mix 3") %} spotify:playlist:37i9dQZF1E37s6ucxKOLE4?si
{% elif is_state("input_select.radio_station", "Spotify Daily Mix 4") %} spotify:playlist:37i9dQZF1E37fQtkWqTQpo?si
{% elif is_state("input_select.radio_station", "Spotify Trening") %} spotify:playlist:1yaKdsuMvRGpkEl6L0imoz
{% elif is_state("input_select.radio_station", "Spotify Uśmiechnij się") %} spotify:playlist:37i9dQZF1DX7UmlpB1f1Ip
{% endif %}
media_content_type: >
{% if is_state("input_select.radio_station", "RMF FM") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "RMF MAXX") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "RMF Classic") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "AntyRadio") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Absolute Radio Classisc Rock") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Meloradio") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Muzo Radio") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "RadioZET") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "ChilliZet") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Eska") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Złote przeboje") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Na Cały Dzień") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Open FM-Praca") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Jedynka") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Dwójka") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Trójka") %} 'audio/mp4'
{% elif is_state("input_select.radio_station", "Spotify Daily Mix 1") %} 'spotify://playlist'
{% elif is_state("input_select.radio_station", "Spotify Daily Mix 2") %} 'spotify://playlist'
{% elif is_state("input_select.radio_station", "Spotify Daily Mix 3") %} 'spotify://playlist'
{% elif is_state("input_select.radio_station", "Spotify Daily Mix 4") %} 'spotify://playlist'
{% elif is_state("input_select.radio_station", "Spotify Trening") %} 'spotify://playlist'
{% elif is_state("input_select.radio_station", "Spotify Uśmiechnij się") %} 'spotify://playlist'
{% endif %}
radiostop:
alias: Radio Stop
sequence:
- service: media_player.turn_off
data_template:
entity_id: >
{% if is_state("input_select.audio_select", "Cały dom") %} media_player.home
{% elif is_state("input_select.audio_select", "Dzieci") %} media_player.kids
{% elif is_state("input_select.audio_select", "Amplituner") %} media_player.salon_music
{% elif is_state("input_select.audio_select", "Kuchnia") %} media_player.kuchnia
{% elif is_state("input_select.audio_select", "Julia") %} media_player.julia
{% elif is_state("input_select.audio_select", "Oliwia") %} media_player.oliwia
{% elif is_state("input_select.audio_select", "Sypialnia") %} media_player.sypialnia
{% elif is_state("input_select.audio_select", "Biuro") %} media_player.biuro
{% endif %}
oczywiście gdyby ktoś chciał jeszcze input_select to dać znać i też wrzucę
!! EDIT 2 !! dorobilem taką ciekawostkę, może się komuś przydać … przez chwilę zastanawiałem się nad nowym postem ale w razie czego admin proszę o sugestie
Wpisanie tekst i puszczenie go na głośniku który jest wybrany.
dodajemy input_tekst i tworzymy automatyzację:
alias: Tekst do powiedzenia
description: ""
trigger:
- platform: state
entity_id:
- input_text.tekst_to_powiedzenia
condition: []
action:
- service: tts.google_say
data_template:
entity_id: >
{% if is_state("input_select.audio_select", "Cały dom") %}
media_player.home {% elif is_state("input_select.audio_select",
"Dzieci") %} media_player.kids {% elif
is_state("input_select.audio_select", "Amplituner") %}
media_player.salon_music {% elif is_state("input_select.audio_select",
"Kuchnia") %} media_player.kuchnia {% elif
is_state("input_select.audio_select", "Julia") %} media_player.julia {%
elif is_state("input_select.audio_select", "Oliwia") %}
media_player.oliwia {% elif is_state("input_select.audio_select",
"Sypialnia") %} media_player.sypialnia {% elif
is_state("input_select.audio_select", "Biuro") %} media_player.biuro {%
endif %}
message: "{{ states.input_text.tekst_to_powiedzenia.state }}"
mode: single
EDIT kolejny:
Jak by ktoś chciał to wrzucam filmik krok po kroku jak zrobić ten odtwarzacz:
Witam. Na początku chciałem przywitać wszystkich forumowiczów
Od czasu powstania materiału Artura trochę się zmieniło w HA i mam problem z błędem Custom element doesn’t exist: mini-media-player.
Opisywany wcześniej, ale brak jest rozwiązania, więc kombinowałem trochę sam, ale brakuje mi już pomysłów.
W HACS mam komunikat “Nie załadowano w Lovelace
Elementy Lovelace, które nie zostały poprawnie załadowane: 1” i rzeczywiście widać problem z Mini Media Player
Myślę, że rozwiązanie kryje się w prawidłowym adresie URL, który należy podać w zarządzaniu zasobami.
Artur podaje tam adres:
/hacsfiles/mini-media-player/mini-media-player.bandle.js
tylko, że obecnie Mini Media Player nie instaluje się w tym miejscu tylko w /config/www/community/mini-media-player/mini-media-player-bundle.js - dodatkowo są dwa pliki w folderze. Próbowałem trzech odwołań (Artura, powyższy i powyższy bezpośrednio do folderu) i dalej bez zmian. Pomożecie?
Mini Media Player
mam dodany przez HACS
W zasobach mam:
/hacsfiles/mini-media-player/mini-media-player-bundle.js?hacstag=1485208381165
Działa jak trzeba po zmianie na:
/hacsfiles/mini-media-player/mini-media-player-bundle.js?hacstag=1485208381165
Bardzo dziękuję!
Skąd wziąłeś hacstag=1485208381165 ??
Może działa to za dużo powiedziane, bo mam jeszcze “Entity media_player.denon_avr_x2500h does not support this service”, ale gdzieś widziałem już ten problem, więc będę szukał dalej. Najważniejsze, że ten podstawowy temat rozwiązałem
Ja znalazłem tu
To jest dziwne, bo w przypadku Garbage Collection rzeczywiście HACS dodał mi automatycznie hacstag, ale w przypadku Media Player tak nie zrobił…
Tak czy inaczej dzięki za wsparcie!
Jeśli MMP instalowałeś dawno, to wtedy HACS nie dodawał tagu repozytorium, jeśli instalowałeś go “z palca” a nie przez HACS, to też go nie ma.
Hej. Temat stary niemal jak to forum, ale skoro dotarł do mnie pierwszy Google Nest to postanowiłem sobie zadziałać w temacie radia.
Skorzystałem z NR, pomocników i kart siatka, picture-entry i oczywiście mini-media-player.
Efekt jak poniżej:
i NR
Pozdrawiam.
poradnik już nie działa
Z jakiego streamu korzystasz w przypadku radia złote przeboje?
W poradnikach znalazłem tylko niedziałający już http://poznan5-6.radio.pionier.net.pl:8000/tuba9-1.mp3
Ja bym szukał tam
https://www.radio-browser.info/
Dzięki, udało się odnaleźć działający link
Witam, odświeżam temat bo nie potrafię sobie poradzić, wg poradnika działa wszystko ok ale jak chcę zrobić pojedynczy przycisk radia to nie działa co robię źle?
metallica_radio:
alias: Metallica Radio
sequence:
- service: media_player.volume_set
data:
entity_id: media_player.sypialnia
volume_level: '0.5'
- service: media_player.play_media
data:
entity_id: media_player.spotify
media_content_id: spotify:playlist:37i9dQZF1E4EBdeEVqipSd?si=a9ff238864324f0f
media_content_type: 'spotify://playlist'
extra:
title: "Metallica Radio"
radio_rmf:
alias: RMF FM Radio
sequence:
- service: media_player.volume_set
data:
entity_id: media_player.sypialnia
volume_level: '0.5'
- service: media_player.play_media
data:
entity_id: media_player.sypialnia
media_content_id: https://rs6-krk2.rmfstream.pl/rmf_fm
media_content_type: 'audio/mp4'
extra:
thumb: https://www.logotypes101.com/logos/313/5EF517CF8B5E99A8E623EE5FF719125D/RMF_FM.png
title: "RMF FM"
show_name: true
show_icon: true
type: button
tap_action:
action: call-service
service: media_player.play_media
target:
entity_id: media_player.googlehome4300
data:
media_content_id: https://rs6-krk2.rmfstream.pl/rmf_fm
media_content_type: audio/mp4
name: RMF_FM
icon: mdi:radio