399 lines
17 KiB
Text
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
|