-
Notifications
You must be signed in to change notification settings - Fork 24
feat(provisioning): Add new Provisioning component #588
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
Conversation
|
✅Static analysis result - no issues found! ✅ |
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.
Pull request overview
Adds a new Provisioning component and example that implement web-based WiFi provisioning over an embedded HTTP server (AP + STA scanning/connection test), along with supporting documentation and build configuration.
Changes:
- Introduces
espp::Provisioningcomponent (HTTP server + HTML UI) with scan/connect/complete endpoints and basic credential persistence. - Adds a provisioning example project (CMake, partitions, sdkconfig defaults, Kconfig, README).
- Adds component metadata/manifests and README documentation for the new component.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 20 comments.
Show a summary per file
| File | Description |
|---|---|
| components/provisioning/src/provisioning.cpp | Implements HTTP server handlers, web UI generation, WiFi scan/connect test flow, and NVS-based saved-network storage. |
| components/provisioning/include/provisioning.hpp | Declares the Provisioning API/config and handler/helper methods. |
| components/provisioning/idf_component.yml | Component-manager manifest for the new component. |
| components/provisioning/CMakeLists.txt | Build registration for the new component. |
| components/provisioning/README.md | Component usage documentation and example snippet. |
| components/provisioning/example/CMakeLists.txt | Example project build configuration. |
| components/provisioning/example/README.md | Example usage documentation and configuration guidance. |
| components/provisioning/example/sdkconfig.defaults | Default sdkconfig settings for the example build. |
| components/provisioning/example/partitions.csv | Partition table for the example (NVS + factory app). |
| components/provisioning/example/main/CMakeLists.txt | Example main component build configuration. |
| components/provisioning/example/main/Kconfig.projbuild | Adds menuconfig options for the example. |
| components/provisioning/example/main/provisioning_example.cpp | Example app demonstrating provisioning flow and saving credentials. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
…le connected and scanning from start. update wifi example to better test these cases and to print test summary
…y show up and work well in the html interface
Description
Provisioningcomponent example that demonstrates WiFi provisioning using the HTTP server method with both AP and STA modes.Motivation and Context
WiFi provisioning is a common requirement for IoT devices. This example demonstrates how to implement WiFi provisioning using the HTTP server method, allowing users to easily connect their devices to a WiFi network.
Additionally, better support for scanning -> connect the STA to one of the found remote APs streamlines the process for both provisioning as well as programmatic execution.
How has this been tested?
provisioning/exampleon QtPy ESP32-S3 board and ensured that the device can be provisioned to connect to a WiFi network using the HTTP server method.wifi/exampleon QtPy ESP32-S3 board and ensured that the tests all passed (using the new summary for clarity)Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):
Provisioning
Scanning for network and connecting:
Managing saved networks:
Wifi
Types of changes
Checklist:
Software
.github/workflows/build.ymlfile to add my new test to the automated cloud build github action.