na

nest-api

Main Nest API for node (also see: nest-api-thermostat and nest-api-protect)

Showing:

Popularity

Downloads/wk

12

GitHub Stars

9

Maintenance

Last Commit

4yrs ago

Contributors

4

Package

Dependencies

0

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

NPM version Build Status Coveralls Status Dependency Status

nest-api

Main Nest API for node (also see: nest-api-thermostat-api and nest-api-protect-api) Adapted from:

Installation

npm install nest-api

Usage

Configuration

In order to instantiate and use the main Nest API should use the following:

var NestApi = require('nest-api');
var nestApi = new NestApi('YOUR_EMAIL', 'YOUR_PASSWORD');
// Login (must be called first to establish a session)
nestApi.login(function(data) {
    // A callback for something you would want to do on login
});

nestApi.get(function(data) {
  // Get a property from the Nest API.  See the Appendix for a list of properties.
});

Examples

var NestApi = require('nest-api');
var nestApi = new NestApi('YOUR_EMAIL', 'YOUR_PASSWORD');

nestApi.login(function(data) {
  nestApi.get(function(data) {
    var shared = data.shared[Object.keys(data.schedule)[0]];
    console.log('Currently ' + shared.current_temperature + ' degrees celcius');
    console.log('Target is ' + shared.target_temperature + ' degrees celcius');
  });
});

Contributing

Please feel free to modify and contribute to this code:

License

See LICENSE

TODO

  • Implement Nock for testing
  • Write generic getter for information
  • Research POST operations for Nest API and write setters

Appendix

Below is an example data structure / JSON object returned from the Nest API:

{
  user_alert_dialog: { '###':  { /* ... */ } },
  track:  { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  message_center: { '###': { /* ... */ } },
  utility: { /* ... */ },
  where: { '### uuid ###': { /* ... */ },
  structure: { '### uuid ###': { /* ... */ },
  message: { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  tuneups: { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  device: { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  demand_response: { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  user: { '###': { /* ... */ },
  link: { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  device_alert_dialog: { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  metadata: { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  user_settings: { '###': { /* ... */ },
  schedule: { '0123456789ABCDEF': { /* ... */ }, /* ... */ },
  shared: { '0123456789ABCDEF': { /* ... */ }, /* ... */ }
 }

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial