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 ID

    • Replace 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 enable USE_MOSQUITTO and disable USE_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.