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 0x0000
155 #define ZCL_MFG_SPECIFIC_PING_COMMAND_ID (0x00)
156 #define ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID (0x00)
158 #define BINDING_CLUSTER_ID 0xF000
159 #define ZCL_BIND_COMMAND_ID (0x00)
160 #define ZCL_UNBIND_COMMAND_ID (0x01)
162 #define COLOR_CONTROL_CLUSTER_ID 0x0300
163 #define ZCL_MOVE_COLOR_COMMAND_ID (0x08)
164 #define ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID (0x4B)
165 #define ZCL_MOVE_HUE_COMMAND_ID (0x01)
166 #define ZCL_MOVE_SATURATION_COMMAND_ID (0x04)
167 #define ZCL_MOVE_TO_COLOR_COMMAND_ID (0x07)
168 #define ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID (0x0A)
169 #define ZCL_MOVE_TO_HUE_COMMAND_ID (0x00)
170 #define ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID (0x06)
171 #define ZCL_MOVE_TO_SATURATION_COMMAND_ID (0x03)
172 #define ZCL_STEP_COLOR_COMMAND_ID (0x09)
173 #define ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID (0x4C)
174 #define ZCL_STEP_HUE_COMMAND_ID (0x02)
175 #define ZCL_STEP_SATURATION_COMMAND_ID (0x05)
176 #define ZCL_STOP_MOVE_STEP_COMMAND_ID (0x47)
178 #define CONTENT_LAUNCH_CLUSTER_ID 0xF002
179 #define ZCL_LAUNCH_CONTENT_COMMAND_ID (0x00)
180 #define ZCL_LAUNCH_URL_COMMAND_ID (0x01)
182 #define DOOR_LOCK_CLUSTER_ID 0x0101
183 #define ZCL_CLEAR_ALL_PINS_COMMAND_ID (0x08)
184 #define ZCL_CLEAR_ALL_RFIDS_COMMAND_ID (0x19)
185 #define ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID (0x13)
186 #define ZCL_CLEAR_PIN_COMMAND_ID (0x07)
187 #define ZCL_CLEAR_RFID_COMMAND_ID (0x18)
188 #define ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID (0x0D)
189 #define ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID (0x10)
190 #define ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID (0x12)
191 #define ZCL_GET_LOG_RECORD_COMMAND_ID (0x04)
192 #define ZCL_GET_PIN_COMMAND_ID (0x06)
193 #define ZCL_GET_RFID_COMMAND_ID (0x17)
194 #define ZCL_GET_USER_TYPE_COMMAND_ID (0x15)
195 #define ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0C)
196 #define ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID (0x0F)
197 #define ZCL_LOCK_DOOR_COMMAND_ID (0x00)
198 #define ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID (0x11)
199 #define ZCL_SET_PIN_COMMAND_ID (0x05)
200 #define ZCL_SET_RFID_COMMAND_ID (0x16)
201 #define ZCL_SET_USER_TYPE_COMMAND_ID (0x14)
202 #define ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID (0x0B)
203 #define ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID (0x0E)
204 #define ZCL_UNLOCK_DOOR_COMMAND_ID (0x01)
205 #define ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID (0x03)
207 #define GENERAL_COMMISSIONING_CLUSTER_ID 0x0030
208 #define ZCL_ARM_FAIL_SAFE_COMMAND_ID (0x02)
209 #define ZCL_COMMISSIONING_COMPLETE_COMMAND_ID (0x06)
210 #define ZCL_SET_FABRIC_COMMAND_ID (0x00)
212 #define GROUPS_CLUSTER_ID 0x0004
213 #define ZCL_ADD_GROUP_COMMAND_ID (0x00)
214 #define ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID (0x05)
215 #define ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID (0x02)
216 #define ZCL_REMOVE_ALL_GROUPS_COMMAND_ID (0x04)
217 #define ZCL_REMOVE_GROUP_COMMAND_ID (0x03)
218 #define ZCL_VIEW_GROUP_COMMAND_ID (0x01)
220 #define IAS_ZONE_CLUSTER_ID 0x0500
222 #define IDENTIFY_CLUSTER_ID 0x0003
223 #define ZCL_IDENTIFY_COMMAND_ID (0x00)
224 #define ZCL_IDENTIFY_QUERY_COMMAND_ID (0x01)
226 #define LEVEL_CONTROL_CLUSTER_ID 0x0008
227 #define ZCL_MOVE_COMMAND_ID (0x01)
228 #define ZCL_MOVE_TO_LEVEL_COMMAND_ID (0x00)
229 #define ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID (0x04)
230 #define ZCL_MOVE_WITH_ON_OFF_COMMAND_ID (0x05)
231 #define ZCL_STEP_COMMAND_ID (0x02)
232 #define ZCL_STEP_WITH_ON_OFF_COMMAND_ID (0x06)
233 #define ZCL_STOP_COMMAND_ID (0x03)
234 #define ZCL_STOP_WITH_ON_OFF_COMMAND_ID (0x07)
236 #define LOW_POWER_CLUSTER_ID 0x0508
237 #define ZCL_SLEEP_COMMAND_ID (0x00)
239 #define MEDIA_PLAYBACK_CLUSTER_ID 0xF001
240 #define ZCL_FAST_FORWARD_REQUEST_COMMAND_ID (0x07)
241 #define ZCL_NEXT_REQUEST_COMMAND_ID (0x05)
242 #define ZCL_PAUSE_REQUEST_COMMAND_ID (0x01)
243 #define ZCL_PLAY_REQUEST_COMMAND_ID (0x00)
244 #define ZCL_PREVIOUS_REQUEST_COMMAND_ID (0x04)
245 #define ZCL_REWIND_REQUEST_COMMAND_ID (0x06)
246 #define ZCL_SKIP_BACKWARD_REQUEST_COMMAND_ID (0x09)
247 #define ZCL_SKIP_FORWARD_REQUEST_COMMAND_ID (0x08)
248 #define ZCL_START_OVER_REQUEST_COMMAND_ID (0x03)
249 #define ZCL_STOP_REQUEST_COMMAND_ID (0x02)
251 #define NETWORK_COMMISSIONING_CLUSTER_ID 0xAAAA
252 #define ZCL_ADD_THREAD_NETWORK_COMMAND_ID (0x06)
253 #define ZCL_ADD_WI_FI_NETWORK_COMMAND_ID (0x02)
254 #define ZCL_DISABLE_NETWORK_COMMAND_ID (0x0E)
255 #define ZCL_ENABLE_NETWORK_COMMAND_ID (0x0C)
256 #define ZCL_GET_LAST_NETWORK_COMMISSIONING_RESULT_COMMAND_ID (0x10)
257 #define ZCL_REMOVE_NETWORK_COMMAND_ID (0x0A)
258 #define ZCL_SCAN_NETWORKS_COMMAND_ID (0x00)
259 #define ZCL_UPDATE_THREAD_NETWORK_COMMAND_ID (0x08)
260 #define ZCL_UPDATE_WI_FI_NETWORK_COMMAND_ID (0x04)
262 #define ON_OFF_CLUSTER_ID 0x0006
263 #define ZCL_OFF_COMMAND_ID (0x00)
264 #define ZCL_ON_COMMAND_ID (0x01)
265 #define ZCL_TOGGLE_COMMAND_ID (0x02)
267 #define SCENES_CLUSTER_ID 0x0005
268 #define ZCL_ADD_SCENE_COMMAND_ID (0x00)
269 #define ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID (0x06)
270 #define ZCL_RECALL_SCENE_COMMAND_ID (0x05)
271 #define ZCL_REMOVE_ALL_SCENES_COMMAND_ID (0x03)
272 #define ZCL_REMOVE_SCENE_COMMAND_ID (0x02)
273 #define ZCL_STORE_SCENE_COMMAND_ID (0x04)
274 #define ZCL_VIEW_SCENE_COMMAND_ID (0x01)
276 #define TEMP_MEASUREMENT_CLUSTER_ID 0x0402
278 // TODO: Find a way to calculate maximum message length for clusters
279 // https://github.com/project-chip/connectedhomeip/issues/965
280 constexpr uint16_t kMaxBufferSize = 1024;
282 // This is a cluster-specific command so low two bits are 0b01. The command
283 // is standard, so does not need a manufacturer code, and we're sending
284 // client to server, so all the remaining bits are 0.
285 constexpr uint8_t kFrameControlClusterSpecificCommand = 0x01;
287 // This is a global command, so the low bits are 0b00. The command is
288 // standard, so does not need a manufacturer code, and we're sending client
289 // to server, so all the remaining bits are 0.
290 constexpr uint8_t kFrameControlGlobalCommand = 0x00;
292 // Pick source endpoint as 1 for now
293 constexpr EndpointId kSourceEndpoint = 1;
295 /*----------------------------------------------------------------------------*\
296 | Cluster ApplicationBasic | 0x050D |
297 |------------------------------------------------------------------------------|
299 |------------------------------------------------------------------------------|
301 | * VendorName | 0x0000 |
302 | * VendorId | 0x0001 |
303 | * ApplicationName | 0x0002 |
304 | * ProductId | 0x0003 |
305 | * ApplicationId | 0x0005 |
306 | * CatalogVendorId | 0x0006 |
307 | * ApplicationSatus | 0x0007 |
308 | * ClusterRevision | 0xFFFD |
309 \*----------------------------------------------------------------------------*/
311 PacketBufferHandle encodeApplicationBasicClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
313 COMMAND_HEADER("DiscoverApplicationBasicAttributes", APPLICATION_BASIC_CLUSTER_ID);
314 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
319 * Attribute VendorName
321 PacketBufferHandle encodeApplicationBasicClusterReadVendorNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
323 COMMAND_HEADER("ReadApplicationBasicVendorName", APPLICATION_BASIC_CLUSTER_ID);
324 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
331 PacketBufferHandle encodeApplicationBasicClusterReadVendorIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
333 COMMAND_HEADER("ReadApplicationBasicVendorId", APPLICATION_BASIC_CLUSTER_ID);
334 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
339 * Attribute ApplicationName
341 PacketBufferHandle encodeApplicationBasicClusterReadApplicationNameAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
343 COMMAND_HEADER("ReadApplicationBasicApplicationName", APPLICATION_BASIC_CLUSTER_ID);
344 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
349 * Attribute ProductId
351 PacketBufferHandle encodeApplicationBasicClusterReadProductIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
353 COMMAND_HEADER("ReadApplicationBasicProductId", APPLICATION_BASIC_CLUSTER_ID);
354 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
359 * Attribute ApplicationId
361 PacketBufferHandle encodeApplicationBasicClusterReadApplicationIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
363 COMMAND_HEADER("ReadApplicationBasicApplicationId", APPLICATION_BASIC_CLUSTER_ID);
364 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0005);
369 * Attribute CatalogVendorId
371 PacketBufferHandle encodeApplicationBasicClusterReadCatalogVendorIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
373 COMMAND_HEADER("ReadApplicationBasicCatalogVendorId", APPLICATION_BASIC_CLUSTER_ID);
374 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0006);
379 * Attribute ApplicationSatus
381 PacketBufferHandle encodeApplicationBasicClusterReadApplicationSatusAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
383 COMMAND_HEADER("ReadApplicationBasicApplicationSatus", APPLICATION_BASIC_CLUSTER_ID);
384 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
389 * Attribute ClusterRevision
391 PacketBufferHandle encodeApplicationBasicClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
393 COMMAND_HEADER("ReadApplicationBasicClusterRevision", APPLICATION_BASIC_CLUSTER_ID);
394 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
398 /*----------------------------------------------------------------------------*\
399 | Cluster BarrierControl | 0x0103 |
400 |------------------------------------------------------------------------------|
402 | * BarrierControlGoToPercent | 0x00 |
403 | * BarrierControlStop | 0x01 |
404 |------------------------------------------------------------------------------|
406 | * BarrierMovingState | 0x0001 |
407 | * BarrierSafetyStatus | 0x0002 |
408 | * BarrierCapabilities | 0x0003 |
409 | * BarrierPosition | 0x000A |
410 | * ClusterRevision | 0xFFFD |
411 \*----------------------------------------------------------------------------*/
414 * Command BarrierControlGoToPercent
416 PacketBufferHandle encodeBarrierControlClusterBarrierControlGoToPercentCommand(uint8_t seqNum, EndpointId destinationEndpoint,
419 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 | 0x0000 |
493 |------------------------------------------------------------------------------|
495 | * MfgSpecificPing | 0x00 |
496 | * ResetToFactoryDefaults | 0x00 |
497 |------------------------------------------------------------------------------|
499 | * ZclVersion | 0x0000 |
500 | * PowerSource | 0x0007 |
501 | * ClusterRevision | 0xFFFD |
502 \*----------------------------------------------------------------------------*/
505 * Command MfgSpecificPing
507 PacketBufferHandle encodeBasicClusterMfgSpecificPingCommand(uint8_t seqNum, EndpointId destinationEndpoint)
509 COMMAND_HEADER("MfgSpecificPing", BASIC_CLUSTER_ID);
510 buf.Put8(kFrameControlClusterSpecificCommand | (1u << 2)).Put16(0x1002).Put8(seqNum).Put8(ZCL_MFG_SPECIFIC_PING_COMMAND_ID);
515 * Command ResetToFactoryDefaults
517 PacketBufferHandle encodeBasicClusterResetToFactoryDefaultsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
519 COMMAND_HEADER("ResetToFactoryDefaults", BASIC_CLUSTER_ID);
520 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID);
524 PacketBufferHandle encodeBasicClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
526 COMMAND_HEADER("DiscoverBasicAttributes", BASIC_CLUSTER_ID);
527 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
532 * Attribute ZclVersion
534 PacketBufferHandle encodeBasicClusterReadZclVersionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
536 COMMAND_HEADER("ReadBasicZclVersion", BASIC_CLUSTER_ID);
537 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
542 * Attribute PowerSource
544 PacketBufferHandle encodeBasicClusterReadPowerSourceAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
546 COMMAND_HEADER("ReadBasicPowerSource", BASIC_CLUSTER_ID);
547 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
552 * Attribute ClusterRevision
554 PacketBufferHandle encodeBasicClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
556 COMMAND_HEADER("ReadBasicClusterRevision", BASIC_CLUSTER_ID);
557 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
561 /*----------------------------------------------------------------------------*\
562 | Cluster Binding | 0xF000 |
563 |------------------------------------------------------------------------------|
567 |------------------------------------------------------------------------------|
569 | * ClusterRevision | 0xFFFD |
570 \*----------------------------------------------------------------------------*/
575 PacketBufferHandle encodeBindingClusterBindCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::NodeId nodeId,
576 chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId)
578 COMMAND_HEADER("Bind", BINDING_CLUSTER_ID);
579 buf.Put8(kFrameControlClusterSpecificCommand)
581 .Put8(ZCL_BIND_COMMAND_ID)
592 PacketBufferHandle encodeBindingClusterUnbindCommand(uint8_t seqNum, EndpointId destinationEndpoint, chip::NodeId nodeId,
593 chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId)
595 COMMAND_HEADER("Unbind", BINDING_CLUSTER_ID);
596 buf.Put8(kFrameControlClusterSpecificCommand)
598 .Put8(ZCL_UNBIND_COMMAND_ID)
606 PacketBufferHandle encodeBindingClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
608 COMMAND_HEADER("DiscoverBindingAttributes", BINDING_CLUSTER_ID);
609 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
614 * Attribute ClusterRevision
616 PacketBufferHandle encodeBindingClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
618 COMMAND_HEADER("ReadBindingClusterRevision", BINDING_CLUSTER_ID);
619 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
623 /*----------------------------------------------------------------------------*\
624 | Cluster ColorControl | 0x0300 |
625 |------------------------------------------------------------------------------|
627 | * MoveColor | 0x08 |
628 | * MoveColorTemperature | 0x4B |
630 | * MoveSaturation | 0x04 |
631 | * MoveToColor | 0x07 |
632 | * MoveToColorTemperature | 0x0A |
633 | * MoveToHue | 0x00 |
634 | * MoveToHueAndSaturation | 0x06 |
635 | * MoveToSaturation | 0x03 |
636 | * StepColor | 0x09 |
637 | * StepColorTemperature | 0x4C |
639 | * StepSaturation | 0x05 |
640 | * StopMoveStep | 0x47 |
641 |------------------------------------------------------------------------------|
643 | * CurrentHue | 0x0000 |
644 | * CurrentSaturation | 0x0001 |
645 | * RemainingTime | 0x0002 |
646 | * CurrentX | 0x0003 |
647 | * CurrentY | 0x0004 |
648 | * DriftCompensation | 0x0005 |
649 | * CompensationText | 0x0006 |
650 | * ColorTemperature | 0x0007 |
651 | * ColorMode | 0x0008 |
652 | * ColorControlOptions | 0x000F |
653 | * NumberOfPrimaries | 0x0010 |
654 | * Primary1X | 0x0011 |
655 | * Primary1Y | 0x0012 |
656 | * Primary1Intensity | 0x0013 |
657 | * Primary2X | 0x0015 |
658 | * Primary2Y | 0x0016 |
659 | * Primary2Intensity | 0x0017 |
660 | * Primary3X | 0x0019 |
661 | * Primary3Y | 0x001A |
662 | * Primary3Intensity | 0x001B |
663 | * Primary4X | 0x0020 |
664 | * Primary4Y | 0x0021 |
665 | * Primary4Intensity | 0x0022 |
666 | * Primary5X | 0x0024 |
667 | * Primary5Y | 0x0025 |
668 | * Primary5Intensity | 0x0026 |
669 | * Primary6X | 0x0028 |
670 | * Primary6Y | 0x0029 |
671 | * Primary6Intensity | 0x002A |
672 | * WhitePointX | 0x0030 |
673 | * WhitePointY | 0x0031 |
674 | * ColorPointRX | 0x0032 |
675 | * ColorPointRY | 0x0033 |
676 | * ColorPointRIntensity | 0x0034 |
677 | * ColorPointGX | 0x0036 |
678 | * ColorPointGY | 0x0037 |
679 | * ColorPointGIntensity | 0x0038 |
680 | * ColorPointBX | 0x003A |
681 | * ColorPointBY | 0x003B |
682 | * ColorPointBIntensity | 0x003C |
683 | * EnhancedCurrentHue | 0x4000 |
684 | * EnhancedColorMode | 0x4001 |
685 | * ColorLoopActive | 0x4002 |
686 | * ColorLoopDirection | 0x4003 |
687 | * ColorLoopTime | 0x4004 |
688 | * ColorCapabilities | 0x400A |
689 | * ColorTempPhysicalMin | 0x400B |
690 | * ColorTempPhysicalMax | 0x400C |
691 | * CoupleColorTempToLevelMinMireds | 0x400D |
692 | * StartUpColorTemperatureMireds | 0x4010 |
693 | * ClusterRevision | 0xFFFD |
694 \*----------------------------------------------------------------------------*/
699 PacketBufferHandle encodeColorControlClusterMoveColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, int16_t rateX,
700 int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride)
702 COMMAND_HEADER("MoveColor", COLOR_CONTROL_CLUSTER_ID);
703 buf.Put8(kFrameControlClusterSpecificCommand)
705 .Put8(ZCL_MOVE_COLOR_COMMAND_ID)
706 .Put16(static_cast<uint16_t>(rateX))
707 .Put16(static_cast<uint16_t>(rateY))
709 .Put8(optionsOverride);
714 * Command MoveColorTemperature
716 PacketBufferHandle encodeColorControlClusterMoveColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
717 uint8_t moveMode, uint16_t rate,
718 uint16_t colorTemperatureMinimum,
719 uint16_t colorTemperatureMaximum, uint8_t optionsMask,
720 uint8_t optionsOverride)
722 COMMAND_HEADER("MoveColorTemperature", COLOR_CONTROL_CLUSTER_ID);
723 buf.Put8(kFrameControlClusterSpecificCommand)
725 .Put8(ZCL_MOVE_COLOR_TEMPERATURE_COMMAND_ID)
728 .Put16(colorTemperatureMinimum)
729 .Put16(colorTemperatureMaximum)
731 .Put8(optionsOverride);
738 PacketBufferHandle encodeColorControlClusterMoveHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
739 uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride)
741 COMMAND_HEADER("MoveHue", COLOR_CONTROL_CLUSTER_ID);
742 buf.Put8(kFrameControlClusterSpecificCommand)
744 .Put8(ZCL_MOVE_HUE_COMMAND_ID)
748 .Put8(optionsOverride);
753 * Command MoveSaturation
755 PacketBufferHandle encodeColorControlClusterMoveSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
756 uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride)
758 COMMAND_HEADER("MoveSaturation", COLOR_CONTROL_CLUSTER_ID);
759 buf.Put8(kFrameControlClusterSpecificCommand)
761 .Put8(ZCL_MOVE_SATURATION_COMMAND_ID)
765 .Put8(optionsOverride);
770 * Command MoveToColor
772 PacketBufferHandle encodeColorControlClusterMoveToColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t colorX,
773 uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask,
774 uint8_t optionsOverride)
776 COMMAND_HEADER("MoveToColor", COLOR_CONTROL_CLUSTER_ID);
777 buf.Put8(kFrameControlClusterSpecificCommand)
779 .Put8(ZCL_MOVE_TO_COLOR_COMMAND_ID)
782 .Put16(transitionTime)
784 .Put8(optionsOverride);
789 * Command MoveToColorTemperature
791 PacketBufferHandle encodeColorControlClusterMoveToColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
792 uint16_t colorTemperature, uint16_t transitionTime,
793 uint8_t optionsMask, uint8_t optionsOverride)
795 COMMAND_HEADER("MoveToColorTemperature", COLOR_CONTROL_CLUSTER_ID);
796 buf.Put8(kFrameControlClusterSpecificCommand)
798 .Put8(ZCL_MOVE_TO_COLOR_TEMPERATURE_COMMAND_ID)
799 .Put16(colorTemperature)
800 .Put16(transitionTime)
802 .Put8(optionsOverride);
809 PacketBufferHandle encodeColorControlClusterMoveToHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t hue,
810 uint8_t direction, uint16_t transitionTime, uint8_t optionsMask,
811 uint8_t optionsOverride)
813 COMMAND_HEADER("MoveToHue", COLOR_CONTROL_CLUSTER_ID);
814 buf.Put8(kFrameControlClusterSpecificCommand)
816 .Put8(ZCL_MOVE_TO_HUE_COMMAND_ID)
819 .Put16(transitionTime)
821 .Put8(optionsOverride);
826 * Command MoveToHueAndSaturation
828 PacketBufferHandle encodeColorControlClusterMoveToHueAndSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint,
829 uint8_t hue, uint8_t saturation, uint16_t transitionTime,
830 uint8_t optionsMask, uint8_t optionsOverride)
832 COMMAND_HEADER("MoveToHueAndSaturation", COLOR_CONTROL_CLUSTER_ID);
833 buf.Put8(kFrameControlClusterSpecificCommand)
835 .Put8(ZCL_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID)
838 .Put16(transitionTime)
840 .Put8(optionsOverride);
845 * Command MoveToSaturation
847 PacketBufferHandle encodeColorControlClusterMoveToSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint,
848 uint8_t saturation, uint16_t transitionTime,
849 uint8_t optionsMask, uint8_t optionsOverride)
851 COMMAND_HEADER("MoveToSaturation", COLOR_CONTROL_CLUSTER_ID);
852 buf.Put8(kFrameControlClusterSpecificCommand)
854 .Put8(ZCL_MOVE_TO_SATURATION_COMMAND_ID)
856 .Put16(transitionTime)
858 .Put8(optionsOverride);
865 PacketBufferHandle encodeColorControlClusterStepColorCommand(uint8_t seqNum, EndpointId destinationEndpoint, int16_t stepX,
866 int16_t stepY, uint16_t transitionTime, uint8_t optionsMask,
867 uint8_t optionsOverride)
869 COMMAND_HEADER("StepColor", COLOR_CONTROL_CLUSTER_ID);
870 buf.Put8(kFrameControlClusterSpecificCommand)
872 .Put8(ZCL_STEP_COLOR_COMMAND_ID)
873 .Put16(static_cast<uint16_t>(stepX))
874 .Put16(static_cast<uint16_t>(stepY))
875 .Put16(transitionTime)
877 .Put8(optionsOverride);
882 * Command StepColorTemperature
884 PacketBufferHandle encodeColorControlClusterStepColorTemperatureCommand(uint8_t seqNum, EndpointId destinationEndpoint,
885 uint8_t stepMode, uint16_t stepSize,
886 uint16_t transitionTime, uint16_t colorTemperatureMinimum,
887 uint16_t colorTemperatureMaximum, uint8_t optionsMask,
888 uint8_t optionsOverride)
890 COMMAND_HEADER("StepColorTemperature", COLOR_CONTROL_CLUSTER_ID);
891 buf.Put8(kFrameControlClusterSpecificCommand)
893 .Put8(ZCL_STEP_COLOR_TEMPERATURE_COMMAND_ID)
896 .Put16(transitionTime)
897 .Put16(colorTemperatureMinimum)
898 .Put16(colorTemperatureMaximum)
900 .Put8(optionsOverride);
907 PacketBufferHandle encodeColorControlClusterStepHueCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
908 uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
909 uint8_t optionsOverride)
911 COMMAND_HEADER("StepHue", COLOR_CONTROL_CLUSTER_ID);
912 buf.Put8(kFrameControlClusterSpecificCommand)
914 .Put8(ZCL_STEP_HUE_COMMAND_ID)
917 .Put8(transitionTime)
919 .Put8(optionsOverride);
924 * Command StepSaturation
926 PacketBufferHandle encodeColorControlClusterStepSaturationCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
927 uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
928 uint8_t optionsOverride)
930 COMMAND_HEADER("StepSaturation", COLOR_CONTROL_CLUSTER_ID);
931 buf.Put8(kFrameControlClusterSpecificCommand)
933 .Put8(ZCL_STEP_SATURATION_COMMAND_ID)
936 .Put8(transitionTime)
938 .Put8(optionsOverride);
943 * Command StopMoveStep
945 PacketBufferHandle encodeColorControlClusterStopMoveStepCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t optionsMask,
946 uint8_t optionsOverride)
948 COMMAND_HEADER("StopMoveStep", COLOR_CONTROL_CLUSTER_ID);
949 buf.Put8(kFrameControlClusterSpecificCommand)
951 .Put8(ZCL_STOP_MOVE_STEP_COMMAND_ID)
953 .Put8(optionsOverride);
957 PacketBufferHandle encodeColorControlClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
959 COMMAND_HEADER("DiscoverColorControlAttributes", COLOR_CONTROL_CLUSTER_ID);
960 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
965 * Attribute CurrentHue
967 PacketBufferHandle encodeColorControlClusterReadCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
969 COMMAND_HEADER("ReadColorControlCurrentHue", COLOR_CONTROL_CLUSTER_ID);
970 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
974 PacketBufferHandle encodeColorControlClusterConfigureCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
975 uint16_t minInterval, uint16_t maxInterval, uint8_t change)
977 COMMAND_HEADER("ReportColorControlCurrentHue", COLOR_CONTROL_CLUSTER_ID);
978 buf.Put8(kFrameControlGlobalCommand)
980 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
981 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
986 buf.Put8(static_cast<uint8_t>(change));
991 * Attribute CurrentSaturation
993 PacketBufferHandle encodeColorControlClusterReadCurrentSaturationAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
995 COMMAND_HEADER("ReadColorControlCurrentSaturation", COLOR_CONTROL_CLUSTER_ID);
996 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
1000 PacketBufferHandle encodeColorControlClusterConfigureCurrentSaturationAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1001 uint16_t minInterval, uint16_t maxInterval,
1004 COMMAND_HEADER("ReportColorControlCurrentSaturation", COLOR_CONTROL_CLUSTER_ID);
1005 buf.Put8(kFrameControlGlobalCommand)
1007 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1008 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1012 .Put16(maxInterval);
1013 buf.Put8(static_cast<uint8_t>(change));
1018 * Attribute RemainingTime
1020 PacketBufferHandle encodeColorControlClusterReadRemainingTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1022 COMMAND_HEADER("ReadColorControlRemainingTime", COLOR_CONTROL_CLUSTER_ID);
1023 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
1028 * Attribute CurrentX
1030 PacketBufferHandle encodeColorControlClusterReadCurrentXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1032 COMMAND_HEADER("ReadColorControlCurrentX", COLOR_CONTROL_CLUSTER_ID);
1033 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
1037 PacketBufferHandle encodeColorControlClusterConfigureCurrentXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1038 uint16_t minInterval, uint16_t maxInterval, uint16_t change)
1040 COMMAND_HEADER("ReportColorControlCurrentX", COLOR_CONTROL_CLUSTER_ID);
1041 buf.Put8(kFrameControlGlobalCommand)
1043 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1044 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1048 .Put16(maxInterval);
1049 buf.Put16(static_cast<uint16_t>(change));
1054 * Attribute CurrentY
1056 PacketBufferHandle encodeColorControlClusterReadCurrentYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1058 COMMAND_HEADER("ReadColorControlCurrentY", COLOR_CONTROL_CLUSTER_ID);
1059 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0004);
1063 PacketBufferHandle encodeColorControlClusterConfigureCurrentYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1064 uint16_t minInterval, uint16_t maxInterval, uint16_t change)
1066 COMMAND_HEADER("ReportColorControlCurrentY", COLOR_CONTROL_CLUSTER_ID);
1067 buf.Put8(kFrameControlGlobalCommand)
1069 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1070 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1074 .Put16(maxInterval);
1075 buf.Put16(static_cast<uint16_t>(change));
1080 * Attribute DriftCompensation
1082 PacketBufferHandle encodeColorControlClusterReadDriftCompensationAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1084 COMMAND_HEADER("ReadColorControlDriftCompensation", COLOR_CONTROL_CLUSTER_ID);
1085 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0005);
1090 * Attribute CompensationText
1092 PacketBufferHandle encodeColorControlClusterReadCompensationTextAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1094 COMMAND_HEADER("ReadColorControlCompensationText", COLOR_CONTROL_CLUSTER_ID);
1095 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0006);
1100 * Attribute ColorTemperature
1102 PacketBufferHandle encodeColorControlClusterReadColorTemperatureAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1104 COMMAND_HEADER("ReadColorControlColorTemperature", COLOR_CONTROL_CLUSTER_ID);
1105 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0007);
1109 PacketBufferHandle encodeColorControlClusterConfigureColorTemperatureAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1110 uint16_t minInterval, uint16_t maxInterval,
1113 COMMAND_HEADER("ReportColorControlColorTemperature", COLOR_CONTROL_CLUSTER_ID);
1114 buf.Put8(kFrameControlGlobalCommand)
1116 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
1117 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
1121 .Put16(maxInterval);
1122 buf.Put16(static_cast<uint16_t>(change));
1127 * Attribute ColorMode
1129 PacketBufferHandle encodeColorControlClusterReadColorModeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1131 COMMAND_HEADER("ReadColorControlColorMode", COLOR_CONTROL_CLUSTER_ID);
1132 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0008);
1137 * Attribute ColorControlOptions
1139 PacketBufferHandle encodeColorControlClusterReadColorControlOptionsAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1141 COMMAND_HEADER("ReadColorControlColorControlOptions", COLOR_CONTROL_CLUSTER_ID);
1142 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x000F);
1146 PacketBufferHandle encodeColorControlClusterWriteColorControlOptionsAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1147 uint8_t colorControlOptions)
1149 COMMAND_HEADER("WriteColorControlColorControlOptions", COLOR_CONTROL_CLUSTER_ID);
1150 buf.Put8(kFrameControlGlobalCommand)
1152 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1155 .Put8(static_cast<uint8_t>(colorControlOptions));
1160 * Attribute NumberOfPrimaries
1162 PacketBufferHandle encodeColorControlClusterReadNumberOfPrimariesAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1164 COMMAND_HEADER("ReadColorControlNumberOfPrimaries", COLOR_CONTROL_CLUSTER_ID);
1165 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0010);
1170 * Attribute Primary1X
1172 PacketBufferHandle encodeColorControlClusterReadPrimary1XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1174 COMMAND_HEADER("ReadColorControlPrimary1X", COLOR_CONTROL_CLUSTER_ID);
1175 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0011);
1180 * Attribute Primary1Y
1182 PacketBufferHandle encodeColorControlClusterReadPrimary1YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1184 COMMAND_HEADER("ReadColorControlPrimary1Y", COLOR_CONTROL_CLUSTER_ID);
1185 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0012);
1190 * Attribute Primary1Intensity
1192 PacketBufferHandle encodeColorControlClusterReadPrimary1IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1194 COMMAND_HEADER("ReadColorControlPrimary1Intensity", COLOR_CONTROL_CLUSTER_ID);
1195 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0013);
1200 * Attribute Primary2X
1202 PacketBufferHandle encodeColorControlClusterReadPrimary2XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1204 COMMAND_HEADER("ReadColorControlPrimary2X", COLOR_CONTROL_CLUSTER_ID);
1205 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0015);
1210 * Attribute Primary2Y
1212 PacketBufferHandle encodeColorControlClusterReadPrimary2YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1214 COMMAND_HEADER("ReadColorControlPrimary2Y", COLOR_CONTROL_CLUSTER_ID);
1215 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0016);
1220 * Attribute Primary2Intensity
1222 PacketBufferHandle encodeColorControlClusterReadPrimary2IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1224 COMMAND_HEADER("ReadColorControlPrimary2Intensity", COLOR_CONTROL_CLUSTER_ID);
1225 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0017);
1230 * Attribute Primary3X
1232 PacketBufferHandle encodeColorControlClusterReadPrimary3XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1234 COMMAND_HEADER("ReadColorControlPrimary3X", COLOR_CONTROL_CLUSTER_ID);
1235 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0019);
1240 * Attribute Primary3Y
1242 PacketBufferHandle encodeColorControlClusterReadPrimary3YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1244 COMMAND_HEADER("ReadColorControlPrimary3Y", COLOR_CONTROL_CLUSTER_ID);
1245 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x001A);
1250 * Attribute Primary3Intensity
1252 PacketBufferHandle encodeColorControlClusterReadPrimary3IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1254 COMMAND_HEADER("ReadColorControlPrimary3Intensity", COLOR_CONTROL_CLUSTER_ID);
1255 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x001B);
1260 * Attribute Primary4X
1262 PacketBufferHandle encodeColorControlClusterReadPrimary4XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1264 COMMAND_HEADER("ReadColorControlPrimary4X", COLOR_CONTROL_CLUSTER_ID);
1265 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0020);
1270 * Attribute Primary4Y
1272 PacketBufferHandle encodeColorControlClusterReadPrimary4YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1274 COMMAND_HEADER("ReadColorControlPrimary4Y", COLOR_CONTROL_CLUSTER_ID);
1275 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0021);
1280 * Attribute Primary4Intensity
1282 PacketBufferHandle encodeColorControlClusterReadPrimary4IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1284 COMMAND_HEADER("ReadColorControlPrimary4Intensity", COLOR_CONTROL_CLUSTER_ID);
1285 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0022);
1290 * Attribute Primary5X
1292 PacketBufferHandle encodeColorControlClusterReadPrimary5XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1294 COMMAND_HEADER("ReadColorControlPrimary5X", COLOR_CONTROL_CLUSTER_ID);
1295 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0024);
1300 * Attribute Primary5Y
1302 PacketBufferHandle encodeColorControlClusterReadPrimary5YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1304 COMMAND_HEADER("ReadColorControlPrimary5Y", COLOR_CONTROL_CLUSTER_ID);
1305 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0025);
1310 * Attribute Primary5Intensity
1312 PacketBufferHandle encodeColorControlClusterReadPrimary5IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1314 COMMAND_HEADER("ReadColorControlPrimary5Intensity", COLOR_CONTROL_CLUSTER_ID);
1315 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0026);
1320 * Attribute Primary6X
1322 PacketBufferHandle encodeColorControlClusterReadPrimary6XAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1324 COMMAND_HEADER("ReadColorControlPrimary6X", COLOR_CONTROL_CLUSTER_ID);
1325 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0028);
1330 * Attribute Primary6Y
1332 PacketBufferHandle encodeColorControlClusterReadPrimary6YAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1334 COMMAND_HEADER("ReadColorControlPrimary6Y", COLOR_CONTROL_CLUSTER_ID);
1335 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0029);
1340 * Attribute Primary6Intensity
1342 PacketBufferHandle encodeColorControlClusterReadPrimary6IntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1344 COMMAND_HEADER("ReadColorControlPrimary6Intensity", COLOR_CONTROL_CLUSTER_ID);
1345 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x002A);
1350 * Attribute WhitePointX
1352 PacketBufferHandle encodeColorControlClusterReadWhitePointXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1354 COMMAND_HEADER("ReadColorControlWhitePointX", COLOR_CONTROL_CLUSTER_ID);
1355 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0030);
1359 PacketBufferHandle encodeColorControlClusterWriteWhitePointXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1360 uint16_t whitePointX)
1362 COMMAND_HEADER("WriteColorControlWhitePointX", COLOR_CONTROL_CLUSTER_ID);
1363 buf.Put8(kFrameControlGlobalCommand)
1365 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1368 .Put16(static_cast<uint16_t>(whitePointX));
1373 * Attribute WhitePointY
1375 PacketBufferHandle encodeColorControlClusterReadWhitePointYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1377 COMMAND_HEADER("ReadColorControlWhitePointY", COLOR_CONTROL_CLUSTER_ID);
1378 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0031);
1382 PacketBufferHandle encodeColorControlClusterWriteWhitePointYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1383 uint16_t whitePointY)
1385 COMMAND_HEADER("WriteColorControlWhitePointY", COLOR_CONTROL_CLUSTER_ID);
1386 buf.Put8(kFrameControlGlobalCommand)
1388 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1391 .Put16(static_cast<uint16_t>(whitePointY));
1396 * Attribute ColorPointRX
1398 PacketBufferHandle encodeColorControlClusterReadColorPointRXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1400 COMMAND_HEADER("ReadColorControlColorPointRX", COLOR_CONTROL_CLUSTER_ID);
1401 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0032);
1405 PacketBufferHandle encodeColorControlClusterWriteColorPointRXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1406 uint16_t colorPointRX)
1408 COMMAND_HEADER("WriteColorControlColorPointRX", COLOR_CONTROL_CLUSTER_ID);
1409 buf.Put8(kFrameControlGlobalCommand)
1411 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1414 .Put16(static_cast<uint16_t>(colorPointRX));
1419 * Attribute ColorPointRY
1421 PacketBufferHandle encodeColorControlClusterReadColorPointRYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1423 COMMAND_HEADER("ReadColorControlColorPointRY", COLOR_CONTROL_CLUSTER_ID);
1424 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0033);
1428 PacketBufferHandle encodeColorControlClusterWriteColorPointRYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1429 uint16_t colorPointRY)
1431 COMMAND_HEADER("WriteColorControlColorPointRY", COLOR_CONTROL_CLUSTER_ID);
1432 buf.Put8(kFrameControlGlobalCommand)
1434 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1437 .Put16(static_cast<uint16_t>(colorPointRY));
1442 * Attribute ColorPointRIntensity
1444 PacketBufferHandle encodeColorControlClusterReadColorPointRIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1446 COMMAND_HEADER("ReadColorControlColorPointRIntensity", COLOR_CONTROL_CLUSTER_ID);
1447 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0034);
1451 PacketBufferHandle encodeColorControlClusterWriteColorPointRIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1452 uint8_t colorPointRIntensity)
1454 COMMAND_HEADER("WriteColorControlColorPointRIntensity", COLOR_CONTROL_CLUSTER_ID);
1455 buf.Put8(kFrameControlGlobalCommand)
1457 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1460 .Put8(static_cast<uint8_t>(colorPointRIntensity));
1465 * Attribute ColorPointGX
1467 PacketBufferHandle encodeColorControlClusterReadColorPointGXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1469 COMMAND_HEADER("ReadColorControlColorPointGX", COLOR_CONTROL_CLUSTER_ID);
1470 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0036);
1474 PacketBufferHandle encodeColorControlClusterWriteColorPointGXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1475 uint16_t colorPointGX)
1477 COMMAND_HEADER("WriteColorControlColorPointGX", COLOR_CONTROL_CLUSTER_ID);
1478 buf.Put8(kFrameControlGlobalCommand)
1480 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1483 .Put16(static_cast<uint16_t>(colorPointGX));
1488 * Attribute ColorPointGY
1490 PacketBufferHandle encodeColorControlClusterReadColorPointGYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1492 COMMAND_HEADER("ReadColorControlColorPointGY", COLOR_CONTROL_CLUSTER_ID);
1493 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0037);
1497 PacketBufferHandle encodeColorControlClusterWriteColorPointGYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1498 uint16_t colorPointGY)
1500 COMMAND_HEADER("WriteColorControlColorPointGY", COLOR_CONTROL_CLUSTER_ID);
1501 buf.Put8(kFrameControlGlobalCommand)
1503 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1506 .Put16(static_cast<uint16_t>(colorPointGY));
1511 * Attribute ColorPointGIntensity
1513 PacketBufferHandle encodeColorControlClusterReadColorPointGIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1515 COMMAND_HEADER("ReadColorControlColorPointGIntensity", COLOR_CONTROL_CLUSTER_ID);
1516 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0038);
1520 PacketBufferHandle encodeColorControlClusterWriteColorPointGIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1521 uint8_t colorPointGIntensity)
1523 COMMAND_HEADER("WriteColorControlColorPointGIntensity", COLOR_CONTROL_CLUSTER_ID);
1524 buf.Put8(kFrameControlGlobalCommand)
1526 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1529 .Put8(static_cast<uint8_t>(colorPointGIntensity));
1534 * Attribute ColorPointBX
1536 PacketBufferHandle encodeColorControlClusterReadColorPointBXAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1538 COMMAND_HEADER("ReadColorControlColorPointBX", COLOR_CONTROL_CLUSTER_ID);
1539 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003A);
1543 PacketBufferHandle encodeColorControlClusterWriteColorPointBXAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1544 uint16_t colorPointBX)
1546 COMMAND_HEADER("WriteColorControlColorPointBX", COLOR_CONTROL_CLUSTER_ID);
1547 buf.Put8(kFrameControlGlobalCommand)
1549 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1552 .Put16(static_cast<uint16_t>(colorPointBX));
1557 * Attribute ColorPointBY
1559 PacketBufferHandle encodeColorControlClusterReadColorPointBYAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1561 COMMAND_HEADER("ReadColorControlColorPointBY", COLOR_CONTROL_CLUSTER_ID);
1562 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003B);
1566 PacketBufferHandle encodeColorControlClusterWriteColorPointBYAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1567 uint16_t colorPointBY)
1569 COMMAND_HEADER("WriteColorControlColorPointBY", COLOR_CONTROL_CLUSTER_ID);
1570 buf.Put8(kFrameControlGlobalCommand)
1572 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1575 .Put16(static_cast<uint16_t>(colorPointBY));
1580 * Attribute ColorPointBIntensity
1582 PacketBufferHandle encodeColorControlClusterReadColorPointBIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1584 COMMAND_HEADER("ReadColorControlColorPointBIntensity", COLOR_CONTROL_CLUSTER_ID);
1585 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x003C);
1589 PacketBufferHandle encodeColorControlClusterWriteColorPointBIntensityAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
1590 uint8_t colorPointBIntensity)
1592 COMMAND_HEADER("WriteColorControlColorPointBIntensity", COLOR_CONTROL_CLUSTER_ID);
1593 buf.Put8(kFrameControlGlobalCommand)
1595 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1598 .Put8(static_cast<uint8_t>(colorPointBIntensity));
1603 * Attribute EnhancedCurrentHue
1605 PacketBufferHandle encodeColorControlClusterReadEnhancedCurrentHueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1607 COMMAND_HEADER("ReadColorControlEnhancedCurrentHue", COLOR_CONTROL_CLUSTER_ID);
1608 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4000);
1613 * Attribute EnhancedColorMode
1615 PacketBufferHandle encodeColorControlClusterReadEnhancedColorModeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1617 COMMAND_HEADER("ReadColorControlEnhancedColorMode", COLOR_CONTROL_CLUSTER_ID);
1618 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4001);
1623 * Attribute ColorLoopActive
1625 PacketBufferHandle encodeColorControlClusterReadColorLoopActiveAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1627 COMMAND_HEADER("ReadColorControlColorLoopActive", COLOR_CONTROL_CLUSTER_ID);
1628 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4002);
1633 * Attribute ColorLoopDirection
1635 PacketBufferHandle encodeColorControlClusterReadColorLoopDirectionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1637 COMMAND_HEADER("ReadColorControlColorLoopDirection", COLOR_CONTROL_CLUSTER_ID);
1638 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4003);
1643 * Attribute ColorLoopTime
1645 PacketBufferHandle encodeColorControlClusterReadColorLoopTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1647 COMMAND_HEADER("ReadColorControlColorLoopTime", COLOR_CONTROL_CLUSTER_ID);
1648 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4004);
1653 * Attribute ColorCapabilities
1655 PacketBufferHandle encodeColorControlClusterReadColorCapabilitiesAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1657 COMMAND_HEADER("ReadColorControlColorCapabilities", COLOR_CONTROL_CLUSTER_ID);
1658 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400A);
1663 * Attribute ColorTempPhysicalMin
1665 PacketBufferHandle encodeColorControlClusterReadColorTempPhysicalMinAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1667 COMMAND_HEADER("ReadColorControlColorTempPhysicalMin", COLOR_CONTROL_CLUSTER_ID);
1668 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400B);
1673 * Attribute ColorTempPhysicalMax
1675 PacketBufferHandle encodeColorControlClusterReadColorTempPhysicalMaxAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1677 COMMAND_HEADER("ReadColorControlColorTempPhysicalMax", COLOR_CONTROL_CLUSTER_ID);
1678 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400C);
1683 * Attribute CoupleColorTempToLevelMinMireds
1685 PacketBufferHandle encodeColorControlClusterReadCoupleColorTempToLevelMinMiredsAttribute(uint8_t seqNum,
1686 EndpointId destinationEndpoint)
1688 COMMAND_HEADER("ReadColorControlCoupleColorTempToLevelMinMireds", COLOR_CONTROL_CLUSTER_ID);
1689 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x400D);
1694 * Attribute StartUpColorTemperatureMireds
1696 PacketBufferHandle encodeColorControlClusterReadStartUpColorTemperatureMiredsAttribute(uint8_t seqNum,
1697 EndpointId destinationEndpoint)
1699 COMMAND_HEADER("ReadColorControlStartUpColorTemperatureMireds", COLOR_CONTROL_CLUSTER_ID);
1700 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x4010);
1704 PacketBufferHandle encodeColorControlClusterWriteStartUpColorTemperatureMiredsAttribute(uint8_t seqNum,
1705 EndpointId destinationEndpoint,
1706 uint16_t startUpColorTemperatureMireds)
1708 COMMAND_HEADER("WriteColorControlStartUpColorTemperatureMireds", COLOR_CONTROL_CLUSTER_ID);
1709 buf.Put8(kFrameControlGlobalCommand)
1711 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
1714 .Put16(static_cast<uint16_t>(startUpColorTemperatureMireds));
1719 * Attribute ClusterRevision
1721 PacketBufferHandle encodeColorControlClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1723 COMMAND_HEADER("ReadColorControlClusterRevision", COLOR_CONTROL_CLUSTER_ID);
1724 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
1728 /*----------------------------------------------------------------------------*\
1729 | Cluster ContentLaunch | 0xF002 |
1730 |------------------------------------------------------------------------------|
1732 | * LaunchContent | 0x00 |
1733 | * LaunchURL | 0x01 |
1734 |------------------------------------------------------------------------------|
1736 | * ClusterRevision | 0xFFFD |
1737 \*----------------------------------------------------------------------------*/
1740 * Command LaunchContent
1742 PacketBufferHandle encodeContentLaunchClusterLaunchContentCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1744 COMMAND_HEADER("LaunchContent", CONTENT_LAUNCH_CLUSTER_ID);
1745 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_LAUNCH_CONTENT_COMMAND_ID);
1752 PacketBufferHandle encodeContentLaunchClusterLaunchURLCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1754 COMMAND_HEADER("LaunchURL", CONTENT_LAUNCH_CLUSTER_ID);
1755 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_LAUNCH_URL_COMMAND_ID);
1759 PacketBufferHandle encodeContentLaunchClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
1761 COMMAND_HEADER("DiscoverContentLaunchAttributes", CONTENT_LAUNCH_CLUSTER_ID);
1762 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
1767 * Attribute ClusterRevision
1769 PacketBufferHandle encodeContentLaunchClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
1771 COMMAND_HEADER("ReadContentLaunchClusterRevision", CONTENT_LAUNCH_CLUSTER_ID);
1772 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
1776 /*----------------------------------------------------------------------------*\
1777 | Cluster DoorLock | 0x0101 |
1778 |------------------------------------------------------------------------------|
1780 | * ClearAllPins | 0x08 |
1781 | * ClearAllRfids | 0x19 |
1782 | * ClearHolidaySchedule | 0x13 |
1783 | * ClearPin | 0x07 |
1784 | * ClearRfid | 0x18 |
1785 | * ClearWeekdaySchedule | 0x0D |
1786 | * ClearYeardaySchedule | 0x10 |
1787 | * GetHolidaySchedule | 0x12 |
1788 | * GetLogRecord | 0x04 |
1790 | * GetRfid | 0x17 |
1791 | * GetUserType | 0x15 |
1792 | * GetWeekdaySchedule | 0x0C |
1793 | * GetYeardaySchedule | 0x0F |
1794 | * LockDoor | 0x00 |
1795 | * SetHolidaySchedule | 0x11 |
1797 | * SetRfid | 0x16 |
1798 | * SetUserType | 0x14 |
1799 | * SetWeekdaySchedule | 0x0B |
1800 | * SetYeardaySchedule | 0x0E |
1801 | * UnlockDoor | 0x01 |
1802 | * UnlockWithTimeout | 0x03 |
1803 |------------------------------------------------------------------------------|
1805 | * LockState | 0x0000 |
1806 | * LockType | 0x0001 |
1807 | * ActuatorEnabled | 0x0002 |
1808 | * ClusterRevision | 0xFFFD |
1809 \*----------------------------------------------------------------------------*/
1812 * Command ClearAllPins
1814 PacketBufferHandle encodeDoorLockClusterClearAllPinsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1816 COMMAND_HEADER("ClearAllPins", DOOR_LOCK_CLUSTER_ID);
1817 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_ALL_PINS_COMMAND_ID);
1822 * Command ClearAllRfids
1824 PacketBufferHandle encodeDoorLockClusterClearAllRfidsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
1826 COMMAND_HEADER("ClearAllRfids", DOOR_LOCK_CLUSTER_ID);
1827 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_ALL_RFIDS_COMMAND_ID);
1832 * Command ClearHolidaySchedule
1834 PacketBufferHandle encodeDoorLockClusterClearHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1837 COMMAND_HEADER("ClearHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
1838 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_HOLIDAY_SCHEDULE_COMMAND_ID).Put8(scheduleId);
1845 PacketBufferHandle encodeDoorLockClusterClearPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
1847 COMMAND_HEADER("ClearPin", DOOR_LOCK_CLUSTER_ID);
1848 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_PIN_COMMAND_ID).Put16(userId);
1855 PacketBufferHandle encodeDoorLockClusterClearRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
1857 COMMAND_HEADER("ClearRfid", DOOR_LOCK_CLUSTER_ID);
1858 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_CLEAR_RFID_COMMAND_ID).Put16(userId);
1863 * Command ClearWeekdaySchedule
1865 PacketBufferHandle encodeDoorLockClusterClearWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1866 uint8_t scheduleId, uint16_t userId)
1868 COMMAND_HEADER("ClearWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
1869 buf.Put8(kFrameControlClusterSpecificCommand)
1871 .Put8(ZCL_CLEAR_WEEKDAY_SCHEDULE_COMMAND_ID)
1878 * Command ClearYeardaySchedule
1880 PacketBufferHandle encodeDoorLockClusterClearYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1881 uint8_t scheduleId, uint16_t userId)
1883 COMMAND_HEADER("ClearYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
1884 buf.Put8(kFrameControlClusterSpecificCommand)
1886 .Put8(ZCL_CLEAR_YEARDAY_SCHEDULE_COMMAND_ID)
1893 * Command GetHolidaySchedule
1895 PacketBufferHandle encodeDoorLockClusterGetHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1898 COMMAND_HEADER("GetHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
1899 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_HOLIDAY_SCHEDULE_COMMAND_ID).Put8(scheduleId);
1904 * Command GetLogRecord
1906 PacketBufferHandle encodeDoorLockClusterGetLogRecordCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t logIndex)
1908 COMMAND_HEADER("GetLogRecord", DOOR_LOCK_CLUSTER_ID);
1909 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_LOG_RECORD_COMMAND_ID).Put16(logIndex);
1916 PacketBufferHandle encodeDoorLockClusterGetPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
1918 COMMAND_HEADER("GetPin", DOOR_LOCK_CLUSTER_ID);
1919 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_PIN_COMMAND_ID).Put16(userId);
1926 PacketBufferHandle encodeDoorLockClusterGetRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
1928 COMMAND_HEADER("GetRfid", DOOR_LOCK_CLUSTER_ID);
1929 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_RFID_COMMAND_ID).Put16(userId);
1934 * Command GetUserType
1936 PacketBufferHandle encodeDoorLockClusterGetUserTypeCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId)
1938 COMMAND_HEADER("GetUserType", DOOR_LOCK_CLUSTER_ID);
1939 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_USER_TYPE_COMMAND_ID).Put16(userId);
1944 * Command GetWeekdaySchedule
1946 PacketBufferHandle encodeDoorLockClusterGetWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1947 uint8_t scheduleId, uint16_t userId)
1949 COMMAND_HEADER("GetWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
1950 buf.Put8(kFrameControlClusterSpecificCommand)
1952 .Put8(ZCL_GET_WEEKDAY_SCHEDULE_COMMAND_ID)
1959 * Command GetYeardaySchedule
1961 PacketBufferHandle encodeDoorLockClusterGetYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1962 uint8_t scheduleId, uint16_t userId)
1964 COMMAND_HEADER("GetYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
1965 buf.Put8(kFrameControlClusterSpecificCommand)
1967 .Put8(ZCL_GET_YEARDAY_SCHEDULE_COMMAND_ID)
1976 PacketBufferHandle encodeDoorLockClusterLockDoorCommand(uint8_t seqNum, EndpointId destinationEndpoint, char * pin)
1978 COMMAND_HEADER("LockDoor", DOOR_LOCK_CLUSTER_ID);
1979 size_t pinStrLen = strlen(pin);
1980 if (!CanCastTo<uint8_t>(pinStrLen))
1982 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
1983 return PacketBufferHandle();
1985 buf.Put8(kFrameControlClusterSpecificCommand)
1987 .Put8(ZCL_LOCK_DOOR_COMMAND_ID)
1988 .Put(static_cast<uint8_t>(pinStrLen))
1994 * Command SetHolidaySchedule
1996 PacketBufferHandle encodeDoorLockClusterSetHolidayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
1997 uint8_t scheduleId, uint32_t localStartTime,
1998 uint32_t localEndTime, uint8_t operatingModeDuringHoliday)
2000 COMMAND_HEADER("SetHolidaySchedule", DOOR_LOCK_CLUSTER_ID);
2001 buf.Put8(kFrameControlClusterSpecificCommand)
2003 .Put8(ZCL_SET_HOLIDAY_SCHEDULE_COMMAND_ID)
2005 .Put32(localStartTime)
2006 .Put32(localEndTime)
2007 .Put8(operatingModeDuringHoliday);
2014 PacketBufferHandle encodeDoorLockClusterSetPinCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2015 uint8_t userStatus, uint8_t userType, char * pin)
2017 COMMAND_HEADER("SetPin", DOOR_LOCK_CLUSTER_ID);
2018 size_t pinStrLen = strlen(pin);
2019 if (!CanCastTo<uint8_t>(pinStrLen))
2021 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2022 return PacketBufferHandle();
2024 buf.Put8(kFrameControlClusterSpecificCommand)
2026 .Put8(ZCL_SET_PIN_COMMAND_ID)
2030 .Put(static_cast<uint8_t>(pinStrLen))
2038 PacketBufferHandle encodeDoorLockClusterSetRfidCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2039 uint8_t userStatus, uint8_t userType, char * id)
2041 COMMAND_HEADER("SetRfid", DOOR_LOCK_CLUSTER_ID);
2042 size_t idStrLen = strlen(id);
2043 if (!CanCastTo<uint8_t>(idStrLen))
2045 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, idStrLen);
2046 return PacketBufferHandle();
2048 buf.Put8(kFrameControlClusterSpecificCommand)
2050 .Put8(ZCL_SET_RFID_COMMAND_ID)
2054 .Put(static_cast<uint8_t>(idStrLen))
2060 * Command SetUserType
2062 PacketBufferHandle encodeDoorLockClusterSetUserTypeCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t userId,
2065 COMMAND_HEADER("SetUserType", DOOR_LOCK_CLUSTER_ID);
2066 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SET_USER_TYPE_COMMAND_ID).Put16(userId).Put8(userType);
2071 * Command SetWeekdaySchedule
2073 PacketBufferHandle encodeDoorLockClusterSetWeekdayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2074 uint8_t scheduleId, uint16_t userId, uint8_t daysMask,
2075 uint8_t startHour, uint8_t startMinute, uint8_t endHour,
2078 COMMAND_HEADER("SetWeekdaySchedule", DOOR_LOCK_CLUSTER_ID);
2079 buf.Put8(kFrameControlClusterSpecificCommand)
2081 .Put8(ZCL_SET_WEEKDAY_SCHEDULE_COMMAND_ID)
2093 * Command SetYeardaySchedule
2095 PacketBufferHandle encodeDoorLockClusterSetYeardayScheduleCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2096 uint8_t scheduleId, uint16_t userId, uint32_t localStartTime,
2097 uint32_t localEndTime)
2099 COMMAND_HEADER("SetYeardaySchedule", DOOR_LOCK_CLUSTER_ID);
2100 buf.Put8(kFrameControlClusterSpecificCommand)
2102 .Put8(ZCL_SET_YEARDAY_SCHEDULE_COMMAND_ID)
2105 .Put32(localStartTime)
2106 .Put32(localEndTime);
2111 * Command UnlockDoor
2113 PacketBufferHandle encodeDoorLockClusterUnlockDoorCommand(uint8_t seqNum, EndpointId destinationEndpoint, char * pin)
2115 COMMAND_HEADER("UnlockDoor", DOOR_LOCK_CLUSTER_ID);
2116 size_t pinStrLen = strlen(pin);
2117 if (!CanCastTo<uint8_t>(pinStrLen))
2119 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2120 return PacketBufferHandle();
2122 buf.Put8(kFrameControlClusterSpecificCommand)
2124 .Put8(ZCL_UNLOCK_DOOR_COMMAND_ID)
2125 .Put(static_cast<uint8_t>(pinStrLen))
2131 * Command UnlockWithTimeout
2133 PacketBufferHandle encodeDoorLockClusterUnlockWithTimeoutCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2134 uint16_t timeoutInSeconds, char * pin)
2136 COMMAND_HEADER("UnlockWithTimeout", DOOR_LOCK_CLUSTER_ID);
2137 size_t pinStrLen = strlen(pin);
2138 if (!CanCastTo<uint8_t>(pinStrLen))
2140 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, pinStrLen);
2141 return PacketBufferHandle();
2143 buf.Put8(kFrameControlClusterSpecificCommand)
2145 .Put8(ZCL_UNLOCK_WITH_TIMEOUT_COMMAND_ID)
2146 .Put16(timeoutInSeconds)
2147 .Put(static_cast<uint8_t>(pinStrLen))
2152 PacketBufferHandle encodeDoorLockClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2154 COMMAND_HEADER("DiscoverDoorLockAttributes", DOOR_LOCK_CLUSTER_ID);
2155 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2160 * Attribute LockState
2162 PacketBufferHandle encodeDoorLockClusterReadLockStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2164 COMMAND_HEADER("ReadDoorLockLockState", DOOR_LOCK_CLUSTER_ID);
2165 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2169 PacketBufferHandle encodeDoorLockClusterConfigureLockStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2170 uint16_t minInterval, uint16_t maxInterval)
2172 COMMAND_HEADER("ReportDoorLockLockState", DOOR_LOCK_CLUSTER_ID);
2173 buf.Put8(kFrameControlGlobalCommand)
2175 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
2176 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
2180 .Put16(maxInterval);
2185 * Attribute LockType
2187 PacketBufferHandle encodeDoorLockClusterReadLockTypeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2189 COMMAND_HEADER("ReadDoorLockLockType", DOOR_LOCK_CLUSTER_ID);
2190 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2195 * Attribute ActuatorEnabled
2197 PacketBufferHandle encodeDoorLockClusterReadActuatorEnabledAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2199 COMMAND_HEADER("ReadDoorLockActuatorEnabled", DOOR_LOCK_CLUSTER_ID);
2200 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
2205 * Attribute ClusterRevision
2207 PacketBufferHandle encodeDoorLockClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2209 COMMAND_HEADER("ReadDoorLockClusterRevision", DOOR_LOCK_CLUSTER_ID);
2210 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2214 /*----------------------------------------------------------------------------*\
2215 | Cluster GeneralCommissioning | 0x0030 |
2216 |------------------------------------------------------------------------------|
2218 | * ArmFailSafe | 0x02 |
2219 | * CommissioningComplete | 0x06 |
2220 | * SetFabric | 0x00 |
2221 |------------------------------------------------------------------------------|
2223 | * FabricId | 0x0000 |
2224 | * Breadcrumb | 0x0001 |
2225 | * ClusterRevision | 0xFFFD |
2226 \*----------------------------------------------------------------------------*/
2229 * Command ArmFailSafe
2231 PacketBufferHandle encodeGeneralCommissioningClusterArmFailSafeCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2232 uint16_t expiryLengthSeconds, uint64_t breadcrumb,
2235 COMMAND_HEADER("ArmFailSafe", GENERAL_COMMISSIONING_CLUSTER_ID);
2236 buf.Put8(kFrameControlClusterSpecificCommand)
2238 .Put8(ZCL_ARM_FAIL_SAFE_COMMAND_ID)
2239 .Put16(expiryLengthSeconds)
2246 * Command CommissioningComplete
2248 PacketBufferHandle encodeGeneralCommissioningClusterCommissioningCompleteCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2250 COMMAND_HEADER("CommissioningComplete", GENERAL_COMMISSIONING_CLUSTER_ID);
2251 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_COMMISSIONING_COMPLETE_COMMAND_ID);
2258 PacketBufferHandle encodeGeneralCommissioningClusterSetFabricCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2259 chip::ByteSpan fabricId, chip::ByteSpan fabricSecret,
2260 uint64_t breadcrumb, uint32_t timeoutMs)
2262 COMMAND_HEADER("SetFabric", GENERAL_COMMISSIONING_CLUSTER_ID);
2263 if (!CanCastTo<uint8_t>(fabricId.size()))
2265 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, fabricId.size());
2266 return PacketBufferHandle();
2268 if (!CanCastTo<uint8_t>(fabricSecret.size()))
2270 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, fabricSecret.size());
2271 return PacketBufferHandle();
2273 buf.Put8(kFrameControlClusterSpecificCommand)
2275 .Put8(ZCL_SET_FABRIC_COMMAND_ID)
2276 .Put(static_cast<uint8_t>(fabricId.size()))
2277 .Put(fabricId.data(), fabricId.size())
2278 .Put(static_cast<uint8_t>(fabricSecret.size()))
2279 .Put(fabricSecret.data(), fabricSecret.size())
2285 PacketBufferHandle encodeGeneralCommissioningClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2287 COMMAND_HEADER("DiscoverGeneralCommissioningAttributes", GENERAL_COMMISSIONING_CLUSTER_ID);
2288 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2293 * Attribute FabricId
2295 PacketBufferHandle encodeGeneralCommissioningClusterReadFabricIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2297 COMMAND_HEADER("ReadGeneralCommissioningFabricId", GENERAL_COMMISSIONING_CLUSTER_ID);
2298 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2303 * Attribute Breadcrumb
2305 PacketBufferHandle encodeGeneralCommissioningClusterReadBreadcrumbAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2307 COMMAND_HEADER("ReadGeneralCommissioningBreadcrumb", GENERAL_COMMISSIONING_CLUSTER_ID);
2308 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2312 PacketBufferHandle encodeGeneralCommissioningClusterWriteBreadcrumbAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2313 uint64_t breadcrumb)
2315 COMMAND_HEADER("WriteGeneralCommissioningBreadcrumb", GENERAL_COMMISSIONING_CLUSTER_ID);
2316 buf.Put8(kFrameControlGlobalCommand)
2318 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2321 .Put64(static_cast<uint64_t>(breadcrumb));
2326 * Attribute ClusterRevision
2328 PacketBufferHandle encodeGeneralCommissioningClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2330 COMMAND_HEADER("ReadGeneralCommissioningClusterRevision", GENERAL_COMMISSIONING_CLUSTER_ID);
2331 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2335 /*----------------------------------------------------------------------------*\
2336 | Cluster Groups | 0x0004 |
2337 |------------------------------------------------------------------------------|
2339 | * AddGroup | 0x00 |
2340 | * AddGroupIfIdentifying | 0x05 |
2341 | * GetGroupMembership | 0x02 |
2342 | * RemoveAllGroups | 0x04 |
2343 | * RemoveGroup | 0x03 |
2344 | * ViewGroup | 0x01 |
2345 |------------------------------------------------------------------------------|
2347 | * NameSupport | 0x0000 |
2348 | * ClusterRevision | 0xFFFD |
2349 \*----------------------------------------------------------------------------*/
2354 PacketBufferHandle encodeGroupsClusterAddGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
2357 COMMAND_HEADER("AddGroup", GROUPS_CLUSTER_ID);
2358 size_t groupNameStrLen = strlen(groupName);
2359 if (!CanCastTo<uint8_t>(groupNameStrLen))
2361 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, groupNameStrLen);
2362 return PacketBufferHandle();
2364 buf.Put8(kFrameControlClusterSpecificCommand)
2366 .Put8(ZCL_ADD_GROUP_COMMAND_ID)
2368 .Put(static_cast<uint8_t>(groupNameStrLen))
2374 * Command AddGroupIfIdentifying
2376 PacketBufferHandle encodeGroupsClusterAddGroupIfIdentifyingCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
2379 COMMAND_HEADER("AddGroupIfIdentifying", GROUPS_CLUSTER_ID);
2380 size_t groupNameStrLen = strlen(groupName);
2381 if (!CanCastTo<uint8_t>(groupNameStrLen))
2383 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, groupNameStrLen);
2384 return PacketBufferHandle();
2386 buf.Put8(kFrameControlClusterSpecificCommand)
2388 .Put8(ZCL_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID)
2390 .Put(static_cast<uint8_t>(groupNameStrLen))
2396 * Command GetGroupMembership
2398 PacketBufferHandle encodeGroupsClusterGetGroupMembershipCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t groupCount,
2401 COMMAND_HEADER("GetGroupMembership", GROUPS_CLUSTER_ID);
2402 buf.Put8(kFrameControlClusterSpecificCommand)
2404 .Put8(ZCL_GET_GROUP_MEMBERSHIP_COMMAND_ID)
2411 * Command RemoveAllGroups
2413 PacketBufferHandle encodeGroupsClusterRemoveAllGroupsCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2415 COMMAND_HEADER("RemoveAllGroups", GROUPS_CLUSTER_ID);
2416 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_ALL_GROUPS_COMMAND_ID);
2421 * Command RemoveGroup
2423 PacketBufferHandle encodeGroupsClusterRemoveGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
2425 COMMAND_HEADER("RemoveGroup", GROUPS_CLUSTER_ID);
2426 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_GROUP_COMMAND_ID).Put16(groupId);
2433 PacketBufferHandle encodeGroupsClusterViewGroupCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
2435 COMMAND_HEADER("ViewGroup", GROUPS_CLUSTER_ID);
2436 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_VIEW_GROUP_COMMAND_ID).Put16(groupId);
2440 PacketBufferHandle encodeGroupsClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2442 COMMAND_HEADER("DiscoverGroupsAttributes", GROUPS_CLUSTER_ID);
2443 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2448 * Attribute NameSupport
2450 PacketBufferHandle encodeGroupsClusterReadNameSupportAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2452 COMMAND_HEADER("ReadGroupsNameSupport", GROUPS_CLUSTER_ID);
2453 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2458 * Attribute ClusterRevision
2460 PacketBufferHandle encodeGroupsClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2462 COMMAND_HEADER("ReadGroupsClusterRevision", GROUPS_CLUSTER_ID);
2463 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2467 /*----------------------------------------------------------------------------*\
2468 | Cluster IasZone | 0x0500 |
2469 |------------------------------------------------------------------------------|
2471 |------------------------------------------------------------------------------|
2473 | * ZoneState | 0x0000 |
2474 | * ZoneType | 0x0001 |
2475 | * ZoneStatus | 0x0002 |
2476 | * IasCieAddress | 0x0010 |
2477 | * ZoneId | 0x0011 |
2478 | * ClusterRevision | 0xFFFD |
2479 \*----------------------------------------------------------------------------*/
2481 PacketBufferHandle encodeIasZoneClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2483 COMMAND_HEADER("DiscoverIasZoneAttributes", IAS_ZONE_CLUSTER_ID);
2484 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2489 * Attribute ZoneState
2491 PacketBufferHandle encodeIasZoneClusterReadZoneStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2493 COMMAND_HEADER("ReadIasZoneZoneState", IAS_ZONE_CLUSTER_ID);
2494 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2499 * Attribute ZoneType
2501 PacketBufferHandle encodeIasZoneClusterReadZoneTypeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2503 COMMAND_HEADER("ReadIasZoneZoneType", IAS_ZONE_CLUSTER_ID);
2504 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
2509 * Attribute ZoneStatus
2511 PacketBufferHandle encodeIasZoneClusterReadZoneStatusAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2513 COMMAND_HEADER("ReadIasZoneZoneStatus", IAS_ZONE_CLUSTER_ID);
2514 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
2519 * Attribute IasCieAddress
2521 PacketBufferHandle encodeIasZoneClusterReadIasCieAddressAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2523 COMMAND_HEADER("ReadIasZoneIasCieAddress", IAS_ZONE_CLUSTER_ID);
2524 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0010);
2528 PacketBufferHandle encodeIasZoneClusterWriteIasCieAddressAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2529 uint64_t iasCieAddress)
2531 COMMAND_HEADER("WriteIasZoneIasCieAddress", IAS_ZONE_CLUSTER_ID);
2532 buf.Put8(kFrameControlGlobalCommand)
2534 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2537 .Put64(static_cast<uint64_t>(iasCieAddress));
2544 PacketBufferHandle encodeIasZoneClusterReadZoneIdAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2546 COMMAND_HEADER("ReadIasZoneZoneId", IAS_ZONE_CLUSTER_ID);
2547 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0011);
2552 * Attribute ClusterRevision
2554 PacketBufferHandle encodeIasZoneClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2556 COMMAND_HEADER("ReadIasZoneClusterRevision", IAS_ZONE_CLUSTER_ID);
2557 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2561 /*----------------------------------------------------------------------------*\
2562 | Cluster Identify | 0x0003 |
2563 |------------------------------------------------------------------------------|
2565 | * Identify | 0x00 |
2566 | * IdentifyQuery | 0x01 |
2567 |------------------------------------------------------------------------------|
2569 | * IdentifyTime | 0x0000 |
2570 | * ClusterRevision | 0xFFFD |
2571 \*----------------------------------------------------------------------------*/
2576 PacketBufferHandle encodeIdentifyClusterIdentifyCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t identifyTime)
2578 COMMAND_HEADER("Identify", IDENTIFY_CLUSTER_ID);
2579 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_IDENTIFY_COMMAND_ID).Put16(identifyTime);
2584 * Command IdentifyQuery
2586 PacketBufferHandle encodeIdentifyClusterIdentifyQueryCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2588 COMMAND_HEADER("IdentifyQuery", IDENTIFY_CLUSTER_ID);
2589 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_IDENTIFY_QUERY_COMMAND_ID);
2593 PacketBufferHandle encodeIdentifyClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2595 COMMAND_HEADER("DiscoverIdentifyAttributes", IDENTIFY_CLUSTER_ID);
2596 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2601 * Attribute IdentifyTime
2603 PacketBufferHandle encodeIdentifyClusterReadIdentifyTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2605 COMMAND_HEADER("ReadIdentifyIdentifyTime", IDENTIFY_CLUSTER_ID);
2606 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2610 PacketBufferHandle encodeIdentifyClusterWriteIdentifyTimeAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2611 uint16_t identifyTime)
2613 COMMAND_HEADER("WriteIdentifyIdentifyTime", IDENTIFY_CLUSTER_ID);
2614 buf.Put8(kFrameControlGlobalCommand)
2616 .Put8(ZCL_WRITE_ATTRIBUTES_COMMAND_ID)
2619 .Put16(static_cast<uint16_t>(identifyTime));
2624 * Attribute ClusterRevision
2626 PacketBufferHandle encodeIdentifyClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2628 COMMAND_HEADER("ReadIdentifyClusterRevision", IDENTIFY_CLUSTER_ID);
2629 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2633 /*----------------------------------------------------------------------------*\
2634 | Cluster LevelControl | 0x0008 |
2635 |------------------------------------------------------------------------------|
2638 | * MoveToLevel | 0x00 |
2639 | * MoveToLevelWithOnOff | 0x04 |
2640 | * MoveWithOnOff | 0x05 |
2642 | * StepWithOnOff | 0x06 |
2644 | * StopWithOnOff | 0x07 |
2645 |------------------------------------------------------------------------------|
2647 | * CurrentLevel | 0x0000 |
2648 | * ClusterRevision | 0xFFFD |
2649 \*----------------------------------------------------------------------------*/
2654 PacketBufferHandle encodeLevelControlClusterMoveCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
2655 uint8_t rate, uint8_t optionMask, uint8_t optionOverride)
2657 COMMAND_HEADER("Move", LEVEL_CONTROL_CLUSTER_ID);
2658 buf.Put8(kFrameControlClusterSpecificCommand)
2660 .Put8(ZCL_MOVE_COMMAND_ID)
2664 .Put8(optionOverride);
2669 * Command MoveToLevel
2671 PacketBufferHandle encodeLevelControlClusterMoveToLevelCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t level,
2672 uint16_t transitionTime, uint8_t optionMask, uint8_t optionOverride)
2674 COMMAND_HEADER("MoveToLevel", LEVEL_CONTROL_CLUSTER_ID);
2675 buf.Put8(kFrameControlClusterSpecificCommand)
2677 .Put8(ZCL_MOVE_TO_LEVEL_COMMAND_ID)
2679 .Put16(transitionTime)
2681 .Put8(optionOverride);
2686 * Command MoveToLevelWithOnOff
2688 PacketBufferHandle encodeLevelControlClusterMoveToLevelWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint,
2689 uint8_t level, uint16_t transitionTime)
2691 COMMAND_HEADER("MoveToLevelWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2692 buf.Put8(kFrameControlClusterSpecificCommand)
2694 .Put8(ZCL_MOVE_TO_LEVEL_WITH_ON_OFF_COMMAND_ID)
2696 .Put16(transitionTime);
2701 * Command MoveWithOnOff
2703 PacketBufferHandle encodeLevelControlClusterMoveWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t moveMode,
2706 COMMAND_HEADER("MoveWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2707 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_MOVE_WITH_ON_OFF_COMMAND_ID).Put8(moveMode).Put8(rate);
2714 PacketBufferHandle encodeLevelControlClusterStepCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
2715 uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask,
2716 uint8_t optionOverride)
2718 COMMAND_HEADER("Step", LEVEL_CONTROL_CLUSTER_ID);
2719 buf.Put8(kFrameControlClusterSpecificCommand)
2721 .Put8(ZCL_STEP_COMMAND_ID)
2724 .Put16(transitionTime)
2726 .Put8(optionOverride);
2731 * Command StepWithOnOff
2733 PacketBufferHandle encodeLevelControlClusterStepWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t stepMode,
2734 uint8_t stepSize, uint16_t transitionTime)
2736 COMMAND_HEADER("StepWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2737 buf.Put8(kFrameControlClusterSpecificCommand)
2739 .Put8(ZCL_STEP_WITH_ON_OFF_COMMAND_ID)
2742 .Put16(transitionTime);
2749 PacketBufferHandle encodeLevelControlClusterStopCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint8_t optionMask,
2750 uint8_t optionOverride)
2752 COMMAND_HEADER("Stop", LEVEL_CONTROL_CLUSTER_ID);
2753 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STOP_COMMAND_ID).Put8(optionMask).Put8(optionOverride);
2758 * Command StopWithOnOff
2760 PacketBufferHandle encodeLevelControlClusterStopWithOnOffCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2762 COMMAND_HEADER("StopWithOnOff", LEVEL_CONTROL_CLUSTER_ID);
2763 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STOP_WITH_ON_OFF_COMMAND_ID);
2767 PacketBufferHandle encodeLevelControlClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2769 COMMAND_HEADER("DiscoverLevelControlAttributes", LEVEL_CONTROL_CLUSTER_ID);
2770 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2775 * Attribute CurrentLevel
2777 PacketBufferHandle encodeLevelControlClusterReadCurrentLevelAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2779 COMMAND_HEADER("ReadLevelControlCurrentLevel", LEVEL_CONTROL_CLUSTER_ID);
2780 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2784 PacketBufferHandle encodeLevelControlClusterConfigureCurrentLevelAttribute(uint8_t seqNum, EndpointId destinationEndpoint,
2785 uint16_t minInterval, uint16_t maxInterval,
2788 COMMAND_HEADER("ReportLevelControlCurrentLevel", LEVEL_CONTROL_CLUSTER_ID);
2789 buf.Put8(kFrameControlGlobalCommand)
2791 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
2792 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
2796 .Put16(maxInterval);
2797 buf.Put8(static_cast<uint8_t>(change));
2802 * Attribute ClusterRevision
2804 PacketBufferHandle encodeLevelControlClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2806 COMMAND_HEADER("ReadLevelControlClusterRevision", LEVEL_CONTROL_CLUSTER_ID);
2807 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2811 /*----------------------------------------------------------------------------*\
2812 | Cluster LowPower | 0x0508 |
2813 |------------------------------------------------------------------------------|
2816 |------------------------------------------------------------------------------|
2818 | * ClusterRevision | 0xFFFD |
2819 \*----------------------------------------------------------------------------*/
2824 PacketBufferHandle encodeLowPowerClusterSleepCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2826 COMMAND_HEADER("Sleep", LOW_POWER_CLUSTER_ID);
2827 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SLEEP_COMMAND_ID);
2831 PacketBufferHandle encodeLowPowerClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2833 COMMAND_HEADER("DiscoverLowPowerAttributes", LOW_POWER_CLUSTER_ID);
2834 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2839 * Attribute ClusterRevision
2841 PacketBufferHandle encodeLowPowerClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2843 COMMAND_HEADER("ReadLowPowerClusterRevision", LOW_POWER_CLUSTER_ID);
2844 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2848 /*----------------------------------------------------------------------------*\
2849 | Cluster MediaPlayback | 0xF001 |
2850 |------------------------------------------------------------------------------|
2852 | * FastForwardRequest | 0x07 |
2853 | * NextRequest | 0x05 |
2854 | * PauseRequest | 0x01 |
2855 | * PlayRequest | 0x00 |
2856 | * PreviousRequest | 0x04 |
2857 | * RewindRequest | 0x06 |
2858 | * SkipBackwardRequest | 0x09 |
2859 | * SkipForwardRequest | 0x08 |
2860 | * StartOverRequest | 0x03 |
2861 | * StopRequest | 0x02 |
2862 |------------------------------------------------------------------------------|
2864 | * CurrentState | 0x0000 |
2865 | * ClusterRevision | 0xFFFD |
2866 \*----------------------------------------------------------------------------*/
2869 * Command FastForwardRequest
2871 PacketBufferHandle encodeMediaPlaybackClusterFastForwardRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2873 COMMAND_HEADER("FastForwardRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2874 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_FAST_FORWARD_REQUEST_COMMAND_ID);
2879 * Command NextRequest
2881 PacketBufferHandle encodeMediaPlaybackClusterNextRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2883 COMMAND_HEADER("NextRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2884 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_NEXT_REQUEST_COMMAND_ID);
2889 * Command PauseRequest
2891 PacketBufferHandle encodeMediaPlaybackClusterPauseRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2893 COMMAND_HEADER("PauseRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2894 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_PAUSE_REQUEST_COMMAND_ID);
2899 * Command PlayRequest
2901 PacketBufferHandle encodeMediaPlaybackClusterPlayRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2903 COMMAND_HEADER("PlayRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2904 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_PLAY_REQUEST_COMMAND_ID);
2909 * Command PreviousRequest
2911 PacketBufferHandle encodeMediaPlaybackClusterPreviousRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2913 COMMAND_HEADER("PreviousRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2914 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_PREVIOUS_REQUEST_COMMAND_ID);
2919 * Command RewindRequest
2921 PacketBufferHandle encodeMediaPlaybackClusterRewindRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2923 COMMAND_HEADER("RewindRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2924 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REWIND_REQUEST_COMMAND_ID);
2929 * Command SkipBackwardRequest
2931 PacketBufferHandle encodeMediaPlaybackClusterSkipBackwardRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2933 COMMAND_HEADER("SkipBackwardRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2934 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SKIP_BACKWARD_REQUEST_COMMAND_ID);
2939 * Command SkipForwardRequest
2941 PacketBufferHandle encodeMediaPlaybackClusterSkipForwardRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2943 COMMAND_HEADER("SkipForwardRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2944 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_SKIP_FORWARD_REQUEST_COMMAND_ID);
2949 * Command StartOverRequest
2951 PacketBufferHandle encodeMediaPlaybackClusterStartOverRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2953 COMMAND_HEADER("StartOverRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2954 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_START_OVER_REQUEST_COMMAND_ID);
2959 * Command StopRequest
2961 PacketBufferHandle encodeMediaPlaybackClusterStopRequestCommand(uint8_t seqNum, EndpointId destinationEndpoint)
2963 COMMAND_HEADER("StopRequest", MEDIA_PLAYBACK_CLUSTER_ID);
2964 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STOP_REQUEST_COMMAND_ID);
2968 PacketBufferHandle encodeMediaPlaybackClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
2970 COMMAND_HEADER("DiscoverMediaPlaybackAttributes", MEDIA_PLAYBACK_CLUSTER_ID);
2971 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
2976 * Attribute CurrentState
2978 PacketBufferHandle encodeMediaPlaybackClusterReadCurrentStateAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2980 COMMAND_HEADER("ReadMediaPlaybackCurrentState", MEDIA_PLAYBACK_CLUSTER_ID);
2981 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
2986 * Attribute ClusterRevision
2988 PacketBufferHandle encodeMediaPlaybackClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
2990 COMMAND_HEADER("ReadMediaPlaybackClusterRevision", MEDIA_PLAYBACK_CLUSTER_ID);
2991 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
2995 /*----------------------------------------------------------------------------*\
2996 | Cluster NetworkCommissioning | 0xAAAA |
2997 |------------------------------------------------------------------------------|
2999 | * AddThreadNetwork | 0x06 |
3000 | * AddWiFiNetwork | 0x02 |
3001 | * DisableNetwork | 0x0E |
3002 | * EnableNetwork | 0x0C |
3003 | * GetLastNetworkCommissioningResult | 0x10 |
3004 | * RemoveNetwork | 0x0A |
3005 | * ScanNetworks | 0x00 |
3006 | * UpdateThreadNetwork | 0x08 |
3007 | * UpdateWiFiNetwork | 0x04 |
3008 |------------------------------------------------------------------------------|
3010 | * ClusterRevision | 0xFFFD |
3011 \*----------------------------------------------------------------------------*/
3014 * Command AddThreadNetwork
3016 PacketBufferHandle encodeNetworkCommissioningClusterAddThreadNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3017 chip::ByteSpan operationalDataset, uint64_t breadcrumb,
3020 COMMAND_HEADER("AddThreadNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3021 if (!CanCastTo<uint8_t>(operationalDataset.size()))
3023 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, operationalDataset.size());
3024 return PacketBufferHandle();
3026 buf.Put8(kFrameControlClusterSpecificCommand)
3028 .Put8(ZCL_ADD_THREAD_NETWORK_COMMAND_ID)
3029 .Put(static_cast<uint8_t>(operationalDataset.size()))
3030 .Put(operationalDataset.data(), operationalDataset.size())
3037 * Command AddWiFiNetwork
3039 PacketBufferHandle encodeNetworkCommissioningClusterAddWiFiNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3040 chip::ByteSpan ssid, chip::ByteSpan credentials,
3041 uint64_t breadcrumb, uint32_t timeoutMs)
3043 COMMAND_HEADER("AddWiFiNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3044 if (!CanCastTo<uint8_t>(ssid.size()))
3046 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, ssid.size());
3047 return PacketBufferHandle();
3049 if (!CanCastTo<uint8_t>(credentials.size()))
3051 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, credentials.size());
3052 return PacketBufferHandle();
3054 buf.Put8(kFrameControlClusterSpecificCommand)
3056 .Put8(ZCL_ADD_WI_FI_NETWORK_COMMAND_ID)
3057 .Put(static_cast<uint8_t>(ssid.size()))
3058 .Put(ssid.data(), ssid.size())
3059 .Put(static_cast<uint8_t>(credentials.size()))
3060 .Put(credentials.data(), credentials.size())
3067 * Command DisableNetwork
3069 PacketBufferHandle encodeNetworkCommissioningClusterDisableNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3070 chip::ByteSpan networkID, uint64_t breadcrumb,
3073 COMMAND_HEADER("DisableNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3074 if (!CanCastTo<uint8_t>(networkID.size()))
3076 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, networkID.size());
3077 return PacketBufferHandle();
3079 buf.Put8(kFrameControlClusterSpecificCommand)
3081 .Put8(ZCL_DISABLE_NETWORK_COMMAND_ID)
3082 .Put(static_cast<uint8_t>(networkID.size()))
3083 .Put(networkID.data(), networkID.size())
3090 * Command EnableNetwork
3092 PacketBufferHandle encodeNetworkCommissioningClusterEnableNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3093 chip::ByteSpan networkID, uint64_t breadcrumb,
3096 COMMAND_HEADER("EnableNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3097 if (!CanCastTo<uint8_t>(networkID.size()))
3099 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, networkID.size());
3100 return PacketBufferHandle();
3102 buf.Put8(kFrameControlClusterSpecificCommand)
3104 .Put8(ZCL_ENABLE_NETWORK_COMMAND_ID)
3105 .Put(static_cast<uint8_t>(networkID.size()))
3106 .Put(networkID.data(), networkID.size())
3113 * Command GetLastNetworkCommissioningResult
3115 PacketBufferHandle encodeNetworkCommissioningClusterGetLastNetworkCommissioningResultCommand(uint8_t seqNum,
3116 EndpointId destinationEndpoint,
3119 COMMAND_HEADER("GetLastNetworkCommissioningResult", NETWORK_COMMISSIONING_CLUSTER_ID);
3120 buf.Put8(kFrameControlClusterSpecificCommand)
3122 .Put8(ZCL_GET_LAST_NETWORK_COMMISSIONING_RESULT_COMMAND_ID)
3128 * Command RemoveNetwork
3130 PacketBufferHandle encodeNetworkCommissioningClusterRemoveNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3131 chip::ByteSpan networkID, uint64_t breadcrumb,
3134 COMMAND_HEADER("RemoveNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3135 if (!CanCastTo<uint8_t>(networkID.size()))
3137 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, networkID.size());
3138 return PacketBufferHandle();
3140 buf.Put8(kFrameControlClusterSpecificCommand)
3142 .Put8(ZCL_REMOVE_NETWORK_COMMAND_ID)
3143 .Put(static_cast<uint8_t>(networkID.size()))
3144 .Put(networkID.data(), networkID.size())
3151 * Command ScanNetworks
3153 PacketBufferHandle encodeNetworkCommissioningClusterScanNetworksCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3154 chip::ByteSpan ssid, uint64_t breadcrumb,
3157 COMMAND_HEADER("ScanNetworks", NETWORK_COMMISSIONING_CLUSTER_ID);
3158 if (!CanCastTo<uint8_t>(ssid.size()))
3160 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, ssid.size());
3161 return PacketBufferHandle();
3163 buf.Put8(kFrameControlClusterSpecificCommand)
3165 .Put8(ZCL_SCAN_NETWORKS_COMMAND_ID)
3166 .Put(static_cast<uint8_t>(ssid.size()))
3167 .Put(ssid.data(), ssid.size())
3174 * Command UpdateThreadNetwork
3176 PacketBufferHandle encodeNetworkCommissioningClusterUpdateThreadNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3177 chip::ByteSpan operationalDataset,
3178 uint64_t breadcrumb, uint32_t timeoutMs)
3180 COMMAND_HEADER("UpdateThreadNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3181 if (!CanCastTo<uint8_t>(operationalDataset.size()))
3183 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, operationalDataset.size());
3184 return PacketBufferHandle();
3186 buf.Put8(kFrameControlClusterSpecificCommand)
3188 .Put8(ZCL_UPDATE_THREAD_NETWORK_COMMAND_ID)
3189 .Put(static_cast<uint8_t>(operationalDataset.size()))
3190 .Put(operationalDataset.data(), operationalDataset.size())
3197 * Command UpdateWiFiNetwork
3199 PacketBufferHandle encodeNetworkCommissioningClusterUpdateWiFiNetworkCommand(uint8_t seqNum, EndpointId destinationEndpoint,
3200 chip::ByteSpan ssid, chip::ByteSpan credentials,
3201 uint64_t breadcrumb, uint32_t timeoutMs)
3203 COMMAND_HEADER("UpdateWiFiNetwork", NETWORK_COMMISSIONING_CLUSTER_ID);
3204 if (!CanCastTo<uint8_t>(ssid.size()))
3206 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, ssid.size());
3207 return PacketBufferHandle();
3209 if (!CanCastTo<uint8_t>(credentials.size()))
3211 ChipLogError(Zcl, "Error encoding %s command. String too long: %zu", kName, credentials.size());
3212 return PacketBufferHandle();
3214 buf.Put8(kFrameControlClusterSpecificCommand)
3216 .Put8(ZCL_UPDATE_WI_FI_NETWORK_COMMAND_ID)
3217 .Put(static_cast<uint8_t>(ssid.size()))
3218 .Put(ssid.data(), ssid.size())
3219 .Put(static_cast<uint8_t>(credentials.size()))
3220 .Put(credentials.data(), credentials.size())
3226 PacketBufferHandle encodeNetworkCommissioningClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3228 COMMAND_HEADER("DiscoverNetworkCommissioningAttributes", NETWORK_COMMISSIONING_CLUSTER_ID);
3229 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3234 * Attribute ClusterRevision
3236 PacketBufferHandle encodeNetworkCommissioningClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3238 COMMAND_HEADER("ReadNetworkCommissioningClusterRevision", NETWORK_COMMISSIONING_CLUSTER_ID);
3239 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3243 /*----------------------------------------------------------------------------*\
3244 | Cluster OnOff | 0x0006 |
3245 |------------------------------------------------------------------------------|
3250 |------------------------------------------------------------------------------|
3252 | * OnOff | 0x0000 |
3253 | * ClusterRevision | 0xFFFD |
3254 \*----------------------------------------------------------------------------*/
3259 PacketBufferHandle encodeOnOffClusterOffCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3261 COMMAND_HEADER("Off", ON_OFF_CLUSTER_ID);
3262 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_OFF_COMMAND_ID);
3269 PacketBufferHandle encodeOnOffClusterOnCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3271 COMMAND_HEADER("On", ON_OFF_CLUSTER_ID);
3272 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_ON_COMMAND_ID);
3279 PacketBufferHandle encodeOnOffClusterToggleCommand(uint8_t seqNum, EndpointId destinationEndpoint)
3281 COMMAND_HEADER("Toggle", ON_OFF_CLUSTER_ID);
3282 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_TOGGLE_COMMAND_ID);
3286 PacketBufferHandle encodeOnOffClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3288 COMMAND_HEADER("DiscoverOnOffAttributes", ON_OFF_CLUSTER_ID);
3289 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3296 PacketBufferHandle encodeOnOffClusterReadOnOffAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3298 COMMAND_HEADER("ReadOnOffOnOff", ON_OFF_CLUSTER_ID);
3299 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3303 PacketBufferHandle encodeOnOffClusterConfigureOnOffAttribute(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t minInterval,
3304 uint16_t maxInterval)
3306 COMMAND_HEADER("ReportOnOffOnOff", ON_OFF_CLUSTER_ID);
3307 buf.Put8(kFrameControlGlobalCommand)
3309 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
3310 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
3314 .Put16(maxInterval);
3319 * Attribute ClusterRevision
3321 PacketBufferHandle encodeOnOffClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3323 COMMAND_HEADER("ReadOnOffClusterRevision", ON_OFF_CLUSTER_ID);
3324 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3328 /*----------------------------------------------------------------------------*\
3329 | Cluster Scenes | 0x0005 |
3330 |------------------------------------------------------------------------------|
3332 | * AddScene | 0x00 |
3333 | * GetSceneMembership | 0x06 |
3334 | * RecallScene | 0x05 |
3335 | * RemoveAllScenes | 0x03 |
3336 | * RemoveScene | 0x02 |
3337 | * StoreScene | 0x04 |
3338 | * ViewScene | 0x01 |
3339 |------------------------------------------------------------------------------|
3341 | * SceneCount | 0x0000 |
3342 | * CurrentScene | 0x0001 |
3343 | * CurrentGroup | 0x0002 |
3344 | * SceneValid | 0x0003 |
3345 | * NameSupport | 0x0004 |
3346 | * ClusterRevision | 0xFFFD |
3347 \*----------------------------------------------------------------------------*/
3352 PacketBufferHandle encodeScenesClusterAddSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3353 uint8_t sceneId, uint16_t transitionTime, char * sceneName,
3354 chip::ClusterId clusterId, uint8_t length, uint8_t value)
3356 COMMAND_HEADER("AddScene", SCENES_CLUSTER_ID);
3357 size_t sceneNameStrLen = strlen(sceneName);
3358 if (!CanCastTo<uint8_t>(sceneNameStrLen))
3360 ChipLogError(Zcl, "Error encoding %s command. String too long: %d", kName, sceneNameStrLen);
3361 return PacketBufferHandle();
3363 buf.Put8(kFrameControlClusterSpecificCommand)
3365 .Put8(ZCL_ADD_SCENE_COMMAND_ID)
3368 .Put16(transitionTime)
3369 .Put(static_cast<uint8_t>(sceneNameStrLen))
3378 * Command GetSceneMembership
3380 PacketBufferHandle encodeScenesClusterGetSceneMembershipCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
3382 COMMAND_HEADER("GetSceneMembership", SCENES_CLUSTER_ID);
3383 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_GET_SCENE_MEMBERSHIP_COMMAND_ID).Put16(groupId);
3388 * Command RecallScene
3390 PacketBufferHandle encodeScenesClusterRecallSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3391 uint8_t sceneId, uint16_t transitionTime)
3393 COMMAND_HEADER("RecallScene", SCENES_CLUSTER_ID);
3394 buf.Put8(kFrameControlClusterSpecificCommand)
3396 .Put8(ZCL_RECALL_SCENE_COMMAND_ID)
3399 .Put16(transitionTime);
3404 * Command RemoveAllScenes
3406 PacketBufferHandle encodeScenesClusterRemoveAllScenesCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId)
3408 COMMAND_HEADER("RemoveAllScenes", SCENES_CLUSTER_ID);
3409 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_ALL_SCENES_COMMAND_ID).Put16(groupId);
3414 * Command RemoveScene
3416 PacketBufferHandle encodeScenesClusterRemoveSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3419 COMMAND_HEADER("RemoveScene", SCENES_CLUSTER_ID);
3420 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_REMOVE_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3425 * Command StoreScene
3427 PacketBufferHandle encodeScenesClusterStoreSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3430 COMMAND_HEADER("StoreScene", SCENES_CLUSTER_ID);
3431 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_STORE_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3438 PacketBufferHandle encodeScenesClusterViewSceneCommand(uint8_t seqNum, EndpointId destinationEndpoint, uint16_t groupId,
3441 COMMAND_HEADER("ViewScene", SCENES_CLUSTER_ID);
3442 buf.Put8(kFrameControlClusterSpecificCommand).Put8(seqNum).Put8(ZCL_VIEW_SCENE_COMMAND_ID).Put16(groupId).Put8(sceneId);
3446 PacketBufferHandle encodeScenesClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3448 COMMAND_HEADER("DiscoverScenesAttributes", SCENES_CLUSTER_ID);
3449 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3454 * Attribute SceneCount
3456 PacketBufferHandle encodeScenesClusterReadSceneCountAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3458 COMMAND_HEADER("ReadScenesSceneCount", SCENES_CLUSTER_ID);
3459 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3464 * Attribute CurrentScene
3466 PacketBufferHandle encodeScenesClusterReadCurrentSceneAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3468 COMMAND_HEADER("ReadScenesCurrentScene", SCENES_CLUSTER_ID);
3469 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
3474 * Attribute CurrentGroup
3476 PacketBufferHandle encodeScenesClusterReadCurrentGroupAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3478 COMMAND_HEADER("ReadScenesCurrentGroup", SCENES_CLUSTER_ID);
3479 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
3484 * Attribute SceneValid
3486 PacketBufferHandle encodeScenesClusterReadSceneValidAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3488 COMMAND_HEADER("ReadScenesSceneValid", SCENES_CLUSTER_ID);
3489 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0003);
3494 * Attribute NameSupport
3496 PacketBufferHandle encodeScenesClusterReadNameSupportAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3498 COMMAND_HEADER("ReadScenesNameSupport", SCENES_CLUSTER_ID);
3499 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0004);
3504 * Attribute ClusterRevision
3506 PacketBufferHandle encodeScenesClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3508 COMMAND_HEADER("ReadScenesClusterRevision", SCENES_CLUSTER_ID);
3509 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);
3513 /*----------------------------------------------------------------------------*\
3514 | Cluster TemperatureMeasurement | 0x0402 |
3515 |------------------------------------------------------------------------------|
3517 |------------------------------------------------------------------------------|
3519 | * MeasuredValue | 0x0000 |
3520 | * MinMeasuredValue | 0x0001 |
3521 | * MaxMeasuredValue | 0x0002 |
3522 | * ClusterRevision | 0xFFFD |
3523 \*----------------------------------------------------------------------------*/
3525 PacketBufferHandle encodeTemperatureMeasurementClusterDiscoverAttributes(uint8_t seqNum, EndpointId destinationEndpoint)
3527 COMMAND_HEADER("DiscoverTemperatureMeasurementAttributes", TEMP_MEASUREMENT_CLUSTER_ID);
3528 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID).Put16(0x0000).Put8(0xFF);
3533 * Attribute MeasuredValue
3535 PacketBufferHandle encodeTemperatureMeasurementClusterReadMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3537 COMMAND_HEADER("ReadTemperatureMeasurementMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3538 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0000);
3542 PacketBufferHandle encodeTemperatureMeasurementClusterConfigureMeasuredValueAttribute(uint8_t seqNum,
3543 EndpointId destinationEndpoint,
3544 uint16_t minInterval, uint16_t maxInterval,
3547 COMMAND_HEADER("ReportTemperatureMeasurementMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3548 buf.Put8(kFrameControlGlobalCommand)
3550 .Put8(ZCL_CONFIGURE_REPORTING_COMMAND_ID)
3551 .Put8(EMBER_ZCL_REPORTING_DIRECTION_REPORTED)
3555 .Put16(maxInterval);
3556 buf.Put16(static_cast<uint16_t>(change));
3561 * Attribute MinMeasuredValue
3563 PacketBufferHandle encodeTemperatureMeasurementClusterReadMinMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3565 COMMAND_HEADER("ReadTemperatureMeasurementMinMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3566 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0001);
3571 * Attribute MaxMeasuredValue
3573 PacketBufferHandle encodeTemperatureMeasurementClusterReadMaxMeasuredValueAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3575 COMMAND_HEADER("ReadTemperatureMeasurementMaxMeasuredValue", TEMP_MEASUREMENT_CLUSTER_ID);
3576 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0x0002);
3581 * Attribute ClusterRevision
3583 PacketBufferHandle encodeTemperatureMeasurementClusterReadClusterRevisionAttribute(uint8_t seqNum, EndpointId destinationEndpoint)
3585 COMMAND_HEADER("ReadTemperatureMeasurementClusterRevision", TEMP_MEASUREMENT_CLUSTER_ID);
3586 buf.Put8(kFrameControlGlobalCommand).Put8(seqNum).Put8(ZCL_READ_ATTRIBUTES_COMMAND_ID).Put16(0xFFFD);