Gestion d'une télécommande Zigbee

Bonjour à tous.

Je débute dans la programmation sur Home Assistant et je cherche à gérer toutes les possibilités de ma télécommande Zigbee en un seul script.

La télécommande possède 4 boutons qui peuvent gérer :

  • Clic simple
  • Double clic
  • Appui long
    Ce qui me donne 12 possibilités.

Sur mon ancienne box domotique (DomoticZ), je pouvais avec un seul script gérer toutes les possibilités en donnant comme déclencheur « Telecommande_Salon ».

Est-ce que c’est possible de faire la même chose avec HA?

Actuellement, je ne gère que les appuis simple ce qui me donne (déjà) 4 scripts.
Est possible de dire (en gros) :
Déclencheur : Telecommande_Salon (sans spécifier quelle action)

Gestion des conditions :
Si appui simple sur bouton 1 alors → action
Si appui simple sur bouton 2 alors → action
etc…

Je n’ai pas besoin d’un code tout fait (du moins pour le moment), mais au moins de savoir si c’est faisable et à la rigueur un lien qui donne une piste pour le faire.
Je n’ai rien trouvé pour le moment et j’aimerais comprendre afin d’avancer « seul » pour pouvoir évoluer.

Ma configuration


System Information

version core-2023.11.2
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.59
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.33.0
Stage running
Available Repositories 1338
Downloaded Repositories 6
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 11.1
update_channel stable
supervisor_version supervisor-2023.11.3
agent_version 1.6.0
docker_version 24.0.6
disk_total 30.8 GB
disk_used 7.1 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons File editor (5.7.0), ESPHome (2023.11.2), Advanced SSH & Web Terminal (16.0.1)
Dashboards
dashboards 2
resources 3
views 6
mode storage
Recorder
oldest_recorder_run 12 novembre 2023 à 08:20
current_recorder_run 13 novembre 2023 à 13:29
estimated_db_size 53.02 MiB
database_engine sqlite
database_version 3.41.2
___

Merci d’avance pour votre aide.

Bonsoir,

Tu peux le faire depuis l’interface graphique directement :

Bonjour,
tu peux effectivement créer un automatisme, en mettant chaque clic en déclencheur et affectant un ID à chaque déclencheur.
tu peux créer de actions avec si alors ou choisir avec option (style select case). tu fais référence à ton ID puis tu mets tes actions associées.

un exemple que j’utilise pour mes volets (simple clic) mais l’idée reste la même :

alias: Volets Télécommande Tuya + boutons lovelace
description: y compris gestion volets lovelace
trigger:
  - platform: device
    domain: mqtt
    device_id: c8d66cf9d829af102ee00afa150b85d8
    type: action
    subtype: 1_single
    discovery_id: 0xa4c138a70a3dabdf action_1_single
    id: "Téléc: ouv RDC"
  - platform: device
    domain: mqtt
    device_id: c8d66cf9d829af102ee00afa150b85d8
    type: action
    subtype: 2_single
    discovery_id: 0xa4c138a70a3dabdf action_2_single
    id: "Téléc: ouv étage"
  - platform: device
    domain: mqtt
    device_id: c8d66cf9d829af102ee00afa150b85d8
    type: action
    subtype: 3_single
    discovery_id: 0xa4c138a70a3dabdf action_3_single
    id: "Téléc: ouv tout"
  - platform: device
    domain: mqtt
    device_id: c8d66cf9d829af102ee00afa150b85d8
    type: action
    subtype: 4_single
    discovery_id: 0xa4c138a70a3dabdf action_4_single
    id: "Téléc: ferm tout"
  - platform: state
    entity_id:
      - input_button.ouverture_volets_rdc
    id: "bouton: ouv RDC"
  - platform: state
    entity_id:
      - input_button.ouverture_volets_etage
    id: "bouton: ouv Etage"
  - platform: state
    entity_id:
      - input_button.ouverture_tous_les_volets
    id: "bouton: ouv tout"
  - platform: state
    entity_id:
      - input_button.fermeture_tous_les_volets
    id: "bouton: Ferm tout"
condition: []
action:
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id: "Téléc: ouv RDC"
          - condition: trigger
            id: "bouton: ouv RDC"
    then:
      - service: script.script_ouverture_volet_rdc_matin
        data: {}
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id: "Téléc: ouv étage"
          - condition: trigger
            id: "bouton: ouv Etage"
    then:
      - service: script.script_ouverture_etage
        data: {}
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id: "Téléc: ouv tout"
          - condition: trigger
            id: "bouton: ouv tout"
    then:
      - service: script.script_ouverture_tous_les_volets
        data: {}
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id: "Téléc: ferm tout"
          - condition: trigger
            id: "bouton: Ferm tout"
    then:
      - service: script.script_fermeture_tous_les_volets
        data: {}
mode: single


Parfait c’est exactement ce que je cherchais, je vais pouvoir réduire un peu le nombre de scripts :slight_smile:

Merci