3 * Copyright (c) 2021 Project CHIP Authors
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 // THIS FILE IS GENERATED BY ZAP
20 #include "chip-zcl-zpro-codec.h"
22 #include <support/BufferWriter.h>
23 #include <support/SafeInt.h>
24 #include <support/logging/CHIPLogging.h>
26 #include <app/util/basic-types.h>
27 #include <lib/support/Span.h>
30 using namespace chip::System;
31 using namespace chip::Encoding::LittleEndian;
33 static uint16_t doEncodeApsFrame(BufferWriter & buf, ClusterId clusterId, EndpointId sourceEndpoint, EndpointId destinationEndpoint,
34 EmberApsOption options, GroupId groupId, uint8_t sequence, uint8_t radius, bool isMeasuring)
37 uint8_t control_byte = 0;
38 buf.Put(control_byte) // Put in a control byte
41 .Put8(destinationEndpoint)
42 .EndianPut(options, sizeof(EmberApsOption))
47 size_t result = buf.Needed();
50 ChipLogDetail(Zcl, "Measured APS frame size %d", result);
54 ChipLogDetail(Zcl, "Successfully encoded %d bytes", result);
58 ChipLogError(Zcl, "Error encoding APS Frame: Buffer too small");
62 if (!CanCastTo<uint16_t>(result))
64 ChipLogError(Zcl, "Can't fit our measured size in uint16_t");
68 return static_cast<uint16_t>(result);
71 uint16_t encodeApsFrame(uint8_t * buffer, uint16_t buf_length, EmberApsFrame * apsFrame)
73 BufferWriter buf(buffer, buf_length);
74 return doEncodeApsFrame(buf, apsFrame->clusterId, apsFrame->sourceEndpoint, apsFrame->destinationEndpoint, apsFrame->options,
75 apsFrame->groupId, apsFrame->sequence, apsFrame->radius, !buffer);
78 #define COMMAND_HEADER(name, clusterId) \
79 const char * kName = name; \
81 PacketBufferWriter buf(System::PacketBufferHandle::New(kMaxBufferSize)); \
84 ChipLogError(Zcl, "Could not allocate packet buffer while trying to encode %s command", kName); \
85 return PacketBufferHandle(); \
88 if (doEncodeApsFrame(buf, clusterId, kSourceEndpoint, destinationEndpoint, 0, 0, 0, 0, false)) \
91 #define COMMAND_FOOTER() \
95 ChipLogError(Zcl, "Command %s can't fit in the allocated buffer", kName); \
97 return buf.Finalize();
99 /*----------------------------------------------------------------------------*\
100 | Cluster Name | ID |
101 |---------------------------------------------------------------------+--------|
102 | ApplicationBasic | 0x050D |
103 | BarrierControl | 0x0103 |
106 | ColorControl | 0x0300 |
107 | DoorLock | 0x0101 |
108 | GeneralCommissioning | 0x0030 |
109 | GroupKeyManagement | 0xF004 |
112 | Identify | 0x0003 |
113 | LevelControl | 0x0008 |
114 | LowPower | 0x0508 |
115 | NetworkCommissioning | 0x0031 |
118 | TemperatureMeasurement | 0x0402 |
119 \*----------------------------------------------------------------------------*/
121 #define EMBER_ZCL_REPORTING_DIRECTION_REPORTED 0x00
123 #define ZCL_READ_ATTRIBUTES_COMMAND_ID (0x00)
124 #define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID (0x01)
125 #define ZCL_WRITE_ATTRIBUTES_COMMAND_ID (0x02)
126 #define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID (0x03)
127 #define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID (0x04)
128 #define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID (0x05)
129 #define ZCL_CONFIGURE_REPORTING_COMMAND_ID (0x06)
130 #define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID (0x07)
131 #define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID (0x08)
132 #define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID (0x09)
133 #define ZCL_REPORT_ATTRIBUTES_COMMAND_ID (0x0A)
134 #define ZCL_DEFAULT_RESPONSE_COMMAND_ID (0x0B)
135 #define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID (0x0C)
136 #define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID (0x0D)
137 #define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0E)
138 #define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0F)
139 #define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID (0x10)
140 #define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID (0x11)
141 #define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID (0x12)
142 #define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID (0x13)
143 #define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID (0x14)
144 #define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID (0x15)
145 #define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID (0x16)
147 #define APPLICATION_BASIC_CLUSTER_ID 0x050D
149 #define BARRIER_CONTROL_CLUSTER_ID 0x0103
150 #define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID (0x00)
151 #define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID (0x01)
153 #define BASIC_CLUSTER_ID 0x0028
154 #define ZCL_MFG_SPECIFIC_PING_COMMAND_ID (0x00)
156 #define BINDING_CLUSTER_ID 0xF000
157 #define ZCL_BIND_COMMAND_ID (0x00)
158 #define ZCL_UNBIND_COMMAND_ID (0x01)
160 #define COLOR_CONTROL_CLUSTER_ID 0x0300
161 #define ZCL_MOVE_COLOR_COMMAND_ID (0x08)
162 #define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID (0x4B)
163 #define ZCL_MOVE_HUE_COMMAND_ID (0x01)
164 #define ZCL_MOVE_SATURATION_COMMAND_ID (0x04)
165 #define ZCL_MOVE_TO_COLOR_COMMAND_ID (0x07)
166 #define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID (0x0A)
167 #define ZCL_MOVE_TO_HUE_COMMAND_ID (0x00)
168 #define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x06)
169 #define ZCL_MOVE_TO_SATURATION_COMMAND_ID (0x03)
170 #define ZCL_STEP_COLOR_COMMAND_ID (0x09)
171 #define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID (0x4C)
172 #define ZCL_STEP_HUE_COMMAND_ID (0x02)
173 #define ZCL_STEP_SATURATION_COMMAND_ID (0x05)
174 #define ZCL_STOP_MOVE_STEP_COMMAND_ID (0x47)
176 #define DOOR_LOCK_CLUSTER_ID 0x0101
177 #define ZCL_CLEAR_ALL_PINS_COMMAND_ID (0x08)
178 #define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID (0x19)
179 #define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID (0x13)
180 #define ZCL_CLEAR_PIN_COMMAND_ID (0x07)
181 #define ZCL_CLEAR_RFID_COMMAND_ID (0x18)
182 #define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID (0x0D)
183 #define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID (0x10)
184 #define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID (0x12)
185 #define ZCL_GET_LOG_RECORD_COMMAND_ID (0x04)
186 #define ZCL_GET_PIN_COMMAND_ID (0x06)
187 #define ZCL_GET_RFID_COMMAND_ID (0x17)
188 #define ZCL_GET_USER_TYPE_COMMAND_ID (0x15)
189 #define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0C)
190 #define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID (0x0F)
191 #define ZCL_LOCK_DOOR_COMMAND_ID (0x00)
192 #define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID (0x11)
193 #define ZCL_SET_PIN_COMMAND_ID (0x05)
194 #define ZCL_SET_RFID_COMMAND_ID (0x16)
195 #define ZCL_SET_USER_TYPE_COMMAND_ID (0x14)
196 #define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0B)
197 #define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID (0x0E)
198 #define ZCL_UNLOCK_DOOR_COMMAND_ID (0x01)
199 #define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID (0x03)
201 #define GENERAL_COMMISSIONING_CLUSTER_ID 0x0030
202 #define ZCL_ARM_FAIL_SAFE_COMMAND_ID (0x02)
203 #define ZCL_COMMISSIONING_COMPLETE_COMMAND_ID (0x06)
204 #define ZCL_SET_FABRIC_COMMAND_ID (0x00)
206 #define GROUP_KEY_MANAGEMENT_CLUSTER_ID 0xF004
208 #define GROUPS_CLUSTER_ID 0x0004
209 #define ZCL_ADD_GROUP_COMMAND_ID (0x00)
210 #define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID (0x05)
211 #define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID (0x02)
212 #define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID (0x04)
213 #define ZCL_REMOVE_GROUP_COMMAND_ID (0x03)
214 #define ZCL_VIEW_GROUP_COMMAND_ID (0x01)
216 #define IAS_ZONE_CLUSTER_ID 0x0500
218 #define IDENTIFY_CLUSTER_ID 0x0003
219 #define ZCL_IDENTIFY_COMMAND_ID (0x00)
220 #define ZCL_IDENTIFY_QUERY_COMMAND_ID (0x01)
222 #define LEVEL_CONTROL_CLUSTER_ID 0x0008
223 #define ZCL_MOVE_COMMAND_ID (0x01)
224 #define ZCL_MOVE_TO_LEVEL_COMMAND_ID (0x00)
225 #define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID (0x04)
226 #define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID (0x05)
227 #define ZCL_STEP_COMMAND_ID (0x02)
228 #define ZCL_STEP_WITH_ON_OFF_COMMAND_ID (0x06)
229 #define ZCL_STOP_COMMAND_ID (0x03)
230 #define ZCL_STOP_WITH_ON_OFF_COMMAND_ID (0x07)
232 #define LOW_POWER_CLUSTER_ID 0x0508
233 #define ZCL_SLEEP_COMMAND_ID (0x00)
235 #define NETWORK_COMMISSIONING_CLUSTER_ID 0x0031
236 #define ZCL_ADD_THREAD_NETWORK_COMMAND_ID (0x06)
237 #define ZCL_ADD_WI_FI_NETWORK_COMMAND_ID (0x02)
238 #define ZCL_DISABLE_NETWORK_COMMAND_ID (0x0E)
239 #define ZCL_ENABLE_NETWORK_COMMAND_ID (0x0C)
240 #define ZCL_GET_LAST_NETWORK_COMMISSIONING_RESULT_COMMAND_ID (0x10)
241 #define ZCL_REMOVE_NETWORK_COMMAND_ID (0x0A)
242 #define ZCL_SCAN_NETWORKS_COMMAND_ID (0x00)
243 #define ZCL_UPDATE_THREAD_NETWORK_COMMAND_ID (0x08)
244 #define ZCL_UPDATE_WI_FI_NETWORK_COMMAND_ID (0x04)
246 #define ON_OFF_CLUSTER_ID 0x0006
247 #define ZCL_OFF_COMMAND_ID (0x00)
248 #define ZCL_ON_COMMAND_ID (0x01)
249 #define ZCL_TOGGLE_COMMAND_ID (0x02)
251 #define SCENES_CLUSTER_ID 0x0005
252 #define ZCL_ADD_SCENE_COMMAND_ID (0x00)
253 #define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID (0x06)
254 #define ZCL_RECALL_SCENE_COMMAND_ID (0x05)
255 #define ZCL_REMOVE_ALL_SCENES_COMMAND_ID (0x03)
256 #define ZCL_REMOVE_SCENE_COMMAND_ID (0x02)
257 #define ZCL_STORE_SCENE_COMMAND_ID (0x04)
258 #define ZCL_VIEW_SCENE_COMMAND_ID (0x01)
260 #define TEMP_MEASUREMENT_CLUSTER_ID 0x0402
262 // TODO: Find a way to calculate maximum message length for clusters
263 // https://github.com/project-chip/connectedhomeip/issues/965
264 constexpr uint16_t kMaxBufferSize = 1024;
266 // This is a cluster-specific command so low two bits are 0b01. The command
267 // is standard, so does not need a manufacturer code, and we're sending
268 // client to server, so all the remaining bits are 0.
269 constexpr uint8_t kFrameControlClusterSpecificCommand = 0x01;
271 // This is a global command, so the low bits are 0b00. The command is
272 // standard, so does not need a manufacturer code, and we're sending client
273 // to server, so all the remaining bits are 0.
274 constexpr uint8_t kFrameControlGlobalCommand = 0x00;
276 // Pick source endpoint as 1 for now
277 constexpr EndpointId kSourceEndpoint = 1;
279 /*----------------------------------------------------------------------------*\
280 | Cluster ApplicationBasic | 0x050D |
281 |------------------------------------------------------------------------------|
283 |------------------------------------------------------------------------------|
285 | * VendorName | 0x0000 |
286 | * VendorId | 0x0001 |
287 | * ApplicationName | 0x0002 |
288 | * ProductId | 0x0003 |
289 | * ApplicationId | 0x0005 |
290 | * CatalogVendorId | 0x0006 |
291 | * ApplicationSatus | 0x0007 |
292 | * ClusterRevision | 0xFFFD |
293 \*----------------------------------------------------------------------------*/
295 PacketBufferHandle encodeApplicationBasicClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
297 COMMAND_HEADER("DiscoverApplicationBasicAttributes", APPLICATION_BASIC_CLUSTER_ID);
298 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
303 * Attribute VendorName
305 PacketBufferHandle encodeApplicationBasicClusterReadVendorNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
307 COMMAND_HEADER("ReadApplicationBasicVendorName", APPLICATION_BASIC_CLUSTER_ID);
308 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
315 PacketBufferHandle encodeApplicationBasicClusterReadVendorIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
317 COMMAND_HEADER("ReadApplicationBasicVendorId", APPLICATION_BASIC_CLUSTER_ID);
318 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
323 * Attribute ApplicationName
325 PacketBufferHandle encodeApplicationBasicClusterReadApplicationNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
327 COMMAND_HEADER("ReadApplicationBasicApplicationName", APPLICATION_BASIC_CLUSTER_ID);
328 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
333 * Attribute ProductId
335 PacketBufferHandle encodeApplicationBasicClusterReadProductIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
337 COMMAND_HEADER("ReadApplicationBasicProductId", APPLICATION_BASIC_CLUSTER_ID);
338 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
343 * Attribute ApplicationId
345 PacketBufferHandle encodeApplicationBasicClusterReadApplicationIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
347 COMMAND_HEADER("ReadApplicationBasicApplicationId", APPLICATION_BASIC_CLUSTER_ID);
348 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0005);
353 * Attribute CatalogVendorId
355 PacketBufferHandle encodeApplicationBasicClusterReadCatalogVendorIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
357 COMMAND_HEADER("ReadApplicationBasicCatalogVendorId", APPLICATION_BASIC_CLUSTER_ID);
358 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0006);
363 * Attribute ApplicationSatus
365 PacketBufferHandle encodeApplicationBasicClusterReadApplicationSatusAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
367 COMMAND_HEADER("ReadApplicationBasicApplicationSatus", APPLICATION_BASIC_CLUSTER_ID);
368 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
373 * Attribute ClusterRevision
375 PacketBufferHandle encodeApplicationBasicClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
377 COMMAND_HEADER("ReadApplicationBasicClusterRevision", APPLICATION_BASIC_CLUSTER_ID);
378 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
382 /*----------------------------------------------------------------------------*\
383 | Cluster BarrierControl | 0x0103 |
384 |------------------------------------------------------------------------------|
386 | * BarrierControlGoToPercent | 0x00 |
387 | * BarrierControlStop | 0x01 |
388 |------------------------------------------------------------------------------|
390 | * BarrierMovingState | 0x0001 |
391 | * BarrierSafetyStatus | 0x0002 |
392 | * BarrierCapabilities | 0x0003 |
393 | * BarrierPosition | 0x000A |
394 | * ClusterRevision | 0xFFFD |
395 \*----------------------------------------------------------------------------*/
398 * Command BarrierControlGoToPercent
400 PacketBufferHandle encodeBarrierControlClusterBarrierControlGoToPercentCommand(uint8_t seqNum, EndpointId destinationEndpoint,
403 COMMAND_HEADER("BarrierControlGoToPercent", BARRIER_CONTROL_CLUSTER_ID);
405 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID).Put8(percentOpen);
410 * Command BarrierControlStop
412 PacketBufferHandle encodeBarrierControlClusterBarrierControlStopCommand(uint8_t seqNum, EndpointId destinationEndpoint)
414 COMMAND_HEADER("BarrierControlStop", BARRIER_CONTROL_CLUSTER_ID);
415 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_BARRIER_CONTROL_STOP_COMMAND_ID);
419 PacketBufferHandle encodeBarrierControlClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
421 COMMAND_HEADER("DiscoverBarrierControlAttributes", BARRIER_CONTROL_CLUSTER_ID);
422 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
427 * Attribute BarrierMovingState
429 PacketBufferHandle encodeBarrierControlClusterReadBarrierMovingStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
431 COMMAND_HEADER("ReadBarrierControlBarrierMovingState", BARRIER_CONTROL_CLUSTER_ID);
432 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
437 * Attribute BarrierSafetyStatus
439 PacketBufferHandle encodeBarrierControlClusterReadBarrierSafetyStatusAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
441 COMMAND_HEADER("ReadBarrierControlBarrierSafetyStatus", BARRIER_CONTROL_CLUSTER_ID);
442 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
447 * Attribute BarrierCapabilities
449 PacketBufferHandle encodeBarrierControlClusterReadBarrierCapabilitiesAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
451 COMMAND_HEADER("ReadBarrierControlBarrierCapabilities", BARRIER_CONTROL_CLUSTER_ID);
452 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
457 * Attribute BarrierPosition
459 PacketBufferHandle encodeBarrierControlClusterReadBarrierPositionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
461 COMMAND_HEADER("ReadBarrierControlBarrierPosition", BARRIER_CONTROL_CLUSTER_ID);
462 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x000A);
467 * Attribute ClusterRevision
469 PacketBufferHandle encodeBarrierControlClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
471 COMMAND_HEADER("ReadBarrierControlClusterRevision", BARRIER_CONTROL_CLUSTER_ID);
472 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
476 /*----------------------------------------------------------------------------*\
477 | Cluster Basic | 0x0028 |
478 |------------------------------------------------------------------------------|
480 | * MfgSpecificPing | 0x00 |
481 |------------------------------------------------------------------------------|
483 | * InteractionModelVersion | 0x0000 |
484 | * VendorName | 0x0001 |
485 | * VendorID | 0x0002 |
486 | * ProductName | 0x0003 |
487 | * ProductID | 0x0004 |
488 | * UserLabel | 0x0005 |
489 | * Location | 0x0006 |
490 | * HardwareVersion | 0x0007 |
491 | * HardwareVersionString | 0x0008 |
492 | * SoftwareVersion | 0x0009 |
493 | * SoftwareVersionString | 0x000A |
494 | * ClusterRevision | 0xFFFD |
495 \*----------------------------------------------------------------------------*/
498 * Command MfgSpecificPing
500 PacketBufferHandle encodeBasicClusterMfgSpecificPingCommand(uint8_t seqNum, EndpointId destinationEndpoint)
502 COMMAND_HEADER("MfgSpecificPing", BASIC_CLUSTER_ID);
503 buf.Put8(kFrameControlClusterSpecificCommand | (1u << 2)).Put16(0x1002).Put8(seqNum).Put8(ZCL_MFG_SPECIFIC_PING_COMMAND_ID);
507 PacketBufferHandle encodeBasicClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
509 COMMAND_HEADER("DiscoverBasicAttributes", BASIC_CLUSTER_ID);
510 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
515 * Attribute InteractionModelVersion
517 PacketBufferHandle encodeBasicClusterReadInteractionModelVersionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
519 COMMAND_HEADER("ReadBasicInteractionModelVersion", BASIC_CLUSTER_ID);
520 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
525 * Attribute VendorName
527 PacketBufferHandle encodeBasicClusterReadVendorNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
529 COMMAND_HEADER("ReadBasicVendorName", BASIC_CLUSTER_ID);
530 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
537 PacketBufferHandle encodeBasicClusterReadVendorIDAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
539 COMMAND_HEADER("ReadBasicVendorID", BASIC_CLUSTER_ID);
540 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
545 * Attribute ProductName
547 PacketBufferHandle encodeBasicClusterReadProductNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
549 COMMAND_HEADER("ReadBasicProductName", BASIC_CLUSTER_ID);
550 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
555 * Attribute ProductID
557 PacketBufferHandle encodeBasicClusterReadProductIDAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
559 COMMAND_HEADER("ReadBasicProductID", BASIC_CLUSTER_ID);
560 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0004);
565 * Attribute UserLabel
567 PacketBufferHandle encodeBasicClusterReadUserLabelAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
569 COMMAND_HEADER("ReadBasicUserLabel", BASIC_CLUSTER_ID);
570 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0005);
574 PacketBufferHandle encodeBasicClusterWriteUserLabelAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
575 chip::ByteSpan userLabel)
577 COMMAND_HEADER("WriteBasicUserLabel", BASIC_CLUSTER_ID);
578 size_t userLabelStrLen = userLabel.size();
579 if (!CanCastTo<uint8_t>(userLabelStrLen))
581 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, userLabelStrLen);
582 return PacketBufferHandle();
585 buf.Put8(kFrameControlGlobalCommand)
587 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
590 .Put(static_cast<uint8_t>(userLabelStrLen))
591 .Put(userLabel.data(), userLabelStrLen);
598 PacketBufferHandle encodeBasicClusterReadLocationAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
600 COMMAND_HEADER("ReadBasicLocation", BASIC_CLUSTER_ID);
601 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0006);
605 PacketBufferHandle encodeBasicClusterWriteLocationAttribute(uint8_t seqNum, EndpointId destinationEndpoint, chip::ByteSpan location)
607 COMMAND_HEADER("WriteBasicLocation", BASIC_CLUSTER_ID);
608 size_t locationStrLen = location.size();
609 if (!CanCastTo<uint8_t>(locationStrLen))
611 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, locationStrLen);
612 return PacketBufferHandle();
615 buf.Put8(kFrameControlGlobalCommand)
617 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
620 .Put(static_cast<uint8_t>(locationStrLen))
621 .Put(location.data(), locationStrLen);
626 * Attribute HardwareVersion
628 PacketBufferHandle encodeBasicClusterReadHardwareVersionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
630 COMMAND_HEADER("ReadBasicHardwareVersion", BASIC_CLUSTER_ID);
631 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
636 * Attribute HardwareVersionString
638 PacketBufferHandle encodeBasicClusterReadHardwareVersionStringAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
640 COMMAND_HEADER("ReadBasicHardwareVersionString", BASIC_CLUSTER_ID);
641 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0008);
646 * Attribute SoftwareVersion
648 PacketBufferHandle encodeBasicClusterReadSoftwareVersionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
650 COMMAND_HEADER("ReadBasicSoftwareVersion", BASIC_CLUSTER_ID);
651 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0009);
656 * Attribute SoftwareVersionString
658 PacketBufferHandle encodeBasicClusterReadSoftwareVersionStringAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
660 COMMAND_HEADER("ReadBasicSoftwareVersionString", BASIC_CLUSTER_ID);
661 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x000A);
666 * Attribute ClusterRevision
668 PacketBufferHandle encodeBasicClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
670 COMMAND_HEADER("ReadBasicClusterRevision", BASIC_CLUSTER_ID);
671 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
675 /*----------------------------------------------------------------------------*\
676 | Cluster Binding | 0xF000 |
677 |------------------------------------------------------------------------------|
681 |------------------------------------------------------------------------------|
683 | * ClusterRevision | 0xFFFD |
684 \*----------------------------------------------------------------------------*/
689 PacketBufferHandle encodeBindingClusterBindCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::NodeId nodeId,
690 chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId)
692 COMMAND_HEADER("Bind", BINDING_CLUSTER_ID);
694 buf.Put8(kFrameControlClusterSpecificCommand)
696 .Put8(ZCL_BIND_COMMAND_ID)
707 PacketBufferHandle encodeBindingClusterUnbindCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::NodeId nodeId,
708 chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId)
710 COMMAND_HEADER("Unbind", BINDING_CLUSTER_ID);
712 buf.Put8(kFrameControlClusterSpecificCommand)
714 .Put8(ZCL_UNBIND_COMMAND_ID)
722 PacketBufferHandle encodeBindingClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
724 COMMAND_HEADER("DiscoverBindingAttributes", BINDING_CLUSTER_ID);
725 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
730 * Attribute ClusterRevision
732 PacketBufferHandle encodeBindingClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
734 COMMAND_HEADER("ReadBindingClusterRevision", BINDING_CLUSTER_ID);
735 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
739 /*----------------------------------------------------------------------------*\
740 | Cluster ColorControl | 0x0300 |
741 |------------------------------------------------------------------------------|
743 | * MoveColor | 0x08 |
744 | * MoveColorTemperature | 0x4B |
746 | * MoveSaturation | 0x04 |
747 | * MoveToColor | 0x07 |
748 | * MoveToColorTemperature | 0x0A |
749 | * MoveToHue | 0x00 |
750 | * MoveToHueAndSaturation | 0x06 |
751 | * MoveToSaturation | 0x03 |
752 | * StepColor | 0x09 |
753 | * StepColorTemperature | 0x4C |
755 | * StepSaturation | 0x05 |
756 | * StopMoveStep | 0x47 |
757 |------------------------------------------------------------------------------|
759 | * CurrentHue | 0x0000 |
760 | * CurrentSaturation | 0x0001 |
761 | * RemainingTime | 0x0002 |
762 | * CurrentX | 0x0003 |
763 | * CurrentY | 0x0004 |
764 | * DriftCompensation | 0x0005 |
765 | * CompensationText | 0x0006 |
766 | * ColorTemperature | 0x0007 |
767 | * ColorMode | 0x0008 |
768 | * ColorControlOptions | 0x000F |
769 | * NumberOfPrimaries | 0x0010 |
770 | * Primary1X | 0x0011 |
771 | * Primary1Y | 0x0012 |
772 | * Primary1Intensity | 0x0013 |
773 | * Primary2X | 0x0015 |
774 | * Primary2Y | 0x0016 |
775 | * Primary2Intensity | 0x0017 |
776 | * Primary3X | 0x0019 |
777 | * Primary3Y | 0x001A |
778 | * Primary3Intensity | 0x001B |
779 | * Primary4X | 0x0020 |
780 | * Primary4Y | 0x0021 |
781 | * Primary4Intensity | 0x0022 |
782 | * Primary5X | 0x0024 |
783 | * Primary5Y | 0x0025 |
784 | * Primary5Intensity | 0x0026 |
785 | * Primary6X | 0x0028 |
786 | * Primary6Y | 0x0029 |
787 | * Primary6Intensity | 0x002A |
788 | * WhitePointX | 0x0030 |
789 | * WhitePointY | 0x0031 |
790 | * ColorPointRX | 0x0032 |
791 | * ColorPointRY | 0x0033 |
792 | * ColorPointRIntensity | 0x0034 |
793 | * ColorPointGX | 0x0036 |
794 | * ColorPointGY | 0x0037 |
795 | * ColorPointGIntensity | 0x0038 |
796 | * ColorPointBX | 0x003A |
797 | * ColorPointBY | 0x003B |
798 | * ColorPointBIntensity | 0x003C |
799 | * EnhancedCurrentHue | 0x4000 |
800 | * EnhancedColorMode | 0x4001 |
801 | * ColorLoopActive | 0x4002 |
802 | * ColorLoopDirection | 0x4003 |
803 | * ColorLoopTime | 0x4004 |
804 | * ColorCapabilities | 0x400A |
805 | * ColorTempPhysicalMin | 0x400B |
806 | * ColorTempPhysicalMax | 0x400C |
807 | * CoupleColorTempToLevelMinMireds | 0x400D |
808 | * StartUpColorTemperatureMireds | 0x4010 |
809 | * ClusterRevision | 0xFFFD |
810 \*----------------------------------------------------------------------------*/
815 PacketBufferHandle encodeColorControlClusterMoveColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, int16_t rateX,
816 int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride)
818 COMMAND_HEADER("MoveColor", COLOR_CONTROL_CLUSTER_ID);
820 buf.Put8(kFrameControlClusterSpecificCommand)
822 .Put8(ZCL_MOVE_COLOR_COMMAND_ID)
823 .Put16(static_cast<uint16_t>(rateX))
824 .Put16(static_cast<uint16_t>(rateY))
826 .Put8(optionsOverride);
831 * Command MoveColorTemperature
833 PacketBufferHandle encodeColorControlClusterMoveColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
834 uint8_t moveMode, uint16_t rate,
835 uint16_t colorTemperatureMinimum,
836 uint16_t colorTemperatureMaximum, uint8_t optionsMask,
837 uint8_t optionsOverride)
839 COMMAND_HEADER("MoveColorTemperature", COLOR_CONTROL_CLUSTER_ID);
841 buf.Put8(kFrameControlClusterSpecificCommand)
843 .Put8(ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID)
846 .Put16(colorTemperatureMinimum)
847 .Put16(colorTemperatureMaximum)
849 .Put8(optionsOverride);
856 PacketBufferHandle encodeColorControlClusterMoveHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
857 uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride)
859 COMMAND_HEADER("MoveHue", COLOR_CONTROL_CLUSTER_ID);
861 buf.Put8(kFrameControlClusterSpecificCommand)
863 .Put8(ZCL_MOVE_HUE_COMMAND_ID)
867 .Put8(optionsOverride);
872 * Command MoveSaturation
874 PacketBufferHandle encodeColorControlClusterMoveSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
875 uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride)
877 COMMAND_HEADER("MoveSaturation", COLOR_CONTROL_CLUSTER_ID);
879 buf.Put8(kFrameControlClusterSpecificCommand)
881 .Put8(ZCL_MOVE_SATURATION_COMMAND_ID)
885 .Put8(optionsOverride);
890 * Command MoveToColor
892 PacketBufferHandle encodeColorControlClusterMoveToColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t colorX,
893 uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask,
894 uint8_t optionsOverride)
896 COMMAND_HEADER("MoveToColor", COLOR_CONTROL_CLUSTER_ID);
898 buf.Put8(kFrameControlClusterSpecificCommand)
900 .Put8(ZCL_MOVE_TO_COLOR_COMMAND_ID)
903 .Put16(transitionTime)
905 .Put8(optionsOverride);
910 * Command MoveToColorTemperature
912 PacketBufferHandle encodeColorControlClusterMoveToColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
913 uint16_t colorTemperature, uint16_t transitionTime,
914 uint8_t optionsMask, uint8_t optionsOverride)
916 COMMAND_HEADER("MoveToColorTemperature", COLOR_CONTROL_CLUSTER_ID);
918 buf.Put8(kFrameControlClusterSpecificCommand)
920 .Put8(ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID)
921 .Put16(colorTemperature)
922 .Put16(transitionTime)
924 .Put8(optionsOverride);
931 PacketBufferHandle encodeColorControlClusterMoveToHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t hue,
932 uint8_t direction, uint16_t transitionTime, uint8_t optionsMask,
933 uint8_t optionsOverride)
935 COMMAND_HEADER("MoveToHue", COLOR_CONTROL_CLUSTER_ID);
937 buf.Put8(kFrameControlClusterSpecificCommand)
939 .Put8(ZCL_MOVE_TO_HUE_COMMAND_ID)
942 .Put16(transitionTime)
944 .Put8(optionsOverride);
949 * Command MoveToHueAndSaturation
951 PacketBufferHandle encodeColorControlClusterMoveToHueAndSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint,
952 uint8_t hue, uint8_t saturation, uint16_t transitionTime,
953 uint8_t optionsMask, uint8_t optionsOverride)
955 COMMAND_HEADER("MoveToHueAndSaturation", COLOR_CONTROL_CLUSTER_ID);
957 buf.Put8(kFrameControlClusterSpecificCommand)
959 .Put8(ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID)
962 .Put16(transitionTime)
964 .Put8(optionsOverride);
969 * Command MoveToSaturation
971 PacketBufferHandle encodeColorControlClusterMoveToSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint,
972 uint8_t saturation, uint16_t transitionTime,
973 uint8_t optionsMask, uint8_t optionsOverride)
975 COMMAND_HEADER("MoveToSaturation", COLOR_CONTROL_CLUSTER_ID);
977 buf.Put8(kFrameControlClusterSpecificCommand)
979 .Put8(ZCL_MOVE_TO_SATURATION_COMMAND_ID)
981 .Put16(transitionTime)
983 .Put8(optionsOverride);
990 PacketBufferHandle encodeColorControlClusterStepColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, int16_t stepX,
991 int16_t stepY, uint16_t transitionTime, uint8_t optionsMask,
992 uint8_t optionsOverride)
994 COMMAND_HEADER("StepColor", COLOR_CONTROL_CLUSTER_ID);
996 buf.Put8(kFrameControlClusterSpecificCommand)
998 .Put8(ZCL_STEP_COLOR_COMMAND_ID)
999 .Put16(static_cast<uint16_t>(stepX))
1000 .Put16(static_cast<uint16_t>(stepY))
1001 .Put16(transitionTime)
1003 .Put8(optionsOverride);
1008 * Command StepColorTemperature
1010 PacketBufferHandle encodeColorControlClusterStepColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1011 uint8_t stepMode, uint16_t stepSize,
1012 uint16_t transitionTime, uint16_t colorTemperatureMinimum,
1013 uint16_t colorTemperatureMaximum, uint8_t optionsMask,
1014 uint8_t optionsOverride)
1016 COMMAND_HEADER("StepColorTemperature", COLOR_CONTROL_CLUSTER_ID);
1018 buf.Put8(kFrameControlClusterSpecificCommand)
1020 .Put8(ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID)
1023 .Put16(transitionTime)
1024 .Put16(colorTemperatureMinimum)
1025 .Put16(colorTemperatureMaximum)
1027 .Put8(optionsOverride);
1034 PacketBufferHandle encodeColorControlClusterStepHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
1035 uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
1036 uint8_t optionsOverride)
1038 COMMAND_HEADER("StepHue", COLOR_CONTROL_CLUSTER_ID);
1040 buf.Put8(kFrameControlClusterSpecificCommand)
1042 .Put8(ZCL_STEP_HUE_COMMAND_ID)
1045 .Put8(transitionTime)
1047 .Put8(optionsOverride);
1052 * Command StepSaturation
1054 PacketBufferHandle encodeColorControlClusterStepSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
1055 uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
1056 uint8_t optionsOverride)
1058 COMMAND_HEADER("StepSaturation", COLOR_CONTROL_CLUSTER_ID);
1060 buf.Put8(kFrameControlClusterSpecificCommand)
1062 .Put8(ZCL_STEP_SATURATION_COMMAND_ID)
1065 .Put8(transitionTime)
1067 .Put8(optionsOverride);
1072 * Command StopMoveStep
1074 PacketBufferHandle encodeColorControlClusterStopMoveStepCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t optionsMask,
1075 uint8_t optionsOverride)
1077 COMMAND_HEADER("StopMoveStep", COLOR_CONTROL_CLUSTER_ID);
1079 buf.Put8(kFrameControlClusterSpecificCommand)
1081 .Put8(ZCL_STOP_MOVE_STEP_COMMAND_ID)
1083 .Put8(optionsOverride);
1087 PacketBufferHandle encodeColorControlClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
1089 COMMAND_HEADER("DiscoverColorControlAttributes", COLOR_CONTROL_CLUSTER_ID);
1090 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
1095 * Attribute CurrentHue
1097 PacketBufferHandle encodeColorControlClusterReadCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1099 COMMAND_HEADER("ReadColorControlCurrentHue", COLOR_CONTROL_CLUSTER_ID);
1100 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
1104 PacketBufferHandle encodeColorControlClusterConfigureCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1105 uint16_t minInterval, uint16_t maxInterval, uint8_t change)
1107 COMMAND_HEADER("ReportColorControlCurrentHue", COLOR_CONTROL_CLUSTER_ID);
1108 buf.Put8(kFrameControlGlobalCommand)
1110 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1111 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1115 .Put16(maxInterval);
1116 buf.Put8(static_cast<uint8_t>(change));
1121 * Attribute CurrentSaturation
1123 PacketBufferHandle encodeColorControlClusterReadCurrentSaturationAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1125 COMMAND_HEADER("ReadColorControlCurrentSaturation", COLOR_CONTROL_CLUSTER_ID);
1126 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
1130 PacketBufferHandle encodeColorControlClusterConfigureCurrentSaturationAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1131 uint16_t minInterval, uint16_t maxInterval,
1134 COMMAND_HEADER("ReportColorControlCurrentSaturation", COLOR_CONTROL_CLUSTER_ID);
1135 buf.Put8(kFrameControlGlobalCommand)
1137 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1138 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1142 .Put16(maxInterval);
1143 buf.Put8(static_cast<uint8_t>(change));
1148 * Attribute RemainingTime
1150 PacketBufferHandle encodeColorControlClusterReadRemainingTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1152 COMMAND_HEADER("ReadColorControlRemainingTime", COLOR_CONTROL_CLUSTER_ID);
1153 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
1158 * Attribute CurrentX
1160 PacketBufferHandle encodeColorControlClusterReadCurrentXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1162 COMMAND_HEADER("ReadColorControlCurrentX", COLOR_CONTROL_CLUSTER_ID);
1163 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
1167 PacketBufferHandle encodeColorControlClusterConfigureCurrentXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1168 uint16_t minInterval, uint16_t maxInterval, uint16_t change)
1170 COMMAND_HEADER("ReportColorControlCurrentX", COLOR_CONTROL_CLUSTER_ID);
1171 buf.Put8(kFrameControlGlobalCommand)
1173 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1174 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1178 .Put16(maxInterval);
1179 buf.Put16(static_cast<uint16_t>(change));
1184 * Attribute CurrentY
1186 PacketBufferHandle encodeColorControlClusterReadCurrentYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1188 COMMAND_HEADER("ReadColorControlCurrentY", COLOR_CONTROL_CLUSTER_ID);
1189 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0004);
1193 PacketBufferHandle encodeColorControlClusterConfigureCurrentYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1194 uint16_t minInterval, uint16_t maxInterval, uint16_t change)
1196 COMMAND_HEADER("ReportColorControlCurrentY", COLOR_CONTROL_CLUSTER_ID);
1197 buf.Put8(kFrameControlGlobalCommand)
1199 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1200 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1204 .Put16(maxInterval);
1205 buf.Put16(static_cast<uint16_t>(change));
1210 * Attribute DriftCompensation
1212 PacketBufferHandle encodeColorControlClusterReadDriftCompensationAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1214 COMMAND_HEADER("ReadColorControlDriftCompensation", COLOR_CONTROL_CLUSTER_ID);
1215 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0005);
1220 * Attribute CompensationText
1222 PacketBufferHandle encodeColorControlClusterReadCompensationTextAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1224 COMMAND_HEADER("ReadColorControlCompensationText", COLOR_CONTROL_CLUSTER_ID);
1225 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0006);
1230 * Attribute ColorTemperature
1232 PacketBufferHandle encodeColorControlClusterReadColorTemperatureAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1234 COMMAND_HEADER("ReadColorControlColorTemperature", COLOR_CONTROL_CLUSTER_ID);
1235 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
1239 PacketBufferHandle encodeColorControlClusterConfigureColorTemperatureAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1240 uint16_t minInterval, uint16_t maxInterval,
1243 COMMAND_HEADER("ReportColorControlColorTemperature", COLOR_CONTROL_CLUSTER_ID);
1244 buf.Put8(kFrameControlGlobalCommand)
1246 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1247 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1251 .Put16(maxInterval);
1252 buf.Put16(static_cast<uint16_t>(change));
1257 * Attribute ColorMode
1259 PacketBufferHandle encodeColorControlClusterReadColorModeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1261 COMMAND_HEADER("ReadColorControlColorMode", COLOR_CONTROL_CLUSTER_ID);
1262 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0008);
1267 * Attribute ColorControlOptions
1269 PacketBufferHandle encodeColorControlClusterReadColorControlOptionsAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1271 COMMAND_HEADER("ReadColorControlColorControlOptions", COLOR_CONTROL_CLUSTER_ID);
1272 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x000F);
1276 PacketBufferHandle encodeColorControlClusterWriteColorControlOptionsAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1277 uint8_t colorControlOptions)
1279 COMMAND_HEADER("WriteColorControlColorControlOptions", COLOR_CONTROL_CLUSTER_ID);
1280 buf.Put8(kFrameControlGlobalCommand)
1282 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1285 .Put8(static_cast<uint8_t>(colorControlOptions));
1290 * Attribute NumberOfPrimaries
1292 PacketBufferHandle encodeColorControlClusterReadNumberOfPrimariesAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1294 COMMAND_HEADER("ReadColorControlNumberOfPrimaries", COLOR_CONTROL_CLUSTER_ID);
1295 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0010);
1300 * Attribute Primary1X
1302 PacketBufferHandle encodeColorControlClusterReadPrimary1XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1304 COMMAND_HEADER("ReadColorControlPrimary1X", COLOR_CONTROL_CLUSTER_ID);
1305 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0011);
1310 * Attribute Primary1Y
1312 PacketBufferHandle encodeColorControlClusterReadPrimary1YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1314 COMMAND_HEADER("ReadColorControlPrimary1Y", COLOR_CONTROL_CLUSTER_ID);
1315 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0012);
1320 * Attribute Primary1Intensity
1322 PacketBufferHandle encodeColorControlClusterReadPrimary1IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1324 COMMAND_HEADER("ReadColorControlPrimary1Intensity", COLOR_CONTROL_CLUSTER_ID);
1325 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0013);
1330 * Attribute Primary2X
1332 PacketBufferHandle encodeColorControlClusterReadPrimary2XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1334 COMMAND_HEADER("ReadColorControlPrimary2X", COLOR_CONTROL_CLUSTER_ID);
1335 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0015);
1340 * Attribute Primary2Y
1342 PacketBufferHandle encodeColorControlClusterReadPrimary2YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1344 COMMAND_HEADER("ReadColorControlPrimary2Y", COLOR_CONTROL_CLUSTER_ID);
1345 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0016);
1350 * Attribute Primary2Intensity
1352 PacketBufferHandle encodeColorControlClusterReadPrimary2IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1354 COMMAND_HEADER("ReadColorControlPrimary2Intensity", COLOR_CONTROL_CLUSTER_ID);
1355 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0017);
1360 * Attribute Primary3X
1362 PacketBufferHandle encodeColorControlClusterReadPrimary3XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1364 COMMAND_HEADER("ReadColorControlPrimary3X", COLOR_CONTROL_CLUSTER_ID);
1365 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0019);
1370 * Attribute Primary3Y
1372 PacketBufferHandle encodeColorControlClusterReadPrimary3YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1374 COMMAND_HEADER("ReadColorControlPrimary3Y", COLOR_CONTROL_CLUSTER_ID);
1375 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x001A);
1380 * Attribute Primary3Intensity
1382 PacketBufferHandle encodeColorControlClusterReadPrimary3IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1384 COMMAND_HEADER("ReadColorControlPrimary3Intensity", COLOR_CONTROL_CLUSTER_ID);
1385 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x001B);
1390 * Attribute Primary4X
1392 PacketBufferHandle encodeColorControlClusterReadPrimary4XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1394 COMMAND_HEADER("ReadColorControlPrimary4X", COLOR_CONTROL_CLUSTER_ID);
1395 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0020);
1400 * Attribute Primary4Y
1402 PacketBufferHandle encodeColorControlClusterReadPrimary4YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1404 COMMAND_HEADER("ReadColorControlPrimary4Y", COLOR_CONTROL_CLUSTER_ID);
1405 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0021);
1410 * Attribute Primary4Intensity
1412 PacketBufferHandle encodeColorControlClusterReadPrimary4IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1414 COMMAND_HEADER("ReadColorControlPrimary4Intensity", COLOR_CONTROL_CLUSTER_ID);
1415 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0022);
1420 * Attribute Primary5X
1422 PacketBufferHandle encodeColorControlClusterReadPrimary5XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1424 COMMAND_HEADER("ReadColorControlPrimary5X", COLOR_CONTROL_CLUSTER_ID);
1425 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0024);
1430 * Attribute Primary5Y
1432 PacketBufferHandle encodeColorControlClusterReadPrimary5YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1434 COMMAND_HEADER("ReadColorControlPrimary5Y", COLOR_CONTROL_CLUSTER_ID);
1435 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0025);
1440 * Attribute Primary5Intensity
1442 PacketBufferHandle encodeColorControlClusterReadPrimary5IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1444 COMMAND_HEADER("ReadColorControlPrimary5Intensity", COLOR_CONTROL_CLUSTER_ID);
1445 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0026);
1450 * Attribute Primary6X
1452 PacketBufferHandle encodeColorControlClusterReadPrimary6XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1454 COMMAND_HEADER("ReadColorControlPrimary6X", COLOR_CONTROL_CLUSTER_ID);
1455 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0028);
1460 * Attribute Primary6Y
1462 PacketBufferHandle encodeColorControlClusterReadPrimary6YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1464 COMMAND_HEADER("ReadColorControlPrimary6Y", COLOR_CONTROL_CLUSTER_ID);
1465 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0029);
1470 * Attribute Primary6Intensity
1472 PacketBufferHandle encodeColorControlClusterReadPrimary6IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1474 COMMAND_HEADER("ReadColorControlPrimary6Intensity", COLOR_CONTROL_CLUSTER_ID);
1475 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x002A);
1480 * Attribute WhitePointX
1482 PacketBufferHandle encodeColorControlClusterReadWhitePointXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1484 COMMAND_HEADER("ReadColorControlWhitePointX", COLOR_CONTROL_CLUSTER_ID);
1485 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0030);
1489 PacketBufferHandle encodeColorControlClusterWriteWhitePointXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1490 uint16_t whitePointX)
1492 COMMAND_HEADER("WriteColorControlWhitePointX", COLOR_CONTROL_CLUSTER_ID);
1493 buf.Put8(kFrameControlGlobalCommand)
1495 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1498 .Put16(static_cast<uint16_t>(whitePointX));
1503 * Attribute WhitePointY
1505 PacketBufferHandle encodeColorControlClusterReadWhitePointYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1507 COMMAND_HEADER("ReadColorControlWhitePointY", COLOR_CONTROL_CLUSTER_ID);
1508 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0031);
1512 PacketBufferHandle encodeColorControlClusterWriteWhitePointYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1513 uint16_t whitePointY)
1515 COMMAND_HEADER("WriteColorControlWhitePointY", COLOR_CONTROL_CLUSTER_ID);
1516 buf.Put8(kFrameControlGlobalCommand)
1518 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1521 .Put16(static_cast<uint16_t>(whitePointY));
1526 * Attribute ColorPointRX
1528 PacketBufferHandle encodeColorControlClusterReadColorPointRXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1530 COMMAND_HEADER("ReadColorControlColorPointRX", COLOR_CONTROL_CLUSTER_ID);
1531 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0032);
1535 PacketBufferHandle encodeColorControlClusterWriteColorPointRXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1536 uint16_t colorPointRX)
1538 COMMAND_HEADER("WriteColorControlColorPointRX", COLOR_CONTROL_CLUSTER_ID);
1539 buf.Put8(kFrameControlGlobalCommand)
1541 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1544 .Put16(static_cast<uint16_t>(colorPointRX));
1549 * Attribute ColorPointRY
1551 PacketBufferHandle encodeColorControlClusterReadColorPointRYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1553 COMMAND_HEADER("ReadColorControlColorPointRY", COLOR_CONTROL_CLUSTER_ID);
1554 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0033);
1558 PacketBufferHandle encodeColorControlClusterWriteColorPointRYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1559 uint16_t colorPointRY)
1561 COMMAND_HEADER("WriteColorControlColorPointRY", COLOR_CONTROL_CLUSTER_ID);
1562 buf.Put8(kFrameControlGlobalCommand)
1564 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1567 .Put16(static_cast<uint16_t>(colorPointRY));
1572 * Attribute ColorPointRIntensity
1574 PacketBufferHandle encodeColorControlClusterReadColorPointRIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1576 COMMAND_HEADER("ReadColorControlColorPointRIntensity", COLOR_CONTROL_CLUSTER_ID);
1577 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0034);
1581 PacketBufferHandle encodeColorControlClusterWriteColorPointRIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1582 uint8_t colorPointRIntensity)
1584 COMMAND_HEADER("WriteColorControlColorPointRIntensity", COLOR_CONTROL_CLUSTER_ID);
1585 buf.Put8(kFrameControlGlobalCommand)
1587 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1590 .Put8(static_cast<uint8_t>(colorPointRIntensity));
1595 * Attribute ColorPointGX
1597 PacketBufferHandle encodeColorControlClusterReadColorPointGXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1599 COMMAND_HEADER("ReadColorControlColorPointGX", COLOR_CONTROL_CLUSTER_ID);
1600 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0036);
1604 PacketBufferHandle encodeColorControlClusterWriteColorPointGXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1605 uint16_t colorPointGX)
1607 COMMAND_HEADER("WriteColorControlColorPointGX", COLOR_CONTROL_CLUSTER_ID);
1608 buf.Put8(kFrameControlGlobalCommand)
1610 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1613 .Put16(static_cast<uint16_t>(colorPointGX));
1618 * Attribute ColorPointGY
1620 PacketBufferHandle encodeColorControlClusterReadColorPointGYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1622 COMMAND_HEADER("ReadColorControlColorPointGY", COLOR_CONTROL_CLUSTER_ID);
1623 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0037);
1627 PacketBufferHandle encodeColorControlClusterWriteColorPointGYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1628 uint16_t colorPointGY)
1630 COMMAND_HEADER("WriteColorControlColorPointGY", COLOR_CONTROL_CLUSTER_ID);
1631 buf.Put8(kFrameControlGlobalCommand)
1633 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1636 .Put16(static_cast<uint16_t>(colorPointGY));
1641 * Attribute ColorPointGIntensity
1643 PacketBufferHandle encodeColorControlClusterReadColorPointGIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1645 COMMAND_HEADER("ReadColorControlColorPointGIntensity", COLOR_CONTROL_CLUSTER_ID);
1646 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0038);
1650 PacketBufferHandle encodeColorControlClusterWriteColorPointGIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1651 uint8_t colorPointGIntensity)
1653 COMMAND_HEADER("WriteColorControlColorPointGIntensity", COLOR_CONTROL_CLUSTER_ID);
1654 buf.Put8(kFrameControlGlobalCommand)
1656 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1659 .Put8(static_cast<uint8_t>(colorPointGIntensity));
1664 * Attribute ColorPointBX
1666 PacketBufferHandle encodeColorControlClusterReadColorPointBXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1668 COMMAND_HEADER("ReadColorControlColorPointBX", COLOR_CONTROL_CLUSTER_ID);
1669 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003A);
1673 PacketBufferHandle encodeColorControlClusterWriteColorPointBXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1674 uint16_t colorPointBX)
1676 COMMAND_HEADER("WriteColorControlColorPointBX", COLOR_CONTROL_CLUSTER_ID);
1677 buf.Put8(kFrameControlGlobalCommand)
1679 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1682 .Put16(static_cast<uint16_t>(colorPointBX));
1687 * Attribute ColorPointBY
1689 PacketBufferHandle encodeColorControlClusterReadColorPointBYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1691 COMMAND_HEADER("ReadColorControlColorPointBY", COLOR_CONTROL_CLUSTER_ID);
1692 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003B);
1696 PacketBufferHandle encodeColorControlClusterWriteColorPointBYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1697 uint16_t colorPointBY)
1699 COMMAND_HEADER("WriteColorControlColorPointBY", COLOR_CONTROL_CLUSTER_ID);
1700 buf.Put8(kFrameControlGlobalCommand)
1702 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1705 .Put16(static_cast<uint16_t>(colorPointBY));
1710 * Attribute ColorPointBIntensity
1712 PacketBufferHandle encodeColorControlClusterReadColorPointBIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1714 COMMAND_HEADER("ReadColorControlColorPointBIntensity", COLOR_CONTROL_CLUSTER_ID);
1715 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003C);
1719 PacketBufferHandle encodeColorControlClusterWriteColorPointBIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1720 uint8_t colorPointBIntensity)
1722 COMMAND_HEADER("WriteColorControlColorPointBIntensity", COLOR_CONTROL_CLUSTER_ID);
1723 buf.Put8(kFrameControlGlobalCommand)
1725 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1728 .Put8(static_cast<uint8_t>(colorPointBIntensity));
1733 * Attribute EnhancedCurrentHue
1735 PacketBufferHandle encodeColorControlClusterReadEnhancedCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1737 COMMAND_HEADER("ReadColorControlEnhancedCurrentHue", COLOR_CONTROL_CLUSTER_ID);
1738 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4000);
1743 * Attribute EnhancedColorMode
1745 PacketBufferHandle encodeColorControlClusterReadEnhancedColorModeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1747 COMMAND_HEADER("ReadColorControlEnhancedColorMode", COLOR_CONTROL_CLUSTER_ID);
1748 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4001);
1753 * Attribute ColorLoopActive
1755 PacketBufferHandle encodeColorControlClusterReadColorLoopActiveAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1757 COMMAND_HEADER("ReadColorControlColorLoopActive", COLOR_CONTROL_CLUSTER_ID);
1758 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4002);
1763 * Attribute ColorLoopDirection
1765 PacketBufferHandle encodeColorControlClusterReadColorLoopDirectionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1767 COMMAND_HEADER("ReadColorControlColorLoopDirection", COLOR_CONTROL_CLUSTER_ID);
1768 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4003);
1773 * Attribute ColorLoopTime
1775 PacketBufferHandle encodeColorControlClusterReadColorLoopTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1777 COMMAND_HEADER("ReadColorControlColorLoopTime", COLOR_CONTROL_CLUSTER_ID);
1778 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4004);
1783 * Attribute ColorCapabilities
1785 PacketBufferHandle encodeColorControlClusterReadColorCapabilitiesAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1787 COMMAND_HEADER("ReadColorControlColorCapabilities", COLOR_CONTROL_CLUSTER_ID);
1788 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400A);
1793 * Attribute ColorTempPhysicalMin
1795 PacketBufferHandle encodeColorControlClusterReadColorTempPhysicalMinAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1797 COMMAND_HEADER("ReadColorControlColorTempPhysicalMin", COLOR_CONTROL_CLUSTER_ID);
1798 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400B);
1803 * Attribute ColorTempPhysicalMax
1805 PacketBufferHandle encodeColorControlClusterReadColorTempPhysicalMaxAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1807 COMMAND_HEADER("ReadColorControlColorTempPhysicalMax", COLOR_CONTROL_CLUSTER_ID);
1808 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400C);
1813 * Attribute CoupleColorTempToLevelMinMireds
1815 PacketBufferHandle encodeColorControlClusterReadCoupleColorTempToLevelMinMiredsAttribute(uint8_t seqNum,
1816 EndpointId destinationEndpoint)
1818 COMMAND_HEADER("ReadColorControlCoupleColorTempToLevelMinMireds", COLOR_CONTROL_CLUSTER_ID);
1819 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400D);
1824 * Attribute StartUpColorTemperatureMireds
1826 PacketBufferHandle encodeColorControlClusterReadStartUpColorTemperatureMiredsAttribute(uint8_t seqNum,
1827 EndpointId destinationEndpoint)
1829 COMMAND_HEADER("ReadColorControlStartUpColorTemperatureMireds", COLOR_CONTROL_CLUSTER_ID);
1830 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4010);
1834 PacketBufferHandle encodeColorControlClusterWriteStartUpColorTemperatureMiredsAttribute(uint8_t seqNum,
1835 EndpointId destinationEndpoint,
1836 uint16_t startUpColorTemperatureMireds)
1838 COMMAND_HEADER("WriteColorControlStartUpColorTemperatureMireds", COLOR_CONTROL_CLUSTER_ID);
1839 buf.Put8(kFrameControlGlobalCommand)
1841 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1844 .Put16(static_cast<uint16_t>(startUpColorTemperatureMireds));
1849 * Attribute ClusterRevision
1851 PacketBufferHandle encodeColorControlClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1853 COMMAND_HEADER("ReadColorControlClusterRevision", COLOR_CONTROL_CLUSTER_ID);
1854 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
1858 /*----------------------------------------------------------------------------*\
1859 | Cluster DoorLock | 0x0101 |
1860 |------------------------------------------------------------------------------|
1862 | * ClearAllPins | 0x08 |
1863 | * ClearAllRfids | 0x19 |
1864 | * ClearHolidaySchedule | 0x13 |
1865 | * ClearPin | 0x07 |
1866 | * ClearRfid | 0x18 |
1867 | * ClearWeekdaySchedule | 0x0D |
1868 | * ClearYeardaySchedule | 0x10 |
1869 | * GetHolidaySchedule | 0x12 |
1870 | * GetLogRecord | 0x04 |
1872 | * GetRfid | 0x17 |
1873 | * GetUserType | 0x15 |
1874 | * GetWeekdaySchedule | 0x0C |
1875 | * GetYeardaySchedule | 0x0F |
1876 | * LockDoor | 0x00 |
1877 | * SetHolidaySchedule | 0x11 |
1879 | * SetRfid | 0x16 |
1880 | * SetUserType | 0x14 |
1881 | * SetWeekdaySchedule | 0x0B |
1882 | * SetYeardaySchedule | 0x0E |
1883 | * UnlockDoor | 0x01 |
1884 | * UnlockWithTimeout | 0x03 |
1885 |------------------------------------------------------------------------------|
1887 | * LockState | 0x0000 |
1888 | * LockType | 0x0001 |
1889 | * ActuatorEnabled | 0x0002 |
1890 | * ClusterRevision | 0xFFFD |
1891 \*----------------------------------------------------------------------------*/
1894 * Command ClearAllPins
1896 PacketBufferHandle encodeDoorLockClusterClearAllPinsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1898 COMMAND_HEADER("ClearAllPins", DOOR_LOCK_CLUSTER_ID);
1899 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_ALL_PINS_COMMAND_ID);
1904 * Command ClearAllRfids
1906 PacketBufferHandle encodeDoorLockClusterClearAllRfidsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1908 COMMAND_HEADER("ClearAllRfids", DOOR_LOCK_CLUSTER_ID);
1909 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_ALL_RFIDS_COMMAND_ID);
1914 * Command ClearHolidaySchedule
1916 PacketBufferHandle encodeDoorLockClusterClearHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1919 COMMAND_HEADER("ClearHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
1921 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID).Put8(scheduleId);
1928 PacketBufferHandle encodeDoorLockClusterClearPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
1930 COMMAND_HEADER("ClearPin", DOOR_LOCK_CLUSTER_ID);
1932 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_PIN_COMMAND_ID).Put16(userId);
1939 PacketBufferHandle encodeDoorLockClusterClearRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
1941 COMMAND_HEADER("ClearRfid", DOOR_LOCK_CLUSTER_ID);
1943 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_RFID_COMMAND_ID).Put16(userId);
1948 * Command ClearWeekdaySchedule
1950 PacketBufferHandle encodeDoorLockClusterClearWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1951 uint8_t scheduleId, uint16_t userId)
1953 COMMAND_HEADER("ClearWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
1955 buf.Put8(kFrameControlClusterSpecificCommand)
1957 .Put8(ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID)
1964 * Command ClearYeardaySchedule
1966 PacketBufferHandle encodeDoorLockClusterClearYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1967 uint8_t scheduleId, uint16_t userId)
1969 COMMAND_HEADER("ClearYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
1971 buf.Put8(kFrameControlClusterSpecificCommand)
1973 .Put8(ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID)
1980 * Command GetHolidaySchedule
1982 PacketBufferHandle encodeDoorLockClusterGetHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1985 COMMAND_HEADER("GetHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
1987 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID).Put8(scheduleId);
1992 * Command GetLogRecord
1994 PacketBufferHandle encodeDoorLockClusterGetLogRecordCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t logIndex)
1996 COMMAND_HEADER("GetLogRecord", DOOR_LOCK_CLUSTER_ID);
1998 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_LOG_RECORD_COMMAND_ID).Put16(logIndex);
2005 PacketBufferHandle encodeDoorLockClusterGetPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
2007 COMMAND_HEADER("GetPin", DOOR_LOCK_CLUSTER_ID);
2009 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_PIN_COMMAND_ID).Put16(userId);
2016 PacketBufferHandle encodeDoorLockClusterGetRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
2018 COMMAND_HEADER("GetRfid", DOOR_LOCK_CLUSTER_ID);
2020 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_RFID_COMMAND_ID).Put16(userId);
2025 * Command GetUserType
2027 PacketBufferHandle encodeDoorLockClusterGetUserTypeCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
2029 COMMAND_HEADER("GetUserType", DOOR_LOCK_CLUSTER_ID);
2031 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_USER_TYPE_COMMAND_ID).Put16(userId);
2036 * Command GetWeekdaySchedule
2038 PacketBufferHandle encodeDoorLockClusterGetWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2039 uint8_t scheduleId, uint16_t userId)
2041 COMMAND_HEADER("GetWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
2043 buf.Put8(kFrameControlClusterSpecificCommand)
2045 .Put8(ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID)
2052 * Command GetYeardaySchedule
2054 PacketBufferHandle encodeDoorLockClusterGetYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2055 uint8_t scheduleId, uint16_t userId)
2057 COMMAND_HEADER("GetYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
2059 buf.Put8(kFrameControlClusterSpecificCommand)
2061 .Put8(ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID)
2070 PacketBufferHandle encodeDoorLockClusterLockDoorCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::ByteSpan pin)
2072 COMMAND_HEADER("LockDoor", DOOR_LOCK_CLUSTER_ID);
2073 size_t pinStrLen = pin.size();
2074 if (!CanCastTo<uint8_t>(pinStrLen))
2076 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2077 return PacketBufferHandle();
2080 buf.Put8(kFrameControlClusterSpecificCommand)
2082 .Put8(ZCL_LOCK_DOOR_COMMAND_ID)
2083 .Put(static_cast<uint8_t>(pinStrLen))
2084 .Put(pin.data(), pin.size());
2089 * Command SetHolidaySchedule
2091 PacketBufferHandle encodeDoorLockClusterSetHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2092 uint8_t scheduleId, uint32_t localStartTime,
2093 uint32_t localEndTime, uint8_t operatingModeDuringHoliday)
2095 COMMAND_HEADER("SetHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
2097 buf.Put8(kFrameControlClusterSpecificCommand)
2099 .Put8(ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID)
2101 .Put32(localStartTime)
2102 .Put32(localEndTime)
2103 .Put8(operatingModeDuringHoliday);
2110 PacketBufferHandle encodeDoorLockClusterSetPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2111 uint8_t userStatus, uint8_t userType, chip::ByteSpan pin)
2113 COMMAND_HEADER("SetPin", DOOR_LOCK_CLUSTER_ID);
2115 size_t pinStrLen = pin.size();
2116 if (!CanCastTo<uint8_t>(pinStrLen))
2118 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2119 return PacketBufferHandle();
2122 buf.Put8(kFrameControlClusterSpecificCommand)
2124 .Put8(ZCL_SET_PIN_COMMAND_ID)
2128 .Put(static_cast<uint8_t>(pinStrLen))
2129 .Put(pin.data(), pin.size());
2136 PacketBufferHandle encodeDoorLockClusterSetRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2137 uint8_t userStatus, uint8_t userType, chip::ByteSpan id)
2139 COMMAND_HEADER("SetRfid", DOOR_LOCK_CLUSTER_ID);
2141 size_t idStrLen = id.size();
2142 if (!CanCastTo<uint8_t>(idStrLen))
2144 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, idStrLen);
2145 return PacketBufferHandle();
2148 buf.Put8(kFrameControlClusterSpecificCommand)
2150 .Put8(ZCL_SET_RFID_COMMAND_ID)
2154 .Put(static_cast<uint8_t>(idStrLen))
2155 .Put(id.data(), id.size());
2160 * Command SetUserType
2162 PacketBufferHandle encodeDoorLockClusterSetUserTypeCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2165 COMMAND_HEADER("SetUserType", DOOR_LOCK_CLUSTER_ID);
2167 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SET_USER_TYPE_COMMAND_ID).Put16(userId).Put8(userType);
2172 * Command SetWeekdaySchedule
2174 PacketBufferHandle encodeDoorLockClusterSetWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2175 uint8_t scheduleId, uint16_t userId, uint8_t daysMask,
2176 uint8_t startHour, uint8_t startMinute, uint8_t endHour,
2179 COMMAND_HEADER("SetWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
2181 buf.Put8(kFrameControlClusterSpecificCommand)
2183 .Put8(ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID)
2195 * Command SetYeardaySchedule
2197 PacketBufferHandle encodeDoorLockClusterSetYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2198 uint8_t scheduleId, uint16_t userId, uint32_t localStartTime,
2199 uint32_t localEndTime)
2201 COMMAND_HEADER("SetYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
2203 buf.Put8(kFrameControlClusterSpecificCommand)
2205 .Put8(ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID)
2208 .Put32(localStartTime)
2209 .Put32(localEndTime);
2214 * Command UnlockDoor
2216 PacketBufferHandle encodeDoorLockClusterUnlockDoorCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::ByteSpan pin)
2218 COMMAND_HEADER("UnlockDoor", DOOR_LOCK_CLUSTER_ID);
2219 size_t pinStrLen = pin.size();
2220 if (!CanCastTo<uint8_t>(pinStrLen))
2222 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2223 return PacketBufferHandle();
2226 buf.Put8(kFrameControlClusterSpecificCommand)
2228 .Put8(ZCL_UNLOCK_DOOR_COMMAND_ID)
2229 .Put(static_cast<uint8_t>(pinStrLen))
2230 .Put(pin.data(), pin.size());
2235 * Command UnlockWithTimeout
2237 PacketBufferHandle encodeDoorLockClusterUnlockWithTimeoutCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2238 uint16_t timeoutInSeconds, chip::ByteSpan pin)
2240 COMMAND_HEADER("UnlockWithTimeout", DOOR_LOCK_CLUSTER_ID);
2242 size_t pinStrLen = pin.size();
2243 if (!CanCastTo<uint8_t>(pinStrLen))
2245 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2246 return PacketBufferHandle();
2249 buf.Put8(kFrameControlClusterSpecificCommand)
2251 .Put8(ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID)
2252 .Put16(timeoutInSeconds)
2253 .Put(static_cast<uint8_t>(pinStrLen))
2254 .Put(pin.data(), pin.size());
2258 PacketBufferHandle encodeDoorLockClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2260 COMMAND_HEADER("DiscoverDoorLockAttributes", DOOR_LOCK_CLUSTER_ID);
2261 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2266 * Attribute LockState
2268 PacketBufferHandle encodeDoorLockClusterReadLockStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2270 COMMAND_HEADER("ReadDoorLockLockState", DOOR_LOCK_CLUSTER_ID);
2271 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2275 PacketBufferHandle encodeDoorLockClusterConfigureLockStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2276 uint16_t minInterval, uint16_t maxInterval)
2278 COMMAND_HEADER("ReportDoorLockLockState", DOOR_LOCK_CLUSTER_ID);
2279 buf.Put8(kFrameControlGlobalCommand)
2281 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
2282 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
2286 .Put16(maxInterval);
2291 * Attribute LockType
2293 PacketBufferHandle encodeDoorLockClusterReadLockTypeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2295 COMMAND_HEADER("ReadDoorLockLockType", DOOR_LOCK_CLUSTER_ID);
2296 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2301 * Attribute ActuatorEnabled
2303 PacketBufferHandle encodeDoorLockClusterReadActuatorEnabledAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2305 COMMAND_HEADER("ReadDoorLockActuatorEnabled", DOOR_LOCK_CLUSTER_ID);
2306 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
2311 * Attribute ClusterRevision
2313 PacketBufferHandle encodeDoorLockClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2315 COMMAND_HEADER("ReadDoorLockClusterRevision", DOOR_LOCK_CLUSTER_ID);
2316 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2320 /*----------------------------------------------------------------------------*\
2321 | Cluster GeneralCommissioning | 0x0030 |
2322 |------------------------------------------------------------------------------|
2324 | * ArmFailSafe | 0x02 |
2325 | * CommissioningComplete | 0x06 |
2326 | * SetFabric | 0x00 |
2327 |------------------------------------------------------------------------------|
2329 | * FabricId | 0x0000 |
2330 | * Breadcrumb | 0x0001 |
2331 | * ClusterRevision | 0xFFFD |
2332 \*----------------------------------------------------------------------------*/
2335 * Command ArmFailSafe
2337 PacketBufferHandle encodeGeneralCommissioningClusterArmFailSafeCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2338 uint16_t expiryLengthSeconds, uint64_t breadcrumb,
2341 COMMAND_HEADER("ArmFailSafe", GENERAL_COMMISSIONING_CLUSTER_ID);
2343 buf.Put8(kFrameControlClusterSpecificCommand)
2345 .Put8(ZCL_ARM_FAIL_SAFE_COMMAND_ID)
2346 .Put16(expiryLengthSeconds)
2353 * Command CommissioningComplete
2355 PacketBufferHandle encodeGeneralCommissioningClusterCommissioningCompleteCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2357 COMMAND_HEADER("CommissioningComplete", GENERAL_COMMISSIONING_CLUSTER_ID);
2358 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_COMMISSIONING_COMPLETE_COMMAND_ID);
2365 PacketBufferHandle encodeGeneralCommissioningClusterSetFabricCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2366 chip::ByteSpan fabricId, chip::ByteSpan fabricSecret,
2367 uint64_t breadcrumb, uint32_t timeoutMs)
2369 COMMAND_HEADER("SetFabric", GENERAL_COMMISSIONING_CLUSTER_ID);
2370 size_t fabricIdStrLen = fabricId.size();
2371 if (!CanCastTo<uint8_t>(fabricIdStrLen))
2373 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, fabricIdStrLen);
2374 return PacketBufferHandle();
2377 size_t fabricSecretStrLen = fabricSecret.size();
2378 if (!CanCastTo<uint8_t>(fabricSecretStrLen))
2380 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, fabricSecretStrLen);
2381 return PacketBufferHandle();
2384 buf.Put8(kFrameControlClusterSpecificCommand)
2386 .Put8(ZCL_SET_FABRIC_COMMAND_ID)
2387 .Put(static_cast<uint8_t>(fabricIdStrLen))
2388 .Put(fabricId.data(), fabricId.size())
2389 .Put(static_cast<uint8_t>(fabricSecretStrLen))
2390 .Put(fabricSecret.data(), fabricSecret.size())
2396 PacketBufferHandle encodeGeneralCommissioningClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2398 COMMAND_HEADER("DiscoverGeneralCommissioningAttributes", GENERAL_COMMISSIONING_CLUSTER_ID);
2399 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2404 * Attribute FabricId
2406 PacketBufferHandle encodeGeneralCommissioningClusterReadFabricIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2408 COMMAND_HEADER("ReadGeneralCommissioningFabricId", GENERAL_COMMISSIONING_CLUSTER_ID);
2409 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2414 * Attribute Breadcrumb
2416 PacketBufferHandle encodeGeneralCommissioningClusterReadBreadcrumbAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2418 COMMAND_HEADER("ReadGeneralCommissioningBreadcrumb", GENERAL_COMMISSIONING_CLUSTER_ID);
2419 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2423 PacketBufferHandle encodeGeneralCommissioningClusterWriteBreadcrumbAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2424 uint64_t breadcrumb)
2426 COMMAND_HEADER("WriteGeneralCommissioningBreadcrumb", GENERAL_COMMISSIONING_CLUSTER_ID);
2427 buf.Put8(kFrameControlGlobalCommand)
2429 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2432 .Put64(static_cast<uint64_t>(breadcrumb));
2437 * Attribute ClusterRevision
2439 PacketBufferHandle encodeGeneralCommissioningClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2441 COMMAND_HEADER("ReadGeneralCommissioningClusterRevision", GENERAL_COMMISSIONING_CLUSTER_ID);
2442 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2446 /*----------------------------------------------------------------------------*\
2447 | Cluster GroupKeyManagement | 0xF004 |
2448 |------------------------------------------------------------------------------|
2450 |------------------------------------------------------------------------------|
2452 | * Groups | 0x0000 |
2453 | * GroupKeys | 0x0001 |
2454 | * ClusterRevision | 0xFFFD |
2455 \*----------------------------------------------------------------------------*/
2457 PacketBufferHandle encodeGroupKeyManagementClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2459 COMMAND_HEADER("DiscoverGroupKeyManagementAttributes", GROUP_KEY_MANAGEMENT_CLUSTER_ID);
2460 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2467 PacketBufferHandle encodeGroupKeyManagementClusterReadGroupsAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2469 COMMAND_HEADER("ReadGroupKeyManagementGroups", GROUP_KEY_MANAGEMENT_CLUSTER_ID);
2470 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2475 * Attribute GroupKeys
2477 PacketBufferHandle encodeGroupKeyManagementClusterReadGroupKeysAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2479 COMMAND_HEADER("ReadGroupKeyManagementGroupKeys", GROUP_KEY_MANAGEMENT_CLUSTER_ID);
2480 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2485 * Attribute ClusterRevision
2487 PacketBufferHandle encodeGroupKeyManagementClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2489 COMMAND_HEADER("ReadGroupKeyManagementClusterRevision", GROUP_KEY_MANAGEMENT_CLUSTER_ID);
2490 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2494 /*----------------------------------------------------------------------------*\
2495 | Cluster Groups | 0x0004 |
2496 |------------------------------------------------------------------------------|
2498 | * AddGroup | 0x00 |
2499 | * AddGroupIfIdentifying | 0x05 |
2500 | * GetGroupMembership | 0x02 |
2501 | * RemoveAllGroups | 0x04 |
2502 | * RemoveGroup | 0x03 |
2503 | * ViewGroup | 0x01 |
2504 |------------------------------------------------------------------------------|
2506 | * NameSupport | 0x0000 |
2507 | * ClusterRevision | 0xFFFD |
2508 \*----------------------------------------------------------------------------*/
2513 PacketBufferHandle encodeGroupsClusterAddGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
2514 chip::ByteSpan groupName)
2516 COMMAND_HEADER("AddGroup", GROUPS_CLUSTER_ID);
2518 size_t groupNameStrLen = groupName.size();
2519 if (!CanCastTo<uint8_t>(groupNameStrLen))
2521 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, groupNameStrLen);
2522 return PacketBufferHandle();
2525 buf.Put8(kFrameControlClusterSpecificCommand)
2527 .Put8(ZCL_ADD_GROUP_COMMAND_ID)
2529 .Put(static_cast<uint8_t>(groupNameStrLen))
2530 .Put(groupName.data(), groupName.size());
2535 * Command AddGroupIfIdentifying
2537 PacketBufferHandle encodeGroupsClusterAddGroupIfIdentifyingCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
2538 chip::ByteSpan groupName)
2540 COMMAND_HEADER("AddGroupIfIdentifying", GROUPS_CLUSTER_ID);
2542 size_t groupNameStrLen = groupName.size();
2543 if (!CanCastTo<uint8_t>(groupNameStrLen))
2545 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, groupNameStrLen);
2546 return PacketBufferHandle();
2549 buf.Put8(kFrameControlClusterSpecificCommand)
2551 .Put8(ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID)
2553 .Put(static_cast<uint8_t>(groupNameStrLen))
2554 .Put(groupName.data(), groupName.size());
2559 * Command GetGroupMembership
2561 PacketBufferHandle encodeGroupsClusterGetGroupMembershipCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t groupCount,
2564 COMMAND_HEADER("GetGroupMembership", GROUPS_CLUSTER_ID);
2566 buf.Put8(kFrameControlClusterSpecificCommand)
2568 .Put8(ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID)
2575 * Command RemoveAllGroups
2577 PacketBufferHandle encodeGroupsClusterRemoveAllGroupsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2579 COMMAND_HEADER("RemoveAllGroups", GROUPS_CLUSTER_ID);
2580 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_ALL_GROUPS_COMMAND_ID);
2585 * Command RemoveGroup
2587 PacketBufferHandle encodeGroupsClusterRemoveGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
2589 COMMAND_HEADER("RemoveGroup", GROUPS_CLUSTER_ID);
2591 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_GROUP_COMMAND_ID).Put16(groupId);
2598 PacketBufferHandle encodeGroupsClusterViewGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
2600 COMMAND_HEADER("ViewGroup", GROUPS_CLUSTER_ID);
2602 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_VIEW_GROUP_COMMAND_ID).Put16(groupId);
2606 PacketBufferHandle encodeGroupsClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2608 COMMAND_HEADER("DiscoverGroupsAttributes", GROUPS_CLUSTER_ID);
2609 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2614 * Attribute NameSupport
2616 PacketBufferHandle encodeGroupsClusterReadNameSupportAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2618 COMMAND_HEADER("ReadGroupsNameSupport", GROUPS_CLUSTER_ID);
2619 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2624 * Attribute ClusterRevision
2626 PacketBufferHandle encodeGroupsClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2628 COMMAND_HEADER("ReadGroupsClusterRevision", GROUPS_CLUSTER_ID);
2629 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2633 /*----------------------------------------------------------------------------*\
2634 | Cluster IasZone | 0x0500 |
2635 |------------------------------------------------------------------------------|
2637 |------------------------------------------------------------------------------|
2639 | * ZoneState | 0x0000 |
2640 | * ZoneType | 0x0001 |
2641 | * ZoneStatus | 0x0002 |
2642 | * IasCieAddress | 0x0010 |
2643 | * ZoneId | 0x0011 |
2644 | * ClusterRevision | 0xFFFD |
2645 \*----------------------------------------------------------------------------*/
2647 PacketBufferHandle encodeIasZoneClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2649 COMMAND_HEADER("DiscoverIasZoneAttributes", IAS_ZONE_CLUSTER_ID);
2650 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2655 * Attribute ZoneState
2657 PacketBufferHandle encodeIasZoneClusterReadZoneStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2659 COMMAND_HEADER("ReadIasZoneZoneState", IAS_ZONE_CLUSTER_ID);
2660 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2665 * Attribute ZoneType
2667 PacketBufferHandle encodeIasZoneClusterReadZoneTypeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2669 COMMAND_HEADER("ReadIasZoneZoneType", IAS_ZONE_CLUSTER_ID);
2670 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2675 * Attribute ZoneStatus
2677 PacketBufferHandle encodeIasZoneClusterReadZoneStatusAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2679 COMMAND_HEADER("ReadIasZoneZoneStatus", IAS_ZONE_CLUSTER_ID);
2680 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
2685 * Attribute IasCieAddress
2687 PacketBufferHandle encodeIasZoneClusterReadIasCieAddressAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2689 COMMAND_HEADER("ReadIasZoneIasCieAddress", IAS_ZONE_CLUSTER_ID);
2690 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0010);
2694 PacketBufferHandle encodeIasZoneClusterWriteIasCieAddressAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2695 uint64_t iasCieAddress)
2697 COMMAND_HEADER("WriteIasZoneIasCieAddress", IAS_ZONE_CLUSTER_ID);
2698 buf.Put8(kFrameControlGlobalCommand)
2700 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2703 .Put64(static_cast<uint64_t>(iasCieAddress));
2710 PacketBufferHandle encodeIasZoneClusterReadZoneIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2712 COMMAND_HEADER("ReadIasZoneZoneId", IAS_ZONE_CLUSTER_ID);
2713 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0011);
2718 * Attribute ClusterRevision
2720 PacketBufferHandle encodeIasZoneClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2722 COMMAND_HEADER("ReadIasZoneClusterRevision", IAS_ZONE_CLUSTER_ID);
2723 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2727 /*----------------------------------------------------------------------------*\
2728 | Cluster Identify | 0x0003 |
2729 |------------------------------------------------------------------------------|
2731 | * Identify | 0x00 |
2732 | * IdentifyQuery | 0x01 |
2733 |------------------------------------------------------------------------------|
2735 | * IdentifyTime | 0x0000 |
2736 | * ClusterRevision | 0xFFFD |
2737 \*----------------------------------------------------------------------------*/
2742 PacketBufferHandle encodeIdentifyClusterIdentifyCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t identifyTime)
2744 COMMAND_HEADER("Identify", IDENTIFY_CLUSTER_ID);
2746 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_IDENTIFY_COMMAND_ID).Put16(identifyTime);
2751 * Command IdentifyQuery
2753 PacketBufferHandle encodeIdentifyClusterIdentifyQueryCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2755 COMMAND_HEADER("IdentifyQuery", IDENTIFY_CLUSTER_ID);
2756 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_IDENTIFY_QUERY_COMMAND_ID);
2760 PacketBufferHandle encodeIdentifyClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2762 COMMAND_HEADER("DiscoverIdentifyAttributes", IDENTIFY_CLUSTER_ID);
2763 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2768 * Attribute IdentifyTime
2770 PacketBufferHandle encodeIdentifyClusterReadIdentifyTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2772 COMMAND_HEADER("ReadIdentifyIdentifyTime", IDENTIFY_CLUSTER_ID);
2773 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2777 PacketBufferHandle encodeIdentifyClusterWriteIdentifyTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2778 uint16_t identifyTime)
2780 COMMAND_HEADER("WriteIdentifyIdentifyTime", IDENTIFY_CLUSTER_ID);
2781 buf.Put8(kFrameControlGlobalCommand)
2783 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2786 .Put16(static_cast<uint16_t>(identifyTime));
2791 * Attribute ClusterRevision
2793 PacketBufferHandle encodeIdentifyClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2795 COMMAND_HEADER("ReadIdentifyClusterRevision", IDENTIFY_CLUSTER_ID);
2796 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2800 /*----------------------------------------------------------------------------*\
2801 | Cluster LevelControl | 0x0008 |
2802 |------------------------------------------------------------------------------|
2805 | * MoveToLevel | 0x00 |
2806 | * MoveToLevelWithOnOff | 0x04 |
2807 | * MoveWithOnOff | 0x05 |
2809 | * StepWithOnOff | 0x06 |
2811 | * StopWithOnOff | 0x07 |
2812 |------------------------------------------------------------------------------|
2814 | * CurrentLevel | 0x0000 |
2815 | * ClusterRevision | 0xFFFD |
2816 \*----------------------------------------------------------------------------*/
2821 PacketBufferHandle encodeLevelControlClusterMoveCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
2822 uint8_t rate, uint8_t optionMask, uint8_t optionOverride)
2824 COMMAND_HEADER("Move", LEVEL_CONTROL_CLUSTER_ID);
2826 buf.Put8(kFrameControlClusterSpecificCommand)
2828 .Put8(ZCL_MOVE_COMMAND_ID)
2832 .Put8(optionOverride);
2837 * Command MoveToLevel
2839 PacketBufferHandle encodeLevelControlClusterMoveToLevelCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t level,
2840 uint16_t transitionTime, uint8_t optionMask, uint8_t optionOverride)
2842 COMMAND_HEADER("MoveToLevel", LEVEL_CONTROL_CLUSTER_ID);
2844 buf.Put8(kFrameControlClusterSpecificCommand)
2846 .Put8(ZCL_MOVE_TO_LEVEL_COMMAND_ID)
2848 .Put16(transitionTime)
2850 .Put8(optionOverride);
2855 * Command MoveToLevelWithOnOff
2857 PacketBufferHandle encodeLevelControlClusterMoveToLevelWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2858 uint8_t level, uint16_t transitionTime)
2860 COMMAND_HEADER("MoveToLevelWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2862 buf.Put8(kFrameControlClusterSpecificCommand)
2864 .Put8(ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID)
2866 .Put16(transitionTime);
2871 * Command MoveWithOnOff
2873 PacketBufferHandle encodeLevelControlClusterMoveWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
2876 COMMAND_HEADER("MoveWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2878 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_MOVE_WITH_ON_OFF_COMMAND_ID).Put8(moveMode).Put8(rate);
2885 PacketBufferHandle encodeLevelControlClusterStepCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
2886 uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask,
2887 uint8_t optionOverride)
2889 COMMAND_HEADER("Step", LEVEL_CONTROL_CLUSTER_ID);
2891 buf.Put8(kFrameControlClusterSpecificCommand)
2893 .Put8(ZCL_STEP_COMMAND_ID)
2896 .Put16(transitionTime)
2898 .Put8(optionOverride);
2903 * Command StepWithOnOff
2905 PacketBufferHandle encodeLevelControlClusterStepWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
2906 uint8_t stepSize, uint16_t transitionTime)
2908 COMMAND_HEADER("StepWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2910 buf.Put8(kFrameControlClusterSpecificCommand)
2912 .Put8(ZCL_STEP_WITH_ON_OFF_COMMAND_ID)
2915 .Put16(transitionTime);
2922 PacketBufferHandle encodeLevelControlClusterStopCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t optionMask,
2923 uint8_t optionOverride)
2925 COMMAND_HEADER("Stop", LEVEL_CONTROL_CLUSTER_ID);
2927 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STOP_COMMAND_ID).Put8(optionMask).Put8(optionOverride);
2932 * Command StopWithOnOff
2934 PacketBufferHandle encodeLevelControlClusterStopWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2936 COMMAND_HEADER("StopWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2937 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STOP_WITH_ON_OFF_COMMAND_ID);
2941 PacketBufferHandle encodeLevelControlClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2943 COMMAND_HEADER("DiscoverLevelControlAttributes", LEVEL_CONTROL_CLUSTER_ID);
2944 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2949 * Attribute CurrentLevel
2951 PacketBufferHandle encodeLevelControlClusterReadCurrentLevelAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2953 COMMAND_HEADER("ReadLevelControlCurrentLevel", LEVEL_CONTROL_CLUSTER_ID);
2954 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2958 PacketBufferHandle encodeLevelControlClusterConfigureCurrentLevelAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2959 uint16_t minInterval, uint16_t maxInterval,
2962 COMMAND_HEADER("ReportLevelControlCurrentLevel", LEVEL_CONTROL_CLUSTER_ID);
2963 buf.Put8(kFrameControlGlobalCommand)
2965 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
2966 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
2970 .Put16(maxInterval);
2971 buf.Put8(static_cast<uint8_t>(change));
2976 * Attribute ClusterRevision
2978 PacketBufferHandle encodeLevelControlClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2980 COMMAND_HEADER("ReadLevelControlClusterRevision", LEVEL_CONTROL_CLUSTER_ID);
2981 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2985 /*----------------------------------------------------------------------------*\
2986 | Cluster LowPower | 0x0508 |
2987 |------------------------------------------------------------------------------|
2990 |------------------------------------------------------------------------------|
2992 | * ClusterRevision | 0xFFFD |
2993 \*----------------------------------------------------------------------------*/
2998 PacketBufferHandle encodeLowPowerClusterSleepCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3000 COMMAND_HEADER("Sleep", LOW_POWER_CLUSTER_ID);
3001 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SLEEP_COMMAND_ID);
3005 PacketBufferHandle encodeLowPowerClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3007 COMMAND_HEADER("DiscoverLowPowerAttributes", LOW_POWER_CLUSTER_ID);
3008 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3013 * Attribute ClusterRevision
3015 PacketBufferHandle encodeLowPowerClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3017 COMMAND_HEADER("ReadLowPowerClusterRevision", LOW_POWER_CLUSTER_ID);
3018 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3022 /*----------------------------------------------------------------------------*\
3023 | Cluster NetworkCommissioning | 0x0031 |
3024 |------------------------------------------------------------------------------|
3026 | * AddThreadNetwork | 0x06 |
3027 | * AddWiFiNetwork | 0x02 |
3028 | * DisableNetwork | 0x0E |
3029 | * EnableNetwork | 0x0C |
3030 | * GetLastNetworkCommissioningResult | 0x10 |
3031 | * RemoveNetwork | 0x0A |
3032 | * ScanNetworks | 0x00 |
3033 | * UpdateThreadNetwork | 0x08 |
3034 | * UpdateWiFiNetwork | 0x04 |
3035 |------------------------------------------------------------------------------|
3037 | * ClusterRevision | 0xFFFD |
3038 \*----------------------------------------------------------------------------*/
3041 * Command AddThreadNetwork
3043 PacketBufferHandle encodeNetworkCommissioningClusterAddThreadNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3044 chip::ByteSpan operationalDataset, uint64_t breadcrumb,
3047 COMMAND_HEADER("AddThreadNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3048 size_t operationalDatasetStrLen = operationalDataset.size();
3049 if (!CanCastTo<uint8_t>(operationalDatasetStrLen))
3051 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, operationalDatasetStrLen);
3052 return PacketBufferHandle();
3055 buf.Put8(kFrameControlClusterSpecificCommand)
3057 .Put8(ZCL_ADD_THREAD_NETWORK_COMMAND_ID)
3058 .Put(static_cast<uint8_t>(operationalDatasetStrLen))
3059 .Put(operationalDataset.data(), operationalDataset.size())
3066 * Command AddWiFiNetwork
3068 PacketBufferHandle encodeNetworkCommissioningClusterAddWiFiNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3069 chip::ByteSpan ssid, chip::ByteSpan credentials,
3070 uint64_t breadcrumb, uint32_t timeoutMs)
3072 COMMAND_HEADER("AddWiFiNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3073 size_t ssidStrLen = ssid.size();
3074 if (!CanCastTo<uint8_t>(ssidStrLen))
3076 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, ssidStrLen);
3077 return PacketBufferHandle();
3080 size_t credentialsStrLen = credentials.size();
3081 if (!CanCastTo<uint8_t>(credentialsStrLen))
3083 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, credentialsStrLen);
3084 return PacketBufferHandle();
3087 buf.Put8(kFrameControlClusterSpecificCommand)
3089 .Put8(ZCL_ADD_WI_FI_NETWORK_COMMAND_ID)
3090 .Put(static_cast<uint8_t>(ssidStrLen))
3091 .Put(ssid.data(), ssid.size())
3092 .Put(static_cast<uint8_t>(credentialsStrLen))
3093 .Put(credentials.data(), credentials.size())
3100 * Command DisableNetwork
3102 PacketBufferHandle encodeNetworkCommissioningClusterDisableNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3103 chip::ByteSpan networkID, uint64_t breadcrumb,
3106 COMMAND_HEADER("DisableNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3107 size_t networkIDStrLen = networkID.size();
3108 if (!CanCastTo<uint8_t>(networkIDStrLen))
3110 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, networkIDStrLen);
3111 return PacketBufferHandle();
3114 buf.Put8(kFrameControlClusterSpecificCommand)
3116 .Put8(ZCL_DISABLE_NETWORK_COMMAND_ID)
3117 .Put(static_cast<uint8_t>(networkIDStrLen))
3118 .Put(networkID.data(), networkID.size())
3125 * Command EnableNetwork
3127 PacketBufferHandle encodeNetworkCommissioningClusterEnableNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3128 chip::ByteSpan networkID, uint64_t breadcrumb,
3131 COMMAND_HEADER("EnableNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3132 size_t networkIDStrLen = networkID.size();
3133 if (!CanCastTo<uint8_t>(networkIDStrLen))
3135 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, networkIDStrLen);
3136 return PacketBufferHandle();
3139 buf.Put8(kFrameControlClusterSpecificCommand)
3141 .Put8(ZCL_ENABLE_NETWORK_COMMAND_ID)
3142 .Put(static_cast<uint8_t>(networkIDStrLen))
3143 .Put(networkID.data(), networkID.size())
3150 * Command GetLastNetworkCommissioningResult
3152 PacketBufferHandle encodeNetworkCommissioningClusterGetLastNetworkCommissioningResultCommand(uint8_t seqNum,
3153 EndpointId destinationEndpoint,
3156 COMMAND_HEADER("GetLastNetworkCommissioningResult", NETWORK_COMMISSIONING_CLUSTER_ID);
3158 buf.Put8(kFrameControlClusterSpecificCommand)
3160 .Put8(ZCL_GET_LAST_NETWORK_COMMISSIONING_RESULT_COMMAND_ID)
3166 * Command RemoveNetwork
3168 PacketBufferHandle encodeNetworkCommissioningClusterRemoveNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3169 chip::ByteSpan networkID, uint64_t breadcrumb,
3172 COMMAND_HEADER("RemoveNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3173 size_t networkIDStrLen = networkID.size();
3174 if (!CanCastTo<uint8_t>(networkIDStrLen))
3176 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, networkIDStrLen);
3177 return PacketBufferHandle();
3180 buf.Put8(kFrameControlClusterSpecificCommand)
3182 .Put8(ZCL_REMOVE_NETWORK_COMMAND_ID)
3183 .Put(static_cast<uint8_t>(networkIDStrLen))
3184 .Put(networkID.data(), networkID.size())
3191 * Command ScanNetworks
3193 PacketBufferHandle encodeNetworkCommissioningClusterScanNetworksCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3194 chip::ByteSpan ssid, uint64_t breadcrumb,
3197 COMMAND_HEADER("ScanNetworks", NETWORK_COMMISSIONING_CLUSTER_ID);
3198 size_t ssidStrLen = ssid.size();
3199 if (!CanCastTo<uint8_t>(ssidStrLen))
3201 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, ssidStrLen);
3202 return PacketBufferHandle();
3205 buf.Put8(kFrameControlClusterSpecificCommand)
3207 .Put8(ZCL_SCAN_NETWORKS_COMMAND_ID)
3208 .Put(static_cast<uint8_t>(ssidStrLen))
3209 .Put(ssid.data(), ssid.size())
3216 * Command UpdateThreadNetwork
3218 PacketBufferHandle encodeNetworkCommissioningClusterUpdateThreadNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3219 chip::ByteSpan operationalDataset,
3220 uint64_t breadcrumb, uint32_t timeoutMs)
3222 COMMAND_HEADER("UpdateThreadNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3223 size_t operationalDatasetStrLen = operationalDataset.size();
3224 if (!CanCastTo<uint8_t>(operationalDatasetStrLen))
3226 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, operationalDatasetStrLen);
3227 return PacketBufferHandle();
3230 buf.Put8(kFrameControlClusterSpecificCommand)
3232 .Put8(ZCL_UPDATE_THREAD_NETWORK_COMMAND_ID)
3233 .Put(static_cast<uint8_t>(operationalDatasetStrLen))
3234 .Put(operationalDataset.data(), operationalDataset.size())
3241 * Command UpdateWiFiNetwork
3243 PacketBufferHandle encodeNetworkCommissioningClusterUpdateWiFiNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3244 chip::ByteSpan ssid, chip::ByteSpan credentials,
3245 uint64_t breadcrumb, uint32_t timeoutMs)
3247 COMMAND_HEADER("UpdateWiFiNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3248 size_t ssidStrLen = ssid.size();
3249 if (!CanCastTo<uint8_t>(ssidStrLen))
3251 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, ssidStrLen);
3252 return PacketBufferHandle();
3255 size_t credentialsStrLen = credentials.size();
3256 if (!CanCastTo<uint8_t>(credentialsStrLen))
3258 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, credentialsStrLen);
3259 return PacketBufferHandle();
3262 buf.Put8(kFrameControlClusterSpecificCommand)
3264 .Put8(ZCL_UPDATE_WI_FI_NETWORK_COMMAND_ID)
3265 .Put(static_cast<uint8_t>(ssidStrLen))
3266 .Put(ssid.data(), ssid.size())
3267 .Put(static_cast<uint8_t>(credentialsStrLen))
3268 .Put(credentials.data(), credentials.size())
3274 PacketBufferHandle encodeNetworkCommissioningClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3276 COMMAND_HEADER("DiscoverNetworkCommissioningAttributes", NETWORK_COMMISSIONING_CLUSTER_ID);
3277 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3282 * Attribute ClusterRevision
3284 PacketBufferHandle encodeNetworkCommissioningClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3286 COMMAND_HEADER("ReadNetworkCommissioningClusterRevision", NETWORK_COMMISSIONING_CLUSTER_ID);
3287 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3291 /*----------------------------------------------------------------------------*\
3292 | Cluster OnOff | 0x0006 |
3293 |------------------------------------------------------------------------------|
3298 |------------------------------------------------------------------------------|
3300 | * OnOff | 0x0000 |
3301 | * ClusterRevision | 0xFFFD |
3302 \*----------------------------------------------------------------------------*/
3307 PacketBufferHandle encodeOnOffClusterOffCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3309 COMMAND_HEADER("Off", ON_OFF_CLUSTER_ID);
3310 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_OFF_COMMAND_ID);
3317 PacketBufferHandle encodeOnOffClusterOnCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3319 COMMAND_HEADER("On", ON_OFF_CLUSTER_ID);
3320 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_ON_COMMAND_ID);
3327 PacketBufferHandle encodeOnOffClusterToggleCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3329 COMMAND_HEADER("Toggle", ON_OFF_CLUSTER_ID);
3330 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_TOGGLE_COMMAND_ID);
3334 PacketBufferHandle encodeOnOffClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3336 COMMAND_HEADER("DiscoverOnOffAttributes", ON_OFF_CLUSTER_ID);
3337 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3344 PacketBufferHandle encodeOnOffClusterReadOnOffAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3346 COMMAND_HEADER("ReadOnOffOnOff", ON_OFF_CLUSTER_ID);
3347 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3351 PacketBufferHandle encodeOnOffClusterConfigureOnOffAttribute(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t minInterval,
3352 uint16_t maxInterval)
3354 COMMAND_HEADER("ReportOnOffOnOff", ON_OFF_CLUSTER_ID);
3355 buf.Put8(kFrameControlGlobalCommand)
3357 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
3358 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
3362 .Put16(maxInterval);
3367 * Attribute ClusterRevision
3369 PacketBufferHandle encodeOnOffClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3371 COMMAND_HEADER("ReadOnOffClusterRevision", ON_OFF_CLUSTER_ID);
3372 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3376 /*----------------------------------------------------------------------------*\
3377 | Cluster Scenes | 0x0005 |
3378 |------------------------------------------------------------------------------|
3380 | * AddScene | 0x00 |
3381 | * GetSceneMembership | 0x06 |
3382 | * RecallScene | 0x05 |
3383 | * RemoveAllScenes | 0x03 |
3384 | * RemoveScene | 0x02 |
3385 | * StoreScene | 0x04 |
3386 | * ViewScene | 0x01 |
3387 |------------------------------------------------------------------------------|
3389 | * SceneCount | 0x0000 |
3390 | * CurrentScene | 0x0001 |
3391 | * CurrentGroup | 0x0002 |
3392 | * SceneValid | 0x0003 |
3393 | * NameSupport | 0x0004 |
3394 | * ClusterRevision | 0xFFFD |
3395 \*----------------------------------------------------------------------------*/
3400 PacketBufferHandle encodeScenesClusterAddSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3401 uint8_t sceneId, uint16_t transitionTime, chip::ByteSpan sceneName,
3402 chip::ClusterId clusterId, uint8_t length, uint8_t value)
3404 COMMAND_HEADER("AddScene", SCENES_CLUSTER_ID);
3406 size_t sceneNameStrLen = sceneName.size();
3407 if (!CanCastTo<uint8_t>(sceneNameStrLen))
3409 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, sceneNameStrLen);
3410 return PacketBufferHandle();
3413 buf.Put8(kFrameControlClusterSpecificCommand)
3415 .Put8(ZCL_ADD_SCENE_COMMAND_ID)
3418 .Put16(transitionTime)
3419 .Put(static_cast<uint8_t>(sceneNameStrLen))
3420 .Put(sceneName.data(), sceneName.size())
3428 * Command GetSceneMembership
3430 PacketBufferHandle encodeScenesClusterGetSceneMembershipCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
3432 COMMAND_HEADER("GetSceneMembership", SCENES_CLUSTER_ID);
3434 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID).Put16(groupId);
3439 * Command RecallScene
3441 PacketBufferHandle encodeScenesClusterRecallSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3442 uint8_t sceneId, uint16_t transitionTime)
3444 COMMAND_HEADER("RecallScene", SCENES_CLUSTER_ID);
3446 buf.Put8(kFrameControlClusterSpecificCommand)
3448 .Put8(ZCL_RECALL_SCENE_COMMAND_ID)
3451 .Put16(transitionTime);
3456 * Command RemoveAllScenes
3458 PacketBufferHandle encodeScenesClusterRemoveAllScenesCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
3460 COMMAND_HEADER("RemoveAllScenes", SCENES_CLUSTER_ID);
3462 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_ALL_SCENES_COMMAND_ID).Put16(groupId);
3467 * Command RemoveScene
3469 PacketBufferHandle encodeScenesClusterRemoveSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3472 COMMAND_HEADER("RemoveScene", SCENES_CLUSTER_ID);
3474 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3479 * Command StoreScene
3481 PacketBufferHandle encodeScenesClusterStoreSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3484 COMMAND_HEADER("StoreScene", SCENES_CLUSTER_ID);
3486 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STORE_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3493 PacketBufferHandle encodeScenesClusterViewSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3496 COMMAND_HEADER("ViewScene", SCENES_CLUSTER_ID);
3498 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_VIEW_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3502 PacketBufferHandle encodeScenesClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3504 COMMAND_HEADER("DiscoverScenesAttributes", SCENES_CLUSTER_ID);
3505 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3510 * Attribute SceneCount
3512 PacketBufferHandle encodeScenesClusterReadSceneCountAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3514 COMMAND_HEADER("ReadScenesSceneCount", SCENES_CLUSTER_ID);
3515 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3520 * Attribute CurrentScene
3522 PacketBufferHandle encodeScenesClusterReadCurrentSceneAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3524 COMMAND_HEADER("ReadScenesCurrentScene", SCENES_CLUSTER_ID);
3525 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
3530 * Attribute CurrentGroup
3532 PacketBufferHandle encodeScenesClusterReadCurrentGroupAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3534 COMMAND_HEADER("ReadScenesCurrentGroup", SCENES_CLUSTER_ID);
3535 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
3540 * Attribute SceneValid
3542 PacketBufferHandle encodeScenesClusterReadSceneValidAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3544 COMMAND_HEADER("ReadScenesSceneValid", SCENES_CLUSTER_ID);
3545 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
3550 * Attribute NameSupport
3552 PacketBufferHandle encodeScenesClusterReadNameSupportAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3554 COMMAND_HEADER("ReadScenesNameSupport", SCENES_CLUSTER_ID);
3555 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0004);
3560 * Attribute ClusterRevision
3562 PacketBufferHandle encodeScenesClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3564 COMMAND_HEADER("ReadScenesClusterRevision", SCENES_CLUSTER_ID);
3565 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3569 /*----------------------------------------------------------------------------*\
3570 | Cluster TemperatureMeasurement | 0x0402 |
3571 |------------------------------------------------------------------------------|
3573 |------------------------------------------------------------------------------|
3575 | * MeasuredValue | 0x0000 |
3576 | * MinMeasuredValue | 0x0001 |
3577 | * MaxMeasuredValue | 0x0002 |
3578 | * ClusterRevision | 0xFFFD |
3579 \*----------------------------------------------------------------------------*/
3581 PacketBufferHandle encodeTemperatureMeasurementClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3583 COMMAND_HEADER("DiscoverTemperatureMeasurementAttributes", TEMP_MEASUREMENT_CLUSTER_ID);
3584 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3589 * Attribute MeasuredValue
3591 PacketBufferHandle encodeTemperatureMeasurementClusterReadMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3593 COMMAND_HEADER("ReadTemperatureMeasurementMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3594 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3598 PacketBufferHandle encodeTemperatureMeasurementClusterConfigureMeasuredValueAttribute(uint8_t seqNum,
3599 EndpointId destinationEndpoint,
3600 uint16_t minInterval, uint16_t maxInterval,
3603 COMMAND_HEADER("ReportTemperatureMeasurementMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3604 buf.Put8(kFrameControlGlobalCommand)
3606 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
3607 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
3611 .Put16(maxInterval);
3612 buf.Put16(static_cast<uint16_t>(change));
3617 * Attribute MinMeasuredValue
3619 PacketBufferHandle encodeTemperatureMeasurementClusterReadMinMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3621 COMMAND_HEADER("ReadTemperatureMeasurementMinMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3622 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
3627 * Attribute MaxMeasuredValue
3629 PacketBufferHandle encodeTemperatureMeasurementClusterReadMaxMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3631 COMMAND_HEADER("ReadTemperatureMeasurementMaxMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3632 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
3637 * Attribute ClusterRevision
3639 PacketBufferHandle encodeTemperatureMeasurementClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3641 COMMAND_HEADER("ReadTemperatureMeasurementClusterRevision", TEMP_MEASUREMENT_CLUSTER_ID);
3642 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);