-
Notifications
You must be signed in to change notification settings - Fork 0
ZigBee User Interface
The User interface is a read only interface, which allows ecosystem operators to read the compliance record and ModelId for a model. The Family Tree provides the user with the ability to determine which other models and HW/FW versions have been certified.
The compliance records are indexed by the ComplianceID, which is a hash of the following JSON payload generated by the gateway and submitted to the Compliance Contract. It is critical that the order of tags, and spacing is maintained in the hash.
ZNMHF = {"Cert":"ZIGBEE","Name":"COMPANY","Sku":"SKU#","HwVer":"0X01","FwVer":"0X00000001"}
All examples are run from the VeriteemCL.py command line interface. Further, the following constants shall be used.
ZNMHF = '{"Cert":"ZIGBEE","Name":"NORTEK,","Sku":"F-ADT-WTR-1","HwVer":"0X04","FwVer":"0X00000005"}'
ZNMH = '{"Cert":"ZIGBEE","Name":"NORTEK,","Sku":"F-ADT-WTR-1","HwVer":"0X04"}'
ZNM = '{"Cert":"ZIGBEE","Name":"NORTEK,","Sku":"F-ADT-WTR-1"}'
ZN = '{"Cert":"ZIGBEE","Name":"NORTEK,"}'
Z = '{"Cert":"ZIGBEE"}'
Read
Valid
ReadFamily
ReadSubFamilyIndex
CalcComplianceID
The Read function provides compliance record for a ComplianceID. See the overview on how to form a ComplianceId.
| Type | Name | Description |
|---|---|---|
| address | ComplianceModelId | Compliance ID, which is a hash of the ZNMHF |
| Type | Name | Description |
|---|---|---|
| address | Tester | ID of the Tester who wrote the compliance record |
| address | MfgModelId | Manufacturer's ModelID |
| string | ExpirationData | Expiration Data of compliance record |
| string | ComplianceData | JSON compliance record |
| bool | Valid | True if the compliance Admin has approved the record |
ZigBee.Read("0x469a89bc4c962c6f686a8c8cd73b10489e3185cd")
["0xca2a2c28e971321d196fe1ff187afce136f0dc73", "0x469a89bc4c962c6f686a8c8cd73b10489e3185cd", "10/31/17", "{\"ApplicationTypeVersion\": \"1.2.1\", \"ApplicationType\": \"ZigBee Home Automation\", \"CertificateID\": \"ZIG17107ZHA25941-24\", \"CompliantPlatformType\": \"\", \"ProductLongDescription\": \"The device is a water-bug-style flood sensor that can detect the water/liquid leakage at the ground level and from about the sensor.\", \"TechnicalSubCategories\": [\"IAS Zone\"], \"ProductType\": \"End Product\", \"CurrentStatus\": \"Approved\", \"SKU\": \"F-ADT-WTR-1\", \"FunctionalSubCategories\": [\"Water Sensor\\nSecurity\"], \"ParentFunctionalCategories\": [\"Security\"], \"Company\": \"Nortek, Inc.\", \"ProductRevisionVersion\": \"2\", \"HardwareVersion\": \"4\", \"ProductLinkURL\": \"\", \"CertifiedDate\": \"10/31/17\", \"TechnicalCategory\": \"ZigBee Home Automation\", \"ProductName\": \"F-ADT-WTR-1\", \"ProductShortDescription\": \"Water bug (flood sensor)\", \"FirmwareVersion\": \"5\"}", true, "0x0000000000000000000000000000000000000000"]
This function will return the valid bit for the compliance record. This function does not verify the expiration date.
| Type | Name | Description |
|---|---|---|
| address | ComplianceModelId | Compliance ID, which is the hash of ZNMHF |
| Type | Name | Description |
|---|---|---|
| bool | Valid | True if the compliance Admin has approved the record |
ZigBee.Valid("0x469a89bc4c962c6f686a8c8cd73b10489e3185cd")
true
The ReadFamily function accepts Z, ZN, ZNM, ZNMH, ZNMHF JSON strings, and returns the number of sub family members can be found in the family tree. The function also returns the FamilyIndex for the Family String passed into the function, and the ComplianceId.
| Type | Name | Description |
|---|---|---|
| string | FamilyString | JSON string |
| Type | Name | Description |
|---|---|---|
| address | FamilyIndex | FamilyString Hash for the FamilyString submitted in the read |
| bool | FamilyValid | true if the family string is valid |
| uint | SubCount | Number of sub FamilyStrings which are associated with the current family string |
| address | ComplianceId | ComplianceId |
ZigBee.ReadFamily(ZNM)
["0xdbd94b43698e1fd6f07e28a00e30c060ce94bcf3", true, 1, "0x0000000000000000000000000000000000000000"]
This function reads the subFamily records for a given FamilyString. The index to the list must be given.
| Type | Name | Description |
|---|---|---|
| string | FamilyString | FamilyString |
| Type | Name | Description |
|---|---|---|
| address | SubFamilyIndex | Index for SubFamilyString |
| string | FamilyString | FamilyString |
| uint | SubCount | Number of sub FamilyStrings associated with the current FamilyString |
| address | ComplianceId | ComplianceID when the SubFamilyString is fully specified |
ZigBee.ReadSubFamilyIndex(ZNM,0)
["0x3b576483633568dd9552e9a60d90ca138a22bc92", "{\"Cert\":\"ZIGBEE\",\"Name\":\"NORTEK,\",\"Sku\":\"F-ADT-WTR-1\",\"HwVer\":\"0X04\"}", "0x0000000000000000000000000000000000000000"]
Calculate the ComplianceID for the given string.
| Type | Name | Description |
|---|---|---|
| string | FamilyString | FamilyString |
| Type | Name | Description |
|---|---|---|
| address | ComplianceID | Hash of FamilyString |
ZigBee.CalcComplianceId(ZNMHF)
"0x469a89bc4c962c6f686a8c8cd73b10489e3185cd"