@@ -99,7 +99,9 @@ void ZigbeeColorDimmerSwitch::lightToggle() {
9999 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
100100 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID;
101101 log_v (" Sending 'light toggle' command" );
102+ esp_zb_lock_acquire (portMAX_DELAY);
102103 esp_zb_zcl_on_off_cmd_req (&cmd_req);
104+ esp_zb_lock_release ();
103105 } else {
104106 log_e (" Light not bound" );
105107 }
@@ -113,7 +115,9 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint16_t group_addr) {
113115 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT;
114116 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID;
115117 log_v (" Sending 'light toggle' command to group address 0x%x" , group_addr);
118+ esp_zb_lock_acquire (portMAX_DELAY);
116119 esp_zb_zcl_on_off_cmd_req (&cmd_req);
120+ esp_zb_lock_release ();
117121 } else {
118122 log_e (" Light not bound" );
119123 }
@@ -128,7 +132,9 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr)
128132 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT;
129133 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID;
130134 log_v (" Sending 'light toggle' command to endpoint %d, address 0x%x" , endpoint, short_addr);
135+ esp_zb_lock_acquire (portMAX_DELAY);
131136 esp_zb_zcl_on_off_cmd_req (&cmd_req);
137+ esp_zb_lock_release ();
132138 } else {
133139 log_e (" Light not bound" );
134140 }
@@ -144,7 +150,9 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t i
144150 memcpy (cmd_req.zcl_basic_cmd .dst_addr_u .addr_long , ieee_addr, sizeof (esp_zb_ieee_addr_t ));
145151 log_v (" Sending 'light toggle' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x" ,
146152 endpoint, ieee_addr[7 ], ieee_addr[6 ], ieee_addr[5 ], ieee_addr[4 ], ieee_addr[3 ], ieee_addr[2 ], ieee_addr[1 ], ieee_addr[0 ]);
153+ esp_zb_lock_acquire (portMAX_DELAY);
147154 esp_zb_zcl_on_off_cmd_req (&cmd_req);
155+ esp_zb_lock_release ();
148156 } else {
149157 log_e (" Light not bound" );
150158 }
@@ -157,7 +165,9 @@ void ZigbeeColorDimmerSwitch::lightOn() {
157165 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
158166 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID;
159167 log_v (" Sending 'light on' command" );
168+ esp_zb_lock_acquire (portMAX_DELAY);
160169 esp_zb_zcl_on_off_cmd_req (&cmd_req);
170+ esp_zb_lock_release ();
161171 } else {
162172 log_e (" Light not bound" );
163173 }
@@ -171,7 +181,9 @@ void ZigbeeColorDimmerSwitch::lightOn(uint16_t group_addr) {
171181 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT;
172182 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID;
173183 log_v (" Sending 'light on' command to group address 0x%x" , group_addr);
184+ esp_zb_lock_acquire (portMAX_DELAY);
174185 esp_zb_zcl_on_off_cmd_req (&cmd_req);
186+ esp_zb_lock_release ();
175187 } else {
176188 log_e (" Light not bound" );
177189 }
@@ -186,7 +198,9 @@ void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) {
186198 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT;
187199 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID;
188200 log_v (" Sending 'light on' command to endpoint %d, address 0x%x" , endpoint, short_addr);
201+ esp_zb_lock_acquire (portMAX_DELAY);
189202 esp_zb_zcl_on_off_cmd_req (&cmd_req);
203+ esp_zb_lock_release ();
190204 } else {
191205 log_e (" Light not bound" );
192206 }
@@ -202,7 +216,9 @@ void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_
202216 memcpy (cmd_req.zcl_basic_cmd .dst_addr_u .addr_long , ieee_addr, sizeof (esp_zb_ieee_addr_t ));
203217 log_v (" Sending 'light on' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x" ,
204218 endpoint, ieee_addr[7 ], ieee_addr[6 ], ieee_addr[5 ], ieee_addr[4 ], ieee_addr[3 ], ieee_addr[2 ], ieee_addr[1 ], ieee_addr[0 ]);
219+ esp_zb_lock_acquire (portMAX_DELAY);
205220 esp_zb_zcl_on_off_cmd_req (&cmd_req);
221+ esp_zb_lock_release ();
206222 } else {
207223 log_e (" Light not bound" );
208224 }
@@ -215,7 +231,9 @@ void ZigbeeColorDimmerSwitch::lightOff() {
215231 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
216232 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID;
217233 log_v (" Sending 'light off' command" );
234+ esp_zb_lock_acquire (portMAX_DELAY);
218235 esp_zb_zcl_on_off_cmd_req (&cmd_req);
236+ esp_zb_lock_release ();
219237 } else {
220238 log_e (" Light not bound" );
221239 }
@@ -229,7 +247,9 @@ void ZigbeeColorDimmerSwitch::lightOff(uint16_t group_addr) {
229247 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT;
230248 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID;
231249 log_v (" Sending 'light off' command to group address 0x%x" , group_addr);
250+ esp_zb_lock_acquire (portMAX_DELAY);
232251 esp_zb_zcl_on_off_cmd_req (&cmd_req);
252+ esp_zb_lock_release ();
233253 } else {
234254 log_e (" Light not bound" );
235255 }
@@ -244,7 +264,9 @@ void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) {
244264 cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT;
245265 cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID;
246266 log_v (" Sending 'light off' command to endpoint %d, address 0x%x" , endpoint, short_addr);
267+ esp_zb_lock_acquire (portMAX_DELAY);
247268 esp_zb_zcl_on_off_cmd_req (&cmd_req);
269+ esp_zb_lock_release ();
248270 } else {
249271 log_e (" Light not bound" );
250272 }
@@ -260,7 +282,9 @@ void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee
260282 memcpy (cmd_req.zcl_basic_cmd .dst_addr_u .addr_long , ieee_addr, sizeof (esp_zb_ieee_addr_t ));
261283 log_v (" Sending 'light off' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x" ,
262284 endpoint, ieee_addr[7 ], ieee_addr[6 ], ieee_addr[5 ], ieee_addr[4 ], ieee_addr[3 ], ieee_addr[2 ], ieee_addr[1 ], ieee_addr[0 ]);
285+ esp_zb_lock_acquire (portMAX_DELAY);
263286 esp_zb_zcl_on_off_cmd_req (&cmd_req);
287+ esp_zb_lock_release ();
264288 } else {
265289 log_e (" Light not bound" );
266290 }
0 commit comments