The buttons are Sparkfun's Button Pad 2x2, the LED's are WS2812's aka NeoPixels, the microprocessor and wifi is the very capable Spark Core. And I have been getting my prototype PCB from OSH Park. The hardware development has been pretty straight forward due to the awesomeness that is the open hardware movement. I also intend in kind to release the board designs under a open hardware licence.
My current system works like this.
The Wireless Smarthome Buttons communicate via MQTT to a MQTT broker in my case I’m using the open source Mosquitto broker. http://mosquitto.org/ The device publishes messages on topics that relate to the button presses and subscribes to topics that tell it what colour the LED’s should be.
I’m using a Python script for the backend logic. The Python script subscribes to the button press topics and publishes to the LED colour topics. The Python script controls the LIFX bulbs by making http requests. I’m using the unofficial http API by chendo to talk to the LIFX bulbs.
In the future I’d like to integrate with some of the more open SmartHome Hubs like SmartThings and NinjaSphere. This way the buttons can be used for a great variety of tasks and devices without having to write code for each new device and integration.