Files
ESPHome_ButtonPlusV2/package/cards/music.yaml
T
2024-11-12 19:37:08 +01:00

91 lines
2.9 KiB
YAML

#####################################################
##
## FILENAME: cards/music.yaml
## DESCRIPTION: card that shows info
## about the current played song and
## players current state
## USAGE:
## package:
## ...
## card_music: !include
## file: cards/music.yaml
## vars:
## entity_id: media_player.xxxx
##
## display:
## - id: !extend main_display
## pages:
## - id: player_page
## lambda: |-
## id(all_pages).execute();
## // insert music card:
## // >> id(music_card).execute(x, y);
## id(music_card).execute(20, 125);
##
#####################################################
image:
- file: mdi:music-box-outline
id: icon_music_album
resize: 20x20
- file: mdi:account-music
id: icon_music_artist
resize: 20x20
- file: mdi:music-note
id: icon_music_songtitle
resize: 20x20
text_sensor:
- platform: homeassistant
id: music_album
entity_id: !lambda return id(music_card_enity_id);
attribute: media_album_name
on_value:
- script.execute: update_main
- platform: homeassistant
id: music_artist
entity_id: !lambda return id(music_card_enity_id);
attribute: media_artist
- platform: homeassistant
id: music_title
entity_id: !lambda return id(music_card_enity_id);
attribute: media_title
on_value:
- script.execute: update_main
- platform: homeassistant
id: music_playerstate
entity_id: !lambda return id(music_card_enity_id);
on_value:
- script.execute: update_main
script:
- id: music_card
parameters:
x: int
y: int
then:
- lambda: |-
id(display_j2_main).print(60+x, 0+y, id(font_arial20), id(white), TextAlign::TOP_LEFT , id(music_playerstate).state.c_str());
// switch (id(music_playerstate)){
// case 1:
// it.print(0, 1, "Page1");
// break;
// case 2:
// it.print(0, 1, "Page2");
// break;
// case 3:
// it.print(0, 1, "Page3");
// break;
// }
//
// album
id(display_j2_main).image(3+x, 4+y, id(icon_music_album), ImageAlign::TOP_LEFT, id(orange));
id(display_j2_main).print(25+x, 0+y, id(font_arial20), id(white), TextAlign::TOP_LEFT , id(music_album).state.c_str());
//
// artist
id(display_j2_main).image(3+x, 30+y, id(icon_music_artist), ImageAlign::TOP_LEFT, id(orange));
id(display_j2_main).print(25+x, 26+y, id(font_arial20), id(white), TextAlign::TOP_LEFT , id(music_artist).state.c_str());
//
// song title
id(display_j2_main).image(3+x, 56+y, id(icon_music_songtitle), ImageAlign::TOP_LEFT, id(orange));
id(display_j2_main).print(25+x, 52+y, id(font_arial20), id(white), TextAlign::TOP_LEFT , id(music_title).state.c_str());