Skip to content

Commit 7fd9c46

Browse files
committed
fix(zigbee): initialize Zigbee command structures with zeros
1 parent 9a9cba6 commit 7fd9c46

File tree

5 files changed

+79
-86
lines changed

5 files changed

+79
-86
lines changed

libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ void recieveSensorTempWithSource(float temperature, uint8_t src_endpoint, esp_zb
6666
#endif
6767

6868
void recieveSensorConfig(float min_temp, float max_temp, float tolerance) {
69-
Serial.printf("Temperature sensor settings: min %.2f°C, max %.2f°C, tolerance %.2f°C\n", min_temp, max_temp, tolerance);
69+
Serial.printf("Temperature sensor config: min %.2f°C, max %.2f°C, tolerance %.2f°C\n", min_temp, max_temp, tolerance);
7070
sensor_min_temp = min_temp;
7171
sensor_max_temp = max_temp;
7272
sensor_tolerance = tolerance;
@@ -125,9 +125,9 @@ void setup() {
125125

126126
Serial.println();
127127

128-
// Get temperature sensor configuration for each bound sensor
129-
std::list<zb_device_params_t *> boundLights = zbThermostat.getBoundDevices();
130-
for (const auto &device : boundLights) {
128+
// Get temperature sensor configuration for all bound sensors by endpoint number and address
129+
std::list<zb_device_params_t *> boundSensors = zbThermostat.getBoundDevices();
130+
for (const auto &device : boundSensors) {
131131
Serial.println("--------------------------------");
132132
if(device->short_addr == 0x0000 || device->short_addr == 0xFFFF) { //End devices never have 0x0000 short address or 0xFFFF group address
133133
Serial.printf("Device on endpoint %d, IEEE Address: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\r\n", device->endpoint, device->ieee_addr[7], device->ieee_addr[6], device->ieee_addr[5], device->ieee_addr[4],
@@ -138,21 +138,15 @@ void setup() {
138138
zbThermostat.getSensorSettings(device->endpoint, device->short_addr);
139139
}
140140
}
141-
142-
Serial.println("--------------------------------");
143-
Serial.println("Getting sensor settings for all bound sensors");
144-
zbThermostat.getSensorSettings();
145141
}
146142

147143
void loop() {
148144
// Handle button switch in loop()
149145
if (digitalRead(button) == LOW) { // Push button pressed
150-
151146
// Key debounce handling
152147
while (digitalRead(button) == LOW) {
153148
delay(50);
154149
}
155-
156150
// Set reporting interval for temperature sensor
157151
zbThermostat.setTemperatureReporting(0, 10, 2);
158152
}
@@ -163,7 +157,6 @@ void loop() {
163157
last_print = millis();
164158
int temp_percent = (int)((sensor_temp - sensor_min_temp) / (sensor_max_temp - sensor_min_temp) * 100);
165159
Serial.printf("Loop temperature info: %.2f°C (%d %%)\n", sensor_temp, temp_percent);
166-
Serial.println("Bound devices:");
167160
zbThermostat.printBoundDevices(Serial);
168161
}
169162
}

libraries/Zigbee/src/ZigbeeEP.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ bool ZigbeeEP::setBatteryVoltage(uint8_t voltage) {
145145

146146
bool ZigbeeEP::reportBatteryPercentage() {
147147
/* Send report attributes command */
148-
esp_zb_zcl_report_attr_cmd_t report_attr_cmd;
148+
esp_zb_zcl_report_attr_cmd_t report_attr_cmd = {0};
149149
report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
150150
report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_REMAINING_ID;
151151
report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI;
@@ -166,7 +166,7 @@ bool ZigbeeEP::reportBatteryPercentage() {
166166

167167
char *ZigbeeEP::readManufacturer(uint8_t endpoint, uint16_t short_addr, esp_zb_ieee_addr_t ieee_addr) {
168168
/* Read peer Manufacture Name & Model Identifier */
169-
esp_zb_zcl_read_attr_cmd_t read_req;
169+
esp_zb_zcl_read_attr_cmd_t read_req = {0};
170170

171171
if (short_addr != 0) {
172172
read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT;
@@ -204,7 +204,7 @@ char *ZigbeeEP::readManufacturer(uint8_t endpoint, uint16_t short_addr, esp_zb_i
204204

205205
char *ZigbeeEP::readModel(uint8_t endpoint, uint16_t short_addr, esp_zb_ieee_addr_t ieee_addr) {
206206
/* Read peer Manufacture Name & Model Identifier */
207-
esp_zb_zcl_read_attr_cmd_t read_req;
207+
esp_zb_zcl_read_attr_cmd_t read_req = {0};
208208

209209
if (short_addr != 0) {
210210
read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT;
@@ -375,7 +375,7 @@ bool ZigbeeEP::setTimezone(int32_t gmt_offset) {
375375

376376
tm ZigbeeEP::getTime(uint8_t endpoint, int32_t short_addr, esp_zb_ieee_addr_t ieee_addr) {
377377
/* Read peer time */
378-
esp_zb_zcl_read_attr_cmd_t read_req;
378+
esp_zb_zcl_read_attr_cmd_t read_req = {0};
379379

380380
if (short_addr >= 0) {
381381
read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT;
@@ -427,7 +427,7 @@ tm ZigbeeEP::getTime(uint8_t endpoint, int32_t short_addr, esp_zb_ieee_addr_t ie
427427

428428
int32_t ZigbeeEP::getTimezone(uint8_t endpoint, int32_t short_addr, esp_zb_ieee_addr_t ieee_addr) {
429429
/* Read peer timezone */
430-
esp_zb_zcl_read_attr_cmd_t read_req;
430+
esp_zb_zcl_read_attr_cmd_t read_req = {0};
431431

432432
if (short_addr >= 0) {
433433
read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT;
@@ -543,7 +543,7 @@ static void findOTAServer(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t
543543
}
544544

545545
void ZigbeeEP::requestOTAUpdate() {
546-
esp_zb_zdo_match_desc_req_param_t req;
546+
esp_zb_zdo_match_desc_req_param_t req = {0};
547547
uint16_t cluster_list[] = {ESP_ZB_ZCL_CLUSTER_ID_OTA_UPGRADE};
548548

549549
/* Match the OTA server of coordinator */

libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ void ZigbeeColorDimmerSwitch::findCb(esp_zb_zdp_status_t zdo_status, uint16_t ad
5353
ZigbeeColorDimmerSwitch *instance = static_cast<ZigbeeColorDimmerSwitch *>(user_ctx);
5454
if (zdo_status == ESP_ZB_ZDP_STATUS_SUCCESS) {
5555
log_d("Found light endpoint");
56-
esp_zb_zdo_bind_req_param_t bind_req;
56+
esp_zb_zdo_bind_req_param_t bind_req = {0};
5757
zb_device_params_t *light = (zb_device_params_t *)malloc(sizeof(zb_device_params_t));
5858
light->endpoint = endpoint;
5959
light->short_addr = addr;
@@ -97,7 +97,7 @@ void ZigbeeColorDimmerSwitch::findEndpoint(esp_zb_zdo_match_desc_req_param_t *cm
9797
// Methods to control the light
9898
void ZigbeeColorDimmerSwitch::lightToggle() {
9999
if (_is_bound) {
100-
esp_zb_zcl_on_off_cmd_t cmd_req;
100+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
101101
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
102102
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
103103
cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID;
@@ -112,7 +112,7 @@ void ZigbeeColorDimmerSwitch::lightToggle() {
112112

113113
void ZigbeeColorDimmerSwitch::lightToggle(uint16_t group_addr) {
114114
if (_is_bound) {
115-
esp_zb_zcl_on_off_cmd_t cmd_req;
115+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
116116
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
117117
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr;
118118
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT;
@@ -128,7 +128,7 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint16_t group_addr) {
128128

129129
void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr) {
130130
if (_is_bound) {
131-
esp_zb_zcl_on_off_cmd_t cmd_req;
131+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
132132
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
133133
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
134134
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr;
@@ -145,7 +145,7 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr)
145145

146146
void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) {
147147
if (_is_bound) {
148-
esp_zb_zcl_on_off_cmd_t cmd_req;
148+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
149149
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
150150
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
151151
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT;
@@ -165,7 +165,7 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t i
165165

166166
void ZigbeeColorDimmerSwitch::lightOn() {
167167
if (_is_bound) {
168-
esp_zb_zcl_on_off_cmd_t cmd_req;
168+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
169169
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
170170
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
171171
cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID;
@@ -180,7 +180,7 @@ void ZigbeeColorDimmerSwitch::lightOn() {
180180

181181
void ZigbeeColorDimmerSwitch::lightOn(uint16_t group_addr) {
182182
if (_is_bound) {
183-
esp_zb_zcl_on_off_cmd_t cmd_req;
183+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
184184
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
185185
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr;
186186
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT;
@@ -196,7 +196,7 @@ void ZigbeeColorDimmerSwitch::lightOn(uint16_t group_addr) {
196196

197197
void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) {
198198
if (_is_bound) {
199-
esp_zb_zcl_on_off_cmd_t cmd_req;
199+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
200200
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
201201
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
202202
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr;
@@ -213,7 +213,7 @@ void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) {
213213

214214
void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) {
215215
if (_is_bound) {
216-
esp_zb_zcl_on_off_cmd_t cmd_req;
216+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
217217
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
218218
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
219219
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT;
@@ -233,7 +233,7 @@ void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_
233233

234234
void ZigbeeColorDimmerSwitch::lightOff() {
235235
if (_is_bound) {
236-
esp_zb_zcl_on_off_cmd_t cmd_req;
236+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
237237
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
238238
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
239239
cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID;
@@ -248,7 +248,7 @@ void ZigbeeColorDimmerSwitch::lightOff() {
248248

249249
void ZigbeeColorDimmerSwitch::lightOff(uint16_t group_addr) {
250250
if (_is_bound) {
251-
esp_zb_zcl_on_off_cmd_t cmd_req;
251+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
252252
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
253253
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr;
254254
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT;
@@ -264,7 +264,7 @@ void ZigbeeColorDimmerSwitch::lightOff(uint16_t group_addr) {
264264

265265
void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) {
266266
if (_is_bound) {
267-
esp_zb_zcl_on_off_cmd_t cmd_req;
267+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
268268
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
269269
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
270270
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr;
@@ -281,7 +281,7 @@ void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) {
281281

282282
void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) {
283283
if (_is_bound) {
284-
esp_zb_zcl_on_off_cmd_t cmd_req;
284+
esp_zb_zcl_on_off_cmd_t cmd_req = {0};
285285
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
286286
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
287287
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT;
@@ -301,7 +301,7 @@ void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee
301301

302302
void ZigbeeColorDimmerSwitch::lightOffWithEffect(uint8_t effect_id, uint8_t effect_variant) {
303303
if (_is_bound) {
304-
esp_zb_zcl_on_off_off_with_effect_cmd_t cmd_req;
304+
esp_zb_zcl_on_off_off_with_effect_cmd_t cmd_req = {0};
305305
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
306306
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
307307
cmd_req.effect_id = effect_id;
@@ -317,7 +317,7 @@ void ZigbeeColorDimmerSwitch::lightOffWithEffect(uint8_t effect_id, uint8_t effe
317317

318318
void ZigbeeColorDimmerSwitch::lightOnWithSceneRecall() {
319319
if (_is_bound) {
320-
esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_t cmd_req;
320+
esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_t cmd_req = {0};
321321
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
322322
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
323323
log_v("Sending 'light on with scene recall' command");
@@ -331,7 +331,7 @@ void ZigbeeColorDimmerSwitch::lightOnWithSceneRecall() {
331331

332332
void ZigbeeColorDimmerSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, uint16_t time_off) {
333333
if (_is_bound) {
334-
esp_zb_zcl_on_off_on_with_timed_off_cmd_t cmd_req;
334+
esp_zb_zcl_on_off_on_with_timed_off_cmd_t cmd_req = {0};
335335
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
336336
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
337337
cmd_req.on_off_control = on_off_control; //TODO: Test how it works, then maybe change API
@@ -348,7 +348,7 @@ void ZigbeeColorDimmerSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16
348348

349349
void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level) {
350350
if (_is_bound) {
351-
esp_zb_zcl_move_to_level_cmd_t cmd_req;
351+
esp_zb_zcl_move_to_level_cmd_t cmd_req = {0};
352352
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
353353
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
354354
cmd_req.level = level;
@@ -364,7 +364,7 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level) {
364364

365365
void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint16_t group_addr) {
366366
if (_is_bound) {
367-
esp_zb_zcl_move_to_level_cmd_t cmd_req;
367+
esp_zb_zcl_move_to_level_cmd_t cmd_req = {0};
368368
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
369369
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr;
370370
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT;
@@ -381,7 +381,7 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint16_t group_addr)
381381

382382
void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint8_t endpoint, uint16_t short_addr) {
383383
if (_is_bound) {
384-
esp_zb_zcl_move_to_level_cmd_t cmd_req;
384+
esp_zb_zcl_move_to_level_cmd_t cmd_req = {0};
385385
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
386386
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
387387
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr;
@@ -399,7 +399,7 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint8_t endpoint, uin
399399

400400
void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) {
401401
if (_is_bound) {
402-
esp_zb_zcl_move_to_level_cmd_t cmd_req;
402+
esp_zb_zcl_move_to_level_cmd_t cmd_req = {0};
403403
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
404404
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
405405
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT;
@@ -422,7 +422,7 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t
422422
if (_is_bound) {
423423
espXyColor_t xy_color = espRgbToXYColor(red, green, blue);
424424

425-
esp_zb_zcl_color_move_to_color_cmd_t cmd_req;
425+
esp_zb_zcl_color_move_to_color_cmd_t cmd_req = {0};
426426
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
427427
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
428428
cmd_req.color_x = xy_color.x;
@@ -441,7 +441,7 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t
441441
if (_is_bound) {
442442
espXyColor_t xy_color = espRgbToXYColor(red, green, blue);
443443

444-
esp_zb_zcl_color_move_to_color_cmd_t cmd_req;
444+
esp_zb_zcl_color_move_to_color_cmd_t cmd_req = {0};
445445
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
446446
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr;
447447
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT;
@@ -461,7 +461,7 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t
461461
if (_is_bound) {
462462
espXyColor_t xy_color = espRgbToXYColor(red, green, blue);
463463

464-
esp_zb_zcl_color_move_to_color_cmd_t cmd_req;
464+
esp_zb_zcl_color_move_to_color_cmd_t cmd_req = {0};
465465
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
466466
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
467467
cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr;
@@ -482,7 +482,7 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t
482482
if (_is_bound) {
483483
espXyColor_t xy_color = espRgbToXYColor(red, green, blue);
484484

485-
esp_zb_zcl_color_move_to_color_cmd_t cmd_req;
485+
esp_zb_zcl_color_move_to_color_cmd_t cmd_req = {0};
486486
cmd_req.zcl_basic_cmd.src_endpoint = _endpoint;
487487
cmd_req.zcl_basic_cmd.dst_endpoint = endpoint;
488488
cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT;

0 commit comments

Comments
 (0)