Build Procedure For Wi-Fi Direct Internet Connectivity (DIC)#
The following components are common for all apps and should be modified in the corresponding app specific .slcp file.
Add the DIC Component#
To add DIC Component, modify corresponding app specific .slcp file.
- id: matter_dic
from: matter
Add the DIC AWS OTA Component#
To add DIC AWS OTA Component, modify corresponding app specific .slcp file.
- id: aws_ota_wifi_dic
from: matter
Note:- Building with aws_ota_wifi_dic component enables matter_dic component by default.
App-Specific Changes#
Replace the config_file, include and source in the .slcp file of the application from the path matter/slc/sample-app/lighting-app/efr32/.
Enable DIC for Lighting App#
In lighting-app-rs911x.slcp for rs9116 or lighting-app-wf200.slcp for wf200, replace with below changes:
config_file:
- path: ../../../../examples/lighting-app/silabs/efr32/data_model/lighting-wifi-app.zap
directory: common
include:
- path: ../../../../examples/lighting-app/silabs/efr32/include
file_list:
- path: AppConfig.h
- path: AppEvent.h
- path: AppTask.h
- path: CHIPProjectConfig.h
- path: LightingManager.h
directory: include
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_lighting-app/efr32/src/AppTask.cpp
directory: src
- path: ../../../../examples/lighting-app/silabs/efr32/src/LightingManager.cpp
directory: src
- path: ../../../../examples/lighting-app/silabs/efr32/src/main.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_lighting-app/ZclCallbacks.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
In lighting-app-917-soc.slcp for Siwx917 SoC(dual flash) or lighting-app-917-soc-common.slcp for Siwx917 SoC(common flash), replace with below changes:
config_file:
- path: ../../../../examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.zap
directory: common
include:
- path: ../../../../examples/lighting-app/silabs/SiWx917/include
file_list:
- path: AppConfig.h
- path: AppEvent.h
- path: AppTask.h
- path: CHIPProjectConfig.h
- path: LightingManager.h
directory: include
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_lighting-app/SiWx917/src/AppTask.cpp
directory: src
- path: ../../../../examples/lighting-app/silabs/SiWx917/src/LightingManager.cpp
directory: src
- path: ../../../../examples/lighting-app/silabs/SiWx917/src/main.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_lighting-app/ZclCallbacks.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
Enable DIC for Lock App#
In lock-app-rs911x.slcp for rs9116 or lock-app-wf200.slcp for wf200, replace with below changes:
config_file:
- path: ../../../../examples/lock-app/lock-common/lock-app.zap
directory: common
include:
- path: ../../../../examples/lock-app/silabs/efr32/include
file_list:
- path: AppConfig.h
- path: AppEvent.h
- path: AppTask.h
- path: LockManager.h
- path: CHIPProjectConfig.h
- path: EventHandlerLibShell.h
condition: [matter_shell]
directory: include
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_lock-app/efr32/src/AppTask.cpp
directory: src
- path: ../../../../examples/lock-app/silabs/efr32/src/LockManager.cpp
directory: src
- path: ../../../../examples/lock-app/silabs/efr32/src/main.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_lock-app/ZclCallbacks.cpp
directory: src
- path: ../../../../examples/lock-app/silabs/efr32/src/EventHandlerLibShell.cpp
condition: [matter_shell]
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
In lock-app-917-soc.slcp for Siwx917 SoC(dual flash) or lock-app-917-soc-common.slcp for Siwx917 SoC(common flash), replace with below changes:
config_file:
- path: ../../../../examples/lock-app/lock-common/lock-app.zap
directory: common
include:
- path: ../../../../examples/lock-app/silabs/SiWx917/include
file_list:
- path: AppConfig.h
- path: AppEvent.h
- path: AppTask.h
- path: LockManager.h
- path: CHIPProjectConfig.h
- path: EventHandlerLibShell.h
condition: [matter_shell]
directory: include
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_lock-app/SiWx917/src/AppTask.cpp
directory: src
- path: ../../../../examples/lock-app/silabs/SiWx917/src/LockManager.cpp
directory: src
- path: ../../../../examples/lock-app/silabs/SiWx917/src/main.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_lock-app/ZclCallbacks.cpp
directory: src
- path: ../../../../examples/lock-app/silabs/SiWx917/src/EventHandlerLibShell.cpp
condition: [matter_shell]
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
Enable DIC for Window App#
In window-app-rs911x.slcp for rs9116 or window-app-wf200.slcp for wf200, replace with below changes:
config_file:
- path: ../../../../examples/window-app/common/window-app.zap
directory: common
include:
- path: ../../../../examples/window-app/silabs/efr32/include
file_list:
- path: AppConfig.h
- path: CHIPProjectConfig.h
- path: WindowAppImpl.h
directory: include
- path: ../../../../examples/window-app/common/include
file_list:
- path: WindowApp.h
directory: include
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_window-app/efr32/src/WindowAppImpl.cpp
directory: src
- path: ../../../../examples/window-app/silabs/efr32/src/main.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_window-app/common/src/WindowApp.cpp
directory: src
- path: ../../../../examples/window-app/common/src/ZclCallbacks.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
In window-app-917-soc.slcp for Siwx917 SoC(dual flash) or lock-app-917-soc-common.slcp for Siwx917 SoC(common flash), replace with below changes:
config_file:
- path: ../../../../examples/window-app/common/window-app.zap
directory: common
include:
- path: ../../../../examples/window-app/silabs/SiWx917/include
file_list:
- path: AppConfig.h
- path: CHIPProjectConfig.h
- path: WindowAppImpl.h
directory: include
- path: ../../../../examples/window-app/common/include
file_list:
- path: WindowApp.h
directory: include
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_window-app/SiWx917/src/WindowAppImpl.cpp
directory: src
- path: ../../../../examples/window-app/silabs/SiWx917/src/main.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_window-app/common/src/WindowApp.cpp
directory: src
- path: ../../../../examples/window-app/common/src/ZclCallbacks.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
Enable DIC for Thermostat App#
In thermostat-rs911x.slcp for rs9116 or thermostat-wf200.slcp for wf200, replace with below changes:
config_file:
- path: ../../../../examples/thermostat/thermostat-common/thermostat.zap
directory: common
include:
- path: ../../../../examples/thermostat/silabs/efr32/include
file_list:
- path: AppConfig.h
- path: AppEvent.h
- path: AppTask.h
- path: SensorManager.h
- path: TemperatureManager.h
- path: CHIPProjectConfig.h
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_thermostat/efr32/src/AppTask.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_thermostat/efr32/src/TemperatureManager.cpp
directory: src
- path: ../../../../examples/thermostat/silabs/efr32/src/main.cpp
directory: src
- path: ../../../../examples/thermostat/silabs/efr32/src/ZclCallbacks.cpp
directory: src
- path: ../../../../examples/thermostat/silabs/efr32/src/SensorManager.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
Enable DIC for onoff-plug-app#
In onoff-plug-app-rs911x.slcp for rs9116 or onoff-plug-app-wf200.slcp for wf200, replace with below changes:
config_file:
- path: ../../../../silabs_examples/onoff-plug-app/onoff-plug-common/onoff-plug-app.zap
directory: common
include:
- path: ../../../../silabs_examples/onoff-plug-app/efr32/include
file_list:
- path: AppConfig.h
- path: AppEvent.h
- path: AppTask.h
- path: CHIPProjectConfig.h
- path: OnOffPlugManager.h
directory: include
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_onoff-plug-app/efr32/src/AppTask.cpp
directory: src
- path: ../../../../silabs_examples/onoff-plug-app/efr32/src/main.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_onoff-plug-app/ZclCallbacks.cpp
directory: src
- path: ../../../../silabs_examples/onoff-plug-app/efr32/src/OnOffPlugManager.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
In onoff-plug-app-917-soc.slcp for Siwx917 SoC(dual flash) or lock-app-917-soc-common.slcp for Siwx917 SoC(common flash), replace with below changes:
config_file:
- path: ../../../../silabs_examples/onoff-plug-app/onoff-plug-common/onoff-plug-app.zap
directory: common
include:
- path: ../../../../silabs_examples/onoff-plug-app/SiWx917/include
file_list:
- path: AppConfig.h
- path: AppEvent.h
- path: AppTask.h
- path: CHIPProjectConfig.h
- path: OnOffPlugManager.h
directory: include
- path: ../../../../silabs_examples/DIC_Examples
file_list:
- path: DIC_EventHandler.h
directory: DIC_Examples
source:
- path: ../../../../silabs_examples/DIC_Examples/DIC_onoff-plug-app/SiWx917/src/AppTask.cpp
directory: src
- path: ../../../../silabs_examples/onoff-plug-app/SiWx917/src/main.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_onoff-plug-app/ZclCallbacks.cpp
directory: src
- path: ../../../../silabs_examples/onoff-plug-app/SiWx917/src/OnOffPlugManager.cpp
directory: src
- path: ../../../../silabs_examples/DIC_Examples/DIC_EventHandler.cpp
directory: DIC_Examples
Compile Using New/Different Certificates#
Two devices should not use the same
DIC_CLIENT_ID
. To use a different Client ID for your second connection do the following:If using AWS, Change the following file
matter_extension/examples/platform/silabs/DIC/matter_abs_interface/src/dic_nvm_cert.cpp
under#if USE_AWS
Use device_certificate and device_key with your device cert and device key.
Use
DIC_CLIENT_ID
macro value with your Client ID inmatter_extension/examples/platform/silabs/DIC/matter_abs_interface/inc/dic_config.h
The preferred certificate type to use in the application is ECDSA.
If using mosquitto, change the following file
matter_extension/examples/platform/silabs/DIC/matter_abs_interface/src/dic_nvm_cert.cpp
enableUSE_MOSQUITTO
and disableUSE_AWS
.Under
#if USE_MOSQUITTO
Use ca_certificate, device_certificate and device_key with your ca_certificate, device cert and device key.
Use
DIC_CLIENT_ID
macro value with your Client ID.
The preferred certificate type to use in the application is ECDSA.