Zigbee2MQTT - PTM215Z/ZE and PTM216Z

Those two blueprints will allow you to use any PTM21xZ/ZE controller with Zigbee2MQTT

There are two different versions of the blueprint available and both will receive updates. The second version (v2) aims to enable the repeat function which may ease the dimming when using some Home Assistant commands.
If you are using lights with Zigbee2mqtt only, I would recommend to use the standard version with the correct examples below for the dimming.

:arrow_forward: PTM216Z
When using the PTM216Z alone or in combination with the PTM215Z/ZE , a basic text helper must be created. The helper is mainly used to store the last command and simulate a hold / release action. This is a need as the PTM216Z always send a release command whatever which button is pressed. (press_1 → release, press_2 → release, …)

:warning::warning::warning:
For users who are going to update from the older blueprints, please read the HOW TO UPGRADE section.

:warning::warning::warning:

Home Assistant must run version 2024.10.x minimum in order to use those blueprints.

Tested on Z2M versions 1.x and 2.x.

CHANGELOG

2025.04.09

Code optimization and clean up (already)…

2025.12.13

Update button action descriptions

DOWNLOAD

Standard version:

Second version (v2):

:warning: :warning: :warning:

elapsed has to be enabled in Zigbee2mqtt. Go to Settings → Advanced

HOW TO UPGRADE

  1. Import the blueprint
  2. Open your automation based on the older version
    2.1 Edit in YAML
    PTM215Z/ZE
    2.2.1. Update line 4 from path: path: Chris/PTM_215Z_ZE.yaml to path: path: Chris/PTM_21xZ_ZE.yaml
    PTM216Z
    2.2.2. Update line 4 from path: path: Chris/PTM_216Z.yaml to path: path: Chris/PTM_21xZ_ZE.yaml

EXAMPLES

Here, some examples how to use those blueprints especially for the dimming commands.

Work in both versions:

    button_1_held:
      - action: mqtt.publish
        data:
          qos: "0"
          retain: false
          topic: zigbee2mqtt/friendly_name/set
          payload: "{\"brightness_move\": 50}"
        enabled: true
    button_1_released:
      - action: mqtt.publish
        data:
          qos: "0"
          retain: false
          topic: zigbee2mqtt/friendly_name/set
          payload: "{\"brightness_move\": \"stop\"}"
        enabled: true

Work in v2 only:

    button_1_held:
      - repeat:
          count: 15
          sequence:
            - action: light.turn_on
              metadata: {}
              data:
                brightness_step: -25
                transition: 1
              target:
                entity_id: light.my_light
            - delay:
                milliseconds: 500
2 Likes