Un bouton temporisé

Bonjour,

J’aurais besoin de commuter un actionneur ON-OFF, soit sur une durée ou consigne fonction des besoins (exemple 1, 2, 3h ou 3 à 9A). Voilà ce que j’avais précédemment sur Domoticz :

J’ai un petit peu cherché, j’ai trouvé des trucs qui fonctionnent, mais qui sont compliqués et moches :slight_smile:

J’aimerais savoir s’il existe une carte qui me faciliterait l’intégration de ce genre de choses.

Merci

Salut
A mon avis il faut passer par des entrées de type input number et une automatisation tu ne pourra pas faire juste avec un bouton ou alors ça vas vite devenir une usine à gaz

C’est un peu pour ça que j’ai posté ici…

Comme Dom je te conseil un input number
Pour ton chauffe eau ca donnerai qqc comme ça pour le rendu et le paramétrage
image

Salut

Sujet abordé là avec des solutions possible

1 « J'aime »

Dans HACS, il y a Simple Timer qui est comme son nom l’indique simple à utiliser:

2 « J'aime »

1) Créer un timer

Ne pas spécifier de délai. Cocher “Restaurer l’état et l’heure au démarrage de Home Assistant” pour éviter que le truc reste en marche pour l’éternité si il faut redémarrer HA.

2) Créer une automatisation

Trigger “Lorsque timer change d’état vers inactif” → couper le relais

Trigger “Lorsque timer change d’état depuis inactif” → activer le relais

Inutile de créer de multiples automatisations, il suffit de mettre tous les triggers en haut, leur donner des noms, en dessous mettre un Choice, “si l’automatisation a été trigger par le trigger_machin, faire ça.”

3) Créer une carte avec des boutons

Sur les boutons tu mets un call service qui met une durée dans le timer, il devient actif, l’automatisation active le relais, au bout du temps spécifié le timer expire, l’automatisation coupe le relais.

Tu peux mettre plusieurs boutons avec des durées différentes.

Tu peux afficher la durée restante du timer aussi.

À ma connaissance il n’est pas possible que le bouton précédemment cliqué reste dans une couleur qui indique son activation, mais bon ça n’a pas de sens ici puisque si tu cliques le bouton “1h” et que tu attends 30 min, il ne reste plus 1h ! Il vaut mieux afficher la durée restante.

Tu peux aussi mettre une durée dans le timer via une automatisation déclenchée par n’importe quoi. Par exemple j’ai un bouton à côté du sèche serviette : simple clic ou double clic → 1h ou 2h de sèche serviette activé. Simple clic si il est activé → désactiver. Tiens, je te mets le YAML

alias: RC Sèche serviette
description: ""
triggers:
  - domain: mqtt
    device_id: 63429f53fbec3ef47797aca23244a0c4
    type: action
    subtype: single
    trigger: device
    id: single
  - domain: mqtt
    device_id: 63429f53fbec3ef47797aca23244a0c4
    type: action
    subtype: double
    trigger: device
    id: double
  - trigger: state
    entity_id:
      - timer.timer_seche_serviettes
    to: idle
    id: timer_idle
  - trigger: state
    entity_id:
      - timer.timer_seche_serviettes
    from: idle
    id: timer_running
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - timer_idle
        sequence:
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: switch.tasmota_t4
      - conditions:
          - condition: trigger
            id:
              - timer_running
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.tasmota_t4
      - conditions:
          - condition: trigger
            id:
              - single
        sequence:
          - if:
              - condition: state
                entity_id: timer.timer_seche_serviettes
                state: active
            then:
              - sequence:
                  - action: timer.finish
                    metadata: {}
                    data: {}
                    target:
                      entity_id: timer.timer_seche_serviettes
            else:
              - action: timer.start
                metadata: {}
                data:
                  duration: "01:00:00"
                target:
                  entity_id: timer.timer_seche_serviettes
      - conditions:
          - condition: trigger
            id:
              - double
        sequence:
          - action: timer.start
            metadata: {}
            data:
              duration: "2:00:00"
            target:
              entity_id: timer.timer_seche_serviettes
mode: restart

Ah tiens phklrz a répondu en même temps, sympa cette carte !

@phklrz elle est sympa ta carte, tu peux donner le code Yaml correspondant à la carte que tu affiches pour m’aider à la configurer svp

Le mieux c’est que tu ailles voir directement sur https://github.com/ArikShemesh/ha-simple-timer

1 « J'aime »

c’est une card qu’il faut installer depuis HACS

edit : mais elle ne fait rien toute seule il faut la coupler a un timer et une automatisation

1 « J'aime »

Comment on crée un timer ?

dans paramètres > appareils et services puis en haut tu as entrées


puis tu ajoutes une entrée de type minuteur (timer)

1 « J'aime »

Si j’ai bien compris, ce timer que j’appel “tempo”, je peux l’utiliser pour différentes temporisations, à condition qu’elle ne soit pas utilisée en même temps. Sinon, il faut faire plusieurs timers avec un nom différent

oui c’est mieux d’en faire plusieurs sinon tu risque d’avoir des surprises

mais pour des petites durées tu peux juste mettre un delay dans tes automatisations

1 « J'aime »

Oui un timer peut faire différentes durées.

Par contre pour gérer plusieurs appareils avec une minuterie par appareil, qui peuvent avoir des durées différentes, il faut un timer par appareil.

Au redémarrage de HA, le delay dans une automatisation n’est pas sauvegardé donc l’automatisation qui était dans le delay s’arrête tout simplement. Par contre le timer est sauvé donc il reprend.

2 « J'aime »

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.

Merci pour le partage @phklrz , top la carte.
Bob

1 « J'aime »

et @btncrd a décrit un truc similaire a base de buton card ici: Recherche une carte/bouton selecteur - #14 par btncrd

Là encore on se base sur un input-select pour avoir une liste prédéfinie puis on l’utilise dans des automatisations ou des scripts…

1 « J'aime »

Moi, je fait ca en bubble-card, avec un select et un timer :

Plus d’info de comment mettre ça en place là : [JS+Editor Module] Timer Progress Bar · Clooos/Bubble-Card · Discussion #1655 · GitHub

1 « J'aime »

J’ai installé la carte “simple timer”, elle était en conflit avec une carte du même nom.

https://github.com/ArikShemesh/ha-simple-timer?tab=readme-ov-file

Sinon, elle est génialement simple à utiliser. !

1 « J'aime »