For the last year and a half I have developed a Smart Home platform that utilizes 3D models of homes and maps your smart home devices within the model. A user begins by drawing a 2D floor plan in the system (with the help of several digital tools for measuring and customization). Next, the clvrhouse software will automatically convert and render the overhead 2D floor plan you created into a dynamic 3D model. Once converted into 3D, you can spin, zoom and tilt the model. Next, you map your smart home devices on the floorplan and can monitor and control your home in a completely unique way. I have achieved this using HTML5 Canvas and Javascript and WebGL.

In conjunction with the 3D property models and mapping, I have also built in support for 3rd party hardware as well as DIY hardware. Currently, I have Nest, Wink, Samsung Smart Things and Fitbit all connected through the platform (with hopefully more to come). The system is built in a way that allows me to incorporate new 3rd party hardware (via APIs) extremely quickly and without the need to rework anything within the current system. On top of that functionality, clvrhouse allows users to connect to their own home grown hardware by simply filling out a form within the app and using the connection information provided by the system to connect their internet connected hardware to the platform. The process only takes a few minutes to complete. The user can also map non internet connected assets on the property model (hot water heater, dishwasher, other appliances). After the user has everything mapped out in the system, they can then upload photos, user manuals and other documents and link these items to the different assets.

With all the setup complete, a user can control and monitor all of their different pieces of hardware from different manufacturers all on one screen, not on three different apps. Users can set thresholds for sensor readings and automatically receive alerts through the system when a sensor reading exceeds the thresholds. Users can also create scenes for their property and with one click set the mood of their entire smart home.

After I completed the above functionality, I moved on to teaching myself about electrical engineering and designing custom hardware. This has been slow going as before this project I had zero experience with EE. I have been working and reworking a wifi light switch. The goals of the light switch are: to draw it's power (3.3v) from mains, connect to wifi without the need for a hub, have a RGB LED that displays statuses and also can be set to specific colors by the user, be easily reprogrammable, fit within an existing junction box without modification, have i/o pins to connect sensors and other add on components and of course turn an existing light on and off.

I have been through several iterations and have learned a TON! I have successfully designed and tested a board that meets all the criteria above with the exception of fitting into the junction box. I am currently working on that last piece as well as splitting the board into two boards, making the board more stable, adding RF shielding, isolating the 3.3v from mains, and other upgrades.

The following image is of the last boards I had printed. I have not completed my latest designs, but will post pictures when I have them. Note: I am a beginner at EE so keep that in mind when inspecting the boards.. n00b mistakes are expected 8)

Once I have the board design completed, I hope to design a case and custom light switch cover (with built in sensors).

I used the esp8266 module for the first couple of boards and then moved to just using the esp8266ex chip itself.

For the Web Application I use the following setup: Ubuntu, Apache, PHP, MongoDB... the UI is built using Javascript, WebGL, HTML5 Canvas..

I will post more when I have updates. I hope you Like the project!