ZG-101ZL direct bind to Shelly Mini1 Gen4

I’m setup with ZHA using ZBT-1. I have an Aqara door sensor controlling a Shelly Mini1 turning switching the light to the room being entered.

This works fine most of the time, but I need a back-up for when HA is offline otherwise my wife is going to kill me.

So I bought a ZG-101ZL button switch of AliExpress in order to directly bind the button switch to the Shelly so the lights can be toggled on/off without automation.

I’ve very new to Zigbee and ZHA and despite extensive googling/gemini-ing I can’t seem to get the bind to work. The ‘manage zigbee device’ screen it a bit intimidating not know what most of it means.

From what I’ve read so far I want to get the button OnOff out to directly bind to the Shelly OnOff in.

If it helps the signature of the button is:

{
  "node_descriptor": {
    "logical_type": 2,
    "complex_descriptor_available": 0,
    "user_descriptor_available": 0,
    "reserved": 0,
    "aps_flags": 0,
    "frequency_band": 8,
    "mac_capability_flags": 128,
    "manufacturer_code": 4742,
    "maximum_buffer_size": 66,
    "maximum_incoming_transfer_size": 66,
    "server_mask": 10752,
    "maximum_outgoing_transfer_size": 66,
    "descriptor_capability_field": 0
  },
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x0000",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x0004",
        "0x0006",
        "0x1000",
        "0xe001"
      ],
      "output_clusters": [
        "0x0003",
        "0x0004",
        "0x0006",
        "0x0008",
        "0x000a",
        "0x0019",
        "0x1000"
      ]
    }
  },
  "manufacturer": "HOBEIAN",
  "model": "ZG-101ZL",
  "class": "zigpy.device.Device"
}

and listening to single press events in developer tools I see

event_type: zha_event
data:
  device_ieee: a4:c1:38:e7:57:b9:cd:44
  device_id: 7f933884316f20d401637dc6d6a8721a
  unique_id: a4:c1:38:e7:57:b9:cd:44:1:0x0006
  endpoint_id: 1
  cluster_id: 6
  command: toggle
  args: []
  params: {}
origin: LOCAL
time_fired: "2025-11-08T17:18:12.817816+00:00"
context:
  id: 01K9J7KGTHSGHASWQ65J3QWKHE
  parent_id: null
  user_id: null

Many thanks in advance for guidance!

You should be able to bind directly in the UI if you can get the Shelly to show up as a bindable device for your button.

  • Open the device page for your button. Click the 3 dots next to “Reconfigure” & select “Manage zigbee device”

  • Click the Bindings tab and check whether you can see the Shelly in the list of bindable devices. In my case, I only see my coordinator because this isn’t an end device:

Hey @ShadowFist thanks for replying. Yes I can get the Shelly to show up as a bindable device. I’ve also tried adding it to a group and attempted to bind to that too. On both occasions it gives me positive feedback on the bind yet clicking the ZG-101L doesn’t trigger the Shelly.

I’m going to try moving to Z2M as I’ve read that gives me more feedback to understand if the bind was successful.

Binding is a dark art in itself, plus some Tuya devices are known not to implement binding correctly based on the (limited) research I read.

Having said that, before moving to Z2M (which I personally recommend), try the following:

  • Wake up the button by pressing it immediately (within 1-2s) before pressing bind. Battery devices are known to sleep and will not accept any commands. Could be your button simply did not get the message.
  • Install & use zha_toolkit if you’re not ready to switch to Z2M right now. It’ll give you more control/info over your zigbee network general.

Tbh my network only consists of these devices (aqara doors sensor, shelly, button) so not a big deal to migrate to Z2M. I did try zha_toolkit but that only muddied the waters further (couldn’t find it in the logger).

Then go ahead and migrate. You’ll appreciate it later.

Just make sure ZHA is disabled and keep this link handy. If you run into any issues, the error in your will tell you which of those links you need to click on to troubleshoot

So I’ve migrated to Z2M and I think I’ve successfully bound the button to the Shelly but still no joy.

Do I need the button to be in event or command mode? I get an error when moving trying to put it in the latter.

Any tips on debugging this issue?

UPDATE: according to this reddit post, it’s not the button’s fault but Shelly’s.

https://www.reddit.com/r/homeassistant/s/lrXt1P7mlA

So throwing good money after bad I’ve ordered a Shelly BLU Wall Switch. I can pair it with Shelly and use their local actions as the failsafe.