Two Identical Third Reality 3RSB22BZ Smart Buttons. Only one gets the correct Quirk

Hey there folks. I purchased two identical Third Reality 3RSB22BZ Smart Buttons. Both seemingly pair up to my Zigbee Coordinator without issue. However one (lets call it Smart Button 1) isn’t being detected properly and seems to have an “opening” and “closed” state, like it was a door sensor. Here is the Zigbee Signature

{
  "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": 4659,
    "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": "0x0402",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0500"
      ],
      "output_clusters": [
        "0x0019"
      ]
    }
  },
  "manufacturer": "Third Reality, Inc",
  "model": "3RSB22BZ",
  "class": "zigpy.device.Device"
}

The second one, lets call it Smart Button 2, is responding correctly with the expected events being sent. Here is it’s Zigbee Signature

{
  "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": 4659,
    "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": "0x0006",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0012"
      ],
      "output_clusters": [
        "0x0006",
        "0x0008",
        "0x0019"
      ]
    }
  },
  "manufacturer": "Third Reality, Inc",
  "model": "3RSB22BZ",
  "class": "zhaquirks.thirdreality.button.Button"
}

As you can see, the second one is getting the class “zhaquirks.thirdreality.button.Button”. I’ve tried overriding the first one’s device type in my configuration.yaml like so

zha:
  device_config:
    IEEE-1:
      type: "button"

but that doesn’t work. I’ve also tried deleting it and readding it, updating the firmware, reconfiguring it. Nothing. So now I turn to you my friends. What I’m ultimately wondering how to do is to force/override ZHA into giving Button 1 the same Device Type and Class (and Quirk) as Button 2.

Thank you!

1 Like

Having the same problem.
Working button:

{
  "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": 4659,
    "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": "0x0006",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0012"
      ],
      "output_clusters": [
        "0x0006",
        "0x0008",
        "0x0019"
      ]
    }
  },
  "manufacturer": "Third Reality, Inc",
  "model": "3RSB22BZ",
  "class": "zhaquirks.thirdreality.button.Button"
}

Not working button:

{
  "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": 4659,
    "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": "0x0402",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0500"
      ],
      "output_clusters": [
        "0x0019"
      ]
    }
  },
  "manufacturer": "Third Reality, Inc",
  "model": "3RSB22BZ",
  "class": "zigpy.device.Device"
}

I tried re-adding the button to ZHA, I tried re-configuring a lot, also not working.

The firmware is the same: 0x00000023

So I’m not really helping, but just confirming you’re not alone.

1 Like

Out of curiosity, did you also buy them at the same time?

I bought them, as a 3-pack, on December 2nd, at Amazon NL and the red one is causing problems.
I bought them here: https://www.amazon.nl/dp/B09ZQQX3HC

So I haven’t found a solution, but I did figure out a work around for my use case. If you want to emulate the single button press, trigger on the transition to the “closed” state.

Here’s how to fix this one. This Third Reality button 3RSB22BZ has two pairing modes. One for things like Home Assistant and one for Echo. If it is in Echo mode then you will only get the Light Switch option in HA.

To toggle the switch between the two modes there are two ways depending on which version firmware it has.

  • Old firmware says to hold the back button and front button for five seconds.
  • New firmware says to press the back button 5 times quickly,

After doing this process the led will flash to let you know which mode it’s in

  • LED only blue - this means its in the right mode for Home Assistant
  • LED red and blue alternating - this means it’s in Echo mode and it will not work right in HA

I had to change the switch to the right mode (only blue led), remove it from HA, restart HA completely, then re add the switch and it added correctly.

2 Likes

Thank you Djnotleks! This was exactly my problem. For everyone else, make sure you change the mode, reboot HA, remove the device from HA, and reboot HA again just like Djnotleks says. It really is kinda sticky and needs some help before it will add back correctly.

Ive tried changing the mode and removing, restarting and re-adding and I’m still not able to get the button to register with the quirk.

I’m running home-assistant in a docker container and it seems like home assistant doesn’t fully forget the button when I remove it (when I re-add it, it tends to get the previous name). Typically when I add the button I do it via “Add Device” > Third Reality > Add Zigbee Device

Does anyone have any other ideas of how to get this working again?

1 Like

I also followed the same instructions above and it did not work for me. Switching to amazon echo mode just made the device not produce any events for the device, and back to ZHA mode keeps on showing the “toggle” event, rather than the “single button” fired event. I also followed the “setup mode on device, reboot, delete device, reboot, pair zigbee device” instructions and they did not help.

seems i am not the only one having issues. thanks for the hint about echo mode etc - unfortunately no matter what i do i cannot get the device to be more than a basic device. it was working fine until the other day when i had an issue with another zigbee device which was the hub for the button. i had to readd both devices and now this doesnt work.

in the debug logs when i try to add the button i see:

e[36m2025-11-12 12:06:00.337 DEBUG (MainThread) [zha.application.discovery] Discovering entities for device: 28:2c:02:bf:ff:e3:8f:8a-Third Reality, Inc 3RSB22BZe[0m
e[36m2025-11-12 12:06:00.337 DEBUG (MainThread) [zha.application.discovery] Discovering entities for endpoint: 28:2c:02:bf:ff:e3:8f:8a-1e[0m
e[36m2025-11-12 12:06:00.337 DEBUG (MainThread) [zha.application.discovery] 'sensor' platform -> 'Battery' using ['power']e[0m
e[36m2025-11-12 12:06:00.338 DEBUG (MainThread) [zha.application.discovery] 'sensor' platform -> 'RSSISensor' using ['basic']e[0m
e[36m2025-11-12 12:06:00.338 DEBUG (MainThread) [zha.application.discovery] 'sensor' platform -> 'LQISensor' using ['basic']e[0m
e[36m2025-11-12 12:06:00.338 DEBUG (MainThread) [zha.application.discovery] 'update' platform -> 'FirmwareUpdateEntity' using ['ota']e[0m
e[36m2025-11-12 12:06:00.338 DEBUG (MainThread) [zha.application.discovery] Attempting to discover quirks v2 entities for device: 28:2c:02:bf:ff:e3:8f:8a-Third Reality, Inc 3RSB22BZe[0m
e[36m2025-11-12 12:06:00.338 DEBUG (MainThread) [zha.application.discovery] Device: 28:2c:02:bf:ff:e3:8f:8a-Third Reality, Inc 3RSB22BZ is not a quirks v2 device - skipping discover_quirks_v2_entitiese[0m

i have also taken a stab at this in my config:

zha:
  device_config:
    28:2c:02:bf:ff:e3:8f:8a-1:
      type: "button"

really not sure what to do here… seems the deivce signature just needs to change from “class”: “zigpy.device.Device” to “class”: “zhaquirks.thirdreality.button.Button”

well - no idea - but i just moved from zha to zigbee2mqtt and it works fine in there.

Just had same problem with ZHA. For me, after removing the ‘wrong’ button device created and restarting HA it still would not get discovered correctly with ‘blue’ light flashing.

So I removed the device and then instead of restarting HA, I restarted the ZHA integration, then added zigbee device and it was discovered will all its states.