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 | ContentLaunch | 0xF002 |
108 | DoorLock | 0x0101 |
109 | GeneralCommissioning | 0x0030 |
112 | Identify | 0x0003 |
113 | LevelControl | 0x0008 |
114 | LowPower | 0x0508 |
115 | MediaPlayback | 0xF001 |
116 | NetworkCommissioning | 0xAAAA |
119 | TemperatureMeasurement | 0x0402 |
120 \*----------------------------------------------------------------------------*/
122 #define EMBER_ZCL_REPORTING_DIRECTION_REPORTED 0x00
124 #define ZCL_READ_ATTRIBUTES_COMMAND_ID (0x00)
125 #define ZCL_READ_ATTRIBUTES_RESPONSE_COMMAND_ID (0x01)
126 #define ZCL_WRITE_ATTRIBUTES_COMMAND_ID (0x02)
127 #define ZCL_WRITE_ATTRIBUTES_UNDIVIDED_COMMAND_ID (0x03)
128 #define ZCL_WRITE_ATTRIBUTES_RESPONSE_COMMAND_ID (0x04)
129 #define ZCL_WRITE_ATTRIBUTES_NO_RESPONSE_COMMAND_ID (0x05)
130 #define ZCL_CONFIGURE_REPORTING_COMMAND_ID (0x06)
131 #define ZCL_CONFIGURE_REPORTING_RESPONSE_COMMAND_ID (0x07)
132 #define ZCL_READ_REPORTING_CONFIGURATION_COMMAND_ID (0x08)
133 #define ZCL_READ_REPORTING_CONFIGURATION_RESPONSE_COMMAND_ID (0x09)
134 #define ZCL_REPORT_ATTRIBUTES_COMMAND_ID (0x0A)
135 #define ZCL_DEFAULT_RESPONSE_COMMAND_ID (0x0B)
136 #define ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID (0x0C)
137 #define ZCL_DISCOVER_ATTRIBUTES_RESPONSE_COMMAND_ID (0x0D)
138 #define ZCL_READ_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0E)
139 #define ZCL_WRITE_ATTRIBUTES_STRUCTURED_COMMAND_ID (0x0F)
140 #define ZCL_WRITE_ATTRIBUTES_STRUCTURED_RESPONSE_COMMAND_ID (0x10)
141 #define ZCL_DISCOVER_COMMANDS_RECEIVED_COMMAND_ID (0x11)
142 #define ZCL_DISCOVER_COMMANDS_RECEIVED_RESPONSE_COMMAND_ID (0x12)
143 #define ZCL_DISCOVER_COMMANDS_GENERATED_COMMAND_ID (0x13)
144 #define ZCL_DISCOVER_COMMANDS_GENERATED_RESPONSE_COMMAND_ID (0x14)
145 #define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_COMMAND_ID (0x15)
146 #define ZCL_DISCOVER_ATTRIBUTES_EXTENDED_RESPONSE_COMMAND_ID (0x16)
148 #define APPLICATION_BASIC_CLUSTER_ID 0x050D
150 #define BARRIER_CONTROL_CLUSTER_ID 0x0103
151 #define ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID (0x00)
152 #define ZCL_BARRIER_CONTROL_STOP_COMMAND_ID (0x01)
154 #define BASIC_CLUSTER_ID 0x0028
155 #define ZCL_MFG_SPECIFIC_PING_COMMAND_ID (0x00)
157 #define BINDING_CLUSTER_ID 0xF000
158 #define ZCL_BIND_COMMAND_ID (0x00)
159 #define ZCL_UNBIND_COMMAND_ID (0x01)
161 #define COLOR_CONTROL_CLUSTER_ID 0x0300
162 #define ZCL_MOVE_COLOR_COMMAND_ID (0x08)
163 #define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID (0x4B)
164 #define ZCL_MOVE_HUE_COMMAND_ID (0x01)
165 #define ZCL_MOVE_SATURATION_COMMAND_ID (0x04)
166 #define ZCL_MOVE_TO_COLOR_COMMAND_ID (0x07)
167 #define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID (0x0A)
168 #define ZCL_MOVE_TO_HUE_COMMAND_ID (0x00)
169 #define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x06)
170 #define ZCL_MOVE_TO_SATURATION_COMMAND_ID (0x03)
171 #define ZCL_STEP_COLOR_COMMAND_ID (0x09)
172 #define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID (0x4C)
173 #define ZCL_STEP_HUE_COMMAND_ID (0x02)
174 #define ZCL_STEP_SATURATION_COMMAND_ID (0x05)
175 #define ZCL_STOP_MOVE_STEP_COMMAND_ID (0x47)
177 #define CONTENT_LAUNCH_CLUSTER_ID 0xF002
178 #define ZCL_LAUNCH_CONTENT_COMMAND_ID (0x00)
179 #define ZCL_LAUNCH_URL_COMMAND_ID (0x01)
181 #define DOOR_LOCK_CLUSTER_ID 0x0101
182 #define ZCL_CLEAR_ALL_PINS_COMMAND_ID (0x08)
183 #define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID (0x19)
184 #define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID (0x13)
185 #define ZCL_CLEAR_PIN_COMMAND_ID (0x07)
186 #define ZCL_CLEAR_RFID_COMMAND_ID (0x18)
187 #define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID (0x0D)
188 #define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID (0x10)
189 #define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID (0x12)
190 #define ZCL_GET_LOG_RECORD_COMMAND_ID (0x04)
191 #define ZCL_GET_PIN_COMMAND_ID (0x06)
192 #define ZCL_GET_RFID_COMMAND_ID (0x17)
193 #define ZCL_GET_USER_TYPE_COMMAND_ID (0x15)
194 #define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0C)
195 #define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID (0x0F)
196 #define ZCL_LOCK_DOOR_COMMAND_ID (0x00)
197 #define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID (0x11)
198 #define ZCL_SET_PIN_COMMAND_ID (0x05)
199 #define ZCL_SET_RFID_COMMAND_ID (0x16)
200 #define ZCL_SET_USER_TYPE_COMMAND_ID (0x14)
201 #define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0B)
202 #define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID (0x0E)
203 #define ZCL_UNLOCK_DOOR_COMMAND_ID (0x01)
204 #define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID (0x03)
206 #define GENERAL_COMMISSIONING_CLUSTER_ID 0x0030
207 #define ZCL_ARM_FAIL_SAFE_COMMAND_ID (0x02)
208 #define ZCL_COMMISSIONING_COMPLETE_COMMAND_ID (0x06)
209 #define ZCL_SET_FABRIC_COMMAND_ID (0x00)
211 #define GROUPS_CLUSTER_ID 0x0004
212 #define ZCL_ADD_GROUP_COMMAND_ID (0x00)
213 #define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID (0x05)
214 #define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID (0x02)
215 #define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID (0x04)
216 #define ZCL_REMOVE_GROUP_COMMAND_ID (0x03)
217 #define ZCL_VIEW_GROUP_COMMAND_ID (0x01)
219 #define IAS_ZONE_CLUSTER_ID 0x0500
221 #define IDENTIFY_CLUSTER_ID 0x0003
222 #define ZCL_IDENTIFY_COMMAND_ID (0x00)
223 #define ZCL_IDENTIFY_QUERY_COMMAND_ID (0x01)
225 #define LEVEL_CONTROL_CLUSTER_ID 0x0008
226 #define ZCL_MOVE_COMMAND_ID (0x01)
227 #define ZCL_MOVE_TO_LEVEL_COMMAND_ID (0x00)
228 #define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID (0x04)
229 #define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID (0x05)
230 #define ZCL_STEP_COMMAND_ID (0x02)
231 #define ZCL_STEP_WITH_ON_OFF_COMMAND_ID (0x06)
232 #define ZCL_STOP_COMMAND_ID (0x03)
233 #define ZCL_STOP_WITH_ON_OFF_COMMAND_ID (0x07)
235 #define LOW_POWER_CLUSTER_ID 0x0508
236 #define ZCL_SLEEP_COMMAND_ID (0x00)
238 #define MEDIA_PLAYBACK_CLUSTER_ID 0xF001
239 #define ZCL_FAST_FORWARD_REQUEST_COMMAND_ID (0x07)
240 #define ZCL_NEXT_REQUEST_COMMAND_ID (0x05)
241 #define ZCL_PAUSE_REQUEST_COMMAND_ID (0x01)
242 #define ZCL_PLAY_REQUEST_COMMAND_ID (0x00)
243 #define ZCL_PREVIOUS_REQUEST_COMMAND_ID (0x04)
244 #define ZCL_REWIND_REQUEST_COMMAND_ID (0x06)
245 #define ZCL_SKIP_BACKWARD_REQUEST_COMMAND_ID (0x09)
246 #define ZCL_SKIP_FORWARD_REQUEST_COMMAND_ID (0x08)
247 #define ZCL_START_OVER_REQUEST_COMMAND_ID (0x03)
248 #define ZCL_STOP_REQUEST_COMMAND_ID (0x02)
250 #define NETWORK_COMMISSIONING_CLUSTER_ID 0xAAAA
251 #define ZCL_ADD_THREAD_NETWORK_COMMAND_ID (0x06)
252 #define ZCL_ADD_WI_FI_NETWORK_COMMAND_ID (0x02)
253 #define ZCL_DISABLE_NETWORK_COMMAND_ID (0x0E)
254 #define ZCL_ENABLE_NETWORK_COMMAND_ID (0x0C)
255 #define ZCL_GET_LAST_NETWORK_COMMISSIONING_RESULT_COMMAND_ID (0x10)
256 #define ZCL_REMOVE_NETWORK_COMMAND_ID (0x0A)
257 #define ZCL_SCAN_NETWORKS_COMMAND_ID (0x00)
258 #define ZCL_UPDATE_THREAD_NETWORK_COMMAND_ID (0x08)
259 #define ZCL_UPDATE_WI_FI_NETWORK_COMMAND_ID (0x04)
261 #define ON_OFF_CLUSTER_ID 0x0006
262 #define ZCL_OFF_COMMAND_ID (0x00)
263 #define ZCL_ON_COMMAND_ID (0x01)
264 #define ZCL_TOGGLE_COMMAND_ID (0x02)
266 #define SCENES_CLUSTER_ID 0x0005
267 #define ZCL_ADD_SCENE_COMMAND_ID (0x00)
268 #define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID (0x06)
269 #define ZCL_RECALL_SCENE_COMMAND_ID (0x05)
270 #define ZCL_REMOVE_ALL_SCENES_COMMAND_ID (0x03)
271 #define ZCL_REMOVE_SCENE_COMMAND_ID (0x02)
272 #define ZCL_STORE_SCENE_COMMAND_ID (0x04)
273 #define ZCL_VIEW_SCENE_COMMAND_ID (0x01)
275 #define TEMP_MEASUREMENT_CLUSTER_ID 0x0402
277 // TODO: Find a way to calculate maximum message length for clusters
278 // https://github.com/project-chip/connectedhomeip/issues/965
279 constexpr uint16_t kMaxBufferSize = 1024;
281 // This is a cluster-specific command so low two bits are 0b01. The command
282 // is standard, so does not need a manufacturer code, and we're sending
283 // client to server, so all the remaining bits are 0.
284 constexpr uint8_t kFrameControlClusterSpecificCommand = 0x01;
286 // This is a global command, so the low bits are 0b00. The command is
287 // standard, so does not need a manufacturer code, and we're sending client
288 // to server, so all the remaining bits are 0.
289 constexpr uint8_t kFrameControlGlobalCommand = 0x00;
291 // Pick source endpoint as 1 for now
292 constexpr EndpointId kSourceEndpoint = 1;
294 /*----------------------------------------------------------------------------*\
295 | Cluster ApplicationBasic | 0x050D |
296 |------------------------------------------------------------------------------|
298 |------------------------------------------------------------------------------|
300 | * VendorName | 0x0000 |
301 | * VendorId | 0x0001 |
302 | * ApplicationName | 0x0002 |
303 | * ProductId | 0x0003 |
304 | * ApplicationId | 0x0005 |
305 | * CatalogVendorId | 0x0006 |
306 | * ApplicationSatus | 0x0007 |
307 | * ClusterRevision | 0xFFFD |
308 \*----------------------------------------------------------------------------*/
310 PacketBufferHandle encodeApplicationBasicClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
312 COMMAND_HEADER("DiscoverApplicationBasicAttributes", APPLICATION_BASIC_CLUSTER_ID);
313 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
318 * Attribute VendorName
320 PacketBufferHandle encodeApplicationBasicClusterReadVendorNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
322 COMMAND_HEADER("ReadApplicationBasicVendorName", APPLICATION_BASIC_CLUSTER_ID);
323 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
330 PacketBufferHandle encodeApplicationBasicClusterReadVendorIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
332 COMMAND_HEADER("ReadApplicationBasicVendorId", APPLICATION_BASIC_CLUSTER_ID);
333 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
338 * Attribute ApplicationName
340 PacketBufferHandle encodeApplicationBasicClusterReadApplicationNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
342 COMMAND_HEADER("ReadApplicationBasicApplicationName", APPLICATION_BASIC_CLUSTER_ID);
343 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
348 * Attribute ProductId
350 PacketBufferHandle encodeApplicationBasicClusterReadProductIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
352 COMMAND_HEADER("ReadApplicationBasicProductId", APPLICATION_BASIC_CLUSTER_ID);
353 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
358 * Attribute ApplicationId
360 PacketBufferHandle encodeApplicationBasicClusterReadApplicationIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
362 COMMAND_HEADER("ReadApplicationBasicApplicationId", APPLICATION_BASIC_CLUSTER_ID);
363 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0005);
368 * Attribute CatalogVendorId
370 PacketBufferHandle encodeApplicationBasicClusterReadCatalogVendorIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
372 COMMAND_HEADER("ReadApplicationBasicCatalogVendorId", APPLICATION_BASIC_CLUSTER_ID);
373 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0006);
378 * Attribute ApplicationSatus
380 PacketBufferHandle encodeApplicationBasicClusterReadApplicationSatusAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
382 COMMAND_HEADER("ReadApplicationBasicApplicationSatus", APPLICATION_BASIC_CLUSTER_ID);
383 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
388 * Attribute ClusterRevision
390 PacketBufferHandle encodeApplicationBasicClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
392 COMMAND_HEADER("ReadApplicationBasicClusterRevision", APPLICATION_BASIC_CLUSTER_ID);
393 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
397 /*----------------------------------------------------------------------------*\
398 | Cluster BarrierControl | 0x0103 |
399 |------------------------------------------------------------------------------|
401 | * BarrierControlGoToPercent | 0x00 |
402 | * BarrierControlStop | 0x01 |
403 |------------------------------------------------------------------------------|
405 | * BarrierMovingState | 0x0001 |
406 | * BarrierSafetyStatus | 0x0002 |
407 | * BarrierCapabilities | 0x0003 |
408 | * BarrierPosition | 0x000A |
409 | * ClusterRevision | 0xFFFD |
410 \*----------------------------------------------------------------------------*/
413 * Command BarrierControlGoToPercent
415 PacketBufferHandle encodeBarrierControlClusterBarrierControlGoToPercentCommand(uint8_t seqNum, EndpointId destinationEndpoint,
418 COMMAND_HEADER("BarrierControlGoToPercent", BARRIER_CONTROL_CLUSTER_ID);
420 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_BARRIER_CONTROL_GO_TO_PERCENT_COMMAND_ID).Put8(percentOpen);
425 * Command BarrierControlStop
427 PacketBufferHandle encodeBarrierControlClusterBarrierControlStopCommand(uint8_t seqNum, EndpointId destinationEndpoint)
429 COMMAND_HEADER("BarrierControlStop", BARRIER_CONTROL_CLUSTER_ID);
430 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_BARRIER_CONTROL_STOP_COMMAND_ID);
434 PacketBufferHandle encodeBarrierControlClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
436 COMMAND_HEADER("DiscoverBarrierControlAttributes", BARRIER_CONTROL_CLUSTER_ID);
437 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
442 * Attribute BarrierMovingState
444 PacketBufferHandle encodeBarrierControlClusterReadBarrierMovingStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
446 COMMAND_HEADER("ReadBarrierControlBarrierMovingState", BARRIER_CONTROL_CLUSTER_ID);
447 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
452 * Attribute BarrierSafetyStatus
454 PacketBufferHandle encodeBarrierControlClusterReadBarrierSafetyStatusAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
456 COMMAND_HEADER("ReadBarrierControlBarrierSafetyStatus", BARRIER_CONTROL_CLUSTER_ID);
457 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
462 * Attribute BarrierCapabilities
464 PacketBufferHandle encodeBarrierControlClusterReadBarrierCapabilitiesAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
466 COMMAND_HEADER("ReadBarrierControlBarrierCapabilities", BARRIER_CONTROL_CLUSTER_ID);
467 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
472 * Attribute BarrierPosition
474 PacketBufferHandle encodeBarrierControlClusterReadBarrierPositionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
476 COMMAND_HEADER("ReadBarrierControlBarrierPosition", BARRIER_CONTROL_CLUSTER_ID);
477 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x000A);
482 * Attribute ClusterRevision
484 PacketBufferHandle encodeBarrierControlClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
486 COMMAND_HEADER("ReadBarrierControlClusterRevision", BARRIER_CONTROL_CLUSTER_ID);
487 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
491 /*----------------------------------------------------------------------------*\
492 | Cluster Basic | 0x0028 |
493 |------------------------------------------------------------------------------|
495 | * MfgSpecificPing | 0x00 |
496 |------------------------------------------------------------------------------|
498 | * InteractionModelVersion | 0x0000 |
499 | * VendorName | 0x0001 |
500 | * VendorID | 0x0002 |
501 | * ProductName | 0x0003 |
502 | * ProductID | 0x0004 |
503 | * UserLabel | 0x0005 |
504 | * Location | 0x0006 |
505 | * HardwareVersion | 0x0007 |
506 | * HardwareVersionString | 0x0008 |
507 | * SoftwareVersion | 0x0009 |
508 | * SoftwareVersionString | 0x000A |
509 | * ClusterRevision | 0xFFFD |
510 \*----------------------------------------------------------------------------*/
513 * Command MfgSpecificPing
515 PacketBufferHandle encodeBasicClusterMfgSpecificPingCommand(uint8_t seqNum, EndpointId destinationEndpoint)
517 COMMAND_HEADER("MfgSpecificPing", BASIC_CLUSTER_ID);
518 buf.Put8(kFrameControlClusterSpecificCommand | (1u << 2)).Put16(0x1002).Put8(seqNum).Put8(ZCL_MFG_SPECIFIC_PING_COMMAND_ID);
522 PacketBufferHandle encodeBasicClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
524 COMMAND_HEADER("DiscoverBasicAttributes", BASIC_CLUSTER_ID);
525 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
530 * Attribute InteractionModelVersion
532 PacketBufferHandle encodeBasicClusterReadInteractionModelVersionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
534 COMMAND_HEADER("ReadBasicInteractionModelVersion", BASIC_CLUSTER_ID);
535 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
540 * Attribute VendorName
542 PacketBufferHandle encodeBasicClusterReadVendorNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
544 COMMAND_HEADER("ReadBasicVendorName", BASIC_CLUSTER_ID);
545 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
552 PacketBufferHandle encodeBasicClusterReadVendorIDAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
554 COMMAND_HEADER("ReadBasicVendorID", BASIC_CLUSTER_ID);
555 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
560 * Attribute ProductName
562 PacketBufferHandle encodeBasicClusterReadProductNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
564 COMMAND_HEADER("ReadBasicProductName", BASIC_CLUSTER_ID);
565 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
570 * Attribute ProductID
572 PacketBufferHandle encodeBasicClusterReadProductIDAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
574 COMMAND_HEADER("ReadBasicProductID", BASIC_CLUSTER_ID);
575 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0004);
580 * Attribute UserLabel
582 PacketBufferHandle encodeBasicClusterReadUserLabelAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
584 COMMAND_HEADER("ReadBasicUserLabel", BASIC_CLUSTER_ID);
585 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0005);
589 PacketBufferHandle encodeBasicClusterWriteUserLabelAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
590 chip::ByteSpan userLabel)
592 COMMAND_HEADER("WriteBasicUserLabel", BASIC_CLUSTER_ID);
593 size_t userLabelStrLen = userLabel.size();
594 if (!CanCastTo<uint8_t>(userLabelStrLen))
596 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, userLabelStrLen);
597 return PacketBufferHandle();
600 buf.Put8(kFrameControlGlobalCommand)
602 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
605 .Put(static_cast<uint8_t>(userLabelStrLen))
606 .Put(userLabel.data(), userLabelStrLen);
613 PacketBufferHandle encodeBasicClusterReadLocationAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
615 COMMAND_HEADER("ReadBasicLocation", BASIC_CLUSTER_ID);
616 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0006);
620 PacketBufferHandle encodeBasicClusterWriteLocationAttribute(uint8_t seqNum, EndpointId destinationEndpoint, chip::ByteSpan location)
622 COMMAND_HEADER("WriteBasicLocation", BASIC_CLUSTER_ID);
623 size_t locationStrLen = location.size();
624 if (!CanCastTo<uint8_t>(locationStrLen))
626 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, locationStrLen);
627 return PacketBufferHandle();
630 buf.Put8(kFrameControlGlobalCommand)
632 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
635 .Put(static_cast<uint8_t>(locationStrLen))
636 .Put(location.data(), locationStrLen);
641 * Attribute HardwareVersion
643 PacketBufferHandle encodeBasicClusterReadHardwareVersionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
645 COMMAND_HEADER("ReadBasicHardwareVersion", BASIC_CLUSTER_ID);
646 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
651 * Attribute HardwareVersionString
653 PacketBufferHandle encodeBasicClusterReadHardwareVersionStringAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
655 COMMAND_HEADER("ReadBasicHardwareVersionString", BASIC_CLUSTER_ID);
656 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0008);
661 * Attribute SoftwareVersion
663 PacketBufferHandle encodeBasicClusterReadSoftwareVersionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
665 COMMAND_HEADER("ReadBasicSoftwareVersion", BASIC_CLUSTER_ID);
666 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0009);
671 * Attribute SoftwareVersionString
673 PacketBufferHandle encodeBasicClusterReadSoftwareVersionStringAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
675 COMMAND_HEADER("ReadBasicSoftwareVersionString", BASIC_CLUSTER_ID);
676 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x000A);
681 * Attribute ClusterRevision
683 PacketBufferHandle encodeBasicClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
685 COMMAND_HEADER("ReadBasicClusterRevision", BASIC_CLUSTER_ID);
686 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
690 /*----------------------------------------------------------------------------*\
691 | Cluster Binding | 0xF000 |
692 |------------------------------------------------------------------------------|
696 |------------------------------------------------------------------------------|
698 | * ClusterRevision | 0xFFFD |
699 \*----------------------------------------------------------------------------*/
704 PacketBufferHandle encodeBindingClusterBindCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::NodeId nodeId,
705 chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId)
707 COMMAND_HEADER("Bind", BINDING_CLUSTER_ID);
709 buf.Put8(kFrameControlClusterSpecificCommand)
711 .Put8(ZCL_BIND_COMMAND_ID)
722 PacketBufferHandle encodeBindingClusterUnbindCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::NodeId nodeId,
723 chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId)
725 COMMAND_HEADER("Unbind", BINDING_CLUSTER_ID);
727 buf.Put8(kFrameControlClusterSpecificCommand)
729 .Put8(ZCL_UNBIND_COMMAND_ID)
737 PacketBufferHandle encodeBindingClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
739 COMMAND_HEADER("DiscoverBindingAttributes", BINDING_CLUSTER_ID);
740 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
745 * Attribute ClusterRevision
747 PacketBufferHandle encodeBindingClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
749 COMMAND_HEADER("ReadBindingClusterRevision", BINDING_CLUSTER_ID);
750 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
754 /*----------------------------------------------------------------------------*\
755 | Cluster ColorControl | 0x0300 |
756 |------------------------------------------------------------------------------|
758 | * MoveColor | 0x08 |
759 | * MoveColorTemperature | 0x4B |
761 | * MoveSaturation | 0x04 |
762 | * MoveToColor | 0x07 |
763 | * MoveToColorTemperature | 0x0A |
764 | * MoveToHue | 0x00 |
765 | * MoveToHueAndSaturation | 0x06 |
766 | * MoveToSaturation | 0x03 |
767 | * StepColor | 0x09 |
768 | * StepColorTemperature | 0x4C |
770 | * StepSaturation | 0x05 |
771 | * StopMoveStep | 0x47 |
772 |------------------------------------------------------------------------------|
774 | * CurrentHue | 0x0000 |
775 | * CurrentSaturation | 0x0001 |
776 | * RemainingTime | 0x0002 |
777 | * CurrentX | 0x0003 |
778 | * CurrentY | 0x0004 |
779 | * DriftCompensation | 0x0005 |
780 | * CompensationText | 0x0006 |
781 | * ColorTemperature | 0x0007 |
782 | * ColorMode | 0x0008 |
783 | * ColorControlOptions | 0x000F |
784 | * NumberOfPrimaries | 0x0010 |
785 | * Primary1X | 0x0011 |
786 | * Primary1Y | 0x0012 |
787 | * Primary1Intensity | 0x0013 |
788 | * Primary2X | 0x0015 |
789 | * Primary2Y | 0x0016 |
790 | * Primary2Intensity | 0x0017 |
791 | * Primary3X | 0x0019 |
792 | * Primary3Y | 0x001A |
793 | * Primary3Intensity | 0x001B |
794 | * Primary4X | 0x0020 |
795 | * Primary4Y | 0x0021 |
796 | * Primary4Intensity | 0x0022 |
797 | * Primary5X | 0x0024 |
798 | * Primary5Y | 0x0025 |
799 | * Primary5Intensity | 0x0026 |
800 | * Primary6X | 0x0028 |
801 | * Primary6Y | 0x0029 |
802 | * Primary6Intensity | 0x002A |
803 | * WhitePointX | 0x0030 |
804 | * WhitePointY | 0x0031 |
805 | * ColorPointRX | 0x0032 |
806 | * ColorPointRY | 0x0033 |
807 | * ColorPointRIntensity | 0x0034 |
808 | * ColorPointGX | 0x0036 |
809 | * ColorPointGY | 0x0037 |
810 | * ColorPointGIntensity | 0x0038 |
811 | * ColorPointBX | 0x003A |
812 | * ColorPointBY | 0x003B |
813 | * ColorPointBIntensity | 0x003C |
814 | * EnhancedCurrentHue | 0x4000 |
815 | * EnhancedColorMode | 0x4001 |
816 | * ColorLoopActive | 0x4002 |
817 | * ColorLoopDirection | 0x4003 |
818 | * ColorLoopTime | 0x4004 |
819 | * ColorCapabilities | 0x400A |
820 | * ColorTempPhysicalMin | 0x400B |
821 | * ColorTempPhysicalMax | 0x400C |
822 | * CoupleColorTempToLevelMinMireds | 0x400D |
823 | * StartUpColorTemperatureMireds | 0x4010 |
824 | * ClusterRevision | 0xFFFD |
825 \*----------------------------------------------------------------------------*/
830 PacketBufferHandle encodeColorControlClusterMoveColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, int16_t rateX,
831 int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride)
833 COMMAND_HEADER("MoveColor", COLOR_CONTROL_CLUSTER_ID);
835 buf.Put8(kFrameControlClusterSpecificCommand)
837 .Put8(ZCL_MOVE_COLOR_COMMAND_ID)
838 .Put16(static_cast<uint16_t>(rateX))
839 .Put16(static_cast<uint16_t>(rateY))
841 .Put8(optionsOverride);
846 * Command MoveColorTemperature
848 PacketBufferHandle encodeColorControlClusterMoveColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
849 uint8_t moveMode, uint16_t rate,
850 uint16_t colorTemperatureMinimum,
851 uint16_t colorTemperatureMaximum, uint8_t optionsMask,
852 uint8_t optionsOverride)
854 COMMAND_HEADER("MoveColorTemperature", COLOR_CONTROL_CLUSTER_ID);
856 buf.Put8(kFrameControlClusterSpecificCommand)
858 .Put8(ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID)
861 .Put16(colorTemperatureMinimum)
862 .Put16(colorTemperatureMaximum)
864 .Put8(optionsOverride);
871 PacketBufferHandle encodeColorControlClusterMoveHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
872 uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride)
874 COMMAND_HEADER("MoveHue", COLOR_CONTROL_CLUSTER_ID);
876 buf.Put8(kFrameControlClusterSpecificCommand)
878 .Put8(ZCL_MOVE_HUE_COMMAND_ID)
882 .Put8(optionsOverride);
887 * Command MoveSaturation
889 PacketBufferHandle encodeColorControlClusterMoveSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
890 uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride)
892 COMMAND_HEADER("MoveSaturation", COLOR_CONTROL_CLUSTER_ID);
894 buf.Put8(kFrameControlClusterSpecificCommand)
896 .Put8(ZCL_MOVE_SATURATION_COMMAND_ID)
900 .Put8(optionsOverride);
905 * Command MoveToColor
907 PacketBufferHandle encodeColorControlClusterMoveToColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t colorX,
908 uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask,
909 uint8_t optionsOverride)
911 COMMAND_HEADER("MoveToColor", COLOR_CONTROL_CLUSTER_ID);
913 buf.Put8(kFrameControlClusterSpecificCommand)
915 .Put8(ZCL_MOVE_TO_COLOR_COMMAND_ID)
918 .Put16(transitionTime)
920 .Put8(optionsOverride);
925 * Command MoveToColorTemperature
927 PacketBufferHandle encodeColorControlClusterMoveToColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
928 uint16_t colorTemperature, uint16_t transitionTime,
929 uint8_t optionsMask, uint8_t optionsOverride)
931 COMMAND_HEADER("MoveToColorTemperature", COLOR_CONTROL_CLUSTER_ID);
933 buf.Put8(kFrameControlClusterSpecificCommand)
935 .Put8(ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID)
936 .Put16(colorTemperature)
937 .Put16(transitionTime)
939 .Put8(optionsOverride);
946 PacketBufferHandle encodeColorControlClusterMoveToHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t hue,
947 uint8_t direction, uint16_t transitionTime, uint8_t optionsMask,
948 uint8_t optionsOverride)
950 COMMAND_HEADER("MoveToHue", COLOR_CONTROL_CLUSTER_ID);
952 buf.Put8(kFrameControlClusterSpecificCommand)
954 .Put8(ZCL_MOVE_TO_HUE_COMMAND_ID)
957 .Put16(transitionTime)
959 .Put8(optionsOverride);
964 * Command MoveToHueAndSaturation
966 PacketBufferHandle encodeColorControlClusterMoveToHueAndSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint,
967 uint8_t hue, uint8_t saturation, uint16_t transitionTime,
968 uint8_t optionsMask, uint8_t optionsOverride)
970 COMMAND_HEADER("MoveToHueAndSaturation", COLOR_CONTROL_CLUSTER_ID);
972 buf.Put8(kFrameControlClusterSpecificCommand)
974 .Put8(ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID)
977 .Put16(transitionTime)
979 .Put8(optionsOverride);
984 * Command MoveToSaturation
986 PacketBufferHandle encodeColorControlClusterMoveToSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint,
987 uint8_t saturation, uint16_t transitionTime,
988 uint8_t optionsMask, uint8_t optionsOverride)
990 COMMAND_HEADER("MoveToSaturation", COLOR_CONTROL_CLUSTER_ID);
992 buf.Put8(kFrameControlClusterSpecificCommand)
994 .Put8(ZCL_MOVE_TO_SATURATION_COMMAND_ID)
996 .Put16(transitionTime)
998 .Put8(optionsOverride);
1005 PacketBufferHandle encodeColorControlClusterStepColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, int16_t stepX,
1006 int16_t stepY, uint16_t transitionTime, uint8_t optionsMask,
1007 uint8_t optionsOverride)
1009 COMMAND_HEADER("StepColor", COLOR_CONTROL_CLUSTER_ID);
1011 buf.Put8(kFrameControlClusterSpecificCommand)
1013 .Put8(ZCL_STEP_COLOR_COMMAND_ID)
1014 .Put16(static_cast<uint16_t>(stepX))
1015 .Put16(static_cast<uint16_t>(stepY))
1016 .Put16(transitionTime)
1018 .Put8(optionsOverride);
1023 * Command StepColorTemperature
1025 PacketBufferHandle encodeColorControlClusterStepColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1026 uint8_t stepMode, uint16_t stepSize,
1027 uint16_t transitionTime, uint16_t colorTemperatureMinimum,
1028 uint16_t colorTemperatureMaximum, uint8_t optionsMask,
1029 uint8_t optionsOverride)
1031 COMMAND_HEADER("StepColorTemperature", COLOR_CONTROL_CLUSTER_ID);
1033 buf.Put8(kFrameControlClusterSpecificCommand)
1035 .Put8(ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID)
1038 .Put16(transitionTime)
1039 .Put16(colorTemperatureMinimum)
1040 .Put16(colorTemperatureMaximum)
1042 .Put8(optionsOverride);
1049 PacketBufferHandle encodeColorControlClusterStepHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
1050 uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
1051 uint8_t optionsOverride)
1053 COMMAND_HEADER("StepHue", COLOR_CONTROL_CLUSTER_ID);
1055 buf.Put8(kFrameControlClusterSpecificCommand)
1057 .Put8(ZCL_STEP_HUE_COMMAND_ID)
1060 .Put8(transitionTime)
1062 .Put8(optionsOverride);
1067 * Command StepSaturation
1069 PacketBufferHandle encodeColorControlClusterStepSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
1070 uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
1071 uint8_t optionsOverride)
1073 COMMAND_HEADER("StepSaturation", COLOR_CONTROL_CLUSTER_ID);
1075 buf.Put8(kFrameControlClusterSpecificCommand)
1077 .Put8(ZCL_STEP_SATURATION_COMMAND_ID)
1080 .Put8(transitionTime)
1082 .Put8(optionsOverride);
1087 * Command StopMoveStep
1089 PacketBufferHandle encodeColorControlClusterStopMoveStepCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t optionsMask,
1090 uint8_t optionsOverride)
1092 COMMAND_HEADER("StopMoveStep", COLOR_CONTROL_CLUSTER_ID);
1094 buf.Put8(kFrameControlClusterSpecificCommand)
1096 .Put8(ZCL_STOP_MOVE_STEP_COMMAND_ID)
1098 .Put8(optionsOverride);
1102 PacketBufferHandle encodeColorControlClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
1104 COMMAND_HEADER("DiscoverColorControlAttributes", COLOR_CONTROL_CLUSTER_ID);
1105 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
1110 * Attribute CurrentHue
1112 PacketBufferHandle encodeColorControlClusterReadCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1114 COMMAND_HEADER("ReadColorControlCurrentHue", COLOR_CONTROL_CLUSTER_ID);
1115 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
1119 PacketBufferHandle encodeColorControlClusterConfigureCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1120 uint16_t minInterval, uint16_t maxInterval, uint8_t change)
1122 COMMAND_HEADER("ReportColorControlCurrentHue", COLOR_CONTROL_CLUSTER_ID);
1123 buf.Put8(kFrameControlGlobalCommand)
1125 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1126 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1130 .Put16(maxInterval);
1131 buf.Put8(static_cast<uint8_t>(change));
1136 * Attribute CurrentSaturation
1138 PacketBufferHandle encodeColorControlClusterReadCurrentSaturationAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1140 COMMAND_HEADER("ReadColorControlCurrentSaturation", COLOR_CONTROL_CLUSTER_ID);
1141 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
1145 PacketBufferHandle encodeColorControlClusterConfigureCurrentSaturationAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1146 uint16_t minInterval, uint16_t maxInterval,
1149 COMMAND_HEADER("ReportColorControlCurrentSaturation", COLOR_CONTROL_CLUSTER_ID);
1150 buf.Put8(kFrameControlGlobalCommand)
1152 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1153 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1157 .Put16(maxInterval);
1158 buf.Put8(static_cast<uint8_t>(change));
1163 * Attribute RemainingTime
1165 PacketBufferHandle encodeColorControlClusterReadRemainingTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1167 COMMAND_HEADER("ReadColorControlRemainingTime", COLOR_CONTROL_CLUSTER_ID);
1168 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
1173 * Attribute CurrentX
1175 PacketBufferHandle encodeColorControlClusterReadCurrentXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1177 COMMAND_HEADER("ReadColorControlCurrentX", COLOR_CONTROL_CLUSTER_ID);
1178 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
1182 PacketBufferHandle encodeColorControlClusterConfigureCurrentXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1183 uint16_t minInterval, uint16_t maxInterval, uint16_t change)
1185 COMMAND_HEADER("ReportColorControlCurrentX", COLOR_CONTROL_CLUSTER_ID);
1186 buf.Put8(kFrameControlGlobalCommand)
1188 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1189 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1193 .Put16(maxInterval);
1194 buf.Put16(static_cast<uint16_t>(change));
1199 * Attribute CurrentY
1201 PacketBufferHandle encodeColorControlClusterReadCurrentYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1203 COMMAND_HEADER("ReadColorControlCurrentY", COLOR_CONTROL_CLUSTER_ID);
1204 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0004);
1208 PacketBufferHandle encodeColorControlClusterConfigureCurrentYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1209 uint16_t minInterval, uint16_t maxInterval, uint16_t change)
1211 COMMAND_HEADER("ReportColorControlCurrentY", COLOR_CONTROL_CLUSTER_ID);
1212 buf.Put8(kFrameControlGlobalCommand)
1214 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1215 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1219 .Put16(maxInterval);
1220 buf.Put16(static_cast<uint16_t>(change));
1225 * Attribute DriftCompensation
1227 PacketBufferHandle encodeColorControlClusterReadDriftCompensationAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1229 COMMAND_HEADER("ReadColorControlDriftCompensation", COLOR_CONTROL_CLUSTER_ID);
1230 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0005);
1235 * Attribute CompensationText
1237 PacketBufferHandle encodeColorControlClusterReadCompensationTextAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1239 COMMAND_HEADER("ReadColorControlCompensationText", COLOR_CONTROL_CLUSTER_ID);
1240 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0006);
1245 * Attribute ColorTemperature
1247 PacketBufferHandle encodeColorControlClusterReadColorTemperatureAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1249 COMMAND_HEADER("ReadColorControlColorTemperature", COLOR_CONTROL_CLUSTER_ID);
1250 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
1254 PacketBufferHandle encodeColorControlClusterConfigureColorTemperatureAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1255 uint16_t minInterval, uint16_t maxInterval,
1258 COMMAND_HEADER("ReportColorControlColorTemperature", COLOR_CONTROL_CLUSTER_ID);
1259 buf.Put8(kFrameControlGlobalCommand)
1261 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1262 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1266 .Put16(maxInterval);
1267 buf.Put16(static_cast<uint16_t>(change));
1272 * Attribute ColorMode
1274 PacketBufferHandle encodeColorControlClusterReadColorModeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1276 COMMAND_HEADER("ReadColorControlColorMode", COLOR_CONTROL_CLUSTER_ID);
1277 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0008);
1282 * Attribute ColorControlOptions
1284 PacketBufferHandle encodeColorControlClusterReadColorControlOptionsAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1286 COMMAND_HEADER("ReadColorControlColorControlOptions", COLOR_CONTROL_CLUSTER_ID);
1287 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x000F);
1291 PacketBufferHandle encodeColorControlClusterWriteColorControlOptionsAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1292 uint8_t colorControlOptions)
1294 COMMAND_HEADER("WriteColorControlColorControlOptions", COLOR_CONTROL_CLUSTER_ID);
1295 buf.Put8(kFrameControlGlobalCommand)
1297 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1300 .Put8(static_cast<uint8_t>(colorControlOptions));
1305 * Attribute NumberOfPrimaries
1307 PacketBufferHandle encodeColorControlClusterReadNumberOfPrimariesAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1309 COMMAND_HEADER("ReadColorControlNumberOfPrimaries", COLOR_CONTROL_CLUSTER_ID);
1310 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0010);
1315 * Attribute Primary1X
1317 PacketBufferHandle encodeColorControlClusterReadPrimary1XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1319 COMMAND_HEADER("ReadColorControlPrimary1X", COLOR_CONTROL_CLUSTER_ID);
1320 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0011);
1325 * Attribute Primary1Y
1327 PacketBufferHandle encodeColorControlClusterReadPrimary1YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1329 COMMAND_HEADER("ReadColorControlPrimary1Y", COLOR_CONTROL_CLUSTER_ID);
1330 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0012);
1335 * Attribute Primary1Intensity
1337 PacketBufferHandle encodeColorControlClusterReadPrimary1IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1339 COMMAND_HEADER("ReadColorControlPrimary1Intensity", COLOR_CONTROL_CLUSTER_ID);
1340 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0013);
1345 * Attribute Primary2X
1347 PacketBufferHandle encodeColorControlClusterReadPrimary2XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1349 COMMAND_HEADER("ReadColorControlPrimary2X", COLOR_CONTROL_CLUSTER_ID);
1350 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0015);
1355 * Attribute Primary2Y
1357 PacketBufferHandle encodeColorControlClusterReadPrimary2YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1359 COMMAND_HEADER("ReadColorControlPrimary2Y", COLOR_CONTROL_CLUSTER_ID);
1360 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0016);
1365 * Attribute Primary2Intensity
1367 PacketBufferHandle encodeColorControlClusterReadPrimary2IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1369 COMMAND_HEADER("ReadColorControlPrimary2Intensity", COLOR_CONTROL_CLUSTER_ID);
1370 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0017);
1375 * Attribute Primary3X
1377 PacketBufferHandle encodeColorControlClusterReadPrimary3XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1379 COMMAND_HEADER("ReadColorControlPrimary3X", COLOR_CONTROL_CLUSTER_ID);
1380 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0019);
1385 * Attribute Primary3Y
1387 PacketBufferHandle encodeColorControlClusterReadPrimary3YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1389 COMMAND_HEADER("ReadColorControlPrimary3Y", COLOR_CONTROL_CLUSTER_ID);
1390 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x001A);
1395 * Attribute Primary3Intensity
1397 PacketBufferHandle encodeColorControlClusterReadPrimary3IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1399 COMMAND_HEADER("ReadColorControlPrimary3Intensity", COLOR_CONTROL_CLUSTER_ID);
1400 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x001B);
1405 * Attribute Primary4X
1407 PacketBufferHandle encodeColorControlClusterReadPrimary4XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1409 COMMAND_HEADER("ReadColorControlPrimary4X", COLOR_CONTROL_CLUSTER_ID);
1410 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0020);
1415 * Attribute Primary4Y
1417 PacketBufferHandle encodeColorControlClusterReadPrimary4YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1419 COMMAND_HEADER("ReadColorControlPrimary4Y", COLOR_CONTROL_CLUSTER_ID);
1420 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0021);
1425 * Attribute Primary4Intensity
1427 PacketBufferHandle encodeColorControlClusterReadPrimary4IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1429 COMMAND_HEADER("ReadColorControlPrimary4Intensity", COLOR_CONTROL_CLUSTER_ID);
1430 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0022);
1435 * Attribute Primary5X
1437 PacketBufferHandle encodeColorControlClusterReadPrimary5XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1439 COMMAND_HEADER("ReadColorControlPrimary5X", COLOR_CONTROL_CLUSTER_ID);
1440 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0024);
1445 * Attribute Primary5Y
1447 PacketBufferHandle encodeColorControlClusterReadPrimary5YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1449 COMMAND_HEADER("ReadColorControlPrimary5Y", COLOR_CONTROL_CLUSTER_ID);
1450 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0025);
1455 * Attribute Primary5Intensity
1457 PacketBufferHandle encodeColorControlClusterReadPrimary5IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1459 COMMAND_HEADER("ReadColorControlPrimary5Intensity", COLOR_CONTROL_CLUSTER_ID);
1460 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0026);
1465 * Attribute Primary6X
1467 PacketBufferHandle encodeColorControlClusterReadPrimary6XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1469 COMMAND_HEADER("ReadColorControlPrimary6X", COLOR_CONTROL_CLUSTER_ID);
1470 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0028);
1475 * Attribute Primary6Y
1477 PacketBufferHandle encodeColorControlClusterReadPrimary6YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1479 COMMAND_HEADER("ReadColorControlPrimary6Y", COLOR_CONTROL_CLUSTER_ID);
1480 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0029);
1485 * Attribute Primary6Intensity
1487 PacketBufferHandle encodeColorControlClusterReadPrimary6IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1489 COMMAND_HEADER("ReadColorControlPrimary6Intensity", COLOR_CONTROL_CLUSTER_ID);
1490 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x002A);
1495 * Attribute WhitePointX
1497 PacketBufferHandle encodeColorControlClusterReadWhitePointXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1499 COMMAND_HEADER("ReadColorControlWhitePointX", COLOR_CONTROL_CLUSTER_ID);
1500 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0030);
1504 PacketBufferHandle encodeColorControlClusterWriteWhitePointXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1505 uint16_t whitePointX)
1507 COMMAND_HEADER("WriteColorControlWhitePointX", COLOR_CONTROL_CLUSTER_ID);
1508 buf.Put8(kFrameControlGlobalCommand)
1510 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1513 .Put16(static_cast<uint16_t>(whitePointX));
1518 * Attribute WhitePointY
1520 PacketBufferHandle encodeColorControlClusterReadWhitePointYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1522 COMMAND_HEADER("ReadColorControlWhitePointY", COLOR_CONTROL_CLUSTER_ID);
1523 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0031);
1527 PacketBufferHandle encodeColorControlClusterWriteWhitePointYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1528 uint16_t whitePointY)
1530 COMMAND_HEADER("WriteColorControlWhitePointY", COLOR_CONTROL_CLUSTER_ID);
1531 buf.Put8(kFrameControlGlobalCommand)
1533 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1536 .Put16(static_cast<uint16_t>(whitePointY));
1541 * Attribute ColorPointRX
1543 PacketBufferHandle encodeColorControlClusterReadColorPointRXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1545 COMMAND_HEADER("ReadColorControlColorPointRX", COLOR_CONTROL_CLUSTER_ID);
1546 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0032);
1550 PacketBufferHandle encodeColorControlClusterWriteColorPointRXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1551 uint16_t colorPointRX)
1553 COMMAND_HEADER("WriteColorControlColorPointRX", COLOR_CONTROL_CLUSTER_ID);
1554 buf.Put8(kFrameControlGlobalCommand)
1556 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1559 .Put16(static_cast<uint16_t>(colorPointRX));
1564 * Attribute ColorPointRY
1566 PacketBufferHandle encodeColorControlClusterReadColorPointRYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1568 COMMAND_HEADER("ReadColorControlColorPointRY", COLOR_CONTROL_CLUSTER_ID);
1569 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0033);
1573 PacketBufferHandle encodeColorControlClusterWriteColorPointRYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1574 uint16_t colorPointRY)
1576 COMMAND_HEADER("WriteColorControlColorPointRY", COLOR_CONTROL_CLUSTER_ID);
1577 buf.Put8(kFrameControlGlobalCommand)
1579 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1582 .Put16(static_cast<uint16_t>(colorPointRY));
1587 * Attribute ColorPointRIntensity
1589 PacketBufferHandle encodeColorControlClusterReadColorPointRIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1591 COMMAND_HEADER("ReadColorControlColorPointRIntensity", COLOR_CONTROL_CLUSTER_ID);
1592 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0034);
1596 PacketBufferHandle encodeColorControlClusterWriteColorPointRIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1597 uint8_t colorPointRIntensity)
1599 COMMAND_HEADER("WriteColorControlColorPointRIntensity", COLOR_CONTROL_CLUSTER_ID);
1600 buf.Put8(kFrameControlGlobalCommand)
1602 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1605 .Put8(static_cast<uint8_t>(colorPointRIntensity));
1610 * Attribute ColorPointGX
1612 PacketBufferHandle encodeColorControlClusterReadColorPointGXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1614 COMMAND_HEADER("ReadColorControlColorPointGX", COLOR_CONTROL_CLUSTER_ID);
1615 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0036);
1619 PacketBufferHandle encodeColorControlClusterWriteColorPointGXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1620 uint16_t colorPointGX)
1622 COMMAND_HEADER("WriteColorControlColorPointGX", COLOR_CONTROL_CLUSTER_ID);
1623 buf.Put8(kFrameControlGlobalCommand)
1625 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1628 .Put16(static_cast<uint16_t>(colorPointGX));
1633 * Attribute ColorPointGY
1635 PacketBufferHandle encodeColorControlClusterReadColorPointGYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1637 COMMAND_HEADER("ReadColorControlColorPointGY", COLOR_CONTROL_CLUSTER_ID);
1638 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0037);
1642 PacketBufferHandle encodeColorControlClusterWriteColorPointGYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1643 uint16_t colorPointGY)
1645 COMMAND_HEADER("WriteColorControlColorPointGY", COLOR_CONTROL_CLUSTER_ID);
1646 buf.Put8(kFrameControlGlobalCommand)
1648 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1651 .Put16(static_cast<uint16_t>(colorPointGY));
1656 * Attribute ColorPointGIntensity
1658 PacketBufferHandle encodeColorControlClusterReadColorPointGIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1660 COMMAND_HEADER("ReadColorControlColorPointGIntensity", COLOR_CONTROL_CLUSTER_ID);
1661 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0038);
1665 PacketBufferHandle encodeColorControlClusterWriteColorPointGIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1666 uint8_t colorPointGIntensity)
1668 COMMAND_HEADER("WriteColorControlColorPointGIntensity", COLOR_CONTROL_CLUSTER_ID);
1669 buf.Put8(kFrameControlGlobalCommand)
1671 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1674 .Put8(static_cast<uint8_t>(colorPointGIntensity));
1679 * Attribute ColorPointBX
1681 PacketBufferHandle encodeColorControlClusterReadColorPointBXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1683 COMMAND_HEADER("ReadColorControlColorPointBX", COLOR_CONTROL_CLUSTER_ID);
1684 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003A);
1688 PacketBufferHandle encodeColorControlClusterWriteColorPointBXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1689 uint16_t colorPointBX)
1691 COMMAND_HEADER("WriteColorControlColorPointBX", COLOR_CONTROL_CLUSTER_ID);
1692 buf.Put8(kFrameControlGlobalCommand)
1694 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1697 .Put16(static_cast<uint16_t>(colorPointBX));
1702 * Attribute ColorPointBY
1704 PacketBufferHandle encodeColorControlClusterReadColorPointBYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1706 COMMAND_HEADER("ReadColorControlColorPointBY", COLOR_CONTROL_CLUSTER_ID);
1707 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003B);
1711 PacketBufferHandle encodeColorControlClusterWriteColorPointBYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1712 uint16_t colorPointBY)
1714 COMMAND_HEADER("WriteColorControlColorPointBY", COLOR_CONTROL_CLUSTER_ID);
1715 buf.Put8(kFrameControlGlobalCommand)
1717 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1720 .Put16(static_cast<uint16_t>(colorPointBY));
1725 * Attribute ColorPointBIntensity
1727 PacketBufferHandle encodeColorControlClusterReadColorPointBIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1729 COMMAND_HEADER("ReadColorControlColorPointBIntensity", COLOR_CONTROL_CLUSTER_ID);
1730 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003C);
1734 PacketBufferHandle encodeColorControlClusterWriteColorPointBIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1735 uint8_t colorPointBIntensity)
1737 COMMAND_HEADER("WriteColorControlColorPointBIntensity", COLOR_CONTROL_CLUSTER_ID);
1738 buf.Put8(kFrameControlGlobalCommand)
1740 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1743 .Put8(static_cast<uint8_t>(colorPointBIntensity));
1748 * Attribute EnhancedCurrentHue
1750 PacketBufferHandle encodeColorControlClusterReadEnhancedCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1752 COMMAND_HEADER("ReadColorControlEnhancedCurrentHue", COLOR_CONTROL_CLUSTER_ID);
1753 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4000);
1758 * Attribute EnhancedColorMode
1760 PacketBufferHandle encodeColorControlClusterReadEnhancedColorModeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1762 COMMAND_HEADER("ReadColorControlEnhancedColorMode", COLOR_CONTROL_CLUSTER_ID);
1763 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4001);
1768 * Attribute ColorLoopActive
1770 PacketBufferHandle encodeColorControlClusterReadColorLoopActiveAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1772 COMMAND_HEADER("ReadColorControlColorLoopActive", COLOR_CONTROL_CLUSTER_ID);
1773 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4002);
1778 * Attribute ColorLoopDirection
1780 PacketBufferHandle encodeColorControlClusterReadColorLoopDirectionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1782 COMMAND_HEADER("ReadColorControlColorLoopDirection", COLOR_CONTROL_CLUSTER_ID);
1783 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4003);
1788 * Attribute ColorLoopTime
1790 PacketBufferHandle encodeColorControlClusterReadColorLoopTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1792 COMMAND_HEADER("ReadColorControlColorLoopTime", COLOR_CONTROL_CLUSTER_ID);
1793 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4004);
1798 * Attribute ColorCapabilities
1800 PacketBufferHandle encodeColorControlClusterReadColorCapabilitiesAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1802 COMMAND_HEADER("ReadColorControlColorCapabilities", COLOR_CONTROL_CLUSTER_ID);
1803 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400A);
1808 * Attribute ColorTempPhysicalMin
1810 PacketBufferHandle encodeColorControlClusterReadColorTempPhysicalMinAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1812 COMMAND_HEADER("ReadColorControlColorTempPhysicalMin", COLOR_CONTROL_CLUSTER_ID);
1813 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400B);
1818 * Attribute ColorTempPhysicalMax
1820 PacketBufferHandle encodeColorControlClusterReadColorTempPhysicalMaxAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1822 COMMAND_HEADER("ReadColorControlColorTempPhysicalMax", COLOR_CONTROL_CLUSTER_ID);
1823 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400C);
1828 * Attribute CoupleColorTempToLevelMinMireds
1830 PacketBufferHandle encodeColorControlClusterReadCoupleColorTempToLevelMinMiredsAttribute(uint8_t seqNum,
1831 EndpointId destinationEndpoint)
1833 COMMAND_HEADER("ReadColorControlCoupleColorTempToLevelMinMireds", COLOR_CONTROL_CLUSTER_ID);
1834 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400D);
1839 * Attribute StartUpColorTemperatureMireds
1841 PacketBufferHandle encodeColorControlClusterReadStartUpColorTemperatureMiredsAttribute(uint8_t seqNum,
1842 EndpointId destinationEndpoint)
1844 COMMAND_HEADER("ReadColorControlStartUpColorTemperatureMireds", COLOR_CONTROL_CLUSTER_ID);
1845 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4010);
1849 PacketBufferHandle encodeColorControlClusterWriteStartUpColorTemperatureMiredsAttribute(uint8_t seqNum,
1850 EndpointId destinationEndpoint,
1851 uint16_t startUpColorTemperatureMireds)
1853 COMMAND_HEADER("WriteColorControlStartUpColorTemperatureMireds", COLOR_CONTROL_CLUSTER_ID);
1854 buf.Put8(kFrameControlGlobalCommand)
1856 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1859 .Put16(static_cast<uint16_t>(startUpColorTemperatureMireds));
1864 * Attribute ClusterRevision
1866 PacketBufferHandle encodeColorControlClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1868 COMMAND_HEADER("ReadColorControlClusterRevision", COLOR_CONTROL_CLUSTER_ID);
1869 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
1873 /*----------------------------------------------------------------------------*\
1874 | Cluster ContentLaunch | 0xF002 |
1875 |------------------------------------------------------------------------------|
1877 | * LaunchContent | 0x00 |
1878 | * LaunchURL | 0x01 |
1879 |------------------------------------------------------------------------------|
1881 | * ClusterRevision | 0xFFFD |
1882 \*----------------------------------------------------------------------------*/
1885 * Command LaunchContent
1887 PacketBufferHandle encodeContentLaunchClusterLaunchContentCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1889 COMMAND_HEADER("LaunchContent", CONTENT_LAUNCH_CLUSTER_ID);
1890 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_LAUNCH_CONTENT_COMMAND_ID);
1897 PacketBufferHandle encodeContentLaunchClusterLaunchURLCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1899 COMMAND_HEADER("LaunchURL", CONTENT_LAUNCH_CLUSTER_ID);
1900 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_LAUNCH_URL_COMMAND_ID);
1904 PacketBufferHandle encodeContentLaunchClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
1906 COMMAND_HEADER("DiscoverContentLaunchAttributes", CONTENT_LAUNCH_CLUSTER_ID);
1907 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
1912 * Attribute ClusterRevision
1914 PacketBufferHandle encodeContentLaunchClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1916 COMMAND_HEADER("ReadContentLaunchClusterRevision", CONTENT_LAUNCH_CLUSTER_ID);
1917 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
1921 /*----------------------------------------------------------------------------*\
1922 | Cluster DoorLock | 0x0101 |
1923 |------------------------------------------------------------------------------|
1925 | * ClearAllPins | 0x08 |
1926 | * ClearAllRfids | 0x19 |
1927 | * ClearHolidaySchedule | 0x13 |
1928 | * ClearPin | 0x07 |
1929 | * ClearRfid | 0x18 |
1930 | * ClearWeekdaySchedule | 0x0D |
1931 | * ClearYeardaySchedule | 0x10 |
1932 | * GetHolidaySchedule | 0x12 |
1933 | * GetLogRecord | 0x04 |
1935 | * GetRfid | 0x17 |
1936 | * GetUserType | 0x15 |
1937 | * GetWeekdaySchedule | 0x0C |
1938 | * GetYeardaySchedule | 0x0F |
1939 | * LockDoor | 0x00 |
1940 | * SetHolidaySchedule | 0x11 |
1942 | * SetRfid | 0x16 |
1943 | * SetUserType | 0x14 |
1944 | * SetWeekdaySchedule | 0x0B |
1945 | * SetYeardaySchedule | 0x0E |
1946 | * UnlockDoor | 0x01 |
1947 | * UnlockWithTimeout | 0x03 |
1948 |------------------------------------------------------------------------------|
1950 | * LockState | 0x0000 |
1951 | * LockType | 0x0001 |
1952 | * ActuatorEnabled | 0x0002 |
1953 | * ClusterRevision | 0xFFFD |
1954 \*----------------------------------------------------------------------------*/
1957 * Command ClearAllPins
1959 PacketBufferHandle encodeDoorLockClusterClearAllPinsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1961 COMMAND_HEADER("ClearAllPins", DOOR_LOCK_CLUSTER_ID);
1962 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_ALL_PINS_COMMAND_ID);
1967 * Command ClearAllRfids
1969 PacketBufferHandle encodeDoorLockClusterClearAllRfidsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1971 COMMAND_HEADER("ClearAllRfids", DOOR_LOCK_CLUSTER_ID);
1972 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_ALL_RFIDS_COMMAND_ID);
1977 * Command ClearHolidaySchedule
1979 PacketBufferHandle encodeDoorLockClusterClearHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1982 COMMAND_HEADER("ClearHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
1984 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID).Put8(scheduleId);
1991 PacketBufferHandle encodeDoorLockClusterClearPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
1993 COMMAND_HEADER("ClearPin", DOOR_LOCK_CLUSTER_ID);
1995 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_PIN_COMMAND_ID).Put16(userId);
2002 PacketBufferHandle encodeDoorLockClusterClearRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
2004 COMMAND_HEADER("ClearRfid", DOOR_LOCK_CLUSTER_ID);
2006 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_RFID_COMMAND_ID).Put16(userId);
2011 * Command ClearWeekdaySchedule
2013 PacketBufferHandle encodeDoorLockClusterClearWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2014 uint8_t scheduleId, uint16_t userId)
2016 COMMAND_HEADER("ClearWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
2018 buf.Put8(kFrameControlClusterSpecificCommand)
2020 .Put8(ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID)
2027 * Command ClearYeardaySchedule
2029 PacketBufferHandle encodeDoorLockClusterClearYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2030 uint8_t scheduleId, uint16_t userId)
2032 COMMAND_HEADER("ClearYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
2034 buf.Put8(kFrameControlClusterSpecificCommand)
2036 .Put8(ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID)
2043 * Command GetHolidaySchedule
2045 PacketBufferHandle encodeDoorLockClusterGetHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2048 COMMAND_HEADER("GetHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
2050 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID).Put8(scheduleId);
2055 * Command GetLogRecord
2057 PacketBufferHandle encodeDoorLockClusterGetLogRecordCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t logIndex)
2059 COMMAND_HEADER("GetLogRecord", DOOR_LOCK_CLUSTER_ID);
2061 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_LOG_RECORD_COMMAND_ID).Put16(logIndex);
2068 PacketBufferHandle encodeDoorLockClusterGetPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
2070 COMMAND_HEADER("GetPin", DOOR_LOCK_CLUSTER_ID);
2072 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_PIN_COMMAND_ID).Put16(userId);
2079 PacketBufferHandle encodeDoorLockClusterGetRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
2081 COMMAND_HEADER("GetRfid", DOOR_LOCK_CLUSTER_ID);
2083 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_RFID_COMMAND_ID).Put16(userId);
2088 * Command GetUserType
2090 PacketBufferHandle encodeDoorLockClusterGetUserTypeCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
2092 COMMAND_HEADER("GetUserType", DOOR_LOCK_CLUSTER_ID);
2094 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_USER_TYPE_COMMAND_ID).Put16(userId);
2099 * Command GetWeekdaySchedule
2101 PacketBufferHandle encodeDoorLockClusterGetWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2102 uint8_t scheduleId, uint16_t userId)
2104 COMMAND_HEADER("GetWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
2106 buf.Put8(kFrameControlClusterSpecificCommand)
2108 .Put8(ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID)
2115 * Command GetYeardaySchedule
2117 PacketBufferHandle encodeDoorLockClusterGetYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2118 uint8_t scheduleId, uint16_t userId)
2120 COMMAND_HEADER("GetYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
2122 buf.Put8(kFrameControlClusterSpecificCommand)
2124 .Put8(ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID)
2133 PacketBufferHandle encodeDoorLockClusterLockDoorCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::ByteSpan pin)
2135 COMMAND_HEADER("LockDoor", DOOR_LOCK_CLUSTER_ID);
2136 size_t pinStrLen = pin.size();
2137 if (!CanCastTo<uint8_t>(pinStrLen))
2139 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2140 return PacketBufferHandle();
2143 buf.Put8(kFrameControlClusterSpecificCommand)
2145 .Put8(ZCL_LOCK_DOOR_COMMAND_ID)
2146 .Put(static_cast<uint8_t>(pinStrLen))
2147 .Put(pin.data(), pin.size());
2152 * Command SetHolidaySchedule
2154 PacketBufferHandle encodeDoorLockClusterSetHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2155 uint8_t scheduleId, uint32_t localStartTime,
2156 uint32_t localEndTime, uint8_t operatingModeDuringHoliday)
2158 COMMAND_HEADER("SetHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
2160 buf.Put8(kFrameControlClusterSpecificCommand)
2162 .Put8(ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID)
2164 .Put32(localStartTime)
2165 .Put32(localEndTime)
2166 .Put8(operatingModeDuringHoliday);
2173 PacketBufferHandle encodeDoorLockClusterSetPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2174 uint8_t userStatus, uint8_t userType, chip::ByteSpan pin)
2176 COMMAND_HEADER("SetPin", DOOR_LOCK_CLUSTER_ID);
2178 size_t pinStrLen = pin.size();
2179 if (!CanCastTo<uint8_t>(pinStrLen))
2181 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2182 return PacketBufferHandle();
2185 buf.Put8(kFrameControlClusterSpecificCommand)
2187 .Put8(ZCL_SET_PIN_COMMAND_ID)
2191 .Put(static_cast<uint8_t>(pinStrLen))
2192 .Put(pin.data(), pin.size());
2199 PacketBufferHandle encodeDoorLockClusterSetRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2200 uint8_t userStatus, uint8_t userType, chip::ByteSpan id)
2202 COMMAND_HEADER("SetRfid", DOOR_LOCK_CLUSTER_ID);
2204 size_t idStrLen = id.size();
2205 if (!CanCastTo<uint8_t>(idStrLen))
2207 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, idStrLen);
2208 return PacketBufferHandle();
2211 buf.Put8(kFrameControlClusterSpecificCommand)
2213 .Put8(ZCL_SET_RFID_COMMAND_ID)
2217 .Put(static_cast<uint8_t>(idStrLen))
2218 .Put(id.data(), id.size());
2223 * Command SetUserType
2225 PacketBufferHandle encodeDoorLockClusterSetUserTypeCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2228 COMMAND_HEADER("SetUserType", DOOR_LOCK_CLUSTER_ID);
2230 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SET_USER_TYPE_COMMAND_ID).Put16(userId).Put8(userType);
2235 * Command SetWeekdaySchedule
2237 PacketBufferHandle encodeDoorLockClusterSetWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2238 uint8_t scheduleId, uint16_t userId, uint8_t daysMask,
2239 uint8_t startHour, uint8_t startMinute, uint8_t endHour,
2242 COMMAND_HEADER("SetWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
2244 buf.Put8(kFrameControlClusterSpecificCommand)
2246 .Put8(ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID)
2258 * Command SetYeardaySchedule
2260 PacketBufferHandle encodeDoorLockClusterSetYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2261 uint8_t scheduleId, uint16_t userId, uint32_t localStartTime,
2262 uint32_t localEndTime)
2264 COMMAND_HEADER("SetYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
2266 buf.Put8(kFrameControlClusterSpecificCommand)
2268 .Put8(ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID)
2271 .Put32(localStartTime)
2272 .Put32(localEndTime);
2277 * Command UnlockDoor
2279 PacketBufferHandle encodeDoorLockClusterUnlockDoorCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::ByteSpan pin)
2281 COMMAND_HEADER("UnlockDoor", DOOR_LOCK_CLUSTER_ID);
2282 size_t pinStrLen = pin.size();
2283 if (!CanCastTo<uint8_t>(pinStrLen))
2285 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2286 return PacketBufferHandle();
2289 buf.Put8(kFrameControlClusterSpecificCommand)
2291 .Put8(ZCL_UNLOCK_DOOR_COMMAND_ID)
2292 .Put(static_cast<uint8_t>(pinStrLen))
2293 .Put(pin.data(), pin.size());
2298 * Command UnlockWithTimeout
2300 PacketBufferHandle encodeDoorLockClusterUnlockWithTimeoutCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2301 uint16_t timeoutInSeconds, chip::ByteSpan pin)
2303 COMMAND_HEADER("UnlockWithTimeout", DOOR_LOCK_CLUSTER_ID);
2305 size_t pinStrLen = pin.size();
2306 if (!CanCastTo<uint8_t>(pinStrLen))
2308 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2309 return PacketBufferHandle();
2312 buf.Put8(kFrameControlClusterSpecificCommand)
2314 .Put8(ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID)
2315 .Put16(timeoutInSeconds)
2316 .Put(static_cast<uint8_t>(pinStrLen))
2317 .Put(pin.data(), pin.size());
2321 PacketBufferHandle encodeDoorLockClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2323 COMMAND_HEADER("DiscoverDoorLockAttributes", DOOR_LOCK_CLUSTER_ID);
2324 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2329 * Attribute LockState
2331 PacketBufferHandle encodeDoorLockClusterReadLockStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2333 COMMAND_HEADER("ReadDoorLockLockState", DOOR_LOCK_CLUSTER_ID);
2334 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2338 PacketBufferHandle encodeDoorLockClusterConfigureLockStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2339 uint16_t minInterval, uint16_t maxInterval)
2341 COMMAND_HEADER("ReportDoorLockLockState", DOOR_LOCK_CLUSTER_ID);
2342 buf.Put8(kFrameControlGlobalCommand)
2344 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
2345 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
2349 .Put16(maxInterval);
2354 * Attribute LockType
2356 PacketBufferHandle encodeDoorLockClusterReadLockTypeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2358 COMMAND_HEADER("ReadDoorLockLockType", DOOR_LOCK_CLUSTER_ID);
2359 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2364 * Attribute ActuatorEnabled
2366 PacketBufferHandle encodeDoorLockClusterReadActuatorEnabledAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2368 COMMAND_HEADER("ReadDoorLockActuatorEnabled", DOOR_LOCK_CLUSTER_ID);
2369 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
2374 * Attribute ClusterRevision
2376 PacketBufferHandle encodeDoorLockClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2378 COMMAND_HEADER("ReadDoorLockClusterRevision", DOOR_LOCK_CLUSTER_ID);
2379 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2383 /*----------------------------------------------------------------------------*\
2384 | Cluster GeneralCommissioning | 0x0030 |
2385 |------------------------------------------------------------------------------|
2387 | * ArmFailSafe | 0x02 |
2388 | * CommissioningComplete | 0x06 |
2389 | * SetFabric | 0x00 |
2390 |------------------------------------------------------------------------------|
2392 | * FabricId | 0x0000 |
2393 | * Breadcrumb | 0x0001 |
2394 | * ClusterRevision | 0xFFFD |
2395 \*----------------------------------------------------------------------------*/
2398 * Command ArmFailSafe
2400 PacketBufferHandle encodeGeneralCommissioningClusterArmFailSafeCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2401 uint16_t expiryLengthSeconds, uint64_t breadcrumb,
2404 COMMAND_HEADER("ArmFailSafe", GENERAL_COMMISSIONING_CLUSTER_ID);
2406 buf.Put8(kFrameControlClusterSpecificCommand)
2408 .Put8(ZCL_ARM_FAIL_SAFE_COMMAND_ID)
2409 .Put16(expiryLengthSeconds)
2416 * Command CommissioningComplete
2418 PacketBufferHandle encodeGeneralCommissioningClusterCommissioningCompleteCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2420 COMMAND_HEADER("CommissioningComplete", GENERAL_COMMISSIONING_CLUSTER_ID);
2421 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_COMMISSIONING_COMPLETE_COMMAND_ID);
2428 PacketBufferHandle encodeGeneralCommissioningClusterSetFabricCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2429 chip::ByteSpan fabricId, chip::ByteSpan fabricSecret,
2430 uint64_t breadcrumb, uint32_t timeoutMs)
2432 COMMAND_HEADER("SetFabric", GENERAL_COMMISSIONING_CLUSTER_ID);
2433 size_t fabricIdStrLen = fabricId.size();
2434 if (!CanCastTo<uint8_t>(fabricIdStrLen))
2436 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, fabricIdStrLen);
2437 return PacketBufferHandle();
2440 size_t fabricSecretStrLen = fabricSecret.size();
2441 if (!CanCastTo<uint8_t>(fabricSecretStrLen))
2443 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, fabricSecretStrLen);
2444 return PacketBufferHandle();
2447 buf.Put8(kFrameControlClusterSpecificCommand)
2449 .Put8(ZCL_SET_FABRIC_COMMAND_ID)
2450 .Put(static_cast<uint8_t>(fabricIdStrLen))
2451 .Put(fabricId.data(), fabricId.size())
2452 .Put(static_cast<uint8_t>(fabricSecretStrLen))
2453 .Put(fabricSecret.data(), fabricSecret.size())
2459 PacketBufferHandle encodeGeneralCommissioningClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2461 COMMAND_HEADER("DiscoverGeneralCommissioningAttributes", GENERAL_COMMISSIONING_CLUSTER_ID);
2462 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2467 * Attribute FabricId
2469 PacketBufferHandle encodeGeneralCommissioningClusterReadFabricIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2471 COMMAND_HEADER("ReadGeneralCommissioningFabricId", GENERAL_COMMISSIONING_CLUSTER_ID);
2472 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2477 * Attribute Breadcrumb
2479 PacketBufferHandle encodeGeneralCommissioningClusterReadBreadcrumbAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2481 COMMAND_HEADER("ReadGeneralCommissioningBreadcrumb", GENERAL_COMMISSIONING_CLUSTER_ID);
2482 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2486 PacketBufferHandle encodeGeneralCommissioningClusterWriteBreadcrumbAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2487 uint64_t breadcrumb)
2489 COMMAND_HEADER("WriteGeneralCommissioningBreadcrumb", GENERAL_COMMISSIONING_CLUSTER_ID);
2490 buf.Put8(kFrameControlGlobalCommand)
2492 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2495 .Put64(static_cast<uint64_t>(breadcrumb));
2500 * Attribute ClusterRevision
2502 PacketBufferHandle encodeGeneralCommissioningClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2504 COMMAND_HEADER("ReadGeneralCommissioningClusterRevision", GENERAL_COMMISSIONING_CLUSTER_ID);
2505 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2509 /*----------------------------------------------------------------------------*\
2510 | Cluster Groups | 0x0004 |
2511 |------------------------------------------------------------------------------|
2513 | * AddGroup | 0x00 |
2514 | * AddGroupIfIdentifying | 0x05 |
2515 | * GetGroupMembership | 0x02 |
2516 | * RemoveAllGroups | 0x04 |
2517 | * RemoveGroup | 0x03 |
2518 | * ViewGroup | 0x01 |
2519 |------------------------------------------------------------------------------|
2521 | * NameSupport | 0x0000 |
2522 | * ClusterRevision | 0xFFFD |
2523 \*----------------------------------------------------------------------------*/
2528 PacketBufferHandle encodeGroupsClusterAddGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
2529 chip::ByteSpan groupName)
2531 COMMAND_HEADER("AddGroup", GROUPS_CLUSTER_ID);
2533 size_t groupNameStrLen = groupName.size();
2534 if (!CanCastTo<uint8_t>(groupNameStrLen))
2536 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, groupNameStrLen);
2537 return PacketBufferHandle();
2540 buf.Put8(kFrameControlClusterSpecificCommand)
2542 .Put8(ZCL_ADD_GROUP_COMMAND_ID)
2544 .Put(static_cast<uint8_t>(groupNameStrLen))
2545 .Put(groupName.data(), groupName.size());
2550 * Command AddGroupIfIdentifying
2552 PacketBufferHandle encodeGroupsClusterAddGroupIfIdentifyingCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
2553 chip::ByteSpan groupName)
2555 COMMAND_HEADER("AddGroupIfIdentifying", GROUPS_CLUSTER_ID);
2557 size_t groupNameStrLen = groupName.size();
2558 if (!CanCastTo<uint8_t>(groupNameStrLen))
2560 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, groupNameStrLen);
2561 return PacketBufferHandle();
2564 buf.Put8(kFrameControlClusterSpecificCommand)
2566 .Put8(ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID)
2568 .Put(static_cast<uint8_t>(groupNameStrLen))
2569 .Put(groupName.data(), groupName.size());
2574 * Command GetGroupMembership
2576 PacketBufferHandle encodeGroupsClusterGetGroupMembershipCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t groupCount,
2579 COMMAND_HEADER("GetGroupMembership", GROUPS_CLUSTER_ID);
2581 buf.Put8(kFrameControlClusterSpecificCommand)
2583 .Put8(ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID)
2590 * Command RemoveAllGroups
2592 PacketBufferHandle encodeGroupsClusterRemoveAllGroupsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2594 COMMAND_HEADER("RemoveAllGroups", GROUPS_CLUSTER_ID);
2595 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_ALL_GROUPS_COMMAND_ID);
2600 * Command RemoveGroup
2602 PacketBufferHandle encodeGroupsClusterRemoveGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
2604 COMMAND_HEADER("RemoveGroup", GROUPS_CLUSTER_ID);
2606 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_GROUP_COMMAND_ID).Put16(groupId);
2613 PacketBufferHandle encodeGroupsClusterViewGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
2615 COMMAND_HEADER("ViewGroup", GROUPS_CLUSTER_ID);
2617 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_VIEW_GROUP_COMMAND_ID).Put16(groupId);
2621 PacketBufferHandle encodeGroupsClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2623 COMMAND_HEADER("DiscoverGroupsAttributes", GROUPS_CLUSTER_ID);
2624 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2629 * Attribute NameSupport
2631 PacketBufferHandle encodeGroupsClusterReadNameSupportAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2633 COMMAND_HEADER("ReadGroupsNameSupport", GROUPS_CLUSTER_ID);
2634 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2639 * Attribute ClusterRevision
2641 PacketBufferHandle encodeGroupsClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2643 COMMAND_HEADER("ReadGroupsClusterRevision", GROUPS_CLUSTER_ID);
2644 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2648 /*----------------------------------------------------------------------------*\
2649 | Cluster IasZone | 0x0500 |
2650 |------------------------------------------------------------------------------|
2652 |------------------------------------------------------------------------------|
2654 | * ZoneState | 0x0000 |
2655 | * ZoneType | 0x0001 |
2656 | * ZoneStatus | 0x0002 |
2657 | * IasCieAddress | 0x0010 |
2658 | * ZoneId | 0x0011 |
2659 | * ClusterRevision | 0xFFFD |
2660 \*----------------------------------------------------------------------------*/
2662 PacketBufferHandle encodeIasZoneClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2664 COMMAND_HEADER("DiscoverIasZoneAttributes", IAS_ZONE_CLUSTER_ID);
2665 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2670 * Attribute ZoneState
2672 PacketBufferHandle encodeIasZoneClusterReadZoneStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2674 COMMAND_HEADER("ReadIasZoneZoneState", IAS_ZONE_CLUSTER_ID);
2675 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2680 * Attribute ZoneType
2682 PacketBufferHandle encodeIasZoneClusterReadZoneTypeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2684 COMMAND_HEADER("ReadIasZoneZoneType", IAS_ZONE_CLUSTER_ID);
2685 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2690 * Attribute ZoneStatus
2692 PacketBufferHandle encodeIasZoneClusterReadZoneStatusAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2694 COMMAND_HEADER("ReadIasZoneZoneStatus", IAS_ZONE_CLUSTER_ID);
2695 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
2700 * Attribute IasCieAddress
2702 PacketBufferHandle encodeIasZoneClusterReadIasCieAddressAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2704 COMMAND_HEADER("ReadIasZoneIasCieAddress", IAS_ZONE_CLUSTER_ID);
2705 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0010);
2709 PacketBufferHandle encodeIasZoneClusterWriteIasCieAddressAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2710 uint64_t iasCieAddress)
2712 COMMAND_HEADER("WriteIasZoneIasCieAddress", IAS_ZONE_CLUSTER_ID);
2713 buf.Put8(kFrameControlGlobalCommand)
2715 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2718 .Put64(static_cast<uint64_t>(iasCieAddress));
2725 PacketBufferHandle encodeIasZoneClusterReadZoneIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2727 COMMAND_HEADER("ReadIasZoneZoneId", IAS_ZONE_CLUSTER_ID);
2728 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0011);
2733 * Attribute ClusterRevision
2735 PacketBufferHandle encodeIasZoneClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2737 COMMAND_HEADER("ReadIasZoneClusterRevision", IAS_ZONE_CLUSTER_ID);
2738 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2742 /*----------------------------------------------------------------------------*\
2743 | Cluster Identify | 0x0003 |
2744 |------------------------------------------------------------------------------|
2746 | * Identify | 0x00 |
2747 | * IdentifyQuery | 0x01 |
2748 |------------------------------------------------------------------------------|
2750 | * IdentifyTime | 0x0000 |
2751 | * ClusterRevision | 0xFFFD |
2752 \*----------------------------------------------------------------------------*/
2757 PacketBufferHandle encodeIdentifyClusterIdentifyCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t identifyTime)
2759 COMMAND_HEADER("Identify", IDENTIFY_CLUSTER_ID);
2761 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_IDENTIFY_COMMAND_ID).Put16(identifyTime);
2766 * Command IdentifyQuery
2768 PacketBufferHandle encodeIdentifyClusterIdentifyQueryCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2770 COMMAND_HEADER("IdentifyQuery", IDENTIFY_CLUSTER_ID);
2771 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_IDENTIFY_QUERY_COMMAND_ID);
2775 PacketBufferHandle encodeIdentifyClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2777 COMMAND_HEADER("DiscoverIdentifyAttributes", IDENTIFY_CLUSTER_ID);
2778 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2783 * Attribute IdentifyTime
2785 PacketBufferHandle encodeIdentifyClusterReadIdentifyTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2787 COMMAND_HEADER("ReadIdentifyIdentifyTime", IDENTIFY_CLUSTER_ID);
2788 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2792 PacketBufferHandle encodeIdentifyClusterWriteIdentifyTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2793 uint16_t identifyTime)
2795 COMMAND_HEADER("WriteIdentifyIdentifyTime", IDENTIFY_CLUSTER_ID);
2796 buf.Put8(kFrameControlGlobalCommand)
2798 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2801 .Put16(static_cast<uint16_t>(identifyTime));
2806 * Attribute ClusterRevision
2808 PacketBufferHandle encodeIdentifyClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2810 COMMAND_HEADER("ReadIdentifyClusterRevision", IDENTIFY_CLUSTER_ID);
2811 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2815 /*----------------------------------------------------------------------------*\
2816 | Cluster LevelControl | 0x0008 |
2817 |------------------------------------------------------------------------------|
2820 | * MoveToLevel | 0x00 |
2821 | * MoveToLevelWithOnOff | 0x04 |
2822 | * MoveWithOnOff | 0x05 |
2824 | * StepWithOnOff | 0x06 |
2826 | * StopWithOnOff | 0x07 |
2827 |------------------------------------------------------------------------------|
2829 | * CurrentLevel | 0x0000 |
2830 | * ClusterRevision | 0xFFFD |
2831 \*----------------------------------------------------------------------------*/
2836 PacketBufferHandle encodeLevelControlClusterMoveCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
2837 uint8_t rate, uint8_t optionMask, uint8_t optionOverride)
2839 COMMAND_HEADER("Move", LEVEL_CONTROL_CLUSTER_ID);
2841 buf.Put8(kFrameControlClusterSpecificCommand)
2843 .Put8(ZCL_MOVE_COMMAND_ID)
2847 .Put8(optionOverride);
2852 * Command MoveToLevel
2854 PacketBufferHandle encodeLevelControlClusterMoveToLevelCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t level,
2855 uint16_t transitionTime, uint8_t optionMask, uint8_t optionOverride)
2857 COMMAND_HEADER("MoveToLevel", LEVEL_CONTROL_CLUSTER_ID);
2859 buf.Put8(kFrameControlClusterSpecificCommand)
2861 .Put8(ZCL_MOVE_TO_LEVEL_COMMAND_ID)
2863 .Put16(transitionTime)
2865 .Put8(optionOverride);
2870 * Command MoveToLevelWithOnOff
2872 PacketBufferHandle encodeLevelControlClusterMoveToLevelWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2873 uint8_t level, uint16_t transitionTime)
2875 COMMAND_HEADER("MoveToLevelWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2877 buf.Put8(kFrameControlClusterSpecificCommand)
2879 .Put8(ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID)
2881 .Put16(transitionTime);
2886 * Command MoveWithOnOff
2888 PacketBufferHandle encodeLevelControlClusterMoveWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
2891 COMMAND_HEADER("MoveWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2893 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_MOVE_WITH_ON_OFF_COMMAND_ID).Put8(moveMode).Put8(rate);
2900 PacketBufferHandle encodeLevelControlClusterStepCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
2901 uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask,
2902 uint8_t optionOverride)
2904 COMMAND_HEADER("Step", LEVEL_CONTROL_CLUSTER_ID);
2906 buf.Put8(kFrameControlClusterSpecificCommand)
2908 .Put8(ZCL_STEP_COMMAND_ID)
2911 .Put16(transitionTime)
2913 .Put8(optionOverride);
2918 * Command StepWithOnOff
2920 PacketBufferHandle encodeLevelControlClusterStepWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
2921 uint8_t stepSize, uint16_t transitionTime)
2923 COMMAND_HEADER("StepWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2925 buf.Put8(kFrameControlClusterSpecificCommand)
2927 .Put8(ZCL_STEP_WITH_ON_OFF_COMMAND_ID)
2930 .Put16(transitionTime);
2937 PacketBufferHandle encodeLevelControlClusterStopCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t optionMask,
2938 uint8_t optionOverride)
2940 COMMAND_HEADER("Stop", LEVEL_CONTROL_CLUSTER_ID);
2942 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STOP_COMMAND_ID).Put8(optionMask).Put8(optionOverride);
2947 * Command StopWithOnOff
2949 PacketBufferHandle encodeLevelControlClusterStopWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2951 COMMAND_HEADER("StopWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2952 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STOP_WITH_ON_OFF_COMMAND_ID);
2956 PacketBufferHandle encodeLevelControlClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2958 COMMAND_HEADER("DiscoverLevelControlAttributes", LEVEL_CONTROL_CLUSTER_ID);
2959 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2964 * Attribute CurrentLevel
2966 PacketBufferHandle encodeLevelControlClusterReadCurrentLevelAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2968 COMMAND_HEADER("ReadLevelControlCurrentLevel", LEVEL_CONTROL_CLUSTER_ID);
2969 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2973 PacketBufferHandle encodeLevelControlClusterConfigureCurrentLevelAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2974 uint16_t minInterval, uint16_t maxInterval,
2977 COMMAND_HEADER("ReportLevelControlCurrentLevel", LEVEL_CONTROL_CLUSTER_ID);
2978 buf.Put8(kFrameControlGlobalCommand)
2980 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
2981 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
2985 .Put16(maxInterval);
2986 buf.Put8(static_cast<uint8_t>(change));
2991 * Attribute ClusterRevision
2993 PacketBufferHandle encodeLevelControlClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2995 COMMAND_HEADER("ReadLevelControlClusterRevision", LEVEL_CONTROL_CLUSTER_ID);
2996 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3000 /*----------------------------------------------------------------------------*\
3001 | Cluster LowPower | 0x0508 |
3002 |------------------------------------------------------------------------------|
3005 |------------------------------------------------------------------------------|
3007 | * ClusterRevision | 0xFFFD |
3008 \*----------------------------------------------------------------------------*/
3013 PacketBufferHandle encodeLowPowerClusterSleepCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3015 COMMAND_HEADER("Sleep", LOW_POWER_CLUSTER_ID);
3016 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SLEEP_COMMAND_ID);
3020 PacketBufferHandle encodeLowPowerClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3022 COMMAND_HEADER("DiscoverLowPowerAttributes", LOW_POWER_CLUSTER_ID);
3023 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3028 * Attribute ClusterRevision
3030 PacketBufferHandle encodeLowPowerClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3032 COMMAND_HEADER("ReadLowPowerClusterRevision", LOW_POWER_CLUSTER_ID);
3033 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3037 /*----------------------------------------------------------------------------*\
3038 | Cluster MediaPlayback | 0xF001 |
3039 |------------------------------------------------------------------------------|
3041 | * FastForwardRequest | 0x07 |
3042 | * NextRequest | 0x05 |
3043 | * PauseRequest | 0x01 |
3044 | * PlayRequest | 0x00 |
3045 | * PreviousRequest | 0x04 |
3046 | * RewindRequest | 0x06 |
3047 | * SkipBackwardRequest | 0x09 |
3048 | * SkipForwardRequest | 0x08 |
3049 | * StartOverRequest | 0x03 |
3050 | * StopRequest | 0x02 |
3051 |------------------------------------------------------------------------------|
3053 | * CurrentState | 0x0000 |
3054 | * ClusterRevision | 0xFFFD |
3055 \*----------------------------------------------------------------------------*/
3058 * Command FastForwardRequest
3060 PacketBufferHandle encodeMediaPlaybackClusterFastForwardRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3062 COMMAND_HEADER("FastForwardRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3063 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_FAST_FORWARD_REQUEST_COMMAND_ID);
3068 * Command NextRequest
3070 PacketBufferHandle encodeMediaPlaybackClusterNextRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3072 COMMAND_HEADER("NextRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3073 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_NEXT_REQUEST_COMMAND_ID);
3078 * Command PauseRequest
3080 PacketBufferHandle encodeMediaPlaybackClusterPauseRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3082 COMMAND_HEADER("PauseRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3083 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_PAUSE_REQUEST_COMMAND_ID);
3088 * Command PlayRequest
3090 PacketBufferHandle encodeMediaPlaybackClusterPlayRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3092 COMMAND_HEADER("PlayRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3093 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_PLAY_REQUEST_COMMAND_ID);
3098 * Command PreviousRequest
3100 PacketBufferHandle encodeMediaPlaybackClusterPreviousRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3102 COMMAND_HEADER("PreviousRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3103 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_PREVIOUS_REQUEST_COMMAND_ID);
3108 * Command RewindRequest
3110 PacketBufferHandle encodeMediaPlaybackClusterRewindRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3112 COMMAND_HEADER("RewindRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3113 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REWIND_REQUEST_COMMAND_ID);
3118 * Command SkipBackwardRequest
3120 PacketBufferHandle encodeMediaPlaybackClusterSkipBackwardRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3122 COMMAND_HEADER("SkipBackwardRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3123 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SKIP_BACKWARD_REQUEST_COMMAND_ID);
3128 * Command SkipForwardRequest
3130 PacketBufferHandle encodeMediaPlaybackClusterSkipForwardRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3132 COMMAND_HEADER("SkipForwardRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3133 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SKIP_FORWARD_REQUEST_COMMAND_ID);
3138 * Command StartOverRequest
3140 PacketBufferHandle encodeMediaPlaybackClusterStartOverRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3142 COMMAND_HEADER("StartOverRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3143 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_START_OVER_REQUEST_COMMAND_ID);
3148 * Command StopRequest
3150 PacketBufferHandle encodeMediaPlaybackClusterStopRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3152 COMMAND_HEADER("StopRequest", MEDIA_PLAYBACK_CLUSTER_ID);
3153 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STOP_REQUEST_COMMAND_ID);
3157 PacketBufferHandle encodeMediaPlaybackClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3159 COMMAND_HEADER("DiscoverMediaPlaybackAttributes", MEDIA_PLAYBACK_CLUSTER_ID);
3160 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3165 * Attribute CurrentState
3167 PacketBufferHandle encodeMediaPlaybackClusterReadCurrentStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3169 COMMAND_HEADER("ReadMediaPlaybackCurrentState", MEDIA_PLAYBACK_CLUSTER_ID);
3170 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3175 * Attribute ClusterRevision
3177 PacketBufferHandle encodeMediaPlaybackClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3179 COMMAND_HEADER("ReadMediaPlaybackClusterRevision", MEDIA_PLAYBACK_CLUSTER_ID);
3180 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3184 /*----------------------------------------------------------------------------*\
3185 | Cluster NetworkCommissioning | 0xAAAA |
3186 |------------------------------------------------------------------------------|
3188 | * AddThreadNetwork | 0x06 |
3189 | * AddWiFiNetwork | 0x02 |
3190 | * DisableNetwork | 0x0E |
3191 | * EnableNetwork | 0x0C |
3192 | * GetLastNetworkCommissioningResult | 0x10 |
3193 | * RemoveNetwork | 0x0A |
3194 | * ScanNetworks | 0x00 |
3195 | * UpdateThreadNetwork | 0x08 |
3196 | * UpdateWiFiNetwork | 0x04 |
3197 |------------------------------------------------------------------------------|
3199 | * ClusterRevision | 0xFFFD |
3200 \*----------------------------------------------------------------------------*/
3203 * Command AddThreadNetwork
3205 PacketBufferHandle encodeNetworkCommissioningClusterAddThreadNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3206 chip::ByteSpan operationalDataset, uint64_t breadcrumb,
3209 COMMAND_HEADER("AddThreadNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3210 size_t operationalDatasetStrLen = operationalDataset.size();
3211 if (!CanCastTo<uint8_t>(operationalDatasetStrLen))
3213 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, operationalDatasetStrLen);
3214 return PacketBufferHandle();
3217 buf.Put8(kFrameControlClusterSpecificCommand)
3219 .Put8(ZCL_ADD_THREAD_NETWORK_COMMAND_ID)
3220 .Put(static_cast<uint8_t>(operationalDatasetStrLen))
3221 .Put(operationalDataset.data(), operationalDataset.size())
3228 * Command AddWiFiNetwork
3230 PacketBufferHandle encodeNetworkCommissioningClusterAddWiFiNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3231 chip::ByteSpan ssid, chip::ByteSpan credentials,
3232 uint64_t breadcrumb, uint32_t timeoutMs)
3234 COMMAND_HEADER("AddWiFiNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3235 size_t ssidStrLen = ssid.size();
3236 if (!CanCastTo<uint8_t>(ssidStrLen))
3238 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, ssidStrLen);
3239 return PacketBufferHandle();
3242 size_t credentialsStrLen = credentials.size();
3243 if (!CanCastTo<uint8_t>(credentialsStrLen))
3245 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, credentialsStrLen);
3246 return PacketBufferHandle();
3249 buf.Put8(kFrameControlClusterSpecificCommand)
3251 .Put8(ZCL_ADD_WI_FI_NETWORK_COMMAND_ID)
3252 .Put(static_cast<uint8_t>(ssidStrLen))
3253 .Put(ssid.data(), ssid.size())
3254 .Put(static_cast<uint8_t>(credentialsStrLen))
3255 .Put(credentials.data(), credentials.size())
3262 * Command DisableNetwork
3264 PacketBufferHandle encodeNetworkCommissioningClusterDisableNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3265 chip::ByteSpan networkID, uint64_t breadcrumb,
3268 COMMAND_HEADER("DisableNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3269 size_t networkIDStrLen = networkID.size();
3270 if (!CanCastTo<uint8_t>(networkIDStrLen))
3272 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, networkIDStrLen);
3273 return PacketBufferHandle();
3276 buf.Put8(kFrameControlClusterSpecificCommand)
3278 .Put8(ZCL_DISABLE_NETWORK_COMMAND_ID)
3279 .Put(static_cast<uint8_t>(networkIDStrLen))
3280 .Put(networkID.data(), networkID.size())
3287 * Command EnableNetwork
3289 PacketBufferHandle encodeNetworkCommissioningClusterEnableNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3290 chip::ByteSpan networkID, uint64_t breadcrumb,
3293 COMMAND_HEADER("EnableNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3294 size_t networkIDStrLen = networkID.size();
3295 if (!CanCastTo<uint8_t>(networkIDStrLen))
3297 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, networkIDStrLen);
3298 return PacketBufferHandle();
3301 buf.Put8(kFrameControlClusterSpecificCommand)
3303 .Put8(ZCL_ENABLE_NETWORK_COMMAND_ID)
3304 .Put(static_cast<uint8_t>(networkIDStrLen))
3305 .Put(networkID.data(), networkID.size())
3312 * Command GetLastNetworkCommissioningResult
3314 PacketBufferHandle encodeNetworkCommissioningClusterGetLastNetworkCommissioningResultCommand(uint8_t seqNum,
3315 EndpointId destinationEndpoint,
3318 COMMAND_HEADER("GetLastNetworkCommissioningResult", NETWORK_COMMISSIONING_CLUSTER_ID);
3320 buf.Put8(kFrameControlClusterSpecificCommand)
3322 .Put8(ZCL_GET_LAST_NETWORK_COMMISSIONING_RESULT_COMMAND_ID)
3328 * Command RemoveNetwork
3330 PacketBufferHandle encodeNetworkCommissioningClusterRemoveNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3331 chip::ByteSpan networkID, uint64_t breadcrumb,
3334 COMMAND_HEADER("RemoveNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3335 size_t networkIDStrLen = networkID.size();
3336 if (!CanCastTo<uint8_t>(networkIDStrLen))
3338 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, networkIDStrLen);
3339 return PacketBufferHandle();
3342 buf.Put8(kFrameControlClusterSpecificCommand)
3344 .Put8(ZCL_REMOVE_NETWORK_COMMAND_ID)
3345 .Put(static_cast<uint8_t>(networkIDStrLen))
3346 .Put(networkID.data(), networkID.size())
3353 * Command ScanNetworks
3355 PacketBufferHandle encodeNetworkCommissioningClusterScanNetworksCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3356 chip::ByteSpan ssid, uint64_t breadcrumb,
3359 COMMAND_HEADER("ScanNetworks", NETWORK_COMMISSIONING_CLUSTER_ID);
3360 size_t ssidStrLen = ssid.size();
3361 if (!CanCastTo<uint8_t>(ssidStrLen))
3363 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, ssidStrLen);
3364 return PacketBufferHandle();
3367 buf.Put8(kFrameControlClusterSpecificCommand)
3369 .Put8(ZCL_SCAN_NETWORKS_COMMAND_ID)
3370 .Put(static_cast<uint8_t>(ssidStrLen))
3371 .Put(ssid.data(), ssid.size())
3378 * Command UpdateThreadNetwork
3380 PacketBufferHandle encodeNetworkCommissioningClusterUpdateThreadNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3381 chip::ByteSpan operationalDataset,
3382 uint64_t breadcrumb, uint32_t timeoutMs)
3384 COMMAND_HEADER("UpdateThreadNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3385 size_t operationalDatasetStrLen = operationalDataset.size();
3386 if (!CanCastTo<uint8_t>(operationalDatasetStrLen))
3388 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, operationalDatasetStrLen);
3389 return PacketBufferHandle();
3392 buf.Put8(kFrameControlClusterSpecificCommand)
3394 .Put8(ZCL_UPDATE_THREAD_NETWORK_COMMAND_ID)
3395 .Put(static_cast<uint8_t>(operationalDatasetStrLen))
3396 .Put(operationalDataset.data(), operationalDataset.size())
3403 * Command UpdateWiFiNetwork
3405 PacketBufferHandle encodeNetworkCommissioningClusterUpdateWiFiNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3406 chip::ByteSpan ssid, chip::ByteSpan credentials,
3407 uint64_t breadcrumb, uint32_t timeoutMs)
3409 COMMAND_HEADER("UpdateWiFiNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3410 size_t ssidStrLen = ssid.size();
3411 if (!CanCastTo<uint8_t>(ssidStrLen))
3413 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, ssidStrLen);
3414 return PacketBufferHandle();
3417 size_t credentialsStrLen = credentials.size();
3418 if (!CanCastTo<uint8_t>(credentialsStrLen))
3420 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, credentialsStrLen);
3421 return PacketBufferHandle();
3424 buf.Put8(kFrameControlClusterSpecificCommand)
3426 .Put8(ZCL_UPDATE_WI_FI_NETWORK_COMMAND_ID)
3427 .Put(static_cast<uint8_t>(ssidStrLen))
3428 .Put(ssid.data(), ssid.size())
3429 .Put(static_cast<uint8_t>(credentialsStrLen))
3430 .Put(credentials.data(), credentials.size())
3436 PacketBufferHandle encodeNetworkCommissioningClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3438 COMMAND_HEADER("DiscoverNetworkCommissioningAttributes", NETWORK_COMMISSIONING_CLUSTER_ID);
3439 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3444 * Attribute ClusterRevision
3446 PacketBufferHandle encodeNetworkCommissioningClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3448 COMMAND_HEADER("ReadNetworkCommissioningClusterRevision", NETWORK_COMMISSIONING_CLUSTER_ID);
3449 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3453 /*----------------------------------------------------------------------------*\
3454 | Cluster OnOff | 0x0006 |
3455 |------------------------------------------------------------------------------|
3460 |------------------------------------------------------------------------------|
3462 | * OnOff | 0x0000 |
3463 | * ClusterRevision | 0xFFFD |
3464 \*----------------------------------------------------------------------------*/
3469 PacketBufferHandle encodeOnOffClusterOffCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3471 COMMAND_HEADER("Off", ON_OFF_CLUSTER_ID);
3472 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_OFF_COMMAND_ID);
3479 PacketBufferHandle encodeOnOffClusterOnCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3481 COMMAND_HEADER("On", ON_OFF_CLUSTER_ID);
3482 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_ON_COMMAND_ID);
3489 PacketBufferHandle encodeOnOffClusterToggleCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3491 COMMAND_HEADER("Toggle", ON_OFF_CLUSTER_ID);
3492 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_TOGGLE_COMMAND_ID);
3496 PacketBufferHandle encodeOnOffClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3498 COMMAND_HEADER("DiscoverOnOffAttributes", ON_OFF_CLUSTER_ID);
3499 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3506 PacketBufferHandle encodeOnOffClusterReadOnOffAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3508 COMMAND_HEADER("ReadOnOffOnOff", ON_OFF_CLUSTER_ID);
3509 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3513 PacketBufferHandle encodeOnOffClusterConfigureOnOffAttribute(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t minInterval,
3514 uint16_t maxInterval)
3516 COMMAND_HEADER("ReportOnOffOnOff", ON_OFF_CLUSTER_ID);
3517 buf.Put8(kFrameControlGlobalCommand)
3519 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
3520 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
3524 .Put16(maxInterval);
3529 * Attribute ClusterRevision
3531 PacketBufferHandle encodeOnOffClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3533 COMMAND_HEADER("ReadOnOffClusterRevision", ON_OFF_CLUSTER_ID);
3534 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3538 /*----------------------------------------------------------------------------*\
3539 | Cluster Scenes | 0x0005 |
3540 |------------------------------------------------------------------------------|
3542 | * AddScene | 0x00 |
3543 | * GetSceneMembership | 0x06 |
3544 | * RecallScene | 0x05 |
3545 | * RemoveAllScenes | 0x03 |
3546 | * RemoveScene | 0x02 |
3547 | * StoreScene | 0x04 |
3548 | * ViewScene | 0x01 |
3549 |------------------------------------------------------------------------------|
3551 | * SceneCount | 0x0000 |
3552 | * CurrentScene | 0x0001 |
3553 | * CurrentGroup | 0x0002 |
3554 | * SceneValid | 0x0003 |
3555 | * NameSupport | 0x0004 |
3556 | * ClusterRevision | 0xFFFD |
3557 \*----------------------------------------------------------------------------*/
3562 PacketBufferHandle encodeScenesClusterAddSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3563 uint8_t sceneId, uint16_t transitionTime, chip::ByteSpan sceneName,
3564 chip::ClusterId clusterId, uint8_t length, uint8_t value)
3566 COMMAND_HEADER("AddScene", SCENES_CLUSTER_ID);
3568 size_t sceneNameStrLen = sceneName.size();
3569 if (!CanCastTo<uint8_t>(sceneNameStrLen))
3571 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, sceneNameStrLen);
3572 return PacketBufferHandle();
3575 buf.Put8(kFrameControlClusterSpecificCommand)
3577 .Put8(ZCL_ADD_SCENE_COMMAND_ID)
3580 .Put16(transitionTime)
3581 .Put(static_cast<uint8_t>(sceneNameStrLen))
3582 .Put(sceneName.data(), sceneName.size())
3590 * Command GetSceneMembership
3592 PacketBufferHandle encodeScenesClusterGetSceneMembershipCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
3594 COMMAND_HEADER("GetSceneMembership", SCENES_CLUSTER_ID);
3596 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID).Put16(groupId);
3601 * Command RecallScene
3603 PacketBufferHandle encodeScenesClusterRecallSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3604 uint8_t sceneId, uint16_t transitionTime)
3606 COMMAND_HEADER("RecallScene", SCENES_CLUSTER_ID);
3608 buf.Put8(kFrameControlClusterSpecificCommand)
3610 .Put8(ZCL_RECALL_SCENE_COMMAND_ID)
3613 .Put16(transitionTime);
3618 * Command RemoveAllScenes
3620 PacketBufferHandle encodeScenesClusterRemoveAllScenesCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
3622 COMMAND_HEADER("RemoveAllScenes", SCENES_CLUSTER_ID);
3624 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_ALL_SCENES_COMMAND_ID).Put16(groupId);
3629 * Command RemoveScene
3631 PacketBufferHandle encodeScenesClusterRemoveSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3634 COMMAND_HEADER("RemoveScene", SCENES_CLUSTER_ID);
3636 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3641 * Command StoreScene
3643 PacketBufferHandle encodeScenesClusterStoreSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3646 COMMAND_HEADER("StoreScene", SCENES_CLUSTER_ID);
3648 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STORE_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3655 PacketBufferHandle encodeScenesClusterViewSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3658 COMMAND_HEADER("ViewScene", SCENES_CLUSTER_ID);
3660 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_VIEW_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3664 PacketBufferHandle encodeScenesClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3666 COMMAND_HEADER("DiscoverScenesAttributes", SCENES_CLUSTER_ID);
3667 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3672 * Attribute SceneCount
3674 PacketBufferHandle encodeScenesClusterReadSceneCountAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3676 COMMAND_HEADER("ReadScenesSceneCount", SCENES_CLUSTER_ID);
3677 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3682 * Attribute CurrentScene
3684 PacketBufferHandle encodeScenesClusterReadCurrentSceneAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3686 COMMAND_HEADER("ReadScenesCurrentScene", SCENES_CLUSTER_ID);
3687 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
3692 * Attribute CurrentGroup
3694 PacketBufferHandle encodeScenesClusterReadCurrentGroupAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3696 COMMAND_HEADER("ReadScenesCurrentGroup", SCENES_CLUSTER_ID);
3697 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
3702 * Attribute SceneValid
3704 PacketBufferHandle encodeScenesClusterReadSceneValidAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3706 COMMAND_HEADER("ReadScenesSceneValid", SCENES_CLUSTER_ID);
3707 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
3712 * Attribute NameSupport
3714 PacketBufferHandle encodeScenesClusterReadNameSupportAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3716 COMMAND_HEADER("ReadScenesNameSupport", SCENES_CLUSTER_ID);
3717 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0004);
3722 * Attribute ClusterRevision
3724 PacketBufferHandle encodeScenesClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3726 COMMAND_HEADER("ReadScenesClusterRevision", SCENES_CLUSTER_ID);
3727 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3731 /*----------------------------------------------------------------------------*\
3732 | Cluster TemperatureMeasurement | 0x0402 |
3733 |------------------------------------------------------------------------------|
3735 |------------------------------------------------------------------------------|
3737 | * MeasuredValue | 0x0000 |
3738 | * MinMeasuredValue | 0x0001 |
3739 | * MaxMeasuredValue | 0x0002 |
3740 | * ClusterRevision | 0xFFFD |
3741 \*----------------------------------------------------------------------------*/
3743 PacketBufferHandle encodeTemperatureMeasurementClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3745 COMMAND_HEADER("DiscoverTemperatureMeasurementAttributes", TEMP_MEASUREMENT_CLUSTER_ID);
3746 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3751 * Attribute MeasuredValue
3753 PacketBufferHandle encodeTemperatureMeasurementClusterReadMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3755 COMMAND_HEADER("ReadTemperatureMeasurementMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3756 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3760 PacketBufferHandle encodeTemperatureMeasurementClusterConfigureMeasuredValueAttribute(uint8_t seqNum,
3761 EndpointId destinationEndpoint,
3762 uint16_t minInterval, uint16_t maxInterval,
3765 COMMAND_HEADER("ReportTemperatureMeasurementMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3766 buf.Put8(kFrameControlGlobalCommand)
3768 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
3769 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
3773 .Put16(maxInterval);
3774 buf.Put16(static_cast<uint16_t>(change));
3779 * Attribute MinMeasuredValue
3781 PacketBufferHandle encodeTemperatureMeasurementClusterReadMinMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3783 COMMAND_HEADER("ReadTemperatureMeasurementMinMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3784 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
3789 * Attribute MaxMeasuredValue
3791 PacketBufferHandle encodeTemperatureMeasurementClusterReadMaxMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3793 COMMAND_HEADER("ReadTemperatureMeasurementMaxMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3794 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
3799 * Attribute ClusterRevision
3801 PacketBufferHandle encodeTemperatureMeasurementClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3803 COMMAND_HEADER("ReadTemperatureMeasurementClusterRevision", TEMP_MEASUREMENT_CLUSTER_ID);
3804 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);