-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ZAP UI should support setting Parent Endpoints and Composition Type for an Endpoint #1093
Comments
This is somewhat of a blocker for using ZAP as a "configure and just use the config" thing for the Fall 2023 devices. The APIs we are adding will let people work around, but at that point they will start asking why they are bothering with the non-programmatic ZAP config at all... |
Note that Tree vs Flat composition is associated with the device type, so ideally it would just be listed in the XML for the device types and no one would ever set it manually in the UI (but still needs backend support to expose the XML value to allow codegen based on it, perhaps). What the UI needs is a way to set the parent of an endpoint. Ideally, via showing a tree structure, not a list, for endpoints. |
ill set up a meeting with @tbrkollar to discuss the front end changes and ill work on adding the backend support to support the XML |
I'm hoping for a clarification on a related point. However, when I look at the Zap files for the examples (e.g., the examples in Chef/devices), the "PartsList" is always blank.
If it should be set, I'm confused as to how. The Zap entry box for PartsList seems to allow only a single integer digit. However, for a device with multiple endpoints, e.g., https://github.com/project-chip/connectedhomeip/blob/master/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.zap, as I understand it, the PartsList should identify endpoints 1, 2, 3, 4 Any help / clarification / examples would be appreciated. |
PartsList is computed at runtime from ZAP-provided (or not-ZAP-provided, for that matter) structural data by the SDK, not hardcoded in the ZAP UI. This would be more clear if #1145 were fixed, since PartsList would then very clearly not have a way to set its value. |
That would be fantastic. As someone new to this, it would certainly be clearer if the ZAP interface didn't suggest you should (or could) complete something where it doesn't make sense. In those cases a brief "set in software" message (or something along those lines) would help. |
This does not work right. Specific problems with the code that was checked in:
|
thanks @bzbarsky-apple here are PR's to address your concerns editing previously made endpoint - #1263 Matter SDK helper (Integer Array) - #1262 |
As part of the Matter development for the Fall 2023 release, the concept of a "composed" device has been added using a "tree" composition.
Device composition is managed via the
PartsList
attribute in theDescriptor
cluster for an Endpoint when an Endpoint has a device type that can be composed of other devices.So, for example, if there's an Air Purifier on Endpoint 1, it could have a parts list of
[2, 3]
to indicate that it is composed of anAir Quality Sensor
on Endpoint 2 and aTemperature Sensor
on Endpoint 3.This would mean that Endpoint 1 would be set as the Parent of Endpoints 2 & 3 so the SDK can build the parts list appropriately.
Also, in order to build the parts list in the correct format, the SDK also needs to be able to distinguish between
Tree
orFlat
composition as this is described in the spec as:So, it would be really useful if we could set a Parent and a Composition Type for an Endpoint in the UI, then this can be parsed by the SDK at setup.
Currently, we've added API's to set this information programmatically in this PR.
The text was updated successfully, but these errors were encountered: