Utilisation des params et des args dans les events Zha

Bonjour,

Mon problème

J’utilisa ZHA pour l’intégration de mon zigbee. Récement, j’ai voulu ajouter ce bouton rotatif : Tuya Zigequation-Joli à bouton intelligent sans fil, variateur rotatif, télécommande de liaison tournesol, appareils ménagers, scène de bricolage - AliExpress 44
Coté ZHA, c’est un TS400F _TZ3000_abrsvsou. J’ai cherché sur le net mais je n’ai pas réussi à trouver un Blueprint qui fonctionnait chez moi (impossible de voir le bouton dans la liste déroulante).

Je me suis donc lancé dans la création de l’automatisme pour gérer : allumage, augmentation et diminution de l’éclairage.

Quand on tourne le bouton, on obtient ceci coté « event » :

 event:
    event_type: zha_event
    data:
      device_ieee: a4:c1:38:3b:1c:bc:3e:97
      unique_id: a4:c1:38:3b:1c:bc:3e:97:1:0x0008
      device_id: 824f90ccee9e7eb983e4ec984c341934
      endpoint_id: 1
      cluster_id: 8
      command: step
      args:
        - 0
        - 109
        - 3
      params:
        step_mode: 0
        step_size: 109
        transition_time: 3
        options_mask: null
        options_override: null

Le sens de la rotation se gère avec « step_mode ».

Dans mon code, j’ai un « choose » pour gérer les différents modes.
Pour la rotation, j’utilise ceci :

      - conditions:
          - condition: template
            value_template: '{{ trigger.event.data.command == "step" }}'
          - condition: template
            value_template: '{{ trigger.event.data.params.step_mode == "0" }}'
        sequence:
          - service: light.turn_on
            data:
              entity_id: light.lampes_de_la_cuisine_lumiere
              brightness_step_pct: 10

Mais ça ne fonctionne pas. Je dois faire erreur quelque part mais je ne vois pas ou.
J’utilise rarement les arguments et les params dans mes automatismes donc ça doit venir de là, mais je ne sais pas ou. Si quelqu’un à une idée, je suis preneur.

Ma configuration


System Information

version core-2024.7.3
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 5.10.0-19-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 4982
Installed Version 2.0.0
Stage running
Available Repositories 1384
Downloaded Repositories 22
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 Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2024.08.0
agent_version 1.4.1
docker_version 23.0.1
disk_total 108.5 GB
disk_used 34.7 GB
healthy true
supported failed to load: Unsupported
host_connectivity null
supervisor_connectivity true
ntp_synchronized true
virtualization
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.2), File editor (5.8.0), Duck DNS (1.18.0), Home Assistant Google Drive Backup (0.112.1), AirCast (4.2.1), Mosquitto broker (6.4.1), Zigbee2mqtt (1.18.1-1), AdGuard Home (5.1.1), Terminal & SSH (9.14.0), Frigate (0.13.2), ESPHome (2024.8.0)
Dashboards
dashboards 3
resources 14
views 8
mode storage
Recorder
oldest_recorder_run 15 août 2024 à 03:30
current_recorder_run 23 août 2024 à 21:41
estimated_db_size 316.52 MiB
database_engine sqlite
database_version 3.45.3
Spotify
api_endpoint_reachable ok

Après, une demande sur le Discord officiel, j’ai eu une réponse que je vous partage si ça peut service.

La syntaxe :

value_template: '{{ trigger.event.data.params.step_mode == "0" }}'
Est bonne pour appeler ce « params », le problème venait juste du fait que le 0 était considéré comme un chiffre et non comme une chaine de caractère. Il faut donc utiliser ceci :
value_template: '{{ trigger.event.data.params.step_mode == 0 }}'

Voici l’automation complète si ça vous intéresse :

#Lumière de la cuisine
- id: Lumiere_cuisine_mngt
  alias: "Light : Toggle lumière de la cuisine"
  trigger:
    - platform: event
      event_type: zha_event
      event_data:
        device_ieee: 'a4:c1:38:3b:1c:bc:3e:97'
  action:
    - choose:
      - conditions:
          - condition: template
            value_template: '{{ trigger.event.data.command == "toggle" }}'
        sequence:
          - service: light.toggle
            data:
              entity_id: light.lampes_de_la_cuisine_lumiere
              brightness_pct: 70
      - conditions:
          - condition: template
            value_template: '{{ trigger.event.data.command == "step" }}'
          - condition: template
            value_template: '{{ trigger.event.data.params.step_mode == 1 }}'
        sequence:
          - service: light.turn_on
            data:
              entity_id: light.lampes_de_la_cuisine_lumiere
              brightness_step_pct: 10
      - conditions:
          - condition: template
            value_template: '{{ trigger.event.data.command == "step" }}'
          - condition: template
            value_template: '{{ trigger.event.data.params.step_mode == 0 }}'
        sequence:
          - service: light.turn_on
            data:
              entity_id: light.lampes_de_la_cuisine_lumiere
              brightness_step_pct: -10
  mode: single
1 « J'aime »

Bonjour,
Merci pour ton post, est-ce que vous précisez dans quel fichier on doit mettre ces lignes ? Tous dans un fichier ‹ Event › ou une partie dans configuration une autre ailleurs etc… désolé je débute et tout n’est pas trés clair pour moi encore malgrés pas mal de lecture…