I use Jeedom, a french projet. You can install it on a VM, on a RaspberryPi or anything else. It's open source and doesn't need an external service. With a USB dongle for zwave, you can control lot of things (lights, panes, thermostat, etc.).