MeshTalos-Client/managed_components/espressif__esp_rainmaker/Kconfig.projbuild
2025-12-03 14:20:11 +08:00

399 lines
17 KiB
Text

menu "ESP RainMaker Config"
choice ESP_RMAKER_CLAIM_TYPE
bool "Claiming Type"
default ESP_RMAKER_SELF_CLAIM
default ESP_RMAKER_ASSISTED_CLAIM if IDF_TARGET_ESP32
help
Claiming type to be used.
config ESP_RMAKER_NO_CLAIM
bool "Do not use Claiming"
help
Do not use any claiming. The MQTT credentials need to
be pre-programmed for this to work. This should be used
for all private RainMaker deployments.
config ESP_RMAKER_SELF_CLAIM
bool "Use Self Claiming"
depends on !IDF_TARGET_ESP32 && !IDF_TARGET_ESP32C2
help
Use Self Claiming i.e. get the MQTT credentials
directly from the claiming service.
config ESP_RMAKER_ASSISTED_CLAIM
bool "Use Assisted Claiming"
depends on BT_ENABLED && !IDF_TARGET_ESP32S2
help
Use Assisted Claiming i.e. get the MQTT credentials
from the claiming service via assistance from clients,
like the phone apps.
endchoice
choice ESP_RMAKER_CHOOSE_PKI_ACCESS_METHOD
prompt "Choose PKI credentials access method"
default ESP_RMAKER_USE_NVS
help
ESP devices support multiple ways to secure store the PKI credentials.
Currently, NVS and ESP Secure Cert Manager are supported.
The default behaviour is to access the PKI credentials from the NVS.
Consult the ESP-TLS documentation in ESP-IDF Programming guide for more details.
config ESP_RMAKER_USE_ESP_SECURE_CERT_MGR
bool "Use ESP Secure Certificate Manager"
depends on ESP_RMAKER_NO_CLAIM
help
Enable the use of ESP Secure Certificate Manager APIs for the example.
Please refer to ESP Secure Certificate Manager documentation for more details.
config ESP_RMAKER_USE_NVS
bool "Use NVS (default)"
help
This option expects the Private key and Device certificate to be in the NVS.
This is the default behaviour.
endchoice
config ESP_RMAKER_CLAIM_TYPE
int
default 0 if ESP_RMAKER_NO_CLAIM
default 1 if ESP_RMAKER_SELF_CLAIM
default 2 if ESP_RMAKER_ASSISTED_CLAIM
config ESP_RMAKER_CLAIM_SERVICE_BASE_URL
string "ESP RainMaker Claiming Service Base URL"
default "https://esp-claiming.rainmaker.espressif.com"
depends on ESP_RMAKER_SELF_CLAIM
help
ESP RainMaker Claiming Service Base URL.
config ESP_RMAKER_READ_MQTT_HOST_FROM_CONFIG
bool "Read MQTT Host from ESP_RMAKER_MQTT_HOST (Read Docs)"
default n
help
Normally, if self claiming or assisted claiming is used, the MQTT Host is anyways read from
ESP_RMAKER_MQTT_HOST, independent of this config option. However, if this is set, even if
an MQTT host value is found in NVS, it will be overriden with ESP_RMAKER_MQTT_HOST.
config ESP_RMAKER_READ_NODE_ID_FROM_CERT_CN
bool "Read Node ID from Device Certificate"
default n
help
If enabled, the device will get its node id from the device certificate's CN field. If not enabled,
it will read the node id either from nvs factory partition or mac address, depending on the configuration.
config ESP_RMAKER_MQTT_HOST
string "ESP RainMaker MQTT Host"
depends on ESP_RMAKER_SELF_CLAIM || ESP_RMAKER_ASSISTED_CLAIM || ESP_RMAKER_READ_MQTT_HOST_FROM_CONFIG
default "a1p72mufdu6064-ats.iot.us-east-1.amazonaws.com"
help
ESP RainMaker MQTT Host name.
config ESP_RMAKER_MQTT_USE_BASIC_INGEST_TOPICS
bool "Use Basic Ingest Topics"
default y
help
This config enables the use of AWS Basic Ingest Topics for Node to Cloud communication,
which eliminates the MQTT Broker and thus reduces messaging cost.
config ESP_RMAKER_MQTT_ENABLE_BUDGETING
bool "Enable MQTT budgeting"
default y
help
Enable MQTT budgeting, which will control the number of MQTT messages sent by the node.
config ESP_RMAKER_MQTT_DEFAULT_BUDGET
int "Default MQTT Budget"
depends on ESP_RMAKER_MQTT_ENABLE_BUDGETING
default 100
range 64 ESP_RMAKER_MQTT_MAX_BUDGET
help
Default MQTT budget. Budget will reduce on sending an MQTT message and increase based on
ESP_RMAKER_MQTT_BUDGET_REVIVE_PERIOD. If no budget is available, MQTT message will be dropped.
config ESP_RMAKER_MQTT_MAX_BUDGET
int "Max MQTT Budget"
depends on ESP_RMAKER_MQTT_ENABLE_BUDGETING
default 1024
range 64 2048
help
Maximum budget that the node can have. No additional budget will be allocated if this count is reached.
config ESP_RMAKER_MQTT_BUDGET_REVIVE_PERIOD
int "MQTT Budget revive period"
depends on ESP_RMAKER_MQTT_ENABLE_BUDGETING
default 5
range 5 600
help
Period in seconds after which the MQTT budget should revive (by ESP_RMAKER_MQTT_BUDGET_REVIVE_COUNT).
This is used to limit the messages being sent by the node.
config ESP_RMAKER_MQTT_BUDGET_REVIVE_COUNT
int "MQTT Budget revive count"
depends on ESP_RMAKER_MQTT_ENABLE_BUDGETING
default 1
range 1 16
help
The count by which the budget will be increased periodically based on ESP_RMAKER_MQTT_BUDGET_REVIVE_PERIOD.
config ESP_RMAKER_MAX_PARAM_DATA_SIZE
int "Maximum Parameters' data size"
default 1024
range 64 8192
help
Maximum size of the payload for reporting parameter values.
config ESP_RMAKER_DISABLE_USER_MAPPING_PROV
bool "Disable User Mapping during Provisioning"
default n
help
The handlers for User Node Mapping are now registered internally by ESP RainMaker core,
by registering to appropriate Wi-Fi Provisioning events. If your application code also
has the calls to create and register the user mapping handlers, enable this config
option to prevent duplication.
config ESP_RMAKER_USER_ID_CHECK
bool "User id check for User Node mapping"
default n
help
This enables the additional user id checks during user node mapping. Whenever a new user
id is received, it is checked against the existing user id in NVS. If there is a mismatch,
or if no user id exists in NVS, this is considered as a reset state and the same is reported
to the ESP RainMaker Cloud during the User Node association MQTT Publish so that the cloud
can take appropriate action w.r.t user permissions. It is recommended to enable this option
for security reasons.
config RMAKER_NAME_PARAM_CB
bool "Call device callback for Name param"
default n
help
By default, the "Name" parameter (esp.param.name) changes are handled internally. If Applications
want to handle this themselves, this config option can be enabled. Please ensure that you update
and report the name parameter in your callback so that it reflects correctly everywhere.
If no device callback is registered, the name paramater will be handled internally.
config ESP_RMAKER_LOCAL_CTRL_FEATURE_ENABLE
bool "ESP RainMaker Local Control Feature"
default n
#TODO: Enable Local Control for Thread devices
depends on ESP_RMAKER_NETWORK_OVER_WIFI
select ESP_HTTPS_SERVER_ENABLE
help
Enabling this allows to discover and control the node over local Wi-Fi network.
Note that this uses only Wi-Fi level security and so, any client on the same
Wi-Fi network can potentially control the node. The communication is not encrypted
and uses plain HTTP. Please Check the RainMaker documentation for additional details.
Note that enabling this just means that the APIs to enable/disable local
control will be compiled in and can be used in application code. If CONFIG_ESP_RMAKER_LOCAL_CTRL_AUTO_ENABLE
is also enabled, then no additional APIs are required for actually enabling local control.
config ESP_RMAKER_LOCAL_CTRL_AUTO_ENABLE
bool "Auto ESP RainMaker Local Control"
default n
depends on ESP_RMAKER_NETWORK_OVER_WIFI
select ESP_RMAKER_LOCAL_CTRL_FEATURE_ENABLE
help
Automatically enabled local control when RainMaker starts.
config ESP_RMAKER_LOCAL_CTRL_HTTP_PORT
int "Local Control HTTP Port"
depends on ESP_RMAKER_LOCAL_CTRL_FEATURE_ENABLE
default 8080
help
The port number to be used for http for local control.
config ESP_RMAKER_LOCAL_CTRL_STACK_SIZE
int "Local Control HTTP Server task stack size"
depends on ESP_RMAKER_LOCAL_CTRL_FEATURE_ENABLE
default 6144
help
The task stack size to be used for http server for local control.
choice ESP_RMAKER_LOCAL_CTRL_SECURITY
prompt "Local Control Security Type"
depends on ESP_RMAKER_LOCAL_CTRL_FEATURE_ENABLE
default ESP_RMAKER_LOCAL_CTRL_SECURITY_1
help
Security type to be selected for local control.
config ESP_RMAKER_LOCAL_CTRL_SECURITY_0
bool "sec0"
config ESP_RMAKER_LOCAL_CTRL_SECURITY_1
bool "sec1"
endchoice
config ESP_RMAKER_LOCAL_CTRL_SECURITY
int
default 0 if ESP_RMAKER_LOCAL_CTRL_SECURITY_0
default 1 if ESP_RMAKER_LOCAL_CTRL_SECURITY_1
choice ESP_RMAKER_CONSOLE_UART_NUM
prompt "UART for console input"
default ESP_RMAKER_CONSOLE_UART_NUM_0
help
UART to be selected for serial console.
config ESP_RMAKER_CONSOLE_UART_NUM_0
bool "UART0"
config ESP_RMAKER_CONSOLE_UART_NUM_1
bool "UART1"
endchoice
config ESP_RMAKER_CONSOLE_UART_NUM
int
default 0 if ESP_RMAKER_CONSOLE_UART_NUM_0
default 1 if ESP_RMAKER_CONSOLE_UART_NUM_1
config ESP_RMAKER_USE_CERT_BUNDLE
bool "Use Certificate Bundle"
default y
select ESP_RMAKER_MQTT_USE_CERT_BUNDLE
help
Use Certificate Bundle for server authentication. Enabling this is recommended to safeguard
against any changes in the server certificates in future. This has an impact on the binary
size as well as heap requirement.
menu "ESP RainMaker OTA Config"
config ESP_RMAKER_OTA_AUTOFETCH
bool "Auto Fetch OTA"
default y
help
Applicable only for OTA using Topics.
Fetch the OTA (i.e. get the URL and other details) by actively sending an
OTA fetch request to ESP RainMaker Cloud. If this is disabled, the node
will stay subscribed to the OTA Topics, but will get the information only
if someone explicitly triggers it.
config ESP_RMAKER_OTA_AUTOFETCH_PERIOD
int "OTA Auto Fetch Period"
default 0
range 0 168
depends on ESP_RMAKER_OTA_AUTOFETCH
help
Periodically send an OTA fetch request. If set to 0, the request will be sent only once,
when the node connects to the ESP RainMaker Cloud first time after a boot.
Else, this defines the period (in hours) for the periodic fetch request.
config ESP_RMAKER_SKIP_COMMON_NAME_CHECK
bool "Skip server certificate CN field check"
default n
help
This allows you to skip the validation of OTA server certificate CN field.
config ESP_RMAKER_SKIP_VERSION_CHECK
bool "Skip firmware version check"
default n
help
This allows you to skip the firmware version check. Useful during development,
but not for production.
config ESP_RMAKER_SKIP_SECURE_VERSION_CHECK
bool "Skip secure version check"
default n
help
This allows you to skip the secure version check. Useful during development,
but not for production. Check out ESP IDF's Anti-rollback feature for more details.
config ESP_RMAKER_SKIP_PROJECT_NAME_CHECK
bool "Skip project name check"
default n
help
This allows you to skip the project name check.
config ESP_RMAKER_OTA_HTTP_RX_BUFFER_SIZE
int "OTA HTTP receive buffer size"
default 1024
range 512 LWIP_TCP_WND_DEFAULT
help
Increasing this value beyond the default would speed up the OTA download process.
However, please ensure that your application has enough memory headroom to allow this,
else, the OTA may fail.
config ESP_RMAKER_OTA_ROLLBACK_WAIT_PERIOD
int "OTA Rollback Wait Period (Seconds)"
default 90
range 30 600
help
After an OTA Update, if CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is set, then the firmware will wait for MQTT
connection to mark the new firmware as valid. However, if it is not able to do so within
this wait period (in seconds), the firmware will be marked as invalid and the older
firmware will be booted into.
config ESP_RMAKER_OTA_DISABLE_AUTO_REBOOT
bool "Disable auto reboot"
default n
help
After OTA image is flashed and active partition changed, the device automatically reboots. To disable this
behaviour and handle reboot on your own, based on RMAKER_OTA event, enable this option.
config ESP_RMAKER_OTA_TIME_SUPPORT
bool "Enable OTA Time Support"
default y
help
OTA Jobs can include additional metadata for time to indicate a range of valid date and the time within
those dates. Eg. Perform OTA between 1 Dec 2022 and 10 Dec 2022 that too only between 2:00am and 5:00am.
If you want to ignore this, disable this option.
endmenu
menu "ESP RainMaker Scheduling"
config ESP_RMAKER_SCHEDULING_MAX_SCHEDULES
int "Maximum schedules"
default 10
range 1 50
help
Maximum Number of schedules allowed. The json size for report params increases as the number of schedules increases.
endmenu
menu "ESP RainMaker Scenes"
config ESP_RMAKER_SCENES_MAX_SCENES
int "Maximum scenes"
default 10
range 1 50
help
Maximum Number of scenes allowed. The json size for report params increases as the number of scenes increases.
config ESP_RMAKER_SCENES_DEACTIVATE_SUPPORT
bool "Enable Deactivate support"
default n
help
This enables the deactivate callback support. The application callback will be invoked with the source
set to ESP_RMAKER_REQ_SRC_SCENE_DEACTIVATE when the deactivate operation is received. However, the
param values would be the same as those for activate, since the RainMaker core does not know what the
expected values are for scene deactivation.
endmenu
menu "ESP RainMaker Command-Response"
config ESP_RMAKER_CMD_RESP_ENABLE
bool "Enable Command-Response Module"
default y
help
Enable the ESP RainMaker Command-Response module for semi-synchronous communication. Please refer the RainMaker documents
for additional information.
config ESP_RMAKER_CMD_RESP_TEST_ENABLE
bool "Enable Command-Response Testing"
default n
depends on ESP_RMAKER_CMD_RESP_ENABLE
help
Enable testing for Command-Response module. This enables triggering commands and parsing response from the node itself,
rather than receiving the commands from cloud. C API or the serial console can be used to trigger the commands.
This should be enabled only while testing commands, but should always be disabled in production firmware.
endmenu
config ESP_RMAKER_USING_NETWORK_PROV
bool "Using Network Provisioning"
default y
help
RainMaker will use network_provisioning component to provision a device to a Wi-Fi/Thread network if enabling this option.
If the option is not enabled, it will use wifi_provisioning instead. This option only works when IDF verson is later than
v5.1.
endmenu