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,

    Thanks for your reply.

    2.  

    The 0xfe00 cluster id is part is the default firmware:

    zdo simple_desc_req 0xf0fe 1

    src_addr=0xf0fe ep=1 profile_id=0x0104 app_dev_id=0x0 app_dev_ver=0x1 in_clusters=0x0006,0xef00,0x0000 out_clusters=0x0019,0x000a 

    3.

    Please find a log attached of those 4 commands followed by a a attribute write and a toggle:

    zcl attr write 0xf0fe 1 0xef00 0x0104  0x65  0x30   0x01

    zcl cmd 0xf0fe 1 0x0006 0x02

     

    Those 4 'datapoint' (Tuya naming) commands don't have an effect and I still get the 134 command when I try to write the attribute.  The toggle still works. 

    Thanks

    Wayne

     datapoint_commands.pcapng.zip

  • Hi,

    Thank you for the info

    Wayne said:
    Those 4 'datapoint' (Tuya naming) commands don't have an effect and I still get the 134 command when I try to write the attribute.  The toggle still works. 

    My bad, it looks like the cluster ID should've been 0xef00 and not 0xfb02 which I previously wrote, i.e could you repeat the steps with 

    zcl cmd 0x623b 1 0xef00 0x04 -l 006b6504000101
    zcl cmd 0x623b 1 0xef00 0x05 -l 005d6504000101
    zcl cmd 0x623b 1 0xef00 0x06 -l 005e6602000400000050
    zcl cmd 0x623b 1 0xef00 0x05 -l 005f6702000400000000
    Kind regards,
    Andreas
  • HI,

    Thanks for your help on this, sorry I forgot to reply, I did try that afterwards and it made the mode change. 

    All the best

    Wayne

Related