Initial commit.
Some checks failed
Sync remain PRs to Jira / Sync PRs to Jira (push) Has been cancelled
Some checks failed
Sync remain PRs to Jira / Sync PRs to Jira (push) Has been cancelled
This commit is contained in:
396
components/esp_rainmaker/Kconfig.projbuild
Normal file
396
components/esp_rainmaker/Kconfig.projbuild
Normal file
@@ -0,0 +1,396 @@
|
||||
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
|
||||
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
|
||||
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
|
||||
Reference in New Issue
Block a user