Hue Tap Dial missing Action Entity (via Zigbee2MQTT)

I added a Hue Tap Dial to Zigbee2MQTT and everything looks good. It can record dial and button events. It was discovered by Home Assistant and most entities were created, but the “Action” entity that identifies the button actions was not created.

I can see that the button_1_press action is sent, but I’m not sure why it isn’t seen by Home Assistant.

Any pointers?

In Zigbee2MQTT:

{
    "action_direction": null,
    "action_step_size": null,
    "action_time": null,
    "action_type": null,
    "battery": 100,
    "brightness": null,
    "device": {
        "applicationVersion": 2,
        "dateCode": "20220719",
        "friendlyName": "Tap Dial Switch",
        "hardwareVersion": 1,
        "ieeeAddr": "0x001788010dd12c55",
        "manufacturerID": 4107,
        "manufacturerName": "Signify Netherlands B.V.",
        "model": "8719514440937/8719514440999",
        "networkAddress": 10846,
        "powerSource": "Battery",
        "softwareBuildID": "2.59.25",
        "stackVersion": 1,
        "type": "EndDevice",
        "zclVersion": 8
    },
    "last_seen": "2024-07-18T14:57:58.141Z",
    "linkquality": 117,
    "update": {
        "installed_version": 33569561,
        "latest_version": 33569561,
        "state": "idle"
    },
    "update_available": null,
    "action": "button_1_press_release",
    "action_transition_time": 0.04
}

Listening to a button press using mosquitto_sub:

Client null received PUBLISH (d0, q0, r0, m0, 'zigbee2mqtt/Tap Dial Switch', ... (680 bytes))
{"action":"button_1_press","action_direction":null,"action_step_size":null,"action_time":null,"action_type":null,"battery":100,"brightness":null,"device":{"applicationVersion":2,"dateCode":"20220719","friendlyName":"Tap Dial Switch","hardwareVersion":1,"ieeeAddr":"0x001788010dd12c55","manufacturerID":4107,"manufacturerName":"Signify Netherlands B.V.","model":"8719514440937/8719514440999","networkAddress":10846,"powerSource":"Battery","softwareBuildID":"2.59.25","stackVersion":1,"type":"EndDevice","zclVersion":8},"last_seen":"2024-07-18T15:25:19.776Z","linkquality":120,"update":{"installed_version":33569561,"latest_version":33569561,"state":"idle"},"update_available":null}
Client null received PUBLISH (d0, q0, r0, m0, 'zigbee2mqtt/Tap Dial Switch', ... (688 bytes))

Home Assistant device MQTT Info:

Entities
Tap Dial Switch Battery (sensor.tap_dial_switch_battery)
MQTT discovery data:
Topic: homeassistant/sensor/0x001788010dd12c55/battery/config
Payload
Subscribed topics:
zigbee2mqtt/bridge/state
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch/availability
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch
3 most recently received message(s)
Transmitted messages:
Tap Dial Switch Action direction (sensor.tap_dial_switch_action_direction)
MQTT discovery data:
Topic: homeassistant/sensor/0x001788010dd12c55/action_direction/config
Payload
Subscribed topics:
zigbee2mqtt/bridge/state
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch/availability
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch
3 most recently received message(s)
Transmitted messages:
Tap Dial Switch Action type (sensor.tap_dial_switch_action_type)
MQTT discovery data:
Topic: homeassistant/sensor/0x001788010dd12c55/action_type/config
Payload
Subscribed topics:
zigbee2mqtt/bridge/state
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch/availability
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch
3 most recently received message(s)
Transmitted messages:
Tap Dial Switch Action time (sensor.tap_dial_switch_action_time)
MQTT discovery data:
Topic: homeassistant/sensor/0x001788010dd12c55/action_time/config
Payload
Subscribed topics:
zigbee2mqtt/bridge/state
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch/availability
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch
3 most recently received message(s)
Transmitted messages:
Tap Dial Switch Brightness (sensor.tap_dial_switch_brightness)
MQTT discovery data:
Topic: homeassistant/sensor/0x001788010dd12c55/brightness/config
Payload
Subscribed topics:
zigbee2mqtt/bridge/state
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch/availability
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch
3 most recently received message(s)
Transmitted messages:
Tap Dial Switch Action step size (sensor.tap_dial_switch_action_step_size)
MQTT discovery data:
Topic: homeassistant/sensor/0x001788010dd12c55/action_step_size/config
Payload
Subscribed topics:
zigbee2mqtt/bridge/state
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch/availability
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch
3 most recently received message(s)
Transmitted messages:
Tap Dial Switch (update.tap_dial_switch)
MQTT discovery data:
Topic: homeassistant/update/0x001788010dd12c55/update/config
Payload
Subscribed topics:
zigbee2mqtt/bridge/state
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch/availability
1 most recently received message(s)
zigbee2mqtt/Tap Dial Switch
3 most recently received message(s)
Transmitted messages:
Triggers
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_brightness_step_down/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_brightness_step_up/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_button_1_press/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_button_1_press_release/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_button_2_press/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_button_2_press_release/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_button_3_press/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_button_3_press_release/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_button_4_press/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_button_4_press_release/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_dial_rotate_left_fast/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_dial_rotate_left_slow/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_dial_rotate_left_step/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_dial_rotate_right_fast/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_dial_rotate_right_slow/config
Payload
MQTT discovery data:
Topic: homeassistant/device_automation/0x001788010dd12c55/action_dial_rotate_right_step/config
Payload

Z2M seems to be depreciating the action entity and implementing MQTT device triggers instead.

Go back to your Home Assistant device MQTT Info, the last subheading is Triggers.
Open the payload.
There you can find your topic (probably something like zigbee2mqtt/Tap Dial Switch/action) and the payload (most likely action_brightness_step_down, for the first).

Then in your automation config add the trigger:

platform: mqtt
topic: zigbee2mqtt/Tap Dial Switch/action
payload: action_brightness_step_down

You can find the docs here: MQTT Device trigger - Home Assistant

I hope this helps.
- Ingrid

Thanks, Ingrid.

There are no triggers, unfortunately.

Triggers
      No triggers

However, I still see the ‘action’ events via mosquitto_sub.

There seem to be a few issues against Zigbee2MQTT related to actions, like this one: Missing Device Actions in HA · Issue #22506 · Koenkk/zigbee2mqtt · GitHub.

I can’t reconcile why I can see the actions via mosquitto_sub though.

Hi Robert,
The only thing that I can think of is manually force HA to discover the action entity. Do you have a second device that does have the action entity? Then you can copy, otherwise it will take some guessing/trial-error work.
- Ingrid