Build Procedure For Wi-Fi Direct Internet Connectivity (DIC)#
Below components are common for all apps and should be modified in the corresponding app specific .slcp file.
Addition of the DIC component:#
To add DIC Component modify corresponding app specific .slcp file.
- id: matter_dic
from: matter
Addition of DIC AWS OTA component:#
To add DIC AWS OTA Component modify corresponding app specific .slcp file.
- id: aws_ota_wifi_dic
from: matter
App Specific changes#
Replace the config_file, include and source in the .slcp file of the application with the below provided changes.
DIC enable for lighting app#
Replace the below components in (matter/slc/sample-app/lighting-app/efr32/lighting-app-rs911x.slcp for rs9116 or lighting-app-wf200.slcp for wf200)
config_file:
- path: ../../../../silabs_examples/Direct_Internet_lighting-app/data_model/lighting-wifi-app.zap
directory: data_model
include:
- path: ../../../../silabs_examples/Direct_Internet_lighting-app/efr32/include
file_list:
- path: AppConfig.h
- path: AppEvent.h
- path: AppTask.h
- path: CHIPProjectConfig.h
- path: LightingManager.h
directory: include
source:
- path: ../../../../silabs_examples/Direct_Internet_lighting-app/efr32/src/AppTask.cpp
directory: src
- path: ../../../../silabs_examples/Direct_Internet_lighting-app/efr32/src/LightingManager.cpp
directory: src
- path: ../../../../silabs_examples/Direct_Internet_lighting-app/efr32/src/main.cpp
directory: src
- path: ../../../../silabs_examples/Direct_Internet_lighting-app/efr32/src/ZclCallbacks.cpp
directory: src
DIC enable for lock app#
Replace the below components in (matter/slc/sample-app/lighting-app/efr32/lock-app-rs911x.slcp for rs9116 or lock-app-wf200.slcp for wf200)
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
DIC enable for window app#
Replace the below components in (matter/slc/sample-app/lighting-app/efr32/window-app-rs911x.slcp for rs9116 or window-app-wf200.slcp for wf200)
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
DIC enable for thermostat#
Replace the below components in (matter/slc/sample-app/lighting-app/efr32/thermostat-rs911x.slcp for rs9116 or thermostat-wf200.slcp for wf200)
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
DIC enable for onoff-plug-app#
Replace the below components in (matter/slc/sample-app/lighting-app/efr32/onoff-plug-app-rs911x.slcp for rs9116 or onoff-plug-app-wf200.slcp for wf200)
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
Compile using new/different certificates#
Two devices should not use the same Client ID. To use a different Client ID for your second connection do the following:
If using AWS, Change the following file
examples/platform/silabs/DIC/matter_abs_interface/src/dic_nvm_cert.cpp
under#if USE_AWS
Replace
DIC_CLIENT_ID
macro value with your Client IDReplace device_certificate and device_key with your device cert and device key. (There is no need to change the CA certificate.)
The preferred certificate type to use in the application is ECDSA.
If using mosquitto, change the following file
matter/examples/platform/silabs/DIC/matter_abs_interface/src/dic_nvm_cert.cpp
enableUSE_MOSQUITTO
and disableUSE_AWS
.Under
#if USE_MOSQUITTO
Replace DIC_CLIENT_ID macro value with your Client ID
Replace ca_certficate, device_certificate and device_key with your ca_certficate, device cert and device key.
The preferred certificate type to use in the application is ECDSA.