Repository| Issues

Most people leave the house at one temperature and forget to change it. So the Nest Learning Thermostat learns your schedule, programs itself and can be controlled from your phone. Teach it well and the Nest Thermostat can lower your heating and cooling bills up to 20%.

For more info about the Nest platform click here.

How to Install

$ npm install cylon cylon-nest

How to Use

var Cylon = require('cylon');

  connections: {
    nest: { adaptor: 'nest', accessToken: 'XXX' }

  devices: {
    thermostat: { driver: 'nest-thermostat', deviceId: 'XXX' },
    protect: { driver: 'nest-protect', deviceId: 'XXX' }

  work: function(my) {
    // Listen to the status event to obtain all thermostat
    // related data in a single object.
    my.thermostat.on('status', function(data) {
      console.log('The Thermostat at a glance--->', data);

    my.protect.on('status', function(data) {
      console.log('The Protect at a glance--->', data);

    every((60).seconds(), function(){
      console.log('NEST thermostat ambient temp C:', my.thermostat.ambientTemperatureC());
      console.log('NEST thermostat ambient temp F:', my.thermostat.ambientTemperatureF());

      console.log('NEST protect co alarm state:', my.protect.coAlarmState());
      console.log('NEST protect smoke alarm state:', my.protect.smokeAlarmState());

We currently have drivers for the following Nest devices:

  • Thermostat
  • Protect
  • Nest Home

How to Connect

First, you need to create a developer account with Nest Labs.

Once you've created an account, you need to create a client app. The Developer Portal UI will guide you through it. You don't need an OAuth redirect URL, since we're going to be using the generated PIN to get an access token.

Next step is to obtain the access token for your Nest account in order to authenticate, as instructed here.

Once you have done this, you should be able to use the access_token you obtained, with the generate access token url listed in the clients section of the Nest developer portal, to make API calls from Cylon.js

Nest Home Simulator

You can use Nest Home Simulator to test your programs. Follow instructions for installation here.

Once you have the simulator installed, you can create the structures you need and add as many devices as each structure supports.

You can now use your cylon program to interact with your simulated devices.


Available drivers for the Nest platform are listed below.