Z2M Yifan 4 button switch

Blueprint for the new YIFAN 4 button switch.

Supported actions for each button:

  • Short press
  • Double press
  • Long press (3 seconds)

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

blueprint:
  name: Zigbee2MQTT - Yifan 4 button switch
  description: Automate your Yifan 4 button swtich via Zigbee2MQTT.
  domain: automation
  input:
    switch:
      name: Yifan 4 button switch
      description: Yifan 4 button switch
      selector:
        entity:
          integration: mqtt
          domain: sensor
    button_one_short_press:
      name: Single Press - Button 1
      description: Action to run on button 1 (lower-left) single press
      default: []
      selector:
        action: {}
    button_one_double_press:
      name: Double Press - Button 1
      description: Action to run on button 1 (lower-left) double press
      default: []
      selector:
        action: {}
    button_one_long_press:
      name: Long Press - Button 1
      description: Action to run on button 1 (lower-left) long press
      default: []
      selector:
        action: {}
    button_two_short_press:
      name: Single Press - Button 2
      description: Action to run on button 2 (lower-right) single press
      default: []
      selector:
        action: {}
    button_two_double_press:
      name: Double Press - Button 2
      description: Action to run on button 2 (lower-right) double press
      default: []
      selector:
        action: {}
    button_two_long_press:
      name: Long Press - Button 2
      description: Action to run on button 2 (lower-right) long press
      default: []
      selector:
        action: {}
    button_three_short_press:
      name: Single Press - Button 3
      description: Action to run on button 3 (upper-right) single press
      default: []
      selector:
        action: {}
    button_three_double_press:
      name: Double Press - Button 3
      description: Action to run on button 3 (upper-right) double press
      default: []
      selector:
        action: {}
    button_three_long_press:
      name: Long Press - Button 3
      description: Action to run on button 3 (upper-right) long press
      default: []
      selector:
        action: {}
    button_four_short_press:
      name: Single Press - Button 4
      description: Action to run on button 4 (upper-left) single press
      default: []
      selector:
        action: {}
    button_four_double_press:
      name: Double Press - Button 4
      description: Action to run on button 4 (upper-left) double press
      default: []
      selector:
        action: {}
    button_four_long_press:
      name: Long Press - Button 4
      description: Action to run on button 4 (upper-left) long press
      default: []
      selector:
        action: {}
  source_url: https://gist.github.com/ganastor/11fab38c6ef8f9e1657c7f6955faeafd
mode: restart
max_exceeded: silent
trigger:
- platform: state
  entity_id: !input "switch"
action:
- variables:
    command: "{{ trigger.to_state.state }}"
- choose:
  - conditions: 
    - "{{ command == '1_single' }}"
    sequence: !input "button_one_short_press"
  - conditions: 
    - "{{ command == '2_single' }}"
    sequence: !input "button_two_short_press"
  - conditions: 
    - "{{ command == '3_single' }}"
    sequence: !input "button_three_short_press"
  - conditions: 
    - "{{ command == '4_single' }}"
    sequence: !input "button_four_short_press"
  - conditions: 
    - "{{ command == '1_double' }}"
    sequence: !input "button_one_double_press"
  - conditions: 
    - "{{ command == '2_double' }}"
    sequence: !input "button_two_double_press"
  - conditions: 
    - "{{ command == '3_double' }}"
    sequence: !input "button_three_double_press"
  - conditions: 
    - "{{ command == '4_double' }}"
    sequence: !input "button_four_double_press"
  - conditions: 
    - "{{ command == '1_hold' }}"
    sequence: !input "button_one_long_press"
  - conditions: 
    - "{{ command == '2_hold' }}"
    sequence: !input "button_two_long_press"
  - conditions: 
    - "{{ command == '3_hold' }}"
    sequence: !input "button_three_long_press"
  - conditions: 
    - "{{ command == '4_hold' }}"
    sequence: !input "button_four_long_press"