820 Commits

Author SHA1 Message Date
Piyush Shah
c796bb1763 Merge branch 'task/ota-reject' into 'master'
Add option to report 'failed' status on OTA rollback due to MQTT timeout

See merge request app-frameworks/esp-rainmaker!620
v1.9.0
2026-01-12 13:15:07 +05:30
Piyush Shah
42aeaf0a69 Add option to report 'failed' status on OTA rollback due to MQTT timeout
When CONFIG_ESP_RMAKER_OTA_ROLLBACK_REPORT_FAILED is enabled, rolled-back
firmware reports 'failed' instead of 'rejected' when rollback occurs due
to MQTT connection timeout. Ensures backward compatibility by preventing
older firmware from reporting incorrect status.
2026-01-12 12:31:08 +05:30
Piyush Shah
7d8d8a562b Merge branch 'task/on-network-mapping' into 'master'
feat(rmaker): Add on-network challenge-response service for user-node mapping

See merge request app-frameworks/esp-rainmaker!616
v1.8.9
2026-01-09 12:45:46 +05:30
Piyush Shah
bfa60ea158 rmaker_app_network: Expose the API to read the configured PoP 2026-01-08 19:06:26 +05:30
Piyush Shah
45cbeb4844 ch_resp: Add enable/disable console command
Useful while testing on-network challenge-response based user node
mapping, either via standalone protocomm service or via local control.
Appropriate function gets called based on the Kconfig options selected.
2026-01-08 19:06:26 +05:30
Piyush Shah
8ae0a34001 feat(rmaker): Add on-network challenge-response service for user-node mapping
This feature is intended for mapping already-provisioned nodes to user
accounts without re-provisioning.

Common features (both implementations):
- mDNS service: _esp_rmaker_chal_resp._tcp
- TXT records: node_id, port, sec_version, pop_required
- Optional instance name support (NULL uses node_id as default)
- Supports Security 0, 1 (with/without PoP), and 2 (SRP6a)
- Both use the same mDNS service type, simplifying CLI discovery

1. Standalone HTTP protocomm based challenge-response service.

   - Config: CONFIG_ESP_RMAKER_ON_NETWORK_CHAL_RESP_ENABLE
   - Endpoint: ch_resp (on protocomm HTTP server, default port 80)
   - Instance name via config.mdns_instance_name

   APIs:
   - esp_rmaker_on_network_chal_resp_start()
   - esp_rmaker_on_network_chal_resp_stop()
   - esp_rmaker_on_network_chal_resp_is_running()

   Note: Mutually exclusive with Local Control

2. Challenge-response support on local control.

   - Config: CONFIG_ESP_RMAKER_LOCAL_CTRL_CHAL_RESP_ENABLE
   - Endpoint: ch_resp (via esp_local_ctrl_set_handler)
   - Instance name via parameter to enable function

   APIs:
   - esp_rmaker_local_ctrl_enable_chal_resp(instance_name)
   - esp_rmaker_local_ctrl_disable_chal_resp()

3. CLI and console improvements.

   - CLI simplified to discover only _esp_rmaker_chal_resp._tcp service
   - Console command supports optional instance name: chal-resp-enable [instance_name]
   - Device discovery output shows instance name column

Clients can choose to disable the challenge-response endpoint after
usage to avoid potential misuse by other entities on the network.

commit
2026-01-08 19:05:35 +05:30
Piyush Shah
afc48168f4 Merge branch 'fix/fix_ecdsa_auth_crash' into 'master'
Bugfix: Fix ecdsa auth crash issue

See merge request app-frameworks/esp-rainmaker!618
v1.8.8
2026-01-08 16:36:48 +05:30
Piyush Shah
6e48420b70 Merge branch 'ci/pin_idf_image' into 'master'
CI: pin IDF v5.5 release on v5.5.1 for camera examples

See merge request app-frameworks/esp-rainmaker!622
2026-01-08 16:36:32 +05:30
Jim
1cba377a78 fix(chal_resp): Fix crash issue when use ECDSA to sign the data 2026-01-08 18:00:30 +08:00
Jim
a64b18e48e fix(ota): Fix OTA progress incorrect when trigger OTA resumption 2026-01-08 18:00:30 +08:00
Vikram Dattu
2f9a5e5353 CI: pin IDF v5.5 release on v5.5.1 for camera examples
- Latest commits on release branch may break our camera example builds
 - We can keep updating the tags once in a while instead of using release branches
 - Done only for release/v5.5 images of camera example builds
2026-01-08 15:21:11 +05:30
Piyush Shah
b2a24ca7d2 Merge branch 'bugfix/claiming' into 'master'
claim: Fixes for assisted claiming

See merge request app-frameworks/esp-rainmaker!608
v1.8.7
2025-12-22 21:53:03 +05:30
Piyush Shah
d70a00a54e claim: Fixes for assisted claiming
If assisted claiming was already performed before calling
esp_rmaker_start(), the firmware was stalling with an incorrect print
saying that the Node connected to network without claiming.

This gets handled correctly now.
2025-12-22 20:40:19 +05:30
Piyush Shah
aa59008cbf esp_rmaker_mqtt: Change some log prints from "Info" to "Debug"
Since they aren't really required to be shown by default.
2025-12-22 18:55:54 +05:30
Piyush Shah
c1e30169fa Merge branch 'task/group-topics' into 'master'
esp_rmaker_groups: Add handling for group ids for direct MQTT messaging

See merge request app-frameworks/esp-rainmaker!607
v1.8.6
2025-12-22 18:37:35 +05:30
Piyush Shah
a60204bb16 led_light: Enable groups handling support for a PoC
Also includes logic for dummy direct MQTT publish
2025-12-22 17:00:42 +05:30
Piyush Shah
7e2ee79b20 esp_rmaker_groups: Add handling for group ids for direct MQTT messaging
This change allows adding a RainMaker service on which phone apps can
set id of the parent group (group_id) in which the node is added.

Once set, all local params will be reported on
node/<node_id>/params/local/<group_id> instead of node/<node_id>/params/local/

Additionally, application code can use the esp_rmaker_publish_direct()
API to publish any message on node/<node_id>/direct/params/local/<group_id>

Phone apps can subscribe to these topics to get these messages directly
from the MQTT broker

node/+/params/local/<group_id>
node/+/direct/params/local/<group_id>

For local params update, this change just helps to improve the latency
of param reporting.

The direct reporting allows to bypass the cloud side processing to send
messages directly to phone apps at very low cost

Phone apps can also publish param updates directly to node/<node_id>/params/remote/<group_id>
instead of using the set params API.
2025-12-22 17:00:42 +05:30
Piyush Shah
c1089bd7cd Merge branch 'task/default-claim' into 'master'
esp_rainmaker: Make Assisted Claiming and Challenge-Response as defaults

See merge request app-frameworks/esp-rainmaker!603
v1.8.5
2025-12-22 16:58:20 +05:30
Piyush Shah
61c860b68e gitlab-ci: Add a separate job for HomeKit examples 2025-12-22 15:37:06 +05:30
Piyush Shah
23123e3a2d esp32c5: Added default config for binary size optimisation
And also make esp32c5 part of standard esp-idf release/v5.5 CI builds
2025-12-19 23:52:32 +05:30
Piyush Shah
407f2e502d console: Add a command to clear claim data
This can help developers to
- Test claiming repeatedly
- Move between China and Global deployments during development and
  testing
2025-12-19 20:49:40 +05:30
Piyush Shah
ead1e9350e esp_rainmaker: Make Assisted Claiming and Challenge-Response as defaults
- Assisted claiming is now the default so that the same firmware can
  work with global as well as China RainMaker deployment.
- Challenge-Response based user-node mapping is now the default because
  it is recommended workflow as it is faster and prevents sending Wi-Fi
  credentials to invalid devices
2025-12-19 20:48:42 +05:30
Piyush Shah
191dafcf0b Merge branch 'bugfix/prov-retry' into 'master'
rmaker_app_network: Better handling of provisioning failures

See merge request app-frameworks/esp-rainmaker!606
2025-12-17 15:46:18 +05:30
Piyush Shah
9474b2e08c rmaker_app_network: Better handling of provisioning failures
Remove the retry logic for Wi-Fi disconnected events while in
provisioning mode because it is handled internally by the
network_provisioning component. Now, depending on the Kconfig options,
the firmeare will try Wi-Fi connection one or more time and then stop.
Phone apps can reset the state and retry provisioning on the same
session.

Also, reduced the default connection retry count from 5 to 3 so that
users would have to wait for lesser time for retrying
2025-12-16 16:29:31 +05:30
Piyush Shah
7f7ee654fe Merge branch 'feature/add_rainmaker_controller_type' into 'master'
feat(controller): Add RainMaker controller type

See merge request app-frameworks/esp-rainmaker!593
v1.8.4
2025-12-16 15:35:25 +05:30
Jim
309dafb7ae feat(controller): Add RainMaker controller type 2025-12-16 14:52:46 +08:00
Piyush Shah
1b1c9d770f Merge branch 'task/app_network_async_connection' into 'master'
rmaker_app_network: Support asynchronous network connection and add MFG device type and subtype for AI Agent

See merge request app-frameworks/esp-rainmaker!604
2025-12-15 22:52:36 +05:30
Piyush Shah
e34d5f9ecd Merge branch 'bugfix/github-actions' into 'master'
launchpad: Update the esp-idf image versions

See merge request app-frameworks/esp-rainmaker!605
2025-12-12 20:37:47 +05:30
Piyush Shah
d82cd16805 launchpad: Update the esp-idf image versions 2025-12-12 19:24:32 +05:30
Piyush Shah
094cf59262 Merge branch 'feature/camera_device' into 'master'
ESP RainMaker Camera Examples

See merge request app-frameworks/esp-rainmaker!585
v1.8.3
2025-12-12 16:48:40 +05:30
Piyush Shah
e08d6e81d4 Merge branch 'support/camera_claim' into 'master'
Support camera device claim (self and assisted)

See merge request app-frameworks/esp-rainmaker!602
2025-12-12 16:47:04 +05:30
Shreyash Bubane
963729bda7 rmaker_app_network: update component version 2025-12-11 12:16:11 +05:30
Shreyash Bubane
51b310458d rmaker_app_network: add MFG data for AI Agent 2025-12-11 12:16:11 +05:30
Shreyash Bubane
d02b2f4d0f rmaker_app_network: added menuconfig to control app_network_start() return behaviour 2025-12-11 12:16:11 +05:30
Vikram Dattu
ce0a826f0e Use rmaker_work_q to fetch credentials to avoid SPIRAM issues
- Tasks running SPIRAM when do flash access crash with cache issues
 - WebRTC task which calls fetch credential is in SPIRAM
 - Made fetch credential API safe by moving the execution to internal rmaker_work_q
2025-12-10 19:50:39 +05:30
Vikram Dattu
2da566488a CI: build camera examples for IDF version 5.5
- Build camera examples on IDF release/v5.5 for applicable targets
 - Also updated the rainmaker component version
 - Updated mdns component version to from 1.2.0 --> ^1.9.0
2025-12-10 19:50:39 +05:30
Vikram Dattu
21a7351e6c Added KVS WebRTC camera example
- Example uses `esp_rmaker_get_aws_security_token` internally to get the token
 - The credential callback is registered with webrtc SDK which it can call
 - webrtc SDK uses NVS to cache the signaling info internally
2025-12-10 19:50:39 +05:30
Vikram Dattu
a434a58ebc Support for camera devices for assisted and self claiming
- Updated the RainMaker component version from 1.8.1 to 1.8.2
2025-12-09 14:42:52 +05:30
Vikram Dattu
a5825e5e80 Move rainmaker register commands publically
- One can chose to use just the register command API while doing console init separate
2025-12-09 14:37:35 +05:30
Piyush Shah
a3b153a48b Merge branch 'task/info-readme' into 'master'
node_info: Add an optional field "readme" in node info

See merge request app-frameworks/esp-rainmaker!601
v1.8.1
2025-12-08 18:13:55 +05:30
Piyush Shah
85937bae83 led_light: Include a readme pointer that the apps can fetch and render from 2025-12-08 12:43:49 +05:30
Piyush Shah
b442dfcf3c node_info: Add an optional field "readme" in node info
This can point to some README url that the phone apps can fetch and show
at appropriate places.
2025-12-08 12:43:45 +05:30
Piyush Shah
cf3d30cb31 Merge branch 'rmaker/decouple_rcp_update' into 'master'
esp_rainmaker: decouple esp_rcp_update from esp_rainmaker

See merge request app-frameworks/esp-rainmaker!600
v1.8.0
2025-12-08 01:56:44 +05:30
Wang Qixiang
209087c7a5 esp_rainmaker: decouple esp_rcp_update from esp_rainmaker 2025-12-08 01:56:43 +05:30
Piyush Shah
bf99e8d8f5 Merge branch 'bugfix/homekit_switch' into 'master'
homekit_switch: rmaker_app_network was getting used instead of custom app_network

See merge request app-frameworks/esp-rainmaker!591
2025-11-15 09:03:52 +05:30
Piyush Shah
da577d7cb4 homekit_switch: rmaker_app_network was getting used instead of custom app_network
HomeKit has its own logic for network provisioning, including support
for Apple WAC and so, uses its own app_network component.
Recent restructuring pulled in the common rmaker_app_network component
instead.
2025-11-14 19:34:37 +05:30
Piyush Shah
e70ad69f0a Merge branch 'task/common_components' into 'master'
common: Prepare common example components for component registry

See merge request app-frameworks/esp-rainmaker!588
2025-11-14 17:57:17 +05:30
Piyush Shah
da838cbf13 rmaker_common: Remove the submodule and its references 2025-11-13 09:42:38 +05:30
Piyush Shah
8a816fc6c3 examples: Update the names for the common example components 2025-11-13 09:42:38 +05:30
Piyush Shah
d91538695d examples/common: Prepare common example components for component registry 2025-11-13 00:03:13 +05:30