With the light switch obtained from B&Q and the Nanode obtained, pre-assembled, from the States. I set to work coding the basic method of communicating with the switch.
This is the first time I'd written anything properly in C++ but I'd always wanted to learn and this project seemed the perfect place to start. The basic comms protocol for LightwaveRF was, thankfully, already discovered, documented and available online. Unfortunately, none of the LightwaveRF sample code out there worked with the transceiver in the Nanode. Luckily, I found some sample bit-bashing code on a forum by someone using the same transceiver for something else. I adapted his basic send code to create a send function compatible with Lightwave. It was a bit fiddly getting all the timings right but in the end, works perfectly.
For the moment, all it does is fade up my bedroom light over a period time from a set time. The Lightwave switches have something like 31 light levels to choose from so you can fade it up nice and gradually.
The code for the initial proof of concept is available here: https://codebender.cc/sketch:27612
In the future, I hope to buy more sockets, switches, etc. and have them all controlled by the Nanode via a web UI. I also hope to add X10 support and possibly some other protocols. Way off in the distant future though!