Simple music player without installing custom component

I wanted to have directly on my lovelace screen player with buttons for repeat and shuffle. I have made one simple like this:
image
It is possible to change playlist or choose volume after clicking on buttons.

In configuration.yaml sensors for repeat and shuffle were added:

- platform: template
    sensors:
      mpd_shuffle:
        friendly_name: "shuffle"
        value_template: >- 
          {% if state_attr('media_player.mpd', 'shuffle') == true %}
            shuffle on
          {% else %}
            shuffle off
          {% endif %}
        icon_template: >-
          {% if state_attr('media_player.mpd', 'shuffle') == true %}
            mdi:shuffle
          {% else %}
            mdi:shuffle-disabled
          {% endif %}      
  - platform: template
    sensors:
      mpd_repeat:
        friendly_name: "repeat"
        value_template: >- 
          {% if state_attr('media_player.mpd', 'repeat') == 'all' %}
            repeat all
          {% elif state_attr('media_player.mpd', 'repeat') == 'one' %}
            repeat one
          {% else %}
            repeat off
          {% endif %}
        icon_template: >-
          {% if state_attr('media_player.mpd', 'repeat') == 'all' %}
            mdi:repeat
          {% elif state_attr('media_player.mpd', 'repeat') == 'one' %}
            mdi:repeat-once
          {% else %}
            mdi:repeat-off
          {% endif %}              

Card is made as a grid, buttons for shuffle and repeat are condition buttons:

type: grid
columns: 1
square: false
cards:
  - type: grid
    columns: 1
    square: false
    cards:
      - type: grid
        square: false
        columns: 1
        cards:
          - type: grid
            square: false
            columns: 1
            cards:
              - type: entity
                entity: media_player.mpd
                attribute: media_artist
                name: ' '
                icon: ' '
              - type: entity
                entity: media_player.mpd
                attribute: media_title
                name: ' '
                icon: ' '
      - type: grid
        square: false
        columns: 3
        cards:
          - type: button
            entity: media_player.mpd
            icon: 'mdi:pause'
            show_name: false
            show_icon: true
            show_state: false
            tap_action:
              action: call-service
              service: media_player.media_pause
              service_data:
                entity_id: media_player.mpd
          - type: button
            entity: media_player.mpd
            icon: 'mdi:play'
            show_name: false
            tap_action:
              action: call-service
              service: media_player.media_play
              service_data:
                entity_id: media_player.mpd
          - type: button
            tap_action:
              action: call-service
              service: media_player.media_stop
              service_data:
                entity_id: media_player.mpd
            entity: media_player.mpd
            icon: 'mdi:stop'
            show_name: false
      - type: grid
        square: false
        columns: 4
        cards:
          - type: button
            tap_action:
              action: call-service
              service: media_player.media_previous_track
              service_data:
                entity_id: media_player.mpd
            entity: media_player.mpd
            icon: 'mdi:skip-backward'
            show_name: false
            show_state: false
            show_icon: true
          - type: button
            tap_action:
              action: call-service
              service: media_player.media_next_track
              service_data:
                entity_id: media_player.mpd
            entity: media_player.mpd
            icon: 'mdi:skip-forward'
            show_name: false
            show_state: false
          - type: conditional
            conditions:
              - entity: sensor.mpd_shuffle
                state: shuffle off
            card:
              type: button
              tap_action:
                action: call-service
                service: media_player.shuffle_set
                service_data:
                  entity_id: media_player.mpd
                  shuffle: true
              entity: sensor.mpd_shuffle
              show_name: false
              show_state: false
          - type: conditional
            conditions:
              - entity: sensor.mpd_shuffle
                state: shuffle on
            card:
              type: button
              tap_action:
                action: call-service
                service: media_player.shuffle_set
                service_data:
                  entity_id: media_player.mpd
                  shuffle: false
              entity: sensor.mpd_shuffle
              show_name: false
              show_state: false
          - type: conditional
            conditions:
              - entity: sensor.mpd_repeat
                state: repeat off
            card:
              type: button
              tap_action:
                action: call-service
                service: media_player.repeat_set
                service_data:
                  entity_id: media_player.mpd
                  repeat: all
              entity: sensor.mpd_repeat
              show_name: false
              show_state: false
          - type: conditional
            conditions:
              - entity: sensor.mpd_repeat
                state: repeat all
            card:
              type: button
              tap_action:
                action: call-service
                service: media_player.repeat_set
                service_data:
                  entity_id: media_player.mpd
                  repeat: one
              entity: sensor.mpd_repeat
              show_name: false
              show_state: false
          - type: conditional
            conditions:
              - entity: sensor.mpd_repeat
                state: repeat one
            card:
              type: button
              tap_action:
                action: call-service
                service: media_player.repeat_set
                service_data:
                  entity_id: media_player.mpd
                  repeat: 'off'
              entity: sensor.mpd_repeat
              show_name: false
              show_state: false