Un bouton temporisé

J’ai décrit un truc qui ressemble dans ce message: [Article] Un beau dashboard, tout simplement - #142 par BBE


Une carte pour envoyer de la musique sur un groupe d’enceinte (sans commande vocale sinon c’est pas drôle !) avec un look 100% core… c’est basé sur:

  • une carte tuile
  • une feature custom, disponible dans HACS
  • un input text (pour le texte à envoyer à Alexa) => c’est à dire un texte libre
  • un input select (pour le choix des groupes d’enceintes) => c’est à dire une liste pré-définie de textes
  • un script

image

Code de la carte
type: tile
features_position: bottom
vertical: false
entity: input_text.alexa_text_input
grid_options:
  columns: 12
  rows: 1
icon: mdi:play
icon_tap_action:
  action: perform-action
  perform_action: script.toggle
  target:
    entity_id: script.play_music_on_group
name: Quelle musique ?
features:
  - type: custom:service-call
    entries:
      - type: selector
        entity_id: input_select.groupes_d_enceintes
        options:
          - entity_id: input_select.groupes_d_enceintes
            option: Partout
            tap_action:
              action: perform-action
              perform_action: input_select.select_option
              data:
                option: Partout
              target:
                entity_id: input_select.groupes_d_enceintes
            label: Partout
            icon: ""
          - entity_id: input_select.groupes_d_enceintes
            option: Salon et cuisine
            tap_action:
              action: perform-action
              perform_action: input_select.select_option
              data:
                option: Salon et cuisine
              target:
                entity_id: input_select.groupes_d_enceintes
            label: Salon et cuisine
          - entity_id: input_select.groupes_d_enceintes
            option: Rez de chaussée
            tap_action:
              action: perform-action
              perform_action: input_select.select_option
              data:
                option: Rez de chaussée
              target:
                entity_id: input_select.groupes_d_enceintes
            label: Rez de Chaussée
          - entity_id: input_select.groupes_d_enceintes
            option: Etage
            tap_action:
              action: perform-action
              perform_action: input_select.select_option
              data:
                option: Etage
              target:
                entity_id: input_select.groupes_d_enceintes
            label: Etage

J’utilise un input text (via le pop up more info pour le modifier en cliquant sur la carte en dehors de l’icone et des groupes).
J’ai aussi un input-select qui permet de choisir le bon groupe d’enceinte (via une custom-feature pour un look tout en un)

On l’utilise en 3 clics: 1 clic pour modifier l’input-text, puis 1 clic de selection du groupe, puis 1 clic sur l’icone “play”.
Ca lance un script script.play_music_on_group qui lance la commande custom à Alexa: “Joue (input_text) sur le groupe (input_select)”.

code du script
alias: play music on group
sequence:
  - action: media_player.play_media
    data:
      media:
        media_content_id: >-
          joue {{ states('input_text.alexa_text_input')}} sur le groupe {{
          states('input_select.groupes_d_enceintes')}}
        media_content_type: custom
        metadata: {}
    target:
      entity_id: media_player.echo_jeanne
mode: single
icon: mdi:music

A toi d’adapter le concept avec tes propres input select (durée ou consigne) et tes propres scripts.

L’avantage d’un input-select (ou “Entrée” de type "Liste déroulante”) sur un input-number c’est que tu défini à l’avance les valeurs que tu veux que la variable prenne.

Ce mode de fonctionnement avec input-select et script n’est absolument pas incompatible de l’utilisation d’un timer comme dit plus haut.

On peut tout à fait créer un script qui lance une action et un timer pour x minute (x étant communiqué au script via la valeur d’un input-select). Déclenché soit dans une automatisation, soit directement via un bouton du dashboard.
Il faut juste avoir une automatisation qui lorsque le timer se termine, arrête les actions lancées par le script.