This example demonstrates:
- how a PTM215B EnOcean switch can be integrated in the Bluetooth mesh ecosystem;
- how to capture the commissioning data of the EnOcean switch;
- how to translate the EnOcean switch messages into equivalent Bluetooth mesh messages.
The example uses two instances of the Generic OnOff client model. These on/off clients can be configured to control desired servers by the provisioner.
The following figure shows such a hybrid network that contains a device outside of the Bluetooth mesh network, a translator client, and servers. All servers have the relay functionality enabled, which allows the EnOcean switch to control the state of any of the servers in the network.
The translator client linked with the EnOcean switch has a provisionee role in the network. The client receives messages from the PTM215B switch and converts them to equivalent on/off client messages to control the state of LED 1 on servers. The client instantiates two instances of the Generic OnOff Client model (A and B, each with two buttons) and can either be provisioned and configured by the provisioner example or by a GATT-based provisioner (nRF Mesh mobile app).
Table of contents
Hardware requirements
You need at least two compatible development kits for this example:
- One compatible development kit for the EnOcean switch.
- One or more compatible development kits for the servers.
Additionally, you need one of the following for provisioning:
- One compatible development kit for the provisioner if you decide to use the static provisioner example.
- An iOS or Android smartphone if you decide to provision using the nRF Mesh mobile app mobile application.
See Compatibility for information about the compatible development kits.
Software requirements
To test this example, you need to use the server example from the Light switch example folder, regardless of the number of server boards you use: <InstallFolder>/examples/light_switch/server. See server details for more information about the API usage.
The example is configured to store security material for two EnOcean switches. If you want this example to support more than two EnOcean switches in parallel, set the value of MAX_ENOCEAN_DEVICES_SUPPORTED to the desired number of switches.
Depending on the provisioning method:
- If you decide to provision using a mobile application, you need nRF Mesh mobile app (iOS or Android) installed on the smartphone.
- If you decide to use the static provisioner example, you need the provisioner example.
Setup
You can find the source code of the EnOcean example in the following folder: <InstallFolder>/examples/enocean_switch
LED and button assignments
- Server
- During provisioning process:
- LED 3 and 4 blinking: Device identification active.
- LED 1 to 4: Blink four times to indicate provisioning process is completed.
- After provisioning and configuration is over:
- LED 1: Reflects the value of OnOff state on the server.
- LED ON: Value of the OnOff state is 1 (
true). - LED OFF: Value of the OnOff state is 0 (
false).
- LED ON: Value of the OnOff state is 1 (
- LED 1: Reflects the value of OnOff state on the server.
- During provisioning process:
- EnOcean client
- During provisioning process:
- LED 3 and 4 blinking: Device identification active.
- LED 1 to 4: Blink four times to indicate provisioning process is completed.
- Capturing commissioning telegrams:
- LED 1 to 4: Blink four times to indicate a commissioning telegram is captured.
- For node reset:
- Button 4 (on the board): Reset the node by erasing Bluetooth mesh and application data.
- LED 1: Blinks twice to indicate node reset is being executed.
- During provisioning process:
- Provisioner
- Button 1: Start provisioning.
- LED 1: Reflects the state of the provisioning.
- LED ON: Provisioning of the node is in progress.
- LED OFF: No ongoing provisioning process.
- LED 2: Reflects the state of the configuration.
- LED ON: Configuration of the node is in progress.
- LED OFF: No ongoing configuration process.
Testing the example
To test the EnOcean switch example, build the examples by following the instructions in Building the Bluetooth mesh stack.
After building is complete, use one of the following methods, depending on the preferred provisioning approach:
Once the provisioning is complete, you can start interacting with the boards.
Evaluating using the static provisioner
See provisioner example testing section for detailed steps required to provision and configure the boards using the static provisioner.
There are two additional steps specific to this example:
- Option to start capturing the commissioning data
- Connecting RTT viewer to view the RTT output generated by the translator client and the provisioner.
Evaluating using the nRF Mesh mobile app
See Evaluating examples using the nRF Mesh mobile application for detailed steps required to provision and configure the boards using the nRF Mesh mobile app.
When using the nRF Mesh app with this example, take the following information into account:
- After flashing the examples, you can decide whether to start capturing the commissioning data. This can also be done after the translator client provisioning.
- The following naming convention is used in the app:
- The switch board is
nRF5x Mesh Enocean Translator. - The server board is
nRF5x Mesh Light.
- The switch board is
The following model instances must be configured in the app for this example:
- For the
nRF5x Mesh Lightserver board: Generic On Off Server. - For the
nRF5x Mesh Enocean Translatorswitch board: Generic On Off Client.
Capturing the commissioning data of the EnOcean switch
- Note
- These steps can be done either before or after the translator client has been provisioned.
To capture the commissioning data of the EnOcean switch, put the EnOcean switch in the radio-based commissioning mode:
- Make sure that the Disable Radio Commissioning flag in the Configuration register of the NFC interface is set to
0b0(default state). - Start by selecting one button contact of PTM 215B. Any button of PTM 215B (A0, A1, B0, B1) can be used.
- Execute the following sequence:
- Press and hold the selected button for more than 7 seconds before releasing it.
- Press the selected button quickly (hold for less than 2 seconds).
- Press and hold the selected button again for more than 7 seconds before releasing it. Upon detection of this sequence, PTM 215B enters the commissioning mode. See EnOcean PTM215B Datasheet for reference.
Once entered the radio commissioning mode, PTM215B transmits the commissioning telegrams. These telegrams will be captured by the translator, and the security material contained within those telegrams will be stored in the flash.
Once one of the commissioning telegrams is captured by the translator, 4 LEDs will blink 4 times.
- Note
- The example supports two EnOcean switches to be connected in parallel. You can repeat the commissioning configuration steps to commission the second switch. From the Bluetooth mesh network's perspective, both switches will be seen as one device, and their messages will be forwarded through the same Generic OnOff clients.
Interacting with the boards
Once the provisioning and the configuration of the EnOcean translator client node and at least one of the server nodes are complete and the commissioning data is captured, you can press rocker switches on the EnOcean switch to control various servers. See LED and button assignments section.
If any of the devices is powered off and back on, it will remember its flash configuration and rejoin the network. For more information about the flash manager, see Flash manager.
If you want to reset the application data without re-flashing the firmware, press Button 4. LED 1 will blink twice to indicate that application-specific data and data related to Bluetooth mesh has been erased. Press Reset button to reset the board and start the application.