OK, if the Channel isn’t even there I can say it’s not a universal problem. All of my Things which should have Action Channels do.
version: 1
things:
homeassistant:device:broker:zigbee2mqtt_5F0x282c02bfffe8f86f:
bridge: mqtt:broker:broker
label: Rich's Button
config:
topics:
- event/0x282c02bfffe8f86f/action
- sensor/0x282c02bfffe8f86f/battery
- sensor/0x282c02bfffe8f86f/linkquality
- update/0x282c02bfffe8f86f/update
basetopic: homeassistant
channels:
action:
type: trigger
label: Action
config:
component: event
nodeid: 0x282c02bfffe8f86f
objectid:
- action
config:
- "{\"availability\":[{\"topic\":\"zigbee2mqtt/bridge/state\",\"value_template\":\"{{ value_json.state }}\"},{\"topic\":\"zigbee2mqtt/Rich's Button/availability\",\"value_template\":\"{{ value_json.state }}\"}],\"availability_mode\":\"all\",\"default_entity_id\":\"event.rich's_button_action\",\"device\":{\"hw_version\":0,\"identifiers\":[\"zigbee2mqtt_0x282c02bfffe8f86f\"],\"manufacturer\":\"Third Reality\",\"model\":\"Smart button\",\"model_id\":\"3RSB22BZ\",\"name\":\"Rich's Button\",\"sw_version\":\"v1.00.28\",\"via_device\":\"zigbee2mqtt_bridge_0xc02cedfffee9b626\"},\"event_types\":[\"single\",\"double\",\"hold\",\"release\"],\"icon\":\"mdi:gesture-double-tap\",\"name\":\"Action\",\"object_id\":\"rich's_button_action\",\"origin\":{\"name\":\"Zigbee2MQTT\",\"sw\":\"2.12.1\",\"url\":\"https://www.zigbee2mqtt.io\"},\"state_topic\":\"zigbee2mqtt/Rich's Button\",\"unique_id\":\"0x282c02bfffe8f86f_action_zigbee2mqtt\",\"value_template\":\"{% set patterns = [\\n{\\\"pattern\\\": '^(?P<button>(?:button_)?[a-z0-9]+)_(?P<action>(?:press|hold)(?:_release)?)$', \\\"groups\\\": [\\\"button\\\", \\\"action\\\"]},\\n{\\\"pattern\\\": '^(?P<action>recall|scene)_(?P<scene>[0-2][0-9]{0,2})$', \\\"groups\\\": [\\\"action\\\", \\\"scene\\\"]},\\n{\\\"pattern\\\": '^(?P<actionPrefix>region_)(?P<region>[1-9]|10)_(?P<action>enter|leave|occupied|unoccupied)$', \\\"groups\\\": [\\\"actionPrefix\\\", \\\"region\\\", \\\"action\\\"]},\\n{\\\"pattern\\\": '^(?P<action>dial_rotate)_(?P<direction>left|right)_(?P<speed>step|slow|fast)$', \\\"groups\\\": [\\\"action\\\", \\\"direction\\\", \\\"speed\\\"]},\\n{\\\"pattern\\\": '^(?P<action>brightness_step)(?:_(?P<direction>up|down))?$', \\\"groups\\\": [\\\"action\\\", \\\"direction\\\"]}\\n] %}\\n{% set action_value = value_json.action|default('') %}\\n{% set ns = namespace(r=[('action', action_value)]) %}\\n{% for p in patterns %}\\n {% set m = action_value|regex_findall(p.pattern) %}\\n {% if m[0] is undefined %}{% continue %}{% endif %}\\n {% for key, value in zip(p.groups, m[0]) %}\\n {% set ns.r = ns.r|rejectattr(0, 'eq', key)|list + [(key, value)] %}\\n {% endfor %}\\n{% endfor %}\\n{% if (ns.r|selectattr(0, 'eq', 'actionPrefix')|first) is defined %}\\n {% set ns.r = ns.r|rejectattr(0, 'eq', 'action')|list + [('action', ns.r|selectattr(0, 'eq', 'actionPrefix')|map(attribute=1)|first + ns.r|selectattr(0, 'eq', 'action')|map(attribute=1)|first)] %}\\n{% endif %}\\n{% set ns.r = ns.r + [('event_type', ns.r|selectattr(0, 'eq', 'action')|map(attribute=1)|first)] %}\\n{{dict.from_keys(ns.r|rejectattr(0, 'in', ('action', 'actionPrefix'))|reject('eq', ('event_type', None))|reject('eq', ('event_type', '')))|to_json}}\"}"
linkquality:
type: number-advanced
label: Linkquality
config:
component: sensor
nodeid: 0x282c02bfffe8f86f
objectid:
- linkquality
config:
- "{\"availability\":[{\"topic\":\"zigbee2mqtt/bridge/state\",\"value_template\":\"{{ value_json.state }}\"},{\"topic\":\"zigbee2mqtt/Rich's Button/availability\",\"value_template\":\"{{ value_json.state }}\"}],\"availability_mode\":\"all\",\"default_entity_id\":\"sensor.rich's_button_linkquality\",\"device\":{\"hw_version\":0,\"identifiers\":[\"zigbee2mqtt_0x282c02bfffe8f86f\"],\"manufacturer\":\"Third Reality\",\"model\":\"Smart button\",\"model_id\":\"3RSB22BZ\",\"name\":\"Rich's Button\",\"sw_version\":\"v1.00.28\",\"via_device\":\"zigbee2mqtt_bridge_0xc02cedfffee9b626\"},\"enabled_by_default\":false,\"entity_category\":\"diagnostic\",\"icon\":\"mdi:signal\",\"name\":\"Linkquality\",\"object_id\":\"rich's_button_linkquality\",\"origin\":{\"name\":\"Zigbee2MQTT\",\"sw\":\"2.12.1\",\"url\":\"https://www.zigbee2mqtt.io\"},\"state_class\":\"measurement\",\"state_topic\":\"zigbee2mqtt/Rich's Button\",\"unique_id\":\"0x282c02bfffe8f86f_linkquality_zigbee2mqtt\",\"unit_of_measurement\":\"lqi\",\"value_template\":\"{{ value_json[\\\"linkquality\\\"] }}\"}"
battery:
type: number
label: MQTT Sensor
config:
component: sensor
nodeid: 0x282c02bfffe8f86f
objectid:
- battery
config:
- "{\"availability\":[{\"topic\":\"zigbee2mqtt/bridge/state\",\"value_template\":\"{{ value_json.state }}\"},{\"topic\":\"zigbee2mqtt/Rich's Button/availability\",\"value_template\":\"{{ value_json.state }}\"}],\"availability_mode\":\"all\",\"default_entity_id\":\"sensor.rich's_button_battery\",\"device\":{\"hw_version\":0,\"identifiers\":[\"zigbee2mqtt_0x282c02bfffe8f86f\"],\"manufacturer\":\"Third Reality\",\"model\":\"Smart button\",\"model_id\":\"3RSB22BZ\",\"name\":\"Rich's Button\",\"sw_version\":\"v1.00.28\",\"via_device\":\"zigbee2mqtt_bridge_0xc02cedfffee9b626\"},\"device_class\":\"battery\",\"enabled_by_default\":true,\"entity_category\":\"diagnostic\",\"object_id\":\"rich's_button_battery\",\"origin\":{\"name\":\"Zigbee2MQTT\",\"sw\":\"2.12.1\",\"url\":\"https://www.zigbee2mqtt.io\"},\"state_class\":\"measurement\",\"state_topic\":\"zigbee2mqtt/Rich's Button\",\"unique_id\":\"0x282c02bfffe8f86f_battery_zigbee2mqtt\",\"unit_of_measurement\":\"%\",\"value_template\":\"{{ value_json[\\\"battery\\\"] }}\"}"
It wouldn’t be a parameter. It would be a separate Channel. I assume you mean you checked “Show Advanced” on the Channels tab here?
Note, because these Channels cannot be linked to an Item without the profile, those links that already exist will show as orphans. That does not necessarily mean the Channel doesn’t exist.