Skip to content

Commit af93afd

Browse files
committed
fix(zigbee): Increase timeout and add semaphore to begin
1 parent a88201a commit af93afd

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino

+3
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,14 @@ void setup() {
7070
// Add endpoint to Zigbee Core
7171
Zigbee.addEndpoint(&zbTempSensor);
7272

73+
Serial.println("Starting Zigbee...");
7374
// When all EPs are registered, start Zigbee in End Device mode
7475
if (!Zigbee.begin()) {
7576
Serial.println("Zigbee failed to start!");
7677
Serial.println("Rebooting...");
7778
ESP.restart();
79+
} else {
80+
Serial.println("Zigbee started successfully!");
7881
}
7982
Serial.println("Connecting to network");
8083
while (!Zigbee.connected()) {

libraries/Zigbee/src/ZigbeeCore.cpp

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include "ZigbeeHandlers.cpp"
77
#include "Arduino.h"
88

9-
#define ZB_INIT_TIMEOUT 6000 // 6 seconds
9+
#define ZB_INIT_TIMEOUT 10000 // 10 seconds
1010

1111
extern "C" void zb_set_ed_node_descriptor(bool power_src, bool rx_on_when_idle, bool alloc_addr);
1212
static bool edBatteryPowered = false;
@@ -34,6 +34,7 @@ static esp_err_t zb_action_handler(esp_zb_core_action_callback_id_t callback_id,
3434

3535
bool ZigbeeCore::begin(esp_zb_cfg_t *role_cfg, bool erase_nvs) {
3636
if (!zigbeeInit(role_cfg, erase_nvs)) {
37+
log_e("ZigbeeCore begin failed");
3738
return false;
3839
}
3940
_role = (zigbee_role_t)role_cfg->esp_zb_role;
@@ -69,7 +70,10 @@ bool ZigbeeCore::begin(zigbee_role_t role, bool erase_nvs) {
6970
}
7071
default: log_e("Invalid Zigbee Role"); return false;
7172
}
72-
return status;
73+
if(!status || xSemaphoreTake(lock, ZB_INIT_TIMEOUT) != pdTRUE) {
74+
log_e("ZigbeeCore begin failed or timeout");
75+
}
76+
return started();
7377
}
7478

7579
void ZigbeeCore::addEndpoint(ZigbeeEP *ep) {

0 commit comments

Comments
 (0)