Zigbee2mqtt passage en version 2.0.0 ( archive )

Hello
Pour mes deux boutons aqara [WXKG11LM] qui fonctionnait avec un blueprint j’ai récupére ce script qui semble t il aux dire de son auteur est compatble avec Z3mqtt V2.0
https://community.home-assistant.io/t/aqara-xiaomi-wireless-mini-switch-wxkg11lm/785944

je voudrais l’essayer mais je ne sais pas comment integrer ce fichier en blueprint…

merci pour le coup de main

blueprint:
  name: Xiaomi WXKG11LM Aqara Wireless Switch Mini
  description:
    "Tested with Xiaomi WXKG11LM Aqara Wireless Switch Mini.\n\nController
    automation for executing any kind of action triggered by the provided Xiaomi WXKG11LM
    Aqara Wireless Switch Mini.
    \n\n You can have different actions on short press, long press, release and double press. \n\n
    Make sure to manually create a separate Text Helper per dimmer
    device and define its entity in the automation. It's used to store the last controller
    event to filter possible empty events. "
  domain: automation
  input:
    mqtt_topic:
      name: MQTT Topic
      description: Topic of the Xiaomi WXKG11LM
      default: zigbee2mqtt/<device name>
    helper_last_controller_event:
      name: (Required) Helper - Last Controller Event
      description:
        Input Text used to store the last event fired by the controller.
        You will need to manually create a text input Helper entity for this.
      default: ""
      selector:
        entity:
          domain:
            - input_text
          multiple: false
    short:
      name: SHORT button press
      description: Action to run
      default: []
      selector:
        action: {}
    long:
      name: LONG button press
      description: Action to run
      default: []
      selector:
        action: {}
    release:
      name: RELEASE of button
      description: Action to run
      default: []
      selector:
        action: {}
    double:
      name: DOUBLE button press
      description: Action to run
      default: []
      selector:
        action: {}
mode: queued
max_exceeded: silent
trigger:
  - platform: mqtt
    topic: !input mqtt_topic
condition:
  - condition: template
    value_template: "{{ trigger.payload_json.action != '' }}"
action:
  - variables:
      helper_last_controller_event: !input helper_last_controller_event
      command: "{{ trigger.payload_json.action }}"
      prev_command: "{{ states(helper_last_controller_event) }}"
  - service: input_text.set_value
    data:
      entity_id: !input helper_last_controller_event
      value: "{{ command }}"
  - choose:
      - conditions:
          - '{{ command == "single" }}'
        sequence: !input short
      - conditions:
          - '{{ command == "hold" }}'
        sequence: !input long
      - conditions:
          - '{{ command == "release" }}'
        sequence: !input release
      - conditions:
          - '{{ command == "double" }}'
        sequence: !input double

Peut-être en cliquant sur le gros bouton bleu dans la page du lien que tu as fournit :man_shrugging:


Il te faudra créer un input_text.
Sinon, voici le mien en automation :

alias: Remote - BP Rond - WXKG01LM - MQTT
description: Avec triggers MQTT
triggers:
  - trigger: mqtt
    topic: zigbee2mqtt/BP rond/action
conditions: []
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'single' }}"
        sequence:
          - action: switch.toggle
            metadata: {}
            data: {}
            target:
              entity_id: switch.galaxy_tab_a_2016_screen
        alias: single
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'double' }}"
        sequence: []
        alias: double
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'long' }}"
        sequence: []
        alias: long
mode: single
1 « J'aime »

le gros bouton bleu correspond au blueprint initail. 3 posts plus bas il y a une version proposée avec juste le fichier yaml et je sais pas comment en faire un bleprint

Pour le tien du coup pas besoin de blueprint, je fais juste une automation en remplacant pas mon bouton aqara si j’ai bien compris?
Merci

oui, tu change le nom dans le topic juste topic: zigbee2mqtt/BP rond/action tu change BP rond par le nom de ton bouton. Puis les actions a faire .

superbe
merci beaucoup. marche impec, meme avec l’interrupteur sonoff alors qu’avant je devais avoir 2 blueprint

y a plus qu’a preparer le fichier configuration.yaml…

On peut utiliser ces automations à adapter pour tous les boutons sous Z2m. Je viens d’en faire 4 différents assez facilement.
Il faut juste récupérer les actions possibles qui sont disponibles sur la page du device sous z2m en cliquant sur le lien du modèle de la page du device dans Z2M.
Pour ma part j’ai fini tous les préparatifs pour la version v2.0, tout est à false et tout fonctionne :grinning:

1 « J'aime »

par contre pour l’appui long j’ai change en « hold » sinon ca marchait pas…

Tu peux montrer ton configuration.yaml de Z2M ?

J’ai désactivé les options du menu de Z2M:

homeassistant:
  legacy_entity_attributes: false
  legacy_triggers: false
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: Thee8axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  keepalive: 60
  reject_unauthorized: true
  version: 4
  include_device_information: false
serial:
  port: >-
    /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_3ee8ee205d29ec1193366f7840c9ce8d-if00-port0
  adapter: zstack
frontend:
  port: 8099
advanced:
  homeassistant_legacy_entity_attributes: false
  legacy_api: false
  legacy_availability_payload: false
  log_level: info
device_options:
  legacy: false
permit_join: false
devices:
  - devices.yaml

Je suis sous docker mais voici ma configuration

mqtt:
  server: mqtt://192.168.1.50:1883
  base_topic: zigbee2mqtt
homeassistant: true
serial:
  port: /dev/ttyACM1
  adapter: ember
frontend:
  port: 8200
  host: 192.168.1.50
permit_join: false
advanced:
  homeassistant_legacy_entity_attributes: false
  homeassistant_legacy_triggers: false
  legacy_api: false
  legacy_availability_payload: false
  log_level: warning
device_options:
  legacy: false
devices:

Étonnant, car tu as un doublon :
Le premier est dans home assistant et advanced
Et le deuxième devrait plutôt être dans advanced

Je sais, mais les options, je les ai désactivées du menu et ça m’a configuré comme telle dans le configuration.yaml. Les options dans advanced, j’ai jamais rien touché .

Je les modifierai du configuration.yaml directement :wink:

idem,
image

et dans mon fichier de param :
image

tout est maintenant opérationnel.

Oups…

Je crois que j’ai du boulot…

Toutes mes télécommandes IKEA utilisent « Action » via des blueprints…

@BBE Si ça peut t’aider, voici pour une Ikea E2001/2002.

alias: Remote - Salon- IKEA - MQTT
description: Avec triggers MQTT
triggers:
  - trigger: mqtt
    topic: zigbee2mqtt/Remote spot salon/action
conditions: []
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'on' }}"
        sequence:
          - action: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: light.spots_salon
        alias: "On"
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'off' }}"
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.spots_salon
        alias: "Off"
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'brightness_move_up' }}"
          - condition: state
            entity_id: input_boolean.brightness_remote_ikea_salon
            state: "off"
        sequence:
          - action: input_boolean.turn_on
            data: {}
            target:
              entity_id: input_boolean.brightness_remote_ikea_salon
          - repeat:
              while:
                - condition: state
                  entity_id: input_boolean.brightness_remote_ikea_salon
                  state: "on"
              sequence:
                - device_id: 25dee4ad805532acb1ab33441f72bd56
                  domain: light
                  entity_id: light.spots_salon
                  type: brightness_increase
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 1
                    milliseconds: 0
          - action: input_boolean.turn_off
            data: {}
            target:
              entity_id: input_boolean.brightness_remote_ikea_salon
        alias: brightness_move_up
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'brightness_move_down' }}"
          - condition: state
            entity_id: input_boolean.brightness_remote_ikea_salon
            state: "off"
        sequence:
          - action: input_boolean.turn_on
            data: {}
            target:
              entity_id: input_boolean.brightness_remote_ikea_salon
          - repeat:
              while:
                - condition: state
                  entity_id: input_boolean.brightness_remote_ikea_salon
                  state: "on"
              sequence:
                - device_id: 25dee4ad805532acb1ab33441f72bd56
                  domain: light
                  entity_id: light.spots_salon
                  type: brightness_decrease
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 1
                    milliseconds: 0
          - action: input_boolean.turn_off
            data: {}
            target:
              entity_id: input_boolean.brightness_remote_ikea_salon
        alias: brightness_move_down
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'brightness_stop' }}"
        sequence: []
        alias: brightness_stop
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'arrow_left_click' }}"
        sequence:
          - choose:
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot1
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot123
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot123
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot23
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot23
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot13
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot13
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot12
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot12
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot3
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot3
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot2
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot2
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot1
        alias: arrow_left_click
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'arrow_left_hold' }}"
        sequence: []
        alias: arrow_left_hold
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'arrow_left_release' }}"
        sequence: []
        alias: arrow_left_release
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'arrow_right_click' }}"
        sequence:
          - choose:
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot1
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot2
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot2
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot3
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot3
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot12
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot12
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot13
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot13
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot23
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot23
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot123
              - conditions:
                  - condition: state
                    entity_id: input_select.ambiance_spot_salon
                    state: Spot123
                sequence:
                  - action: input_select.select_option
                    target:
                      entity_id:
                        - input_select.ambiance_spot_salon
                    data:
                      option: Spot1
        alias: arrow_right_click
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'arrow_right_hold' }}"
        sequence: []
        alias: arrow_right_hold
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'arrow_right_release' }}"
        sequence: []
        alias: arrow_right_release
mode: single

Pour stopper le mode brightness, il en faut une indépendante pour stopper la boucle. Il faut créer un input_boolean

alias: Remote - Salon - IKEA - Stop brightness
description: Avec triggers MQTT
triggers:
  - trigger: mqtt
    topic: zigbee2mqtt/Remote spot salon/action
conditions: []
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.payload == 'brightness_stop' }}"
        sequence:
          - action: input_boolean.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.brightness_remote_ikea_salon

J’en ai une 3eme associée aux commandes left et right click pour gérer les actions selon un input_select qui sélectionne mes 3 spots que je veux allumer ou éteindre

Top …

Perso je n’ai que des ON/OFF :
Tradfri E1743
Rodret E2201

Mais j’en ai huit en tout et avec prise en compte des simple appui, double appui et appuis longs et des scénario différents sur chaque cas via des blueprints

Tu te fais une automatisation type comme ici https://forum.hacf.fr/t/zigbee2mqtt-passage-en-version-2-0-0/52656/82 en récupérant les actions de tes 2 types de remote et tu dupliques en créant tes scénarios.
Ca va assez vite.

La subtilité c’est que le double appui n’existe pas sur ces télécommandes, c’est le blueprint qui le « crée » en stockant la valeur « d’action » dans un input text dédié…

Je vais laisser reposer un peu pour voir si des blueprints équivalents sortent, j’ai déjà trop de trucs sur le feu…

Z2M risque de rester en V1 longtemps…

1 « J'aime »

Moi j’ai ca dans le configuration.yaml site comme d’habitude en

homeassistant: true
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: sailaqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
serial:
  port: /dev/ttyACM0
  adapter: deconz
frontend:
  port: 8099
devices:
  '0x60a423fffe11acfd':
    friendly_name: Prise tancheuse
  '0x00124b0024c10223':
    friendly_name: prise_cafetiere
  '0x00124b00226747be':
etc etc etc....
advanced:
  log_level: debug

Si je rajoute les lignes proposées ca va rien planter par contre le jour, lointain ou je passe en v2 je serai pret c’est ca?

advanced:
  homeassistant_legacy_entity_attributes: false
  homeassistant_legacy_triggers: false
  legacy_api: false
  legacy_availability_payload: false
device_options:
  legacy: false

Vous êtes passé en 1.42.0-2 ? je suis toujours en 1.41.0-1 certains disent avoir tout perdu en passant, et y’a cette histoire de migration de dossier aussi

Je suis en 1.42.0 aucun soucis à la mise à jour, sans rien faire…