GithubHelp home page GithubHelp logo

homebridge-nest's Introduction

homebridge-nest

Nest plugin for HomeBridge

This repository contains the Nest plugin for homebridge that was previously bundled in the main homebridge repository.

Installation

  1. Install homebridge using: npm install -g homebridge
  2. Install this plugin using: npm install -g homebridge-nest
  3. Update your configuration file. See sample-config.json snippet below.

It is Strongly advised that you switch to the new API but it is not required at the moment. It will fall back to the old API, but no new development will be done on the old API.

Until an alternative is determined (like Nest Weave which hasn't been released yet or setting up a website for generating tokens specifically for HomeBridge-Nest), you will have to setup an developer account for Nest. Its a simple process and if you specify that it is for Individual, then you are auto approved (at least in my experience).

WARNING: Switching to the new API means it will show up as brand new device. This is due to the fact that the unofficial API used a different device id and we have no way to link it to the official cloud device id. This means any configurations, alarms, scenes, etc to which the Nest was associated will have need to be updated with the new Nest device.

Note: The name of the device will change as well. It matches the name displayed in the Nest app. In my case, I originally configured the Nest app so the the "Where" of my Nest was "Hallway" and I also added a label which was "Nest", so the display was "Hallway (Nest)". To fix the name to say "Nest", you can use the Nest app and blank out the "Label" and use the custom "Where" of "Nest". Anther option to fix the name is through HomeKit. HomeKit allows you to rename Accessories and Services, but it requires an app like Insteon+ that has the ability to change the name.

How to Setup New API

  1. Go to https://developer.nest.com
  2. Choose Sign In
  3. Use your normal account to sign in
  4. Fill in you info in 'Step 1'
  5. In 'Step 2' set:
  6. Then just agree to the terms and submit
  7. Go to Products and create a new product
  8. Fill in:
    • Product Name: HomeBridge + your name (must be unique)
    • Description: Open source project to provide HomeKit integration
    • Categories: Home Automation
    • Users: Individual
    • Support URL: https://github.com/kraigm/homebridge-nest
    • Redirect URL: [LEAVE BLANK]
    • Permissions (minimum):
      • Enable Thermostat with read/write v4
      • Enable Away with read/write v2
      • Enable Smoke+CO alarm with read v4 (if you ever might want Nest Protect)
      • Enable Camera with read v2 (if you ever might want Nest Cam, motion detection only)
      • Permission description: fill in anything
  9. Now you should have a product. Now locate the id/secret section on the right of your product's page
  10. Copy the Product ID to your HomeBridge config as the clientId in the Nest config
  11. Copy the Product Secret to your HomeBridge config as the clientSecret in the Nest config
  12. Navigate to the Authorization URL
  13. Accept the terms and copy the Pin Code to your HomeBridge config as the code in the Nest config
  14. Run HomeBridge once (do not include the token in the config at this time) and you should find a log that says something like "CODE IS ONLY VALID ONCE! Update config to use {'token':'c.5ABsTpo88k5yfNIxZlh...'} instead." Copy the c.5ABsTpo88k5yfNIxZlh... portion to your HomeBridge config as the token in the Nest config
  15. You should be able to restart HomeBridge and it should succeed with the new token.

After that you will be FINALLY done (Huzzah!). If the token is working correctly, you no longer NEED the other three configs (clientId, clientSecret, and code) nor the original username and password from the legacy system (but you can keep them around if you wish, they will be ignored).

Configuration

Configuration sample:

"platforms": [
   	{
   		"platform": "Nest",
   		
   		"token" : "token will be generated upon first run of homebridge without a token",
   		
   		"clientId": "developer Product ID",
   		"clientSecret": "developer Product Secret.",
   		"code": "your Pincode from Nest",
   		
   		"username" : "username",
   		"password" : "password"
   	}
   ],

Fields:

  • "platform": Must always be "Nest" (required)

  • "token": The only (and final) authentication piece you need to use the new API (required for new api, after determined)

  • "clientId": Can be anything (required for new api, if token not yet determined)

  • "clientSecret": Can be anything (required for new api, if token not yet determined)

  • "code": Can be anything (required for new api if trying to determine token)

Legacy Fields:

  • "username": Nest login username, same as app (required for legacy api)
  • "password": Nest login password, same as app (required for legacy api)

homebridge-nest's People

Contributors

alguevara7 avatar alistairg avatar bearmarch avatar ethansinjin avatar fcarucci avatar kraigm avatar masonjames avatar mrose17 avatar mschmidt avatar nfarina avatar pedroserano avatar philfreo avatar redec avatar spacecowgirl314 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-nest's Issues

Update to support official Nest Cloud API

Now that Nest has an official api, we need to switch to it so that we are properly following their usage. Should solve many compatibility issues and we won't have to worry about losing support in the future.

Has the Fahrenheit and Celsius already been solved?

Sorry i tried reading through all of these, but has this already been fixed? Please see below from my logs:

Away for Nest is: false
Temperature unit for Nest is: Fahrenheit
Current temperature for Nest is: 24.71
Current heating for Nest is: 0
Current humidity for Nest is: 41
Target heating for Nest is: 2
Target temperature for Nest is: 26.66666666666667

As seen above the temperature unit is showing Fahrenheit, but the logs show Celsius, I appreciate any feedback.

Also I feel i should add this info also:

[email protected] /usr/local/lib/node_modules/homebridge-nest
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])

It would be great to coalesce requests to change temperature

Often I'll tap a few degrees up or down. Rather than making separate requests to the api that count against my API quota, it'd be great if there were some coalescing period, or if homebridge-nest kept the connection open to the server so I wouldn't hit the rate limit. According to the documentation (https://developers.nest.com/documentation/cloud/data-rate-limits) it appears that Firebase api connections should be kept open and many commands sent over a single connection, rather than re-establishing them all of the time.

I found requests started failing because i was adjusting the temperature too rapidly and play with it, then in the home bridge logs I encounter lots of failures like this:

Fri, 29 Apr 2016 06:05:09 GMT Accessory [Homebridge Raspberry Pi] Error setting Characteristic "Target Temperature" to value 18.6: BLOCKED: {"error":"blocked","type":"https://developer.nest.com/documentation/cloud/error-messages#blocked","message":"blocked","instance":""}

Non-Labeled Nest devices need better unique name then "Nest[device-id]"

If a label was not specified for a Nest device, it was defaulted to "Nest" due to name conflicts (which I believed caused issues in HomeBridge) it was later changed to default to "Nest[device-id]". Which is nasty looking and (depending on the app) can't be changed.

Instead we need a more intelligent solution to solve name issue. My current thought on order of picking the name is (using first found):

  1. The Label like it looks for now
  2. If the Room is specified and unique, Room + "Nest" (i.e. "Hallway Nest")
  3. If only one device, then just "Nest"
  4. If only one in the house, then "[Home Name] Nest"
  5. Fall back to "Nest [device-id]"

Nest isn't recognized as a thermostat for certain Siri commands

I have two nests, one upstairs and one downstairs. I have them both working with the new API and homebridge-nest v1.0.0 running on a WiFi connected Raspberry Pi. I can control them just fine with any home kit app and I'm not seeing any errors in the log files. However, I'm not able to get Siri working quite right. Here are a few examples:

These queries work:
"What is the temperature downstairs?"
- "The Downstairs current temperature is at 71degF"
"What is the temperature in the house?" (I have a nest upstairs and one downstairs).
- "The current temperatures are at 69degF and 71degF"

These don't:
"Is the heat on?"
-"Sorry, I wasn't able to find any thermostats this time."
"Set the heat to 75 degrees"
- "Sorry, I wasn't able to find any thermostats this time."

And one to be very literal with the HomeKit lingo also did not work, but notably got Siri to admit there is in fact a thermostat downstairs:
"Set the downstairs current heating cooling state to heat"
- "Sorry, I wasn't able to get a response from your Downstairs thermostats this time."

crash on redirection?

just got this:

undefined:1
<html>redirect to <a
href="https://czfe08-front01-iad01.transport.home.nest.co
^
SyntaxError: Unexpected token <
    at Object.parse (native)
    at IncomingMessage.<anonymous>
(/usr/lib/node_modules/homebridge-legacy-plugins/node_modules/unofficial-nest-api/index.js:167:40)
    at IncomingMessage.emit (events.js:129:20)
    at _stream_readable.js:908:16
    at process._tickCallback (node.js:355:11)

Away status

Hey, have you been able to represent "Away" in some way?

Nest plugin not stating correct temperature

So....I had everything working with the older version of the plugin (just user/pass). I just updated everything to the latest Nest Dev API version and it loads everything perfectly:

homebridge to 0.2.15
homebridge-nest to 1.0.1
(and homebridge-liftmaster to 0.1.1 which is a different issue)

I deleted homekit data on my iPhone, deleted persist, rebooted but when I query one of my Nests as:

"What is the temperature in the Office?" Siri understands but gives me the target temp that the Nest is set to (67 F) Not the current temp it really is (73 F). I have 7 Nests and all of them give me the target temp and not the current actual temp in each room when I ask Siri what the temperature is for that room.

When initializing homebridge here is the info on the Office Nest:

Temperature unit for Office is: Fahrenheit
Current temperature for Office is: 73 F
Current humidity for Office is: 25%
Target temperature for Office is: 67 F
Target heating for Office is: Heating
Away for Office is: false

Asking Siri "What is the temperature in the Office?" (and all other rooms) worked perfectly with the old homebridge-nest plugin. Any ideas?

Nest will not change temperatures when in auto away

If you ask siri to set a temperature and nest happens to be in auto-away or away mode, it will reply "Sorry, I wasn't able to find any thermostats this time". I suggest adding a command to set the mode to home before sending the temperature change request. If you are asking siri to change the temperature, there is a good chance that you don't want it in auto-away or away mode anyways.

Add Siri usage examples to readme

I'm considering purchasing a Nest and part of my decision-making process involves understanding how much control I'll be able to have using Siri.

It would be great if you could add a section to the readme that would give all of the commands that Siri/Nest will accept once this is setup. For example, something like:

  • Set temperature to 72°
  • Set temperature to 72° at 5PM
  • Set temperature to 72° for one hour
  • etc…

Cannot connect to homebridge nest even though it is running correctly

Hi

I am very new to this. My homebridge set up finally looks correct after many tweaks but it does not show up in my "Devices" app on my iPhone when I click add new device. Can anyone offer any help here? It would be greatly appreciated.

Last login: Sat Mar 19 18:20:11 on ttys000
Steves-MBP:~ stevepopky$ homebridge
[3/19/2016, 6:41:34 PM] Loaded plugin: homebridge-nest
[3/19/2016, 6:41:34 PM] Registering platform 'homebridge-nest.Nest'
[3/19/2016, 6:41:34 PM] ---
[3/19/2016, 6:41:34 PM] Loaded config.json with 0 accessories and 1 platforms.
[3/19/2016, 6:41:34 PM] ---
[3/19/2016, 6:41:34 PM] Loading 1 platforms...
[3/19/2016, 6:41:34 PM] Initializing Nest platform...
[3/19/2016, 6:41:34 PM] Fetching Nest devices.
[3/19/2016, 6:41:35 PM] Software version for Living Room Thermostat is: 5.1.8-3
[3/19/2016, 6:41:35 PM] Temperature unit for Living Room Thermostat is: Fahrenheit
[3/19/2016, 6:41:35 PM] Current temperature for Living Room Thermostat is: 73 F
[3/19/2016, 6:41:35 PM] Current humidity for Living Room Thermostat is: 25%
[3/19/2016, 6:41:35 PM] Target temperature for Living Room Thermostat is: 72 F
[3/19/2016, 6:41:35 PM] Initializing platform accessory 'Living Room Thermostat'...
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

┌────────────┐     
│ 987-65-432 │     
└────────────┘     

[3/19/2016, 6:41:35 PM] Homebridge is running on port 51826.

Thank you so much.

[Nest] Update to Device: undefined type: undefined

The Homebridge can't generatie code.
How to fix?
screen shot 2015-12-08 at 22 40 33

Loading 1 platforms...
[Nest] Initializing Nest platform...
[Nest] Fetching Nest devices.
[Nest] Away for Nest02AA01AC431402ZH is: false
[Nest] Tempature unit for Nest02AA01AC431402ZH is: Celsius
[Nest] Current temperature for Nest02AA01AC431402ZH is: 20.95
[Nest] Current heating for Nest02AA01AC431402ZH is: 0
[Nest] Current humidity for Nest02AA01AC431402ZH is: 54
[Nest] Target heating for Nest02AA01AC431402ZH is: 1
[Nest] Target temperature for Nest02AA01AC431402ZH is: 16.477
[Nest] Initializing platform accessory 'Nest02AA01AC431402ZH'...
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

┌────────────┐     
│ undefined │     
└────────────┘     

Homebridge is running on port 51826.
[Nest] Update to Device: undefined type: undefined

HomeBridge-Nest Promise is not defined issue

Hi, I tried using the old API but I had this Promise is not defined issue, so I tried using the new API, but I get the same issue and no token. Please help. Thank you

Error I get is below;

Loading 1 platforms...
Initializing Nest platform...
Fetching Nest devices.

/usr/local/lib/node_modules/homebridge-nest/index.js:58
return new Promise(function (resolve, reject) {
^
ReferenceError: Promise is not defined
at setupConnection (/usr/local/lib/node_modules/homebridge-nest/index.js:58:13)
at Object.NestPlatform.accessories (/usr/local/lib/node_modules/homebridge-nest/index.js:129:3)
at Server._loadPlatformAccessories (/usr/local/lib/node_modules/homebridge/lib/server.js:211:20)
at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:205:14)
at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:35:36)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:23:16)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

Any help is greatly appreciated! thank you.

Siri only adjusts AC not heat

I seem to only be able to set the "cooling" temperature but not the heat. I assume this is simply me issuing the wrong command. I have tried "

  • Siri turn up heat in living room to 70 degrees
  • Siri set living room to 70 degrees

but both set the "cooling" temperature but not the heat. What am I doing wrong ?

Siri does no recognize Hombridge-Nest

Hello! First off, I recently found out about Homebridge, and it is quite fantastic, so many thanks to all who have contributed.

I have Homebridge and the Nest plugin installed on my mac, and loaded in Launchctl to boot. I am using the new API successfully, and I see both Homebridge and my (one) Nest in the Insteon+ app with no problems. I can use the device in the Insteon app to control the Nest. So, all of that seems to be working just as intended.

HOWEVER, nothing I do seems to get Siri to work. Everything I try gets a 'no devices connected' error message. I tried:

  • resetting homekit,
  • using a different iOS app,
  • recycling the Homebridge server (several times),
  • logging out and back in to my iCloud account, on iOS and (new) AppleTV

I'm flummoxed. Any advice or troubleshooting guidance would be hugely appreciated. Using Siri is the entire reason I want to use Homebridge!!!

Fahrenheit or Celsius

Either I'm the only one using Fahrenheit or I'm missing something—of course, the latter seems more likely. The display clearly shows that the units should be fahrenheit but it displays Celsius. I should add that I'm using MyTouchHome. I am using the master branch

img_0161

Make the Nest server configurable

I don't want to break the #1 fight club rule... But let's assume that the guy who wrote this post is correct, and there is a Nest beta program, would it be possible to make the Nest server configurable, so that somebody who participates in something that may or may not exist can also use the HomeBridge-Nest plug-in without having to modify the sources for every update? :)

Here is the post I am referring to:

https://www.domoticz.com/forum/viewtopic.php?t=9758

oldaccessories fallback causing issues with authentication

Firstly - I just got homebridge-nest setup, I love it! The documentation provided is great. Thanks for making / maintaining this great plugin 👍

However during setup I stumbled across an issue that confused me for a while. I'm still unsure why it occurred. My devices are as follows

  • Nest protect 2nd generation
  • Nest learning thermostat 3rd generation

I was unable to follow steps

Run HomeBridge once (do not include the token in the config at this time) and you should find a log that says something like "CODE IS ONLY VALID ONCE! Update config to use {'token':'c.5ABsTpo88k5yfNIxZlh...'} instead." Copy the c.5ABsTpo88k5yfNIxZlh... portion to your HomeBridge config as the token in the Nest config
If the token is working correctly, you no longer NEED the other three configs (clientId, clientSecret, and code) nor the original username and password

I kept getting authentication issues, I think this might be because there is a legacy 'oldaccessories' devise in my setup. My aforementioned Nest Protect 2nd generation smoke detector.

To fix my issue I resorted to

Otherwise I keep getting the error message There was a problem authenticating with Nest.

   "platforms":[  
      {  
         "platform":"Nest",
         "token":"c.bla",
         "username":"[email protected]",
         "password":"password"
      }
   ]

If I'm correct and setups including any 'oldaccessories' will cause this issue it might be worth updating the README to reflect this or editing the error message https://github.com/KraigM/homebridge-nest/blob/master/index.js#L161

Just thought I'd post some friendly feedback because otherwise setup would have been a breeze.

Cheers

Can this plugin include support for Nest Protect Smoke Alarms

Hello! First off, I recently found out about Homebridge, and it is quite fantastic, so many thanks to KraigM and all who have contributed.

I have Homebridge and the Nest plugin installed on my mac, and loaded in Launchctl to boot. I am using the new API successfully, and I see both Homebridge and my (one) Nest in the Insteon+ app and in Matthias Hochgatterer's Home app with no problems. I can use the device in the apps to control the Nest, as well as using Siri to interrogate and set temperatures. So, all of that seems to be working just as intended! AWESOME.

Is it possible to add the ability to control - or just access the sensor data - from the Nest Protect smoke alarms? I don't know what this would entail, so forgive the question of it is a dumb request...

Thanks again!

New API Setup

When following the instructions in "How to Setup New API" there are a couple of issues:

  1. In step 8, the name "HomeBridge" is not allowed as it already exists. I did use a different name but don't know if this will cause problems.
  2. After step 12, there is no option to "Accept the terms and copy the Pin Code". The error message "CODE IS ONLY VALID ONCE!" does not appear.

Auto-Away should be treated as away per API documentation

After further investigation, auto-away means "Nest has determined algorithmically that no one is home. Currently there is no way to vote on entering this state via the Nest cloud API. Clients are expected to use explicit controls or actions that will set away directly rather than algorithmically.", where as home is used for both auto and manual "There is someone in the house, either because Nest has high confidence from motion sensor data, or the user has explicitly set the structure to home via a Nest app, your product, or via ETA."

https://developer.nest.com/documentation/cloud/how-to-structures-object

Rapid temp changes due to number rounding issues

In Fahrenheit when you change the temp, it will often return the temp offset by a very small decimal (aka 64.999994 instead of 65). This causes it to send a temp change multiple times. While this shouldn't cause any real issues, it may be the reason Insteon+ stutters sometimes when changing the temp.

Log example:

[NestPlat] Setting target temperature for Nest to: 65
[NestPlat] Target temperature for Nest is: 65 F
[NestPlat] Target temperature for Nest is: 64.999994 F
[NestPlat] Target temperature for Nest is: 65 F

Doesn't seem to load with my config file

I get this error message when I try and load Homebridge with just the nest plugin.

`/usr/local/lib/node_modules/homebridge/lib/server.js:124
throw err;
^

SyntaxError: Unexpected token  
at Object.parse (native)
at Server._loadConfig (/usr/local/lib/node_modules/homebridge/lib/server.js:118:19)
at new Server (/usr/local/lib/node_modules/homebridge/lib/server.js:25:23)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:23:3)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:434:26)
at Object.Module._extensions..js (module.js:452:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:475:10)
at startup (node.js:117:18)
at node.js:951:3`

This is my config file, I have tried it with and without the token. The config file passes the JSON website check so it is valid. Thank you in advance
{
"bridge": {
"name": "Homebridge",
"username": "DD: 33: 4E: F4: DF: 31 ",
"port": 51927,
"pin": "031-45-154"
},

"platforms":  [{
    "platform":   "Nest",

    "clientId":   "2fd1eef9-e990-4680-9114-c696",
    "clientSecret":   "5YVLGQuspgfpbbcZ",
    "code":   "PHX",

    "username" :   "my email",
    "password" :   "my password!"
}]

}

Siri won't give temperature in celsius

My nest is configured for celsius, the iphone region is configured to be Canada...whenever I talk to siri about outside temperatures she always talks in celsius, The Insteon+ app even shows the temp in celsius....only when accessing my nest through siri she gives me fahrenheit, and I can't seem to fix it.

I noticed something else a little odd (not sure if it's related), when I switch my nest back and forth from celsius to fahrenheit I see this in the log:
Temperature unit for Home is: Fahrenheit
Temperature unit for Home is: 0
Temperature unit for Home is: Fahrenheit
Temperature unit for Home is: 0
Looking at the code it really doesn't look like this output should really be possible...

Homebridge Crashes with nes

With just nest and smartthings running it crashes with nest i think.
also if i try and add harmony will not start now i do have to harmony hubs in the house if that makes a difference.

potential for increased battery drain?

My Nest doesn't have a dedicated C wire for power but for the past 2 years I have never had an issue with the battery draining. A couple days ago I set up a the Lutron Smart Hub and a wireless in wall switch with HomeKit. I also set up Homebridge with the Nest plugin using the newer token based API. Everything worked great with Siri and HomeKit scenes. However, yesterday my Nest went into low power mode and disabled wifi and the motion sensor. The battery was reading around 3.6v. Being winter in New England this isn't something to mess around with so I immediately shut down Homebridge and removed all the Nest HomeKit configuration. This morning the battery is back up to 3.8v.

Does Homebridge and the Nest plugin increase the frequency that the Nest checks for temperature changes? This is the only explanation I can think of. It seems too strange that I never had battery issues until I set up HomeKit/Homebridge, and it went away when I turned it off. Is there anything else that Homebridge could be doing that could inadvertently be causing additional battery drain?

Firebase error

Hi there, i can't change the temp.. When i say the temperture it currently is set to, he says he do it.. But if i say another temperture he gives the following error : "FIREBASE WARNING: set at /devices/thermostats/#MASKED#/target_temperature_c failed: blocked"

Any idea ?..
Made it up with the new api (as fr as i know) and removed my username and password from the config.json

Celsius temp display with units=Fahrenheit

When running the Nest plugin I see this:

[Nest] Current temperature for Nest02AA01AB391202M3 is: 21.27  <= Celsuis
[Nest] Target temperature for Nest02AA01AB391202M3 is: 18.968  <= Celsius
[Nest] Tempature unit for Nest02AA01AB391202M3 is: Fahrenheit
[Nest] Away for Nest02AA01AB391202M3 is: false
[Nest] Current humidity for Nest02AA01AB391202M3 is: 45

This also appears in the MyTouchHome iOS app:
img_8572 2

Siri give erratic temperature in celsius

Hi, if i ask Siri to give me current home temperature it give me erratic answer:
Say 1919 celsius for 19,0 celsius
18,519 celsius for 18,5 celsius etc....
It always append the value 19...
Running on my Mac or my pi give me the same result.

How can i correct it?
Homebridge vers. 0.2.19
Homebridge-Nest 1.0.1

Nest Cam support

Can someone please add Nest Cam support to this plugin?

Maybe it can be added using the HAP-NodeJS HomeKit type - Motion Sensor, since cameras aren't supported just yet.
It would be great to have the motion detector in the nest cam as a trigger device for HomeKit.
Also, I'd like to use the Away toggle as well. Currently the plugin won't find and initialize my Nest Cams because it's only looking for Thermostats.

If my coding skills were up to par I'd do it myself. Hoping someone more knowledgable than me might want to give it a try 😊

Nest Cam - can't set Away

Thank you for updating the plugin to include Nest Cams as well.

The issue I'm having is that I do not see an Away toggle after adding my Nest Cams. The show up in my HomeKit config but they do not have the Away Characteristic.
I do not have a best Thermostat. I believe the best-camera-accessory.js doesn't include Away functionality.

Can you add Away functionality to Nest Cam please?

Many Thanks

Nest API - "token"

When following your nest install guide, I can't get the "token" output. In Step 14, do you mean that the "token" line should be left off the config.json file completely or that it should be blank?

I received the following error on executing Step 14:

[3/12/2016, 4:39:22 PM] Loaded plugin: homebridge-controllerlink
[3/12/2016, 4:39:22 PM] Registering platform 'homebridge-controllerlink.HomeBridgeControllerLink'
[3/12/2016, 4:39:22 PM] ---
[3/12/2016, 4:39:24 PM] Loaded plugin: homebridge-nest
[3/12/2016, 4:39:24 PM] Registering platform 'homebridge-nest.Nest'
[3/12/2016, 4:39:24 PM] ---
[3/12/2016, 4:39:24 PM] Loaded config.json with 0 accessories and 1 platforms.
[3/12/2016, 4:39:24 PM] ---
[3/12/2016, 4:39:24 PM] Loading 1 platforms...
[3/12/2016, 4:39:24 PM] Initializing Nest platform...
[3/12/2016, 4:39:24 PM] Fetching Nest devices.
[3/12/2016, 4:39:25 PM] { [Error: UNAUTHORIZED: {"error":"unauthorized","type":"https://developer.nest.com/documentation/cloud/error-messages#auth-error","message":"unauthorized","instance":"c4b75140-a07c-4d13-aa94-b4f1156b305d"}] code: 'UNAUTHORIZED' }

Crash: Error: getaddrinfo ENOTFOUND

Running homebridge / homebridge-nest on Mac OS X Server El Cap. Runs fine for a few hours then crashes as shown:

Homebridge is running on port 51826.
events.js:141
throw er; // Unhandled 'error' event
^

Error: getaddrinfo ENOTFOUND czfe04-front01-iad01.transport.home.nest.com czfe04-front01-iad01.transport.home.nest.com:443
at errnoException (dns.js:26:10)
at GetAddrInfoReqWrap.onlookup as oncomplete

Error checking on request-promise

Hi,

There has been a niggling issue over in Homebridge (homebridge/homebridge#457) that was potentially caused by homebridge-platform-wemo (https://github.com/rudders/homebridge-platform-wemo). We tracked it down to some error checking in a dependent module wemo-client. It wasn' handling errors well on an httpRequest essentially.

The user that reported the issue @AppleTechy (https://github.com/AppleTechy) (well one of them) continues to have a similar problem caused by an underlying HTTP failure (ETIMEOUT), He also has homebridge-nest installed and his debug log shows next activity just before the error.

I was wondering of some of the error checking that is available on request-promise (https://github.com/request/request-promise#get-a-rejection-only-if-the-request-failed-for-technical-reasons) might be applicable in homebridge-nest.

I can't try and fix it as we don't even have Nest Thermos in Australia....

Revert back to old api

how do I remove the now api install the legacy version of nest plugin mate? running sudo npm install -g homebridge-nest im assuming installed the new version? i had everything running just fine before upgrading my system, upon trying to reinstall nest api i get all these errors http://d.pr/i/1j8Gi looking at the git-page it looks like there are a tone of steps i need to go through to get this to work again would rather just stick with the old api for now i tried going through the steps for the new api I got to the point where I was registering the dev account in order to use the new api , and got stuck here --> http://d.pr/i/i1lI <-- I dont know how to move forward so if there is no way to use the old api can someone please help me figure out what to do from here? thx in advance

Nest Thermostat Auto Mode Settings

I have been testing this with the new Nest API and it has been working OK. My main issue is that I have 3 Nest thermostats and they are all set in Auto changeover mode. That means there are 2 temperature settings for each thermostat, low and high. This only shows the current temperature and only allows me to adjust one of the temperature settings. I'm not sure how it picks which temperature setting, low or high, to adjust. I would like to be able to see the current temperature and to be able to adjust both the low and high temperature settings.

Plugin breaks homebridge if it can't communicate with NEST API

If the NEST plugin cannot communicate with the NEST cloud/API due to blocked firewall ports, homebridge never finishes initializing [doesn't display the PIN window] and all devices/accessories become unavailable. No error is logged to the console to inform user, homebridge hangs.

Unable to Read Config.json

Not sure what I have done right or wrong.

After following the steps, I seem to get stuck on step 14. No matter what I do, terminal spits back:

[4/28/2016, 12:09:52 AM] There was a problem reading your config.json file.
[4/28/2016, 12:09:52 AM] Please try pasting your config.json file here to validate it: http://jsonlint.com

jsonlint.com of course says:

Error: Parse error on line 1:
"platforms": [{ "platform": "N
-----------^
Expecting 'EOF', '}', ',', ']', got ':'

API Error: unauthorized user on startup

/usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/node_modules/q/q.js:126
throw e;
^
Api Error: unauthorized user
at checkForError (/usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/hue-api/httpPromise.js:93:15)
at /usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/hue-api/httpPromise.js:140:26
at _fulfilled (/usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/node_modules/q/q.js:749:13)
at /usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/node_modules/q/q.js:557:44
at flush (/usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/node_modules/q/q.js:108:17)
at doNTCallback0 (node.js:407:9)
at process._tickCallback (node.js:336:13)
pi@raspberrypi:~ $

My config.json currently looks like this:

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "031-45-154"
    },
   "description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
    "accessories": [
    ],
    "platforms": [
        {
         "platform": "PhilipsHue",
         "name": "Philips Hue",
         "ip_address": "192.168.1.198",
         "username": "252deadbeef0bf3f34c7ecb810e832f"
        }
        ,
        {
         "platform": "Nest",
         "clientId" : "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
         "clientSecret" : "zzzzzzzzzzzzzzzzzzzzzzzzzz",
         "code" : "DEADBEEF"
        }
    ]
}

(The Nest API ClientID, ClientSecret, and code are all copied carefully from the https://developer.nest.com page I set up according to the instructions, and are not the placeholders shown above.)

How to config with multiple Nest thermostats

Hi,

I got one Nest running with your home bridge-nest with the new API as suggested. In my config.json file I have a token, clientId and clientSecret etc like the text below:

If I add another Nest thermostat # 2 to the house, is the following correct? I will still use the same token? also what do I put for "platform" for the 2nd Nest? Please advice.

"platforms": [
{
"platform": "Nest",

    "token" : "c.5ABsTpo88k5yfNIxZlh...",

    "clientId": "developer client id",
    "clientSecret": "developer client secret.",
    "code": "Pin Code",

    "username" : "username",
    "password" : "password"
},

{
    "platform": "Nest number 2 goes here?",

    "token" : "c.5ABsTpo88k5yfNIxZlh...",

    "clientId": "developer client id",
    "clientSecret": "developer client secret.",
    "code": "Pin Code",

    "username" : "username",
    "password" : "password"
}

],

Attempts to change Nest settings no longer work (Firebase warns as failure: blocked)

I'm getting a Firebase Warning when attempting to change any Nest setting through Insteon+ as well MyTouchHome. For example, when setting the temperature, I get:

Setting target temperature for Nest to: 68
Target temperature for Nest is: 68 F
FIREBASE WARNING: set at /devices/thermostats/Dsk9FNKDY1nqZ2y7MVC3ztxc6zC1sr1x/target_temperature_f failed: blocked
Target temperature for Nest is: 67 F

I just got Homebridge set up along with homebridge-nest and was delighted to change settings through both the MyTouchHome and Insteon+ apps. I adjusted settings for a few minutes, getting an understanding for how both apps render the information. When I attempted to change the target temperature in MyTouchHome, I got errors (likely because of the thresholding of Cool+Heat mode), but changing the other options (Mode and Away) worked in both apps.

Then, after 5 minutes of fooling around, I started getting the above error no matter what I changed. I've restarted homebridge, which didn't fix the issue. I then tried out the nuclear option: deleted the Homebridge accessory, changed my username in config.json, re-created my token, and re-registered the accessory in Insteon+. Still, no luck.

As I'm a n00b, I'm sorry if I missed an already documented fix for this. I searched for the error in repo, but couldn't find it and I'm not familiar enough with Firebase to know why it would return blocked.

Last thing of interest: Even after I tried the nuclear option, the errors shown in the log refer to the same /device/thermostats/<id>. For example, when I tried to set the mode before I removed and re-added, I got this error:

Setting target heating cooling for Nest to: cool
Target heating for Nest is: Cooling
FIREBASE WARNING: set at /devices/thermostats/Dsk9FNKDY1nqZ2y7MVC3ztxc6zC1sr1x/hvac_mode failed: blocked

In both errors, the thermostat ID is Dsk9FNKDY1nqZ2y7MVC3ztxc6zC1sr1x. I assumed it would change once I re-created my token.

Are you aware of anything I can do to get past these errors?

Support for switching away and home modes

I just downloaded version 0.1.1 of the plugin and had a great time changing thermostat settings with siri. Thanks!

I noticed that the "I'm home" and "I'm leaving" voice commands don't set the nest mode to home and away. When I said "I'm leaving" Siri replied "Sorry Raxaco, I wasn't able to find any devices this time"
When I said "I'm home" she welcomed me back but the away/home mode stayed on "away."

I have [email protected] and [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.