Zigbee Add-on (R23 1.2.1) doesn't support octect string attribute reporting which seems to be wrong.
I've found this topic that describes the same issue
and a workaround for it (namely using char string instead of an octet one).
I would still like to bring this topic up. I've discovered in the source code of the add-on (zcl_general_commands.c:997 (check_config_rep_req))
following lines:
/* ZCL8 spec 2.5.7.3 Effect on Receipt: if the attribute type is set to array,
structure, set or bag, set status to UNSUPPORTED_ATTRIBUTE */
/* TODO: add other types checking */
if (attr_desc->type == ZB_ZCL_ATTR_TYPE_OCTET_STRING || attr_desc->type == ZB_ZCL_ATTR_TYPE_ARRAY
|| attr_desc->type == ZB_ZCL_ATTR_TYPE_CUSTOM_32ARRAY)
{
TRACE_MSG(TRACE_ZCL1, "invalid attr type", (FMT__0));
status = ZB_ZCL_STATUS_UNSUP_ATTRIB;
}
However the specification actually says the following (lines 2741-2742):
Else, if the attribute type is set to array, structure, set or bag the device SHALL construct an attribute status record with the status field set to UNREPORTABLE_ATTRIBUTE7.
so first of all it should return 'unreportable' status, not 'unsupported' and second: this is valid for arrays, sets or bags.
not for octet strings. Octet String is a separate type, distinct from an array.
And clearly on the technical level it can work, since char string type can be reported.
It would be nice if this would be fixed.
Thanks!