-
Notifications
You must be signed in to change notification settings - Fork 7.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(zigbee): Save network channel after 1st joining for faster rejoin #11123
feat(zigbee): Save network channel after 1st joining for faster rejoin #11123
Conversation
👋 Hello P-R-O-C-H-Y, we appreciate your contribution to this project! 📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more. 🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project. Click to see more instructions ...
Review and merge process you can expect ...
|
Memory usage test (comparing PR against master branch)The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.
Click to expand the detailed deltas report [usage change in BYTES]
|
Test Results 76 files 76 suites 13m 48s ⏱️ Results for commit 677a984. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Still in progress. Please don't change the labels :) Need a small update |
Sorry. I've read "review pending, instead..." |
225ad7e
to
1ff918b
Compare
…O-C-H-Y/arduino-esp32 into feat/zigbee-rejoin-scan-enhancement
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Marking as Pending merge, tested also by community. |
After more testing .... this change has problems. Using the updated sleepy temperature example:
It appears that the information about the first controller is saved in NVM and not cleared by a Zigbee.factoryReset() so it reconnects to the first controller unless I reflash the device and erase nvm As an aside, to cause Zigbee.factoryReset() in the sleepy temperature example the BOOT button must be held for 60+ seconds to be down the next time the EP wakes from sleep. I added a wake on external I/O to force an immediate wakeup. The BOOT button I/O is not an available external wake-up pin so I jumped IO9 to IO2 so IO2 goes low when the BOOT button is pressed and wakes up the ESP32 It's a hack but it works 😁 |
@def1149 To have the answer also here, I am able to reproduce this behavior also with other manufacturer devices. about the factoryReset() in sleepy sensor, I have also a reset button on my ESP devkit, so I just hold the BOOT button and click the RESET button to wake up the esp. |
@P-R-O-C-H-Y I'm going to remove a device that's been running overnight Of course you're right about restarting and holding the boot button and pressing the reset to force a factoryReset() |
Description of Change
This PR improves Zigbee rejoining process, as the network channel is saved to zb NVRAM, so after device reset the scanning will occur only on the saved channel saving time and energy.
Tests scenarios
Tested using sleepy example and HA. (did not test the actual power consumption, but the reconnection is a lot faster)
Related links
Closes #10746