I don't see any reason this just wouldn't work with the Zigbee stack as-is; in your parse() method, you'd just look for the right cluster and attribute (by number or hex string). The only place this would need to be really "implemented" is if you use the enums defined for you in the zigbee object (e.g., ON_OFF_CLUSTER, etc., instead of 6 or 0x0006), which seems pretty rarely used.
But even then, a quick look shows MULTISTATE_VALUE_CLUSTER exists even if you went that way.
See what data comes into parse() and what the result of zigbee.parseDescriptionAsMap() is would be my suggestion in case that wasn't clear from above. But again, I can't see any reason these would be a problem (custom clusters and attributes, as various manufacturers implement, are not a problem, and standard ones shouldn't be, either).
Thanks. I've just had no luck in getting a message through. It could be the device is not what I think, however others have stated that this feature (MULTISTATE_VALUE_BASIC) works with MQTT.
The device function is to receive a message via Zigbee and send it out as serial via the UART.
Have you tried using zigbee.writeAttribute() to avoid any problems that might arise from trying to construct these strings yourself?
(Also, my assumption above is that this was data coming in from the device, so not entirely applicable, but I still don't see anything that should get in the way...)
The error code 0x8F (the third byte in the data array) means 'WRITE ONLY' error - should be returned by the device if you are trying to read this attribute...
In situations like this, a Zigbee sniffer will help a lot!
Thanks,
Perhaps I'm taking the .writeAttribute construction too literally, however I'm trying to send multiple bytes of data which are not just numbers i.e. {0423343536}. I could not see how to do that in .writeAttribute.