Lately I bought an Aeon Labs Z-Stick Series II Z-Wave USB controller since it is the most feasible device to use on Linux. Referring back to the previous solution I had posted here, the problem was that I had to run the system on a virtual machine which does not make it so efficient to run on my green Atom powered home server. The main problem was that the USB controller from Controlthink was not supported on Linux so I had to seek for another solution.
Finally, thanks to the guys developing the Open Zwave Project now it is possible to control Z-wave devices from Linux. My solution is a socket server which accepts requests from different clients such as from a web interface or from an Android phone / tablet. Practically, the socket server works very similar to the same system implemented by http://melloware.com/products/zwave/.
The main challenge in this project was to get my hands dirty with C++ which I am not very familiar with but having said that, the sample examples provided by the Open Zwave team, helped a lot understanding how to use their library. I managed to kill two birds with one stone, learning a bit of C++ while having my Linux server controlling the Z-wave devices natively.
Currently, the socket server gives a list of devices to the client and accepts commands to control each device.
It is still work in progress, however it does most of the stuff I need. The screen shot below shows a PHP socket client displaying the list of devices which can be controlled.
Below are some screen shots of the Android client.