Matter: Support for additional clusters?

Hi,

I'm professionally developing a Matter window covering, which needs support for an additional switch. Matter provides a way to customize devices by adding additional clusters to an existing endpoint. In my example, I would like to have a Window Covering Device on endpoints 1 & 2 (Cluster 0x0102) with each having an additional OnOff-Cluster (0x0006). The OnOff-Switch would change the device's behaviour internally.

I also tried to use composed devices by having a Window Covering Device (on endpoints 1 & 3) combined with either a OnOff Plug-In Device and a OnOff Light (on endpoints 2 & 4) with a proper configuration of the PartsList-attributes. Both of these variations are working kind of. Drawbacks of the solutions:

  • The Icons shown in Home are quit miss-leading.
  • If the user chooses the "show as separate tiles"-option, the link between the slider and the switch get lost (I would hope, that the composed devices wouldn't separate).
  • The names of the widgets get chosen randomly, so that "Shutter 1" is associated with "Light 2" and vice versa...

I hoped, that if the Slider and the Switch would be on the same endpoint, I kind of magically works. But I isn't. The Switch is simply not shown (or did I miss id somewhere?).

Is this under construction? Or is it already supported, but I did not implement it correctly? Please could you assist?

BTW: My implementation is using the esp-matter SDK from Espressif. I tested my implementation with the CHIP-Tool and think I could verify the proper implementation.

Thanks in advance.

Replies

Note 100%, but ... I believe the proper way to do this is not to add an additional switch cluster to the window covering endpoint (that is highly unlikely to be supported in iOS Homes since the switch cluster is neither a Mandatory or Optional cluster for the Window Covering device type), but, instead, add additional Switch endpoints and then use the Aggregator endpoint's Descriptor Cluster's PartsList attribute to aggregate the endpoints as a collection.

So, for example

Endpoint 0 - Root

Endpoint 1 - Aggregator, set Descriptor:PartsList to EP3, EP4

Endpoint 2 - Aggregator, set Descriptor: PartsList to EP5, EP6

Endpoint 3 - Window Covering, set:Descriptor:FixedLabel to "Window 1"

Endpoint 4 - Switch, set:Descriptor:FixedLabel to "Window 1 Option ***"

Endpoint 5 - Window Covering, set:Descriptor:FixedLabel to "Window 2"

Endpoint 6 - Switch, set:Descriptor:FixedLabel to "Window 2 Option ***"

And here's the "but" - its unclear if Apple iOS Home currently recognizes the Aggregator endpoint. If Aggregator is unsupported , I think this would result in a "do nothing" for the Aggregator endpoints, and you'd still get the Endpoints 3--6 to show up. In this case, you could just give the Switches useful labels using the Fixed Label cluster or the TagList in the Descriptor cluster (Matter 1.2+)

Since what you are looking to do is to change the window covering's behavior, you may want to consider using the "Mode Select" endpoint instead of Switch. Again, unclear what's the state of current support in iOS Home.

  • Thank you for your reply. Your "but" is perfectly matching to my experience while trying different approaches. And yes, currently my experience was, that Apple did not implement these - or, I did not find the correct way of implementing. Is there any documentation provided by Apple?

Add a Comment