Github Boards Devices Community Docs Blog

Controlling 2.4 Ghz Devices - aka Dimplex Connex Baseboard heaters

For heat In my vacation property I’m using Dimplex Connex baseboard heaters and have started digging into the protocol used to control them. First thing I identified was that they are operating on 2.4 Ghz, which currently does not have the same level of support as 433mhz based devices. And obtaining and connecting receiver and transmitter modules to an ESP is a bit limited.

And after much digging into it, OpenNRF24L01/ at master · NorthernMan54/OpenNRF24L01 · GitHub I have something working based on a nrf24l01 module connected to an ESP32.

Please expect a pull request in the near future with support for nrf24l01 modules, and basic decoding of the signals. One caveat of the nrf24l01 modules, is that they are not just a general purpose receivers but perform an on chip protocol decode and only decode based on an address. This means a bit more complex control interface than the existing receiver devices. My initial take of a json message based control interface

  • sendPayload - Send decoded signal payload as as a mqtt message
  • dataRate - Set date rate ( 0 - 1 Mbs, 1 - 2Mbs, 2 - 250Kbs )
  • status - print to stdout the current nrf24l01 status
  • debug - set debug level
  • channel - set channel, 0 to 125. -1 enable channel scanner
  • sniffer - enable sniffer
  • address - set receive address ( disable sniffer )
  • writeAddress - set write address
  • addressWidth - set address width
  • crc - enable crc and length 1 or 2 bytes, 0 to disable
  • payloadSize - set payload size
  • dynamic - enable dynamic payload length
  • write - hexidecimal string to be transmitted

Included in the functionality is the ability the scan the available channels ( 125 of them ) to see if their is a signal present, and to sniff a channel to see what type of signals are available.

Sample Mqtt message to watch my Logitech mouse


Sample message to monitor communications with my connex dimplex baseboard heaters

“dataRate”: 2,
“channel”: 40,
“payloadSize”: 10,
“crc”: 2,
“addressWidth”: 5,
“address”: “5049382716”,
“writeAddress”: “5049382716”,
“sendPayload”: true,
“dynamic”: false,
“ack”: true,
“status”: true

1 Like