configureReporting to specific endpoint?

I’m trying to port my hue dimmer switch DTH into LUA driver.

I’m stuck with porting this one.

zigbee.configureReporting(0xFC00, 0x0000, DataType.BITMAP8, 30, 30, null, [destEndpoint: 0x02])

[destEndpoint: 0x02] part is the problem.
It seems that there’s no way to set destEndpoint in class AttributeConfiguration

Attribute Configuration Documentation — SmartThings Edge Device Drivers documentation

Hue dimmer switch is a unusual device. Endpoint 1 is ZLL(=C05E), and Endpoint 2 is ZHA(=0104), and I need to configureReporting with ZHA endpoint. That’s why I need this endpoint option for configureReporting.

Could you help me with this?
Do I have to manually ZDO bind and do all the stuffs? or could it be automatically handled without specifying endpoint?

FYI, fingerprint of the device is as below.

    "endpoints":[
        {
            "simple":"01 C05E 0820 02 01 0000 05 0000 0003 0004 0006 0008",
            "application":"02",
            "manufacturer":"Philips",
            "model":"RWL020"
        },
        {
            "simple":"02 0104 000C 00 05 0000 0001 0003 000F FC00 01 0019",
            "application":"02",
            "manufacturer":"Philips",
            "model":"RWL020"
        }
    ]

Cluster 0xFC00 is in endpoint 2 only.

Can this be automatically handled by AttributeConfiguration class without specifying endpoint number?

1 Like

I found the answer by analyzing the source code.
Release Initial Beta Release · SmartThingsCommunity/SmartThingsEdgeDrivers · GitHub

It automatically looks up for the appropriate endpoint for the clusterID.

This is very nice!!!

I managed to ZDO bind to the cluster 0xFC00 with the code below. (endpoint is automatically matched.)
I’m getting button packets from the Hue Dimmer Switch.

local do_configure = function(self, device)
	device:configure()
	device:send(device_management.build_bind_request(device, 0xFC00, device.driver.environment_info.hub_zigbee_eui))
end
1 Like

Nice work, @iquix! Yes, a bind request is needed if you’ll configure the reporting.
There are some other ways to do this for manufacturer specific clusters, look at the sample of the ST Multipurpose Sensor.
The cluster for the Three-axis and Vibration capabilities are mfr-specific, and here, we use
device:add_configured_attribute() and device:add_monitored_attribute() for the bindings.

2 Likes