media_player: - platform: media_player_template media_players: mpris_media_player: device_class: receiver friendly_name: MPRIS Media Player value_template: > {% set s = states('sensor.mpris_media_player') %} {{ s if s not in ['unavailable', 'unknown'] else None }} current_volume_template: "{{ state_attr('sensor.mpris_media_player', 'Volume') }}" current_is_muted_template: "{{ state_attr('sensor.mpris_media_player', 'VolumeMuted') }}" current_position_template: "{{ state_attr('sensor.mpris_media_player', 'MediaPosition') }}" title_template: "{{ state_attr('sensor.mpris_media_player', 'MediaTitle') }}" media_content_type_template: music # needed to show 'artist' media_duration_template: "{{ state_attr('sensor.mpris_media_player', 'MediaDuration') }}" album_template: "{{ state_attr('sensor.mpris_media_player', 'MediaAlbum') }}" artist_template: "{{ state_attr('sensor.mpris_media_player', 'MediaArtists') }}" # mpris:artUrl might contain a file:// schema. In these cases we rely on images published via MQTT media_image_url_template: >- {% set media_image_url = state_attr('sensor.mpris_media_player', 'MediaImageUrl') %} {% if media_image_url and media_image_url.startswith('file://') %} http://127.0.0.1:8123{{ state_attr('image.mpris_media_player_image', 'entity_picture') }} {% else %} {{ media_image_url }} {% endif %} turn_off: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"method": "Quit"} play: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"method": "Play"} pause: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"method": "Pause"} stop: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"method": "Stop"} next: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"method": "Next"} previous: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"method": "Previous"} seek: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > { "method": "SetPosition", "args": ["{{ state_attr('sensor.mpris_media_player', 'Metadata')['mpris:trackid'] }}", {{ (position * 1000000) | int }}] } set_volume: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"property": "Volume", "value": {{volume}} } volume_up: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"property": "Volume", "value": {{ [1, (state_attr('sensor.mpris_media_player', 'Volume') + 0.1)] | min }} } volume_down: service: mqtt.publish data: topic: dbus2mqtt/org.mpris.MediaPlayer2/command payload: > {"property": "Volume", "value": {{ [0, (state_attr('sensor.mpris_media_player', 'Volume') - 0.1)] | max }} }