Add Low Power Cluster (#5071)
Problem
We do not have low power cluster which is needed for Chip to put TV into sleep state
Summary of Changes
- Added low power cluster.xml file
- Added low power server.cpp file
- Updated example chip-tool so you can use low power cluster
- Updated example tv-app so you can use it a TV server for low power cluster
- Updated all-cluster-app so you can use it a server for low power cluster
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
index 0b9089e..49f08bd 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
@@ -1,5 +1,5 @@
{
- "writeTime": "Mon Mar 01 2021 09:57:42 GMT-0800 (Pacific Standard Time)",
+ "writeTime": "Mon Mar 08 2021 19:19:42 GMT+0100 (Central European Standard Time)",
"featureLevel": 11,
"creator": "zap",
"keyValuePairs": [
@@ -79,7 +79,6 @@
"define": "BASIC_CLUSTER",
"side": "server",
"enabled": 1,
- "commands": [],
"attributes": [
{
"name": "cluster revision",
@@ -126,7 +125,8 @@
"maxInterval": 65344,
"reportableChange": 0
}
- ]
+ ],
+ "commands": []
},
{
"name": "Identify",
@@ -135,6 +135,23 @@
"define": "IDENTIFY_CLUSTER",
"side": "client",
"enabled": 0,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "2",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "Identify",
@@ -152,23 +169,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "2",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
},
{
@@ -303,6 +303,38 @@
"define": "GROUPS_CLUSTER",
"side": "server",
"enabled": 0,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ },
+ {
+ "name": "name support",
+ "code": 0,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "AddGroupResponse",
@@ -336,38 +368,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "server",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "3",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- },
- {
- "name": "name support",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
},
{
@@ -377,23 +377,6 @@
"define": "SCENES_CLUSTER",
"side": "client",
"enabled": 0,
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "3",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
- ],
"commands": [
{
"name": "AddScene",
@@ -451,6 +434,23 @@
"incoming": 1,
"outgoing": 1
}
+ ],
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
]
},
{
@@ -460,56 +460,6 @@
"define": "SCENES_CLUSTER",
"side": "server",
"enabled": 0,
- "commands": [
- {
- "name": "AddSceneResponse",
- "code": 0,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- },
- {
- "name": "ViewSceneResponse",
- "code": 1,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- },
- {
- "name": "RemoveSceneResponse",
- "code": 2,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- },
- {
- "name": "RemoveAllScenesResponse",
- "code": 3,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- },
- {
- "name": "StoreSceneResponse",
- "code": 4,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- },
- {
- "name": "GetSceneMembershipResponse",
- "code": 6,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- }
- ],
"attributes": [
{
"name": "cluster revision",
@@ -601,6 +551,56 @@
"maxInterval": 65344,
"reportableChange": 0
}
+ ],
+ "commands": [
+ {
+ "name": "AddSceneResponse",
+ "code": 0,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "ViewSceneResponse",
+ "code": 1,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveSceneResponse",
+ "code": 2,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "RemoveAllScenesResponse",
+ "code": 3,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "StoreSceneResponse",
+ "code": 4,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "GetSceneMembershipResponse",
+ "code": 6,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ }
]
},
{
@@ -702,6 +702,23 @@
"define": "LEVEL_CONTROL_CLUSTER",
"side": "client",
"enabled": 0,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "MoveToLevel",
@@ -767,23 +784,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "3",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
},
{
@@ -834,6 +834,23 @@
"define": "DOOR_LOCK_CLUSTER",
"side": "client",
"enabled": 0,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "LockDoor",
@@ -1019,23 +1036,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "3",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
},
{
@@ -1045,24 +1045,6 @@
"define": "DOOR_LOCK_CLUSTER",
"side": "server",
"enabled": 0,
- "commands": [
- {
- "name": "LockDoorResponse",
- "code": 0,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- },
- {
- "name": "UnlockDoorResponse",
- "code": 1,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- }
- ],
"attributes": [
{
"name": "cluster revision",
@@ -1499,6 +1481,24 @@
"maxInterval": 65344,
"reportableChange": 0
}
+ ],
+ "commands": [
+ {
+ "name": "LockDoorResponse",
+ "code": 0,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ },
+ {
+ "name": "UnlockDoorResponse",
+ "code": 1,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ }
]
},
{
@@ -1508,6 +1508,23 @@
"define": "BARRIER_CONTROL_CLUSTER",
"side": "client",
"enabled": 0,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0001",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "BarrierControlGoToPercent",
@@ -1525,23 +1542,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "0x0001",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
},
{
@@ -1637,6 +1637,23 @@
"define": "COLOR_CONTROL_CLUSTER",
"side": "client",
"enabled": 0,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "MoveToHue",
@@ -1750,23 +1767,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "3",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
},
{
@@ -2967,6 +2967,16 @@
"define": "IDENTIFY_CLUSTER",
"side": "server",
"enabled": 1,
+ "commands": [
+ {
+ "name": "IdentifyQueryResponse",
+ "code": 0,
+ "mfgCode": null,
+ "source": "server",
+ "incoming": 1,
+ "outgoing": 1
+ }
+ ],
"attributes": [
{
"name": "cluster revision",
@@ -2998,16 +3008,6 @@
"maxInterval": 65344,
"reportableChange": 0
}
- ],
- "commands": [
- {
- "name": "IdentifyQueryResponse",
- "code": 0,
- "mfgCode": null,
- "source": "server",
- "incoming": 1,
- "outgoing": 1
- }
]
},
{
@@ -3582,7 +3582,6 @@
"define": "LEVEL_CONTROL_CLUSTER",
"side": "server",
"enabled": 1,
- "commands": [],
"attributes": [
{
"name": "cluster revision",
@@ -3614,7 +3613,8 @@
"maxInterval": 65344,
"reportableChange": 0
}
- ]
+ ],
+ "commands": []
},
{
"name": "General Commissioning",
@@ -3755,6 +3755,23 @@
"define": "DOOR_LOCK_CLUSTER",
"side": "client",
"enabled": 0,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "LockDoor",
@@ -3940,23 +3957,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "3",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
},
{
@@ -4558,6 +4558,23 @@
"define": "COLOR_CONTROL_CLUSTER",
"side": "client",
"enabled": 0,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "3",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "MoveToHue",
@@ -4671,23 +4688,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "3",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
},
{
@@ -5473,7 +5473,6 @@
"define": "TEMP_MEASUREMENT_CLUSTER",
"side": "client",
"enabled": 0,
- "commands": [],
"attributes": [
{
"name": "cluster revision",
@@ -5490,7 +5489,8 @@
"maxInterval": 65344,
"reportableChange": 0
}
- ]
+ ],
+ "commands": []
},
{
"name": "Temperature Measurement",
@@ -5732,6 +5732,67 @@
]
},
{
+ "name": "Low Power",
+ "code": 1288,
+ "mfgCode": null,
+ "define": "LOW_POWER_CLUSTER",
+ "side": "client",
+ "enabled": 0,
+ "commands": [
+ {
+ "name": "Sleep",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "incoming": 1,
+ "outgoing": 1
+ }
+ ],
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0001",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "Low Power",
+ "code": 1288,
+ "mfgCode": null,
+ "define": "LOW_POWER_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "commands": [],
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0001",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ]
+ },
+ {
"name": "Application Basic",
"code": 1293,
"mfgCode": null,
@@ -6121,23 +6182,6 @@
"define": "CONTENT_LAUNCH_CLUSTER",
"side": "client",
"enabled": 0,
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "client",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "0x0001",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
- ],
"commands": [
{
"name": "LaunchContent",
@@ -6155,6 +6199,23 @@
"incoming": 1,
"outgoing": 1
}
+ ],
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "client",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0001",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
]
},
{
@@ -6164,6 +6225,23 @@
"define": "CONTENT_LAUNCH_CLUSTER",
"side": "server",
"enabled": 1,
+ "attributes": [
+ {
+ "name": "cluster revision",
+ "code": 65533,
+ "mfgCode": null,
+ "side": "server",
+ "included": 1,
+ "storageOption": "RAM",
+ "singleton": 0,
+ "bounded": 0,
+ "defaultValue": "0x0001",
+ "reportable": 0,
+ "minInterval": 0,
+ "maxInterval": 65344,
+ "reportableChange": 0
+ }
+ ],
"commands": [
{
"name": "LaunchContentResponse",
@@ -6181,23 +6259,6 @@
"incoming": 1,
"outgoing": 1
}
- ],
- "attributes": [
- {
- "name": "cluster revision",
- "code": 65533,
- "mfgCode": null,
- "side": "server",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "0x0001",
- "reportable": 0,
- "minInterval": 0,
- "maxInterval": 65344,
- "reportableChange": 0
- }
]
}
]