Nest Thermostat working on SmartThings

I know from SmartThings forums and Office Hours that Nest Thermostat is one of the most requested devices for SmartThings so I decided to give it a try.

I worked with Nest and a Raspberry Pi before, using a Python library, so I knew this integration was possible.

Using gboudreau/nest-apiย I was able to connect to my Nest account, trigger actions and get reports from the device.

On SmartThings IDE, I created a virtual device by going to “My Devices” and “+ New Device”. This allowed me to assign the Device type “Nest Thermostat” to it, showing as one of my devices ๐Ÿ™‚

Finally, the only thing left was defining the device type. “Z-Wave Thermostat” was the perfect starting point. Basically, I replaced the Z-Wave actions with calls to the API.

After a couple of hours and some help from Danny Kleinman, who is always there for me when I get stuck, this is the result:

Nest Thermostat on SmartThings

Big circle = Current Temperature
Small circle = Target Temperature
First Tile = Mode: Cool – Heat – Away
Slider = ย Sets target temperature
Second Tile = Fan: Fan On – Fan Auto
Third Tile = Humidity

This video was captured with Google Glass

Hope you like it. Looking forward to bring this integration to everyone as soon as possible.
Please contact me or leave a comment if you have any question on how to integrate your Nest Thermostat.

Follow Me

20 thoughts on “Nest Thermostat working on SmartThings

  1. Dianoga

    Are you working with a middle man service, or does your SmartThings device type communicate directly with Nest?

    1. juano2310

      I used gboudreau/nest-api hosted on my server as a middle man service since there isn’t an official API ๐Ÿ™

      1. Dianoga

        That’s the same approach I took. I’m thinking of trying to get SmartThings talking directly to Nest but haven’t gotten that far with it yet.

          1. Dianoga

            Yep. Make sure you select the polling capability.

            Also, my app is now talking directly to Nest. No more middleman.

      2. Anders

        It looks like the API you used is just making REST calls. I think you could embed these calls directly in the device type code vs. going through an that PHP class hosted on a server. Am I missing something?

        1. juano2310

          It’s true. I was just focusing on the Smartthings side. I will write a better integration with direct calls before I publish the code.

          1. Anders

            Wouldn’t hurt to publish it sooner than later. If you publish the device type code on github (or the like) some of us may be able to collaborate with you. Maybe seeing a bunch of calls from SmartThings servers will be what it takes to finally get Nest to figure out that they should open up their API. Would be really neat if they exposed some of their sensors.

  2. Cass Mieczakowski

    Is there a simple straight forward way to get his woking on my system? I am unfamiliar with APIs

      1. Cass Mieczakowski

        that worked! thing why is there an upside down exclamation point after the temps?

        1. juano2310

          First try to refresh. if that doesn’t fix it you might have to kill the app and open it again.
          If still there can you send me a screenshot?

    1. juano2310

      I found the error. When I copied the code the editor replaced the ยฐ with ยก. You can replace it manually on “My Device type” in line 19 and 37 or copy and paste the code again.

  3. Jon Guerra

    Hello, I just bought the Nest. Are we live with system? Is it easy to set up with Smartthings?

    Please let me know before I open the box.



Leave a Reply

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