Home Automation Dashboard

We continue to be amazed at the many creative and valuable ways that people are using SmartThings to complement their unique preferences and lifestyles.

In the post below, a member of the SmartThings Community named “florianz” describes how he’s transformed a normal Android tablet into a sleek wall-mounted device to control his smart home. Check it out!


“All the lights in my house are controllable through SmartThings, but not all of them are wired up to wall switches. I do have a bunch of floor and table lamps, which are hooked up to GE receptacles and plug-in lamp modules. It’s a bit of a PITA to have to bend down to actuate the modules. Whipping out my phone to launch the SmartThings Mobile app to control the lights can be cumbersome and slow, and I’m not a big fan of the idea of having physical remotes floating around the house. I wanted a solution with the immediacy of a physical switch, but some of the flexibility of the mobile app. Here is what I came up with:

7e6efdc8df_666x500

 

Hardware

This is essentially a wall mounted Nexus 7 Android tablet3, which I was able to acquire for cheap. I built a custom frame using a laser cut premium walnut veneer from ponoko.com7. The frame basically consists of a face- and backplate which are held together by four chrome internal hex screws. There are also internal pieces that keep the tablet aligned and in place. Initially, I planned on gluing everything together in order to keep the faceplate clean, but I figured it might not be a good idea to permanently enclose the tablet. The chrome screws are a good compromise as they allow me to open up the frame, but also serve a decorative purpose. The tablet is firmly mounted using two key hole hangers1 attached to the back of the frame, which rest on screws inserted into dry wall anchors.

Interface

The interface consists of a Dashing12 installation running on a free Heroku16 instance. Dashing is a really cool dashboard framework. What I love most about it is how minimalist, yet customizable it is. It’s just a few hundred lines of code on top of some widely adopted web technologies, including Sinatra2Batman.js3Gridster3 and Sprockets2. You can easily create new backend services using Ruby, and frontend widgets using CoffeeScript, SASS and HTML.

I created a bunch of “touchable” widgets, which let me control lights, display temperature sensor readouts, see the currently set mode, set new modes and execute “Hello Home” phrases, as well as display information about the current weather and forecast. I also created a backend, which communicates with a basic SmartApp endpoint. Dashing uses Server Side Events3, so events handled from inside the SmartApp are automatically pushed out to the client. Basically, when you turn on/off a light using a switch or the SmartThings app, the dashboard will automatically and instantaneously update with the new state. It doesn’t need to bang on the SmartThings cloud or the backend to continuously poll for updates (apart from the weather, which is updated every 15 minutes).

The Dashing frontend can be displayed in any browser, so it’s relatively easy to deploy multiple clients (one in every room, if you want to go crazy) or get access from your computer.

Tablet Setup

The frame doesn’t expose the physical power button on the tablet. Instead, I am using the camera as a motion detector to wake up the Nexus 7, when someone steps in front of the screen. Tasker1 is used to handle the motion detector events and wake up the tablet using Secure Settings1 without requiring root access. It’s a bit hacky, but has been working reliably, so far.

The Dashing frontend is being displayed in Firefox, because Chrome suffers from a bug that severs the connection to the Server Sent Events source when the tablet goes to sleep, and fails to resume that connection when it wakes up. To hide the annoying Android on-screen navigation controls (and status bar), I have to force the tablet into “Immersive Mode”. I am using an app2 for that, because the feature is a relatively new addition to Android, and not all apps properly take advantage of it, yet.

Mounting Location

I mounted the assembly in the hallway, opposite to my front door. I chose the location because it is central, yet not obtrusive. I pass through the hallway when I go to bed, or leave the house so it’s very convenient to take a look at the weather or turn on/off some lights at that point. The front-facing camera has a great view of the front door and will eventually snap pictures of anyone entering the house unexpectedly. This is also the place where a security system panel had been mounted, before I switched to SmartThings.

Conveniently, there is a storage closet on the other side of the wall. I simply drilled a small hole through the wall to feed a Micro USB cable to a wall charger in the closet. The frame hides said hole in the wall. A cleaner setup would be to install a recessed gang box4 with a USB outlet4 behind the frame. I want to evaluate the current setup, before I commit to a bigger hole in my drywall, though. The current hole is easy to close wink

78a67fde1e_666x500

Future Plans

I am going to add more widgets in the future. The idea is not to replace the functionality of the SmartThings app, but to display useful information about what’s happening around the house, allow for making more informed decisions and enable some basic control over devices. For example, it would be great to be alerted about open windows, before leaving the house. Also, having a widget that shows current energy consumption and realtime pricing information would be cool (Is now a good time to do the laundry or run the electric space heater?) On top of that, I want to play around with speech synthesis in order to emit audible alerts.

Lastly, it would be cool to get some NFC tags2 to wave around to cause certain things to happen. I don’t really have any concrete ideas for that yet, though.” – florianz

Continue the discussion of this project on the SmartThings Community Site.

Category:
Featured, Stories

Join the conversation! 21 Comments

  1. Okay. That’s beyond cool. Now the question is, how much does he charge so I can have 2 of these for my home. :-)

    Reply
  2. this is something smartthings needs to develop ASAP.

    Reply
  3. Ummm Yes. I want this now. Or maybe Smartthings can just implement some widgets for their own application.

    Reply
  4. Yeah, I want this. This is exactly what most smarthome automation systems have been missing. I have a mounted tablet on the wall that runs the smartthings app, but this is way better.

    Reply
  5. Any chance the developer will share more details such as code samples? I have been wanting to do this for awhile now, but have never gotten anything near as elegant as this. I would also want to include a tile that shows my various cameras.

    Reply
    • Apologize for the bad etiquette, but a super big +1 for the request for code (and any other details we can encourage @florianz to share). I would gladly donate to support an open source project based on this … unless the selection of alternative, but equally elegant, solutions start appearing. I am inspired to try … yet never hurts to start with something that already works…

      Reply
  6. This is the missing piece of the puzzle. He describes it as most of us do, even my wife. Bending over to activate a module or turning on a light via the phone is cumbersome. This solves it!

    Reply
  7. Did he make the Smartthings App available?

    Reply
  8. LOVE this! This type of setup has most certainly been in my mind since DAY ONE of SmartThings on Kickstarter, and have been wondering how much I would have to or want to build myself. Seeing this actually produced is inspirational (and helpful). Congratulations on your project and superb results!

    Reply
  9. I encourage those who have questions to head over tot eh community site where this was originally posted. http://community.smartthings.com/t/home-automation-dashboard/4926

    Reply
  10. Okay. It is great idea to let automate your home with android tablet. Technology is widening day by day. Can you give some more technical details regarding configuring the same as i also want to experiment it in my home. I know the ipad wall mountingprocess as I am working in the same field but other things are somewhere techy.

    Reply
  11. This is very nice and very useful blog…I like it…Here our latest Home Automation systems http://www.canadiansound.com/

    Reply
  12. Home automation not only makes your life simpler but also achieves the purpose of security through automated door locks, applience and lighting control.. Thanks for sharing an informative blog.
    http://www.exengo.se/automation-och-miljocertifiering-foretag/

    Reply
  13. Super cool!

    Reply
  14. Are the tiles customisable with non smartlink app’s? I have a broadlink air monitoring sensor and air filter, would be amazing if i could quickly turn them on and off with the wall tablet

    Reply
    • The current version of a similar app (SmartTiles), allows arbitrary http links, but not sure how “rich” they can be (in functionality). Checkout http://SmartTiles.click and experiment a bit with your requirements? Let me know how it goes?

      Reply
  15. Pretty impressive system. Probably beyond most homeowners to DIY that sort of thing though. While systems like control4 (http://www.control4.com) will require an installation company, support is better on their products. DIY stuff is just too unreliable for client work. http://www.losangeleshomethetaerinstallation.com

    Reply
  16. Do you have a design in .ai that you used for ponoko that you’d be willing to share by chance?

    Reply
  17. I have been using an ISY for a few years now and have been very impressed with it. As an android user I have been using the Agave tool to control the ISY and make it very user friendly. http://www.agaveha.com

    Reply
  18. Thanks for posting such an amazing post. It really do half of the work of us. Smart home automation system is the most needful thing in our busy life.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *