prefixkit Ask an engineerAsk Support RU

Zigbee devices Buttons and remotes

DIYRuZ DIYRuZ_FreePad

DiY 8/12/20 button keypad. Works with Zigbee2MQTT with no vendor hub or cloud: it pairs with a Zigbee stick and shows up in Home Assistant.

Vendor
DIYRuZ
Model
DIYRuZ_FreePad
Type
Buttons and remotes
Power
battery: an end device, does not extend the mesh
Firmware updates (OTA)
no

Find it in shops: AliExpress

Links open a search in the shop; some are affiliate links: buying through them costs you nothing extra and supports this site. We do not sell devices or get them from manufacturers.

What it exposes

FeaturePropertyValuesControl
Batterybattery% · 0…100read only
Action (button press)action*_single, *_double, *_triple, *_quadruple, *_release, *_holdread only
Switch type (button_1)switch_type_button_1toggle, momentary, multifunctionsettable
Switch actions (button_1)switch_actions_button_1on, off, togglesettable
Switch type (button_2)switch_type_button_2toggle, momentary, multifunctionsettable
Switch actions (button_2)switch_actions_button_2on, off, togglesettable
Switch type (button_3)switch_type_button_3toggle, momentary, multifunctionsettable
Switch actions (button_3)switch_actions_button_3on, off, togglesettable
Switch type (button_4)switch_type_button_4toggle, momentary, multifunctionsettable
Switch actions (button_4)switch_actions_button_4on, off, togglesettable
Switch type (button_5)switch_type_button_5toggle, momentary, multifunctionsettable
Switch actions (button_5)switch_actions_button_5on, off, togglesettable
Switch type (button_6)switch_type_button_6toggle, momentary, multifunctionsettable
Switch actions (button_6)switch_actions_button_6on, off, togglesettable
Switch type (button_7)switch_type_button_7toggle, momentary, multifunctionsettable
Switch actions (button_7)switch_actions_button_7on, off, togglesettable
Switch type (button_8)switch_type_button_8toggle, momentary, multifunctionsettable
Switch actions (button_8)switch_actions_button_8on, off, togglesettable
Switch type (button_9)switch_type_button_9toggle, momentary, multifunctionsettable
Switch actions (button_9)switch_actions_button_9on, off, togglesettable
Switch type (button_10)switch_type_button_10toggle, momentary, multifunctionsettable
Switch actions (button_10)switch_actions_button_10on, off, togglesettable
Switch type (button_11)switch_type_button_11toggle, momentary, multifunctionsettable
Switch actions (button_11)switch_actions_button_11on, off, togglesettable
Switch type (button_12)switch_type_button_12toggle, momentary, multifunctionsettable
Switch actions (button_12)switch_actions_button_12on, off, togglesettable
Switch type (button_13)switch_type_button_13toggle, momentary, multifunctionsettable
Switch actions (button_13)switch_actions_button_13on, off, togglesettable
Switch type (button_14)switch_type_button_14toggle, momentary, multifunctionsettable
Switch actions (button_14)switch_actions_button_14on, off, togglesettable
Switch type (button_15)switch_type_button_15toggle, momentary, multifunctionsettable
Switch actions (button_15)switch_actions_button_15on, off, togglesettable
Switch type (button_16)switch_type_button_16toggle, momentary, multifunctionsettable
Switch actions (button_16)switch_actions_button_16on, off, togglesettable
Switch type (button_17)switch_type_button_17toggle, momentary, multifunctionsettable
Switch actions (button_17)switch_actions_button_17on, off, togglesettable
Switch type (button_18)switch_type_button_18toggle, momentary, multifunctionsettable
Switch actions (button_18)switch_actions_button_18on, off, togglesettable
Switch type (button_19)switch_type_button_19toggle, momentary, multifunctionsettable
Switch actions (button_19)switch_actions_button_19on, off, togglesettable
Switch type (button_20)switch_type_button_20toggle, momentary, multifunctionsettable
Switch actions (button_20)switch_actions_button_20on, off, togglesettable

MQTT: state and commands

Zigbee2MQTT publishes the device state to zigbee2mqtt/my_device (my_device is the name you give the device). An example message:

{
  "battery": 87,
  "switch_type_button_1": "toggle",
  "switch_actions_button_1": "on",
  "switch_type_button_2": "toggle",
  "switch_actions_button_2": "on",
  "switch_type_button_3": "toggle",
  "switch_actions_button_3": "on",
  "switch_type_button_4": "toggle",
  "switch_actions_button_4": "on",
  "switch_type_button_5": "toggle",
  "switch_actions_button_5": "on",
  "switch_type_button_6": "toggle",
  "switch_actions_button_6": "on",
  "switch_type_button_7": "toggle",
  "linkquality": 120
}

Send commands to zigbee2mqtt/my_device/set:

mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"switch_type_button_1":"momentary"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"switch_actions_button_1":"off"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"switch_type_button_2":"momentary"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"switch_actions_button_2":"off"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"switch_type_button_3":"momentary"}'

Watch the topics live from the browser: MQTT client.

Home Assistant automation example

Zigbee2MQTT creates Home Assistant entities from the device name. If it is called my_device, an automation in automations.yaml can look like this:

- alias: "Button"
  mode: single
  triggers:
    - trigger: mqtt
      topic: zigbee2mqtt/my_device
      value_template: "{{ value_json.action }}"
      payload: "*_single"
  actions:
    - action: light.toggle
      target:
        entity_id: light.living_room

Check the YAML: YAML checker.

How to pair it

  1. In Zigbee2MQTT click Permit join.
  2. Put the device in pairing mode: usually a long press of the reset button (5–10 s) until the LED blinks; bulbs: switch the power off and on 5–6 times.
  3. Keep the device close to the coordinator or a router while pairing.
  4. Give it a clear name: MQTT topics and Home Assistant entities are built from it.

Exact procedure and model notes: the device page in the Zigbee2MQTT docs. No coordinator yet: coordinator picker.

Similar devices

Idea?