KNX IoT: Certification
This sample provides a KNX IoT device that matches the device expected by the KNX Interworking Test Tool (EITT) certification test template. Use it to run the KNX IoT certification tests with EITT on a Nordic Semiconductor device running the KNX IoT add-on for the nRF Connect SDK.
Requirements
The sample supports the following development kits:
Hardware platforms |
PCA |
Board name |
Board target |
|---|---|---|---|
PCA10184 |
|
||
PCA10184 |
|
||
PCA10226 |
|
||
PCA10156 |
|
You also need the following:
EITT with the KNX IoT certification test template.
A Thread Border Router that makes the Thread network reachable from the EITT host.
Overview
The sample acts as a KNX IoT device that combines one Light Switching Actuator Basic (LSAB) functional block (number 417) and one Light Switching Sensor Basic (LSSB) functional block (number 421).
Both functional blocks use instance 1.
The device identity, resource paths, datapoint types, and the application parameter are those expected by the EITT test template:
Resource |
Datapoint |
Description |
|---|---|---|
|
|
LSAB switch on/off, the control input ( |
|
|
LSAB info on/off, the status output ( |
|
|
LSSB switch on/off, the control output ( |
|
|
LSSB info on/off, the status input ( |
|
|
Global test parameter, handled as a signed 32-bit value. |
The device uses the following identity:
Property |
Value |
|---|---|
Serial number |
|
Manufacturer ID |
|
Hardware type |
|
Device model |
|
SPAKE2+ password |
|
The device runs as a router-capable Full Thread Device (FTD) with device power management disabled, so it stays reachable during the tests.
Note
The sample does not support software updates.
User interface
- LED 0:
Indicates the Thread network status. The LED blinks while the device is attaching and remains on when it is attached.
- LED 1:
Indicates the KNX status. The LED blinks in programming mode and remains on after commissioning.
- LED 2:
Indicates the LSAB switch state (
/p/1).- LED 3:
Indicates the LSSB status reported by the group (
/p/4).- Button 0:
Short press starts or retries the Thread Joiner. Hold for six seconds to perform a Thread factory reset.
- Button 1:
Short press toggles KNX programming mode. Use it after the device has attached to a Thread network (LED 0 steadily lit). Hold for six seconds to perform a KNX factory reset.
- Button 2:
Sends the inverse of the LSSB status (
/p/4) on the LSSB switch output (/p/3) to the bound groups.
Configuration
See Configuring and building for information about how to permanently or temporarily change the configuration.
The following Kconfig options are most relevant for this sample:
CONFIG_KNX_SERIAL_NUMBER- Sets the KNX serial number to the value expected by the EITT test template.CONFIG_KNX_IOT_PASSWORD- Sets the SPAKE2+ password to the value expected by the EITT test template.
SPAKE2+ credentials
Important
During the build, the KNX IoT add-on generates a SPAKE2+ verifier from CONFIG_KNX_IOT_PASSWORD and compiles it into the application.
The stack uses the verifier for PASE authentication, while the samples retain the password to print their onboarding QR code on demand.
The default password and salt are intended for demonstration only. Production applications must use device-specific credentials and a suitable provisioning process. For more information about SPAKE2+, see PASE and SPAKE2+.
The default Thread profile starts the Joiner automatically with PSKd N0RD1C.
Use ../common/overlay-thread-otshell.conf to configure and start Thread manually.
Building and running
Before you start, make sure you have set up the KNX IoT add-on as described in the Requirements and setup page.
You can build using either the nRF Connect for VS Code extension or the command line.
Open the sample folder in VS Code with the nRF Connect extension installed.
Select a supported board target.
Build and flash the sample.
To build the sample from the command line, run the following command from the sample directory, with board_target replaced by one of the supported board targets:
west build -b board_target
For example, to build for the nRF54L15 DK, run the following command:
west build -b nrf54l15dk/nrf54l15/cpuapp
After building, program the sample to the development kit:
west flash --erase
To enable verbose KNX stack logging for debugging, build the sample with the knx-verbose-logging snippet:
west build -b nrf54l15dk/nrf54l15/cpuapp -S knx-verbose-logging
In the nRF Connect for VS Code extension, add -DSNIPPET=knx-verbose-logging to Extra CMake arguments in your build configuration.
Testing
To prepare the device for the certification tests, complete the following steps:
Join the device to the Thread network as described in the Quick start guide with ETS.
Wait until LED 0 remains on.
If the test tool asks for the device certificate, read the onboarding QR string from the device shell:
knx_iot qr_codeRun the KNX IoT certification test template in EITT.
Dependencies
This sample uses the KNX IoT stack provided by the KNX IoT add-on, together with the following nRF Connect SDK components:
It also uses the following Zephyr libraries: