Project setup

This commit is contained in:
2026-05-12 13:04:34 +02:00
parent 47d298f4ad
commit 43e510b93d
19 changed files with 2034 additions and 1 deletions
+200
View File
@@ -0,0 +1,200 @@
image:
- file: mdi:music-box-outline
type: GRAYSCALE
id: icon_music_album
resize: 20x20
- file: mdi:account-music
type: GRAYSCALE
id: icon_music_artist
resize: 20x20
- file: mdi:music-note
type: GRAYSCALE
id: icon_music_songtitle
resize: 20x20
- file: mdi:power-off
type: GRAYSCALE
id: icon_music_off
resize: 75x75
- file: mdi:power-on
type: GRAYSCALE
id: icon_music_on
resize: 75x75
- file: mdi:power
type: GRAYSCALE
id: icon_music_power
resize: 75x75
- file: mdi:timer-sand-empty
type: GRAYSCALE
id: icon_music_idle
resize: 75x75
- file: mdi:play-pause
type: GRAYSCALE
id: icon_music_playpause
resize: 75x75
- file: mdi:play-box-outline
type: GRAYSCALE
id: icon_music_play_box
resize: 75x75
- file: mdi:pause-box-outline
type: GRAYSCALE
id: icon_music_pause_box
resize: 75x75
- file: mdi:power
type: GRAYSCALE
id: icon_music_standby
resize: 75x75
- file: mdi:download-box-outline
type: GRAYSCALE
id: icon_music_buffering
resize: 75x75
- file: mdi:volume-plus
type: GRAYSCALE
id: icon_music_vol_up
resize: 75x75
- file: mdi:volume-minus
type: GRAYSCALE
id: icon_music_vol_down
resize: 75x75
- file: mdi:skip-forward
type: GRAYSCALE
id: icon_music_next
resize: 75x75
- file: mdi:skip-backward
type: GRAYSCALE
id: icon_music_prev
resize: 75x75
- file: mdi:play
type: GRAYSCALE
id: icon_music_play
resize: 75x75
- file: mdi:pause
type: GRAYSCALE
id: icon_music_pause
resize: 75x75
color:
- id: music_card_text_color
hex: ${music_card_text_color}
- id: music_card_icon_main_color
hex: ${music_card_icon_main_color}
- id: music_card_icon_bar_color
hex: ${music_card_icon_bar_color}
text_sensor:
- platform: homeassistant
id: music_album
entity_id: ${music_card_entity_id}
attribute: media_album_name
on_value:
- delay: 500ms
- script.execute: update_main
- platform: homeassistant
id: music_artist
entity_id: ${music_card_entity_id}
attribute: media_artist
- platform: homeassistant
id: music_title
entity_id: ${music_card_entity_id}
attribute: media_title
on_value:
- delay: 500ms
- script.execute: update_main
- platform: homeassistant
id: music_playerstate
entity_id: ${music_card_entity_id}
on_value:
- script.execute: update_all
script:
- id: music_card
parameters:
x: int
y: int
then:
- lambda: |-
// player state
if (strcmp(id(music_playerstate).state.c_str(), "off") == 0) {
id(main_display).image(x, 1+y, id(icon_music_off), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
} else if (strcmp(id(music_playerstate).state.c_str(), "on") == 0) {
id(main_display).image(x, 1+y, id(icon_music_on), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
} else if (strcmp(id(music_playerstate).state.c_str(), "idle") == 0) {
id(main_display).image(x, 1+y, id(icon_music_idle), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
} else if (strcmp(id(music_playerstate).state.c_str(), "playing") == 0) {
id(main_display).image(x, 1+y, id(icon_music_play_box), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
} else if (strcmp(id(music_playerstate).state.c_str(), "paused") == 0) {
id(main_display).image(x, 1+y, id(icon_music_pause_box), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
} else if (strcmp(id(music_playerstate).state.c_str(), "standby") == 0) {
id(main_display).image(x, 1+y, id(icon_music_standby), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
} else if (strcmp(id(music_playerstate).state.c_str(), "buffering") == 0) {
id(main_display).image(x, 1+y, id(icon_music_buffering), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
}
//
// album
id(main_display).image(75+3+x, 4+y, id(icon_music_album), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
id(main_display).print(75+25+x, 0+y, id(font_arial20), id(music_card_text_color), TextAlign::TOP_LEFT , id(music_album).state.c_str());
//
// artist
id(main_display).image(75+3+x, 30+y, id(icon_music_artist), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
id(main_display).print(75+25+x, 26+y, id(font_arial20), id(music_card_text_color), TextAlign::TOP_LEFT , id(music_artist).state.c_str());
//
// song title
id(main_display).image(75+3+x, 56+y, id(icon_music_songtitle), ImageAlign::TOP_LEFT, id(music_card_icon_main_color));
id(main_display).print(75+25+x, 52+y, id(font_arial20), id(music_card_text_color), TextAlign::TOP_LEFT , id(music_title).state.c_str());
- id: music_card_bar
parameters:
type: string
then:
- lambda: |-
if (strcmp(type.c_str(), "volume_up") == 0) { // button "volume_up"
id(bar_display).image(80, 2, id(icon_music_vol_up), ImageAlign::TOP_CENTER, id(music_card_icon_bar_color));
} else if (strcmp(type.c_str(), "volume_down") == 0) { // button "volume_down"
id(bar_display).image(80, 2, id(icon_music_vol_down), ImageAlign::TOP_CENTER, id(music_card_icon_bar_color));
} else if (strcmp(type.c_str(), "next") == 0) { // button "next"
id(bar_display).image(80, 2, id(icon_music_next), ImageAlign::TOP_CENTER, id(music_card_icon_bar_color));
} else if (strcmp(type.c_str(), "prev") == 0) { // button "prev"
id(bar_display).image(80, 2, id(icon_music_prev), ImageAlign::TOP_CENTER, id(music_card_icon_bar_color));
} else if (strcmp(type.c_str(), "playpause") == 0) { // button "playpause"
if (strcmp(id(music_playerstate).state.c_str(), "playing") == 0) {
id(bar_display).image(80, 2, id(icon_music_pause), ImageAlign::TOP_CENTER, id(music_card_icon_bar_color));
} else {
id(bar_display).image(80, 2, id(icon_music_play), ImageAlign::TOP_CENTER, id(music_card_icon_bar_color));
}
} else if (strcmp(type.c_str(), "power") == 0) { // button "power"
id(bar_display).image(80, 2, id(icon_music_power), ImageAlign::TOP_CENTER, id(music_card_icon_bar_color));
}
- id: music_card_vol_up
then:
- homeassistant.action:
action: media_player.volume_up
data:
entity_id: ${music_card_entity_id}
- id: music_card_vol_down
then:
- homeassistant.action:
action: media_player.volume_down
data:
entity_id: ${music_card_entity_id}
- id: music_card_next
then:
- homeassistant.action:
action: media_player.media_next_track
data:
entity_id: ${music_card_entity_id}
- id: music_card_prev
then:
- homeassistant.action:
action: media_player.media_previous_track
data:
entity_id: ${music_card_entity_id}
- id: music_card_playpause
then:
- homeassistant.action:
action: media_player.media_play_pause
data:
entity_id: ${music_card_entity_id}
- id: music_card_power
then:
- homeassistant.action:
action: media_player.toggle
data:
entity_id: ${music_card_entity_id}