[Solved] Xiaomi Cube to start and pauze Volumio

I have a Xiaomi Cube and want to use the attribute ‘tap twice’ to start my Volumio player or to pause my Volumio player.

I use this YAML code. Is this possible at all?

  - alias: Kubus gebeurtenis tik twee keer
    trigger:
      platform: event
      event_type: cube_action
      event_data:
        entity_id: binary_sensor.cube_158d0001041de0
        action_type: tap_twice
    action:
      - service: media_player.media_play
        entity_id: media_player.volumio_home_audio
        data_template: >
          {% if is_state('media_player.voluion_home_audio', 'paused') %}
            { set state = states.media_player.volumio_home_audio.state = 'playing' }
          {% else %}
            { set state = states.media_player.volumio_home_audio.state = 'paused' }
          {% endif %}

MPD takes a play / pause option which might work too, so:

  - alias: Kubus gebeurtenis tik twee keer
    trigger:
      platform: event
      event_type: cube_action
      event_data:
        entity_id: binary_sensor.cube_158d0001041de0
        action_type: tap_twice
    action:
      - service: media_player.media_play_pause
        entity_id: media_player.volumio_home_audio

Or else you could use a service_template:

  - alias: Kubus gebeurtenis tik twee keer
    trigger:
      platform: event
      event_type: cube_action
      event_data:
        entity_id: binary_sensor.cube_158d0001041de0
        action_type: tap_twice
    action:
      - service_template: > 
          {% if is_state('media_player.voluion_home_audio', 'paused') %} media_player.media_play
          {% elif is_state('media_player.voluion_home_audio', 'playing') %} media_player.media_pauze
          {% endif %}
        entity_id: media_player.volumio_home_audio

This worked. Thanks.

Hi Bob, this didn’t work. I got this in the log:

2018-03-07 19:29:17 ERROR (MainThread) [homeassistant.helpers.service] Template rendered invalid service:

oops, typo :slight_smile:

          {% elif is_state('media_player.voluion_home_audio', 'playing') %} media_player.media_pauze

Should be pause instead of pauze:

          {% elif is_state('media_player.voluion_home_audio', 'playing') %} media_player.media_pause