Commit Graph

808 Commits

Author SHA1 Message Date
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
Piyush Shah
f0e70ffd64 Merge branch 'task/cli-params' into 'master'
rmaker_console: Add set-param, update-param and get-param commands

See merge request app-frameworks/esp-rainmaker!583
v1.7.9
2025-11-12 23:17:44 +05:30
Piyush Shah
2de5cd5a56 examples: Enable parameter console commands in some examples 2025-11-12 20:50:06 +05:30
Piyush Shah
33d60a567b rmaker_console: Add set-param, update-param and get-param commands
- Add set-param command to set device parameter values, invoke respective callbacks and report to cloud
  Usage: set-param <device_name> <param_name> <value>
- Add update-param command to just report param value to cloud, without invoking callbacks
  Usage: update-param <device_name> <param_name> <value>
- Add get-param command to get device parameter values
  Usage: get-param <device_name> <param_name>
- Support all parameter types: boolean, integer, float, string

This enables easy interaction with ESP RainMaker devices through console interface.
2025-11-12 20:50:06 +05:30
Piyush Shah
9e4d1a683e esp_rmaker_params: Add "Firmware" as a new request source for set-params
Useful for identifying set params triggered from the firmware itself,
like from the CLI
2025-11-12 20:50:06 +05:30
Piyush Shah
df092ad76b Merge branch 'task/led-light' into 'master'
examples: Remove dependency on ws2812 and ledc components

See merge request app-frameworks/esp-rainmaker!587
2025-11-12 20:26:44 +05:30
Piyush Shah
b6d12121d7 Merge branch 'task/wifi-prov-retries' into 'master'
app_network: Use new wifi retry count field for better resilience in poor network conditions

See merge request app-frameworks/esp-rainmaker!590
v1.7.8
2025-11-12 18:08:19 +05:30
Piyush Shah
7dedfad9f7 app_network: Use new wifi retry count field for better resilience in poor network conditions
If network connection fails even once, the firmware reports so to
clients (like phone apps) and the clients declare failure and abort
immediately, even if the firmware eventually connects. With this
change, a failure will be reported only after a few retries (whise
number is configurable)
2025-11-12 17:01:19 +05:30
Piyush Shah
4820d8d83f esp_rainmaker: Make version dependency for network_provisioning more flexible 2025-11-12 17:01:19 +05:30
Piyush Shah
a640b220de examples: Remove dependency on ws2812 and ledc components
- Use led_indicator component from component manager for ws2812 and RGB
  LEDs
- Add other components from examples/common via idf_component.yml
  instead of adding as EXTRA_COMPONENT_DIRS in CMakeLists.txt
2025-11-11 19:56:43 +05:30
Piyush Shah
c18a11fe6a Merge branch 'feature/aws_credential_api' into 'master'
Added AWS credential provider APIs

See merge request app-frameworks/esp-rainmaker!567
v1.7.7
2025-11-11 18:43:11 +05:30
Piyush Shah
62297229bc Merge branch 'task/esp_schedule_migration' into 'master'
esp_schedule: migration to idf-extra-components

See merge request app-frameworks/esp-rainmaker!589
2025-11-04 21:37:47 +05:30
Junius Pun
925b69f959 esp_schedule: migration to idf-extra-components 2025-11-04 21:37:47 +05:30