mirror of
https://github.com/espressif/esp-matter.git
synced 2026-04-27 19:13:13 +00:00
c466b7ce81
Skip the Network Commissioning cluster on the root node when CONFIG_CUSTOM_NETWORK_CONFIG is enabled, per Matter spec condition (!CustomNetworkConfig). This allows devices with out-of-band network configuration (rich UI, manufacturer-specific means) to omit the cluster as the spec permits. - Add CONFIG_CUSTOM_NETWORK_CONFIG Kconfig option - Conditionally skip network_commissioning in root_node config/add - Exclude integration.cpp from build when custom config enabled - Add weak stubs for Plugin callbacks as fallback - Also guarded secondary network device type and all the attributes and commands that are part of network commissioning cluster
270 lines
10 KiB
Plaintext
270 lines
10 KiB
Plaintext
menu "ESP Matter"
|
|
|
|
config ESP_MATTER_MAX_DEVICE_TYPE_COUNT
|
|
int "Maximum device types per endpoint"
|
|
range 1 255
|
|
default 16
|
|
help
|
|
The maximum device type count supported per endpoint.
|
|
|
|
config ESP_MATTER_ATTRIBUTE_BUFFER_LARGEST
|
|
int "Largest attribute buffer size"
|
|
default 259
|
|
help
|
|
The Largest attribute size required for various attributes, the buffer will be used
|
|
for reading or writing attributes.
|
|
|
|
config ESP_MATTER_NVS_PART_NAME
|
|
string "ESP Matter NVS partition name"
|
|
default "nvs"
|
|
help
|
|
The NVS Partition name for ESP Matter to store the NONVOLATILE attributes
|
|
|
|
config ESP_MATTER_DEFERRED_ATTR_PERSISTENCE_TIME_MS
|
|
int "ESP Matter deferred attribute persistence time (ms)"
|
|
default 3000
|
|
help
|
|
Some non-volatile attributes might be changed frequently, which might result in rapid flash wearout.
|
|
For those attributes, set the flag 'ATTRIBUTE_FLAG_DEFERRED' to defer the flash-writing for the time.
|
|
|
|
choice ESP_MATTER_DAC_PROVIDER
|
|
prompt "DAC Provider options"
|
|
default FACTORY_PARTITION_DAC_PROVIDER if ENABLE_ESP32_FACTORY_DATA_PROVIDER
|
|
default EXAMPLE_DAC_PROVIDER if !ENABLE_ESP32_FACTORY_DATA_PROVIDER
|
|
help
|
|
This option determines which attestation credentials provider will be used.
|
|
|
|
config EXAMPLE_DAC_PROVIDER
|
|
bool "Attestation - Test"
|
|
help
|
|
An example DAC Provider which provides test attestation information
|
|
|
|
config FACTORY_PARTITION_DAC_PROVIDER
|
|
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER
|
|
bool "Attestation - Factory"
|
|
help
|
|
An implementation which reads attestation information from the factory partition
|
|
|
|
config SEC_CERT_DAC_PROVIDER
|
|
bool "Attestation - Secure Cert"
|
|
help
|
|
An implementation which reads attestation information from the esp_secure_cert partition
|
|
|
|
config CUSTOM_DAC_PROVIDER
|
|
bool "Attestation - Custom"
|
|
help
|
|
A custom implementation of DAC provider
|
|
|
|
endchoice
|
|
|
|
choice ESP_MATTER_COMMISSIONABLE_DATA_PROVIDER
|
|
prompt "Commissionable Data Provider options"
|
|
default FACTORY_COMMISSIONABLE_DATA_PROVIDER if ENABLE_ESP32_FACTORY_DATA_PROVIDER
|
|
default EXAMPLE_COMMISSIONABLE_DATA_PROVIDER if !ENABLE_ESP32_FACTORY_DATA_PROVIDER
|
|
help
|
|
This option determines which commissionable data provider will be used.
|
|
|
|
config EXAMPLE_COMMISSIONABLE_DATA_PROVIDER
|
|
bool "Commissionable Data - Test"
|
|
depends on !ENABLE_ESP32_FACTORY_DATA_PROVIDER
|
|
help
|
|
An example Commissionable Data Provider which provides commissionable data information
|
|
|
|
config FACTORY_COMMISSIONABLE_DATA_PROVIDER
|
|
bool "Commissionable Data - Factory"
|
|
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER
|
|
help
|
|
An implementation which reads commissionable data information from the factory partition
|
|
|
|
config SEC_CERT_COMMISSIONABLE_DATA_PROVIDER
|
|
bool "Commissionable Data - Secure Cert"
|
|
help
|
|
An implementation which reads commissionable data information from the esp_secure_cert partition
|
|
|
|
config CUSTOM_COMMISSIONABLE_DATA_PROVIDER
|
|
bool "Commissionable Data - Custom"
|
|
help
|
|
A custom implementation of Commissionable Data provider
|
|
|
|
endchoice
|
|
|
|
choice ESP_MATTER_DEVICE_INSTANCE_INFO_PROVIDER
|
|
prompt "Device Instance Info Provider options"
|
|
default FACTORY_DEVICE_INSTANCE_INFO_PROVIDER if ENABLE_ESP32_DEVICE_INSTANCE_INFO_PROVIDER
|
|
default EXAMPLE_DEVICE_INSTANCE_INFO_PROVIDER if !ENABLE_ESP32_DEVICE_INSTANCE_INFO_PROVIDER
|
|
help
|
|
This option determines which device instance info provider will be used.
|
|
|
|
config EXAMPLE_DEVICE_INSTANCE_INFO_PROVIDER
|
|
bool "Device Instance Info - Test"
|
|
help
|
|
An example Device Instance Info Provider which provides device instance information
|
|
|
|
config FACTORY_DEVICE_INSTANCE_INFO_PROVIDER
|
|
bool "Device Instance Info - Factory"
|
|
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER && ENABLE_ESP32_DEVICE_INSTANCE_INFO_PROVIDER
|
|
help
|
|
An implementation which reads device instance information from the factory partition
|
|
|
|
config SEC_CERT_DEVICE_INSTANCE_INFO_PROVIDER
|
|
bool "Device Instance Info - Secure Cert"
|
|
help
|
|
An implementation which reads unique id for generating rotating device identifier from
|
|
secure cert partition and all other device instance data from factory partition
|
|
|
|
config CUSTOM_DEVICE_INSTANCE_INFO_PROVIDER
|
|
bool "Device Instance Info - Custom"
|
|
help
|
|
A custom implementation of Device Instance Info provider
|
|
|
|
endchoice
|
|
|
|
choice ESP_MATTER_DEVICE_INFO_PROVIDER
|
|
prompt "Device Info Provider options"
|
|
default FACTORY_DEVICE_INFO_PROVIDER if ENABLE_ESP32_DEVICE_INFO_PROVIDER
|
|
default NONE_DEVICE_INFO_PROVIDER if !ENABLE_ESP32_DEVICE_INFO_PROVIDER
|
|
help
|
|
This option determines which device info provider will be used.
|
|
|
|
config NONE_DEVICE_INFO_PROVIDER
|
|
bool "Device Info - None"
|
|
help
|
|
Do not set the Device Info Provider
|
|
|
|
config FACTORY_DEVICE_INFO_PROVIDER
|
|
bool "Device Info - Factory"
|
|
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER && ENABLE_ESP32_DEVICE_INFO_PROVIDER
|
|
help
|
|
An implementation which reads device information from the factory partition
|
|
|
|
config CUSTOM_DEVICE_INFO_PROVIDER
|
|
bool "Device Info - Custom"
|
|
help
|
|
A custom implementation of Device Info provider
|
|
|
|
endchoice
|
|
|
|
|
|
config ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT
|
|
int "Maximum dynamic endpoints"
|
|
range 1 255
|
|
default 16
|
|
help
|
|
The maximum dynamic endpoints supported.
|
|
|
|
config ESP_MATTER_MODE_SELECT_CLUSTER_ENDPOINT_COUNT
|
|
int "Endpoints on which mode select cluster is used"
|
|
range 0 255
|
|
default 0
|
|
help
|
|
Endpoint count which supports mode select.
|
|
|
|
config ESP_MATTER_TEMPERATURE_CONTROL_CLUSTER_ENDPOINT_COUNT
|
|
int "Endpoints on which temperature control cluster is used"
|
|
range 0 255
|
|
default 0
|
|
help
|
|
Endpoint count which supports temperature control.
|
|
|
|
config ESP_MATTER_SCENES_TABLE_SIZE
|
|
int "Scenes table size"
|
|
range 16 255
|
|
default 16
|
|
help
|
|
Size of the scenes table.
|
|
|
|
config ESP_MATTER_BINDING_TABLE_SIZE
|
|
int "Binding table size"
|
|
range 1 255
|
|
default 10
|
|
help
|
|
Size of the binding table.
|
|
|
|
choice ESP_MATTER_MEM_ALLOC_MODE
|
|
prompt "Memory allocation strategy"
|
|
default ESP_MATTER_MEM_ALLOC_MODE_INTERNAL
|
|
help
|
|
Strategy for allocating memory for Matter data model, essentially provides ability to
|
|
allocate all required dynamic allocations from,
|
|
|
|
- Internal DRAM memory only
|
|
- External SPIRAM memory only
|
|
- Either internal or external memory based on default malloc()
|
|
behavior in ESP-IDF
|
|
- Internal IRAM memory wherever applicable else internal DRAM
|
|
|
|
config ESP_MATTER_MEM_ALLOC_MODE_INTERNAL
|
|
bool "Internal memory"
|
|
|
|
config ESP_MATTER_MEM_ALLOC_MODE_EXTERNAL
|
|
bool "External SPIRAM"
|
|
depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC
|
|
|
|
config ESP_MATTER_MEM_ALLOC_MODE_DEFAULT
|
|
bool "Default alloc mode"
|
|
|
|
config ESP_MATTER_MEM_ALLOC_MODE_IRAM_8BIT
|
|
bool "Internal IRAM"
|
|
depends on ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY
|
|
help
|
|
Allows to use IRAM memory region as 8bit accessible region.
|
|
|
|
Every unaligned (8bit or 16bit) access will result in an exception
|
|
and incur penalty of certain clock cycles per unaligned read/write.
|
|
|
|
endchoice #ESP_MATTER_MEM_ALLOC_MODE
|
|
|
|
config ESP_MATTER_ENABLE_DATA_MODEL
|
|
bool "Use ESP-Matter data model"
|
|
depends on ESP_MATTER_ENABLE_MATTER_SERVER
|
|
default y
|
|
help
|
|
This option should be disable for zap examples
|
|
|
|
If enabled, we will not use zap to define the data model of the node. All of the
|
|
endpoints are dynamic.
|
|
|
|
config ESP_MATTER_ENABLE_MATTER_SERVER
|
|
bool "Enable Matter Server"
|
|
default y
|
|
help
|
|
This option should be disable for client-only examples, such as Matter commissioner.
|
|
|
|
If enabled, we will start Matter server when calling esp_matter::start()
|
|
If disabled, the Matter server will not be initialized in esp_matter::start()
|
|
|
|
config ESP_MATTER_ENABLE_OPENTHREAD
|
|
bool "Initialize Thread stack and start Thread task when starting ESP-Matter"
|
|
default y
|
|
help
|
|
Enabled this option to initialize Thread stack and start Thread task when calling
|
|
esp_matter::start()
|
|
|
|
Disable this option to initialize Thread stack and start Thread task with more
|
|
flexibility.
|
|
|
|
config CUSTOM_NETWORK_CONFIG
|
|
bool "Use custom network commissioning (skip Network Commissioning cluster)"
|
|
default n
|
|
help
|
|
Enable this if the device uses out-of-band-configured networking
|
|
(e.g. rich user interface, manufacturer-specific means, custom
|
|
commissioning flows). When enabled, the Network Commissioning
|
|
cluster will NOT be added to the root node endpoint, per the
|
|
Matter spec CustomNetworkConfig condition.
|
|
|
|
menu "Select Supported Matter Clusters"
|
|
visible if ESP_MATTER_ENABLE_DATA_MODEL
|
|
|
|
# If the cluster implementation source files use a class derived from another class with virtual functions
|
|
# and instantiate an object of that class, the linker may include this cluster in the final binary even if
|
|
# it is unused. To mitigate this and reduce firmware size, we offer a method to exclude those source files
|
|
# from compilation. If your product's data model does not require a specific cluster, you can deselect it
|
|
# under this menu to optimize flash usage.
|
|
|
|
rsource "utils/cluster_select/Kconfig.in"
|
|
|
|
endmenu
|
|
|
|
endmenu
|