Unable to write attribute to a FingerBot Plus Zigbee device, error 134

Hi,

I have a Tuya FingerBot Plus and when using the Zigbee Shell sample:

1.I can 'click' the finger using a ZCL command

2. I can't change the 'finger mode' from 'click' to 'switch' using the shell zcl attribute write command.

I have managed to change the finger mode using Home Assistant and a SkyConnect dongle on a Pi so I know it can be done, I just keep getting the 134 error in the Zigbee Shell.

(EDIT: I've just added a capture with it working for home assistant.)

Versions:

nrf52840

nRF Connect SDK + ZigBee Shell: v2.6.1 (also occurs on v2.5.2)
nRF-Sniffer-for-802.15.4: fec12fbf84f3f38ad754776f2338b803e49e1a66

Commands that work:

uart:~$ zdo simple_desc_req 0xd2c3 1
src_addr=0xd2c3 ep=1 profile_id=0x0104 app_dev_id=0x0 app_dev_ver=0x1 in_clusters=0x0006,0xef00,0x0000 out_clusters=0x0019,0x000a
Done

# Toggle finger:

uart:~$ zcl cmd 0xd2c3 1 0x0006 0x02
Done

Attribute write command that fails (nRF sniffer log attached):

uart:~$ zcl attr write 0xd2c3 1 0xef00 0x0104 0x65 0x30 0x01
Error: Status 134
[00:40:10.948,181] <inf> zigbee.eprxzcl: Received ZCL command (1): src_addr=0xd2c3(short) src_ep=1 dst_ep=64 cluster_id=0xef00 profile_id=0x0104 cmd_dir=1 common_cmd=1 cmd_id=0x04 cmd_seq=23 disable_def_resp=1 manuf_code=void payload=[866500] (1)

Reference material from: github.com/.../ts0001_fingerbot.py

class TuyaFingerbotCluster(TuyaMCUCluster):
attributes = TuyaMCUCluster.attributes.copy()
attributes.update(
{
101: ("mode", FingerBotMode),
102: ("down_movement", t.uint16_t),
103: ("sustain_time", t.uint16_t),
104: ("reverse", FingerBotReverse),
105: ("battery", t.uint16_t),
106: ("up_movement", t.uint16_t),
107: ("touch_control", t.Bool),
}
)

# Ref: 101 = 0x65


class FingerBotMode(t.enum8):
CLICK = 0x00
SWITCH = 0x01
PROGRAM = 0x02


TuyaFingerbotCluster -> TuyaMCUCluster -> TuyaNewManufCluster -> cluster_id => TUYA_CLUSTER_ID = 0xEF00

As well as the 0x30 (8BIT_ENUM) attribute type I have also tried these, just in case: 0x08 (8BIT), 0x20 (U8), 0x28 (S8)

I did start looking into supplying a custom_manufac flag & manufact_code to the ZB frame creation thinking this was some kind of custom cluster, but as the cluster id of 0xef00 is below 0xfbff (as defined in ZB_ZCL_IS_CLUSTER_MANUF_SPEC() macro) then that doesn't seem necessary.

Any help would be much aprrieicated.

Thanks

Wayne

2705.write_attribute_fail.pcap.ziphomeassistant_set_mode_1_working.pcapng.zip

  • Hi,

    The sniffer log you've provided is encrypted so we can't see the details of the trace.

    The error 134 is UNSUPPORTED_ATTRIBUTE (0x86). What we suspect is that zcl_cmd  is not able to handle manufacturer specific clusters. Could you verify if you see the same thing with Zigbee shell as you do with HA? I.e if it is manufacturer specific flag in the command from HA and not from the one in shell?

    Kind regards,
    Andreas

  • Hi,

    The attribute write works in HA and doesn't seem to be manufacturer specific:

    1. I've attached the higher level HA logs (e.g. "is_manufacturer_specific=0"

    2. Screen shot of the HA GUI sending the attribute (I assume Manufacture Code Override not set means this)

    I will see if I can find an encryption key in HA and add to the nRF sniffer in Wireshark.  

    During some testing I did try using 'cmd_zcl' instead of 'cmd_attr', e.g.

    uart:~$ zcl cmd 0xfb02 1 0xef00 0x01

    Done

    uart:~$ zcl cmd 0xfb02 1 0xef00 0x65 0x01

    Done

    This didn't error but had no obvious effects on the device.

    Thanks

    Wayne

  • Hi,

    Please find attached an unencrypted log of sending the attribute write. 

    Note: for anyone that follows/finds this and needs to obtain your HA Zigbee network key goto: 

    Home -> Settings -> Devices & Services -> Zigbee Home Automation -> Integration entries -> "SkyConnect" Configure -> Download Backup

    In the JSON that is downloaded the key is in "network_key"."key"

    If you have a different Zigbee dongle to SkyConnect then it's probably going to be there too.

    Wayne

    homeassistant_set_mode_1_working_decrypted.pcapng.zip

  • Hi Wayne,

    Apologies for the long response time. I''ve been out of office and will be until next week. I will have to bring this case up for discussion with the developers when I get back into office. I'll reach out to you again with a status early next week. In the meanwhile let me know if you've resolved the question while waiting.

    Kind regards,
    Andreas

  • Hi,

    Thank you for your patience

    I've discussed your case further with my colleagues and this is what we see and are wondering about so far:

    1. The JSON key that were missing were not attached, but I found the same key in your most recent case.


    2. As far as we can see, the command you're using, i.e zcl cmd 0xfb02 1 0xef00 0x01 contains a manufacturer specific cluster identifier. Could you verify if this ID is specific for the TyuaFingerbot, or is it something that you've added?



    3. The commands you've added does not seem to be the same commands we see in the log, could you run the same commands in Zigbee shell as you do in the HA snifferlog and attach a trace (and key if you've changed this since last time), i.e

      zcl cmd 0x623b 1 0xfb02 0x04 -l 006b6504000101
      

      zcl cmd 0x623b 1 0xfb02 0x05 -l 005d6504000101

      zcl cmd 0x623b 1 0xfb02 0x06 -l 005e6602000400000050

      zcl cmd 0x623b 1 0xfb02 0x05 -l 005f6702000400000000

    Kind regards,
    Andreas

Related