HA : Ajouter des boutons volume +/-

Volumio c’est top, mais il faut ajouter des boutons volume sur Home Assistant (HA).
Si comme moi vous utilisez volumio pour votre serveur audio, vous avez certainement déjà intégrer Volumio à votre interface favorite. Mais l’intégration de base est très basique, on peut (en un clic) avancer au morceau suivant, faire pause, revenir en arrière et… c’est tout. Il manque les boutons pour gérer le volume !
Si j’ai zappé un truc dites le moi, j’ai pas trouver autrement que d’utiliser l’API de volumio pour changer le volume.

Volumio dans un navigateur web :

Ajout bouton volume home assistant

C’est très complet, intuitif, j’ai pas trouvé mieux.

Volumio dans Home Assistant :

Ajout bouton volume home assistant

Voila, c’est basic….

Ajouter des boutons volume

On va commencer par créer 2 sripts qui vont appeler l’API de volumio. (fichier scripts.yaml)

volumio_volume_up:
  alias: Volumio Volume Up
  mode: single
  sequence:
    - service: rest_command.volumio_volume_up
  description: ""
volumio_volume_down:
  alias: Volumio Volume Down
  mode: single
  sequence:
    - service: rest_command.volumio_volume_down
  description: ""

Ainsi que 2 commandes REST (fichier configuration.yaml) :

rest_command:
  volumio_volume_up:
    url: "http://volumio.local/api/v1/commands/?cmd=volume&volume=plus"
    method: GET
  volumio_volume_down:
    url: "http://volumio.local/api/v1/commands/?cmd=volume&volume=minus"
    method: GET

La liste des API disponibles sont ici : https://developers.volumio.com/api/rest-api

On peut y lire : where volume can be: mute, unmute, plus, minus (plus and minus will increase\decrease as per parameter one click volume steps)
Donc la syntaxe pour augmenter le volume est : « http://volumio.local/api/v1/commands/?cmd=volume&volume=plus »

Ensuite on va créer deux boutons alignés horizontalement :

type: horizontal-stack
cards:
  - show_name: true
    show_icon: true
    
    type: button
    icon: mdi:volume-minus
    tap_action:
      action: call-service
      service: script.turn_on
      target:
        entity_id: script.volumio_volume_down
    
  - type: button
    icon: mdi:volume-plus
    tap_action:
      action: call-service
      service: script.turn_on
      target:
        entity_id: script.volumio_volume_up
    

Ce qui nous donne :

Ajout bouton volume home assistant

Et sur le téléphone :

Ajout bouton volume home assistant

C’est quand même plus pratique !

Alors quitte à faire les choses bien, on va ajouter un comportement. Je veux agmenter le volume de +10 quand je maintient le bouton appuyé quelques secondes.

Et la home assistant est incroyable. C’est possible.

On ajoute 2 scripts qui vont appeler plusieurs fois notre requête API.
En effet, l’API de volumio ne permet pas de demander +10 directement.
Donc on va faire 5 fois une augmentation par défaut (2)

Notons que l’augmentation par défaut est configurable dans volumio. A vous d’adapter si vous faites des +1,+5 par defaut.

Script à ajouter :

volumio_volume_up_fast:
  alias: Volumio Volume Up fast
  mode: single
  sequence:
    - repeat:
        count: 5
        sequence:
          - service: rest_command.volumio_volume_up
  description: ""
volumio_volume_down_fast:
  alias: Volumio volume Down fast
  mode: single
  sequence:
    - repeat:
        count: 5
        sequence:
          - service: rest_command.volumio_volume_down
  description: ""

Et on va ajouter l’action holdon à nos boutons :
Voici le script complet :

type: horizontal-stack
cards:
  - show_name: true
    show_icon: true
    type: button
    icon: mdi:volume-minus
    tap_action:
      action: call-service
      service: script.turn_on
      target:
        entity_id: script.volumio_volume_down
    hold_action:
      action: call-service
      service: script.turn_on
      target:
        entity_id: script.volumio_volume_down_fast
  - type: button
    icon: mdi:volume-plus
    tap_action:
      action: call-service
      service: script.turn_on
      target:
        entity_id: script.volumio_volume_up
    hold_action:
      action: call-service
      service: script.turn_on
      target:
        entity_id: script.volumio_volume_up_fast

Et voila !


Cet article vous a plu ? Partagez-le 😉



Ceci pourrait vous intéresser :

Leave a Comment