Skip to main content

Feature overview

Not everything in the SDK needs to be switched on. Some features are always there, some need one function call, and some need a Kconfig option plus a component link. This page is the map.

What you get without asking

These come up inside esp_rmaker_node_init() and esp_rmaker_start(). There is no enable call and no option to turn them off.

FeatureNotes
MQTT connection managementX.509 mutual TLS to AWS IoT Core, reconnect, subscription state, retry with backoff
Node configuration reportingPublished on start, but only when its checksum changed
State reportingCoalesced parameter reports, shadow updates, online/offline state
SchedulesFull schedule service, persisted in NVS
Automation triggersParameter-threshold triggers evaluated on every update
Parameter persistenceFor parameters flagged PROP_FLAG_PERSIST
Assisted claimingESP-IDF with BLE enabled — the node obtains its own cloud credentials at first setup

Schedules and automations need no enable call — those services are always present.

Scenes

Scenes are not implemented in the RainMaker Neo node firmware yet. The request-source values ESP_RMAKER_REQ_SRC_SCENE_ACTIVATE / _DEACTIVATE and the esp.service.scenes / esp.param.scenes type strings are reserved for when they are. Do not build against them.

One function call

Call these after esp_rmaker_node_init() and before esp_rmaker_start().

FeatureCallGuide
Time synchronisationesp_rmaker_config_t.enable_time_sync = trueTime and timezone
Timezone serviceesp_rmaker_timezone_service_enable()Time and timezone
System serviceesp_rmaker_system_service_enable(&cfg)System service
Local controlesp_rmaker_local_ctrl_service_enable()Local control
On-network challenge-responseesp_rmaker_on_network_chal_resp_start(&cfg)Local control
Serial consoleesp_rmaker_console_init()Serial console
OTA updatesesp_rmaker_ota_enable(&cfg) — also link esp_rmaker_neo_otaOTA firmware updates

Parameter flags only

FeatureHowGuide
Time series dataPROP_FLAG_TIME_SERIES or PROP_FLAG_TS_CUMULATIVE on the parameterTime series data
Fleet-searchable valuesPROP_FLAG_INDEXEDData model
Reboot-safe valuesPROP_FLAG_PERSISTData model

Kconfig-gated

These change what gets compiled, so they need a rebuild.

FeatureOptionDefaultGuide
Bridge nodesCONFIG_RMNG_BRIDGE_ENABLEDnBridge nodes
Remote (host) controlCONFIG_RMNG_HOST_CTRLnConfigure and build
Heap monitoringCONFIG_RMNG_HEAP_MONITORINGn
Custom MQTT clientCONFIG_RMNG_CUSTOM_MQTT_CLIENT_PROVIDERn
OTA signature verificationCONFIG_RMNG_OTA_SIGNATURE_VERIFY_ENABLEnOTA firmware updates
OTA custom job documentsCONFIG_RMNG_OTA_CUSTOM_JOB_SUPPORTnOTA firmware updates

Mutually exclusive choices

A few features cannot coexist. The Kconfig dependencies enforce these, but it is easier to plan around them than to discover them at build time.

These conflictWhyWhat to do
Local control vs on-network challenge-responseBoth use protocomm_httpd, which is a singletonPick one. Local control is the usual choice; it can host the challenge-response endpoint itself via CONFIG_ESP_RMAKER_LOCAL_CTRL_CHAL_RESP_ENABLE.
Either of the above vs active Wi-Fi provisioningSame protocomm_httpd singletonEnable them after provisioning completes — which is what the standard startup order already does
Serial console vs remote control on UART0Both multiplex UART0Move the console to USB Serial/JTAG, or disable one
MQTT budgeting vs OTAAn OTA download shares the MQTT connection and would exhaust the budgetKconfig defaults budgeting to n when esp_rmaker_neo_ota selects its transport
MQTT budgeting vs bridgeBridged children exhaust the budgetKconfig defaults budgeting to n when the bridge is enabled

Cloud-side features that need nothing from firmware

Several product features are implemented entirely in the cloud or the app. Your node does not need code for them — but the data model has to be right, which is where firmware comes in.

FeatureWhat firmware must do
Groups and subgroupsNothing. The SDK handles group info and shadow migration.
Node sharingNothing.
Voice assistants (Alexa, Google)Use standard device and parameter types and assign a primary parameter.
Automations across nodesNothing — cloud-evaluated. On-node parameter triggers are separate and are built in.
NotificationsNothing. Cloud-side, driven off state changes.
Time series queries and aggregationSet the timeseries flags; the cloud does the rest.

See Product overview → Features for the product-level view of each.