chrisjshull / homebridge-nest Goto Github PK
View Code? Open in Web Editor NEWNest plugin for HomeBridge
Nest plugin for HomeBridge
motion sensor from nest can be used as motion sensor accessories?
I have set two scenes:
Steps to reproduce the behavior:
Initialize the Leave Home scene and the temperature is set to Cooling to 68°
rather than 80°.
Versions:
Node Version: 9.2.1
Homebridge: 0.4.44
Homebridge Nest: 2.1.4
Some things to note:
I can reproduce by manually initializing the scene or through automation. It sets the scene correctly for the first 1 to 2 seconds, then it switches to 68° (seems to be honoring the Heating threshold temp). The Arrive home scene seems to be unaffected and executes correctly.
In an effort to troubleshoot, I've been blocked by the Nest API, so I will follow up with a DEBUG log shortly. In the meantime here is the terminal output in case you can glean anything from it.
Leave Home Scene:
[2018-7-4 17:17:47] [Nest] Queuing to set temperature 26.4
[2018-7-4 17:17:52] [Nest] Cooling threshold temperature set to 23.8 null
[2018-7-4 17:17:52] [Nest] Temperature set to 26.4 null
[2018-7-4 17:17:52] [Nest] Heating threshold temperature set to 20 null
[2018-7-4 17:22:27] [Nest] Queuing to set heating threshold temperature 20
[2018-7-4 17:22:27] [Nest] Queuing to set temperature 26.4
[2018-7-4 17:22:27] [Nest] Queuing to set cooling threshold temperature 23.8
[2018-7-4 17:22:33] [Nest] Heating threshold temperature set to 20 null
[2018-7-4 17:22:33] [Nest] Cooling threshold temperature set to 23.8 null
[2018-7-4 17:22:33] [Nest] Temperature set to 26.4 null
Arrive Home Scene
[2018-7-4 18:46:13] [Nest] Queuing to set temperature 23.8
[2018-7-4 18:46:13] [Nest] Queuing to set heating threshold temperature 20
[2018-7-4 18:46:13] [Nest] Queuing to set cooling threshold temperature 23.8
[2018-7-4 18:46:18] [Nest] Heating threshold temperature set to 20 null
[2018-7-4 18:46:18] [Nest] Cooling threshold temperature set to 23.8 null
[2018-7-4 18:46:18] [Nest] Temperature set to 23.8 null
Is your feature request related to a problem? Please describe.
I would like to trigger an “automation” in HomeKit based on the current detected temperature on the Nest. Presently this sensor doesn’t appear to be available.
For instance, my thermostat doesn’t include cooling, but if I can detect that the temp is at or above a certain level (which HomeKit already shows in the iOS GUI), I could trigger my AC to turn on via HomeKit automation.
I see elsewhere that Nest temp sensors are not supported by the API, but it’s not clear whether the Nest’s own sensor (which already delivers data to HomeKit) is included in this lack of support.
Thanks for listening and for this great plugin!
I just installed the plugin, set everything correctly and added the motion sensor to my home app.
But the motion event never fires. It works fine in the Nest app but not in homekit. How to fix? Is it because I am using the camera v4 api?
Is your feature request related to a problem? Please describe.
Nest API now allows read access of the Nest Secure security status. Would love to see this integrated into homebridge.
Describe the solution you'd like
Integration into homebridge
Describe alternatives you've considered
NA
Additional context
Currently, the security status shows "device skipped"
Hey guys,
Here is my setup:
I'd like to disable Eco, Fan & Home on the Nest E's but to keep it on the main Nest that controls the Central Air. Is there a way to do that without having to hide stuff in a separate room?
Thanks,
Phil
If I change the temp on the Nest itself, Home app updates within seconds and shows the current set temperature. If i try to change it from the home app, it resets the to what the temperature was set at before I changed it in-app within a few seconds.
In the homebridge logs, I'm getting a BLOCKED message from the NestAPI:
Mar 22 12:53:38 homebridge[19310]: { Error: BLOCKED: {"error":"blocked","type":"https://developer.nest.com/documentation/cloud/error-messages#blocked","message":"blocked","instance":"22bdec9b-5757-4865-9fdf-fcadb0153b12"}
Could google nest's API be that restrictive? I've got the proper permissions set (read/write v6) for the t'stat.
Please forgive me if this is already possible. I've been searching for a way to do this and I can't find anything. I almost feel bad even writing this because I know it was an implemented feature request to have it in the first place. Is it possible to manually exclude accessories such as "Fan" and "Eco Mode" so that I only have and utilize the Thermostat and Home/Away switch? I never run the fan manually and I have Eco mode configured to run when the Nest is set to Away so for the sake of reducing clutter and only seeing what is used/wanted, is this a possibility?
Could you modify nest-thermostat-accessory.js line 128-135?
It will expose 'Home Occupancy Switch' as a occupancy sensor and 'Eco Mode' as a motion sensor.
if (this.platform.shouldEnableFeature("Thermostat.Home")) {
const homeService = this.addService(Service.OccupancySensor, "Home Occupied", "home_occupied");
this.bindCharacteristic(homeService, Characteristic.OccupancyDetected, "Home Occupied", this.getHome, this.setHome);
}
if (this.platform.shouldEnableFeature("Thermostat.Eco")) {
const thermostatEcoModeService = this.addService(Service.MotionSensor, "Eco Mode", "eco_mode");
this.bindCharacteristic(thermostatEcoModeService, Characteristic.MotionDetected, "Eco Mode", this.getEcoMode, this.setEcoMode);
Today I randomly got an error when loading the plugin, that is naturally causing my whole homebridge instance to not start.
Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: [2018-4-8 09:32:10] ERROR LOADING PLUGIN homebridge-nest: Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: [2018-4-8 09:32:10] /usr/lib/node_modules/homebridge-nest/node_modules/bluebird/js/release/map.js:130 Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: MappingPromiseArray.0rototypg.preservedValues = function (#011 { Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: ^^ Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: SyntaxError: Invalid or unexpected token Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at new Script (vm.js:51:7) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at createScript (vm.js:136:10) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Object.runInThisContext (vm.js:197:10) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Module._compile (module.js:613:28) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Object.Module._extensions..js (module.js:660:10) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Module.load (module.js:561:32) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at tryModuleLoad (module.js:501:12) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Function.Module._load (module.js:493:3) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Module.require (module.js:593:17) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at require (internal/module.js:11:18) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at module.exports (/usr/lib/node_modules/homebridge-nest/node_modules/bluebird/js/release/promise.js:737:1) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Object.<anonymous> (/usr/lib/node_modules/homebridge-nest/node_modules/bluebird/js/release/bluebird.js:9:36) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Module._compile (module.js:649:30) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Object.Module._extensions..js (module.js:660:10) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at Module.load (module.js:561:32) Apr 8 09:32:10 HomeBridge2018 homebridge[18784]: at tryModuleLoad (module.js:501:12)
Later on in the log the following is displayed:
Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: /usr/lib/node_modules/homebridge/lib/api.js:122 Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: throw new Error("The requested platform '" + name + "' was not registered by any plugin."); Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: ^ Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: Error: The requested platform 'Nest' was not registered by any plugin. Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at API.platform (/usr/lib/node_modules/homebridge/lib/api.js:122:13) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at Server._loadPlatforms (/usr/lib/node_modules/homebridge/lib/server.js:294:45) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at Server.run (/usr/lib/node_modules/homebridge/lib/server.js:85:36) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at module.exports (/usr/lib/node_modules/homebridge/lib/cli.js:40:10) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at Object.<anonymous> (/usr/lib/node_modules/homebridge/bin/homebridge:17:22) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at Module._compile (module.js:649:30) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at Object.Module._extensions..js (module.js:660:10) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at Module.load (module.js:561:32) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at tryModuleLoad (module.js:501:12) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at Function.Module._load (module.js:493:3) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at Function.Module.runMain (module.js:690:10) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at startup (bootstrap_node.js:194:16) Apr 8 09:32:12 HomeBridge2018 homebridge[18784]: at bootstrap_node.js:666:3 Apr 8 09:32:12 HomeBridge2018 systemd[1]: homebridge.service: Main process exited, code=exited, status=1/FAILURE Apr 8 09:32:12 HomeBridge2018 systemd[1]: homebridge.service: Unit entered failed state.
I have the following versions:
pi@HomeBridge2018:~ $ node -v v9.10.1 pi@HomeBridge2018:~ $ npm -v 5.6.0
Raspberry Pi 3:
pi@HomeBridge2018:~ $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)"
What I have tried:
Restarting the HomeBridge Raspberry Pi
Reinstalling homebridge-nest
Removing homebridge-nest
Reinstalling homebridge-nest after reinstall
If I remove the Nest config from the config.json it works fine, so it does appear to be an issue with this particular plugin. I didn't update or do anything to the Pi, this just started happening.
Could you advise?
Thanks
Hi, the lowest setting using the dail of the nest thermostat is 9 degrees .
When using siri and issuing the command to set the temperature to 9 degress it acknowledges but the temperature is always set to 10. It is as if the lowest temperature thats can be set using homebridge nest plugin is 10 degrees celsius. Using siri i can set it to anything else but not 9 degrees.
Is this an issue with the nest plugin? Thanks
So I don't think this is an issue directly within homebridge-nest but maybe someone can assist in troubleshooting? After a couple days using the homebridge-nest my nest will start going into away mode on its own. I can set Home back in the nest app or within the Home iOS app and a few mins later the house will go back into away mode.
I'm watching the logs in homebridge and its not logging that HomeKit is doing this yet when I unauthorize the homebridge-nest integration this issue stops.
Now as I write this it just happened so I go into the Home iOS app to change back to home and I'm seeing a blocked message in the homebridge logs.
[2018-4-7 07:46:37] [Nest] Setting Home for 09 - Living Room Thermostat (Downstairs) to: home [2018-4-7 07:46:37] [Nest] Setting Home for 10 - Loft Thermostat (Upstairs) to: home FIREBASE WARNING: set at /structures/xxxxx-nlDDJe0sCd2YekJUOvNHqVMFug/away failed: blocked FIREBASE WARNING: set at /structures/xxxxx-nlDDJe0sCd2YekJUOvNHqVMFug/away failed: blocked
I don't use Auto mode - I live in a warm area and I always leave the system on 'cool'. If I ask siri to "set the thermostat to 70" it will turn on auto (heat/cool) mode. Changing temperature via the slider doesn't do this.
EDIT: I realized that this happens when you set the temperature to be higher than the current ambient temperature. See my comment below.
I tried setting the low end temperature to 50 as a workaround but this royally screws up my Alexa integration, which apparently puts the target temperature halfway between the low and high end when you ask it to change the temperature and heat/cool mode is enabled.
This started happening after I upgraded homebridge-nest, I assume because this fork has auto mode implemented.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the thermostat to stay on 'cool', not switch to 'auto'
Include with your bug report this version info:
node --version - v7.7.4
homebridge --version - 0.4.42
Make sure you have the latest LTS from https://nodejs.org
and the latest packages: npm upgrade -g homebridge homebridge-nest
Also include debug log output from startup through seeing the issue:
DEBUG=* homebridge -D
EventedHTTPServer [::ffff:192.168.1.89] HTTP request: /characteristics?id=32.11,32.9,32.15,32.16 +191ms
HAPServer [CD:33:3D:E3:CE:30] HAP Request: GET /characteristics?id=32.11,32.9,32.15,32.16 +1ms
Accessory [Homebridge] Getting value for Characteristic "Current Temperature" +3ms
Accessory [Homebridge] Got Characteristic "Current Temperature" value: 21.1 +2ms
Accessory [Homebridge] Getting value for Characteristic "Current Heating Cooling State" +1ms
Accessory [Homebridge] Got Characteristic "Current Heating Cooling State" value: 0 +2ms
Accessory [Homebridge] Getting value for Characteristic "Cooling Threshold Temperature" +1ms
Accessory [Homebridge] Got Characteristic "Cooling Threshold Temperature" value: 20 +2ms
Accessory [Homebridge] Getting value for Characteristic "Heating Threshold Temperature" +1ms
Accessory [Homebridge] Got Characteristic "Heating Threshold Temperature" value: 17.7 +2ms
EventedHTTPServer [::ffff:192.168.1.89] HTTP Response is finished +2ms
EventedHTTPServer [::ffff:192.168.1.89] HTTP request: /characteristics +141ms
HAPServer [CD:33:3D:E3:CE:30] HAP Request: PUT /characteristics +1ms
Accessory [Homebridge] Processing characteristic set: [{"aid":32,"iid":15,"value":20}] +3ms
Accessory [Homebridge] Setting Characteristic "Cooling Threshold Temperature" to value 20 +1ms
[6/20/2018, 12:02:18 AM] [Nest] Queuing to set cooling threshold temperature 20
EventedHTTPServer [::ffff:192.168.1.89] HTTP Response is finished +10ms
EventedHTTPServer [::ffff:192.168.1.89] HTTP request: /characteristics +133ms
HAPServer [CD:33:3D:E3:CE:30] HAP Request: PUT /characteristics +1ms
Accessory [Homebridge] Processing characteristic set: [{"aid":32,"iid":12,"value":20}] +2ms
Accessory [Homebridge] Setting Characteristic "Target Temperature" to value 20 +1ms
[6/20/2018, 12:02:19 AM] [Nest] Queuing to set temperature 20
EventedHTTPServer [::ffff:192.168.1.120] Sending HTTP event '32.12' with data: {"characteristics":[{"aid":32,"iid":12,"value":20}]} +12ms
EventedHTTPServer [::ffff:192.168.1.89] Muting event '32.12' notification for this connection since it originated here. +4ms
[6/20/2018, 12:02:19 AM] [Nest] Target temperature for Nest Thermostat is: 20 °C and 68 °F
From @kfulgham on February 26, 2018 21:57
Ok, I'm probably really dumb, but it took me forever to diagnose why I couldn't get authenticated on Nest.
Turns out that this part of the instructions:
"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"
}
],
I took completely literally, and kept the text in the token field. If anyone is as dumb as me, perhaps this can be made clearer for them.
Copied from original issue: KraigM/homebridge-nest#173
Hi, i have installed the forked version of chrisjshull, my heating system is boiler type, can't cool, but in homekit it show cool options and in eco mode show the heat/cool temperature. Is there a way to remove the cool controls if not supported by system? Thankyou.
Hello. I have a Nest Thermostat set up in a system that only provides heat (eg. furnace only, no A/C). I can set temperatures normally using the slider, but if I try to use a scene to set a specific temperature I've noticed this error in the logs.
I believe the temperature is still being set correctly, but it seems strange to me that it's trying to trigger a heat-cool mode on an incompatible device.
Queuing to set temperature 21
[2018-03-19, 10:18:09 a.m.] [Nest] Queuing to set heating threshold temperature 20
[2018-03-19, 10:18:09 a.m.] [Nest] Queuing to set cooling threshold temperature 24
FIREBASE WARNING: set at /devices/thermostats/[snip]/hvac_mode failed: Cannot change HVAC mode to %s: HVAC cannot %s
[2018-03-19, 10:18:14 a.m.] [Nest] Heating threshold temperature set to 20 { Error: CANNOT CHANGE HVAC MODE TO %S: HVAC CANNOT %S: {"error":"Cannot change HVAC mode to heat-cool: HVAC cannot cool","type":"https://developer.nest.com/documentation/cloud/error-messages#incompatible-mode","message":"Cannot change HVAC mode to heat-cool: HVAC cannot cool","instance":"[snip]","details":{"mode":"heat-cool","action":"cool"}}
So, I have a Nest thermostat at my house. My parents also have a Nest thermostat at their house, and they have added me as a user on their thermostat. So, both locations are tied to my nest ID.
So, now my parents house (or at least their thermostats) are showing up as an unnamed room in home.app! I don't want to adjust their thermostat when I come or go from my house. Is there any way to remove this, or to show it as a separate "house"?
Does the motion sensor exposed on the basis of an Nest Cam IQ work for anyone?
My Nest Cam IQ is turned on, it detects motion but the HomeKit motion sensor does not trigger.
However, the motion sensor exposed from my Nest Cam Outdoor works. It triggers every time someone walks by.
Any advice on how to fix this for the Nest Cam IQ?
Hi guys,
it will great to have an Service.Switch for each device to set away or set home to create better automations in homekit, i create a simple PR to handle that with nest cam.
I'll be waiting for your feedback, thanks !!!
I have multiple nest assets and I am wondering if there is a way to "hide" any specific asset from the home app?
Thanks
It looks like I'm running this forked version of the homebridge-nest now, so that's good! Thanks again for continuing to update this plugin. However, I noticed now I have a few more "devices" listed in the Home app coming from my Nest thermostats. For example, in the past it was simply one device that allowed me to set the temperature. Now there is a switch for Eco mode, home occupancy switch and a fan. Is there any way to hide some of these from HomeKit?
While running in single or dual mode, I get no response from ECO when trying to turn ECO "off" via the home app. The same is true for Occupancy.
I am, however, able to reliably turn ECO "on" if I set it off from the nest app.
I'm running v2.0.
I don't want my Nest Protects to show up in the Home app through Homebridge, but they all are. I've turned off Permissions in the Nest Developer site but they're still there. If I'm missing something simple can someone point me in the right direction? Thanks!
I got homebridge to add Nest to my Home app. However, the temperature showing in Home as well as the temperature it shows Nest is set to, is not the actual temperature that the Nest app or the physical Nest shows. Any idea why or how to fix?
Two thermostats show up in the homekit screen, actually with one degree difference
Steps to reproduce the behavior:
Expected behavior
only one thermostat should show up
version info:
node 8.11.1
homebridge 0.4.44
Make sure you have the latest LTS from https://nodejs.org
and the latest packages: npm upgrade -g homebridge homebridge-nest
Also include debug log output from startup through seeing the issue:
DEBUG=* homebridge -D
The newest nest firmware seems to have messed up the fans status in homekit. The command still works but even though the fan is on its displays it as off.
Hi
I only use the Nest Protect devices.....
i currently use version 1.1.3-no legacy ....
Can i update to 2.1.3 if i only use Nest Protect devices ?
regards
Richard
Is your feature request related to a problem? Please describe.
Yes. Nest AWAY status doesn't work consistently. Most of the time I have to toggle the Away switch twice to get my Nest Cams to 'turn off' correctly according to the AWAY assist rules set up in the Nest app. I believe this may have something to do with the Characteristic.Away that is created by this plugin under every Nest Cam (HomeKit Accessory).
Describe the solution you'd like
It would make more sense to consolidate the Nest AWAY status/control under ONE HomeKit Switch Accessory which tied into the one Nest.structure rather than each Nest.camera.
Describe alternatives you've considered
Additional context
Limit Nest Away Switch to inside 1x HomeKit Occupancy Sensor with three Characteristics:
/**
* Service "Occupancy Sensor"
*/
Service.OccupancySensor = function(displayName, subtype) {
Service.call(this, displayName, '00000086-0000-1000-8000-0026BB765291', subtype);
// Required Characteristics
this.addCharacteristic(Characteristic.OccupancyDetected);
// Optional Characteristics
this.addOptionalCharacteristic(Characteristic.StatusActive);
this.addOptionalCharacteristic(Characteristic.StatusFault);
this.addOptionalCharacteristic(Characteristic.StatusTampered);
this.addOptionalCharacteristic(Characteristic.StatusLowBattery);
this.addOptionalCharacteristic(Characteristic.Name);
};
inherits(Service.OccupancySensor, Service);
Service.OccupancySensor.UUID = '00000086-0000-1000-8000-0026BB765291';
/**
* Characteristic "Occupancy Detected"
*/
Characteristic.OccupancyDetected = function() {
Characteristic.call(this, 'Occupancy Detected', '00000071-0000-1000-8000-0026BB765291');
this.setProps({
format: Characteristic.Formats.UINT8,
maxValue: 1,
minValue: 0,
validValues: [0,1],
perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY]
});
this.value = this.getDefaultValue();
};
inherits(Characteristic.OccupancyDetected, Characteristic);
Characteristic.OccupancyDetected.UUID = '00000071-0000-1000-8000-0026BB765291';
// The value property of OccupancyDetected must be one of the following:
Characteristic.OccupancyDetected.OCCUPANCY_NOT_DETECTED = 0;
Characteristic.OccupancyDetected.OCCUPANCY_DETECTED = 1;
/**
* Characteristic "Security System Current State"
*/
Characteristic.SecuritySystemCurrentState = function() {
Characteristic.call(this, 'Security System Current State', '00000066-0000-1000-8000-0026BB765291');
this.setProps({
format: Characteristic.Formats.UINT8,
maxValue: 4,
minValue: 0,
validValues: [0,1,2,3,4],
perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY]
});
this.value = this.getDefaultValue();
};
inherits(Characteristic.SecuritySystemCurrentState, Characteristic);
Characteristic.SecuritySystemCurrentState.UUID = '00000066-0000-1000-8000-0026BB765291';
// The value property of SecuritySystemCurrentState must be one of the following:
Characteristic.SecuritySystemCurrentState.STAY_ARM = 0;
Characteristic.SecuritySystemCurrentState.AWAY_ARM = 1;
Characteristic.SecuritySystemCurrentState.NIGHT_ARM = 2;
Characteristic.SecuritySystemCurrentState.DISARMED = 3;
Characteristic.SecuritySystemCurrentState.ALARM_TRIGGERED = 4;
/**
* Characteristic "Security System Target State"
*/
Characteristic.SecuritySystemTargetState = function() {
Characteristic.call(this, 'Security System Target State', '00000067-0000-1000-8000-0026BB765291');
this.setProps({
format: Characteristic.Formats.UINT8,
maxValue: 3,
minValue: 0,
validValues: [0,1,2,3],
perms: [Characteristic.Perms.READ, Characteristic.Perms.WRITE, Characteristic.Perms.NOTIFY]
});
this.value = this.getDefaultValue();
};
inherits(Characteristic.SecuritySystemTargetState, Characteristic);
Characteristic.SecuritySystemTargetState.UUID = '00000067-0000-1000-8000-0026BB765291';
// The value property of SecuritySystemTargetState must be one of the following:
Characteristic.SecuritySystemTargetState.STAY_ARM = 0;
Characteristic.SecuritySystemTargetState.AWAY_ARM = 1;
Characteristic.SecuritySystemTargetState.NIGHT_ARM = 2;
Characteristic.SecuritySystemTargetState.DISARM = 3;
After a succesfull install and tinkering around a bit with the slider in the ios home app on my iphone, i've seen the code run smoothly in terminal and all was working fine.
However after a short period of time there was an error coming up in terminal ending with 'BLOCKED'
Creating a new 'product' at the nest developer platform and re-adding this to the .json config file seems to have fixed the issue..
Not sure what was causing this... I know with other nest control apps that sending to many commands in a short period of time can stall this app to send any more commands to the nest thermostat.
Homebridge does not recognize the nest plug in after upgrading nodejs.
Error: The requested platform 'Nest' was not registered by any plugin.
at API.platform (/usr/local/lib/node_modules/homebridge/lib/api.js:122:13)
at Server.str.replace.Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:294:45)
at Server.str.replace.Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:85:36)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:40:10)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:974:3
To Reproduce
Steps to reproduce the behavior:
Using the latest version of homebridge-nest (2.1.3)
Expected behavior
The min and max temperatures in the Home app should match the min and max temperatures in the Nest app.
Include with your bug report this version info:
node --version
v8.11.2
homebridge --version
0.4.43
Screenshots:
[2018-6-20 08:42:02] [Nest] Temperature set to 37.8 { Error: TEMPERATURE F VALUE IS TOO HIGH: %S: {"error":"Temperature F value is too high: 100.0","type":"https://developer.nest.com/documenta
tion/cloud/error-messages#high-f-value","message":"Temperature F value is too high: 100.0","instance":"3920e78e-16a1-4899-8b7a-9d3a1880d96c","details":{"tempF":"100.0"}}
at /homebridge/node_modules/firebase/lib/firebase-node.js:226:115
at ec (/homebridge/node_modules/firebase/lib/firebase-node.js:52:165)
at Pi (/homebridge/node_modules/firebase/lib/firebase-node.js:226:23)
at /homebridge/node_modules/firebase/lib/firebase-node.js:221:404
at /homebridge/node_modules/firebase/lib/firebase-node.js:184:355
at Rh.h.Jd (/homebridge/node_modules/firebase/lib/firebase-node.js:186:104)
at Fh.Jd (/homebridge/node_modules/firebase/lib/firebase-node.js:176:364)
at wh.Jg (/homebridge/node_modules/firebase/lib/firebase-node.js:174:280)
at zh (/homebridge/node_modules/firebase/lib/firebase-node.js:168:464)
at Client.Ka.onmessage (/homebridge/node_modules/firebase/lib/firebase-node.js:167:321)
at Client.dispatchEvent (/homebridge/node_modules/firebase/node_modules/faye-websocket/lib/faye/websocket/api/event_target.js:22:30)
at Client._receiveMessage (/homebridge/node_modules/firebase/node_modules/faye-websocket/lib/faye/websocket/api.js:134:10)
at Client.<anonymous> (/homebridge/node_modules/firebase/node_modules/faye-websocket/lib/faye/websocket/api.js:34:49)
at emitOne (events.js:121:20)
at Client.emit (events.js:211:7)
at Client.<anonymous> (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/hybi.js:451:14)
at pipe (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/node_modules/websocket-extensions/lib/pipeline/index.js:37:40)
at Pipeline._loop (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/node_modules/websocket-extensions/lib/pipeline/index.js:44:3)
at Pipeline.processIncomingMessage (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/node_modules/websocket-extensions/lib/pipeline/index.js:13:8
)
at Extensions.processIncomingMessage (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/node_modules/websocket-extensions/lib/websocket_extensions
.js:133:20)
at Client._emitMessage (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/hybi.js:442:22)
at Client._emitFrame (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/hybi.js:405:19)
cause: { Error: TEMPERATURE F VALUE IS TOO HIGH: %S: {"error":"Temperature F value is too high: 100.0","type":"https://developer.nest.com/documentation/cloud/error-messages#high-f-value","me
ssage":"Temperature F value is too high: 100.0","instance":"3920e78e-16a1-4899-8b7a-9d3a1880d96c","details":{"tempF":"100.0"}}
at /homebridge/node_modules/firebase/lib/firebase-node.js:226:115
at ec (/homebridge/node_modules/firebase/lib/firebase-node.js:52:165)
at Pi (/homebridge/node_modules/firebase/lib/firebase-node.js:226:23)
at /homebridge/node_modules/firebase/lib/firebase-node.js:221:404
at /homebridge/node_modules/firebase/lib/firebase-node.js:184:355
at Rh.h.Jd (/homebridge/node_modules/firebase/lib/firebase-node.js:186:104)
at Fh.Jd (/homebridge/node_modules/firebase/lib/firebase-node.js:176:364)
at wh.Jg (/homebridge/node_modules/firebase/lib/firebase-node.js:174:280)
at zh (/homebridge/node_modules/firebase/lib/firebase-node.js:168:464)
at Client.Ka.onmessage (/homebridge/node_modules/firebase/lib/firebase-node.js:167:321)
at Client.dispatchEvent (/homebridge/node_modules/firebase/node_modules/faye-websocket/lib/faye/websocket/api/event_target.js:22:30)
at Client._receiveMessage (/homebridge/node_modules/firebase/node_modules/faye-websocket/lib/faye/websocket/api.js:134:10)
at Client.<anonymous> (/homebridge/node_modules/firebase/node_modules/faye-websocket/lib/faye/websocket/api.js:34:49)
at emitOne (events.js:121:20)
at Client.emit (events.js:211:7)
at Client.<anonymous> (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/hybi.js:451:14)
at pipe (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/node_modules/websocket-extensions/lib/pipeline/index.js:37:40)
at Pipeline._loop (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/node_modules/websocket-extensions/lib/pipeline/index.js:44:3)
at Pipeline.processIncomingMessage (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/node_modules/websocket-extensions/lib/pipeline/index.js:13:8
)
at Extensions.processIncomingMessage (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/node_modules/websocket-extensions/lib/websocket_extensions
.js:133:20)
at Client._emitMessage (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/hybi.js:442:22)
at Client._emitFrame (/homebridge/node_modules/firebase/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/hybi.js:405:19) code: 'TEMPERATURE F VALUE IS TOO HIG
H: %S' },
isOperational: true,
code: 'TEMPERATURE F VALUE IS TOO HIGH: %S' }
One bug I noticed, asking Siri the current temp, she accurately reports the temp of the requested thermostat, but also reports 'going down to....' and references the Eco low temp setting. So somehow the Eco settings are being mixed up with the current high/low settings.
Example: My Eco setting is 50 Low 80 High. With a Thermostat home setting of 66 low and 75 high on Auto, Siri reports current temp 68 going down to 50...
Hello,
I think it's awesome you picked up the development work on this plugin. I've been playing around with the HomeKit Accessory Simulator and noticed they have a new service for heating and cooling "heater cooler". I think this would work a lot better for the thermostat and how it functions. As I understand it, the plugin changes the temp for whichever is closest as a way to deal with how different the thermostat service functions in homekit. Do you think it would be possible to expose it using this service? I forked it and was trying to play with it, but I'm running into some issues.
Has any work been done on adding the Nest remote sensors to this home ridge plugin? I have two sensors and I’m willing to test. Thanks!
I can't turn on/off my Nest Cam because the switcher don't appear on HomeKit.
Describe the bug
Random Nest accessories are showing up as duplicates with no functionality and displaying "not supported". The duplicate accessories also have a 'home' icon.
To Reproduce
Steps to reproduce the behavior:
Include with your bug report this version info:
node --version
v7.10.0
homebridge --version
latest
Make sure you have the latest LTS from https://nodejs.org
and the latest packages: npm upgrade -g homebridge homebridge-nest
Also include debug log output from startup through seeing the issue:
DEBUG=* homebridge -D
Thanks for setting up this new version of the plugin--all of the changes are great! Any chance you could publish it to NPM? I had to fork it and publish myself because I was having issues installing via the github URL.
After setup I get no errors other than '[Nest] [NestFirebase] Disconnect Detected' after which Homebridge hangs and doesn't proceed any further.
Would it be possible to add a Thermostat that is associated with a Nest Field Test account? I currently have my three Nest devices associated with that account and would like to still use them with homebridge.
All
I saw some errors pop up last night and didn't think much about it. Installed the latest macOS High Sierra beta today and now get further errors. Anyone else seeing this ? Only just started happening, was working fine before yesterday. The home bridge-smartthings piece I have posted over on that repository. My config.json is still set correctly, home bridge now won't even load the devices pulled over from SmartThings or homebridge-nest directly that way:
3/12/2018, 12:23:51 PM] Loaded plugin: homebridge-legacy-plugins
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.AD2USB'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.Carwings'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.ELKM1'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.FileSensor'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.GenericRS232Device'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.HomeMatic'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.HomeMaticThermo'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.HomeMaticWindow'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.HttpGarageDoorOpener'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.HttpHygrometer'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.HttpThermometer'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.Tesla'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.X10'
[3/12/2018, 12:23:51 PM] Registering accessory 'homebridge-legacy-plugins.mpdclient'
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-legacy-plugins.Domoticz'
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-legacy-plugins.HomeAssistant'
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-legacy-plugins.HomeSeer'
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-legacy-plugins.ISY'
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-legacy-plugins.LIFx'
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-legacy-plugins.SmartThings'
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-legacy-plugins.TelldusLive'
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-legacy-plugins.ZWayServer'
[3/12/2018, 12:23:51 PM] ---
[3/12/2018, 12:23:51 PM] ====================
[3/12/2018, 12:23:51 PM] ERROR LOADING PLUGIN homebridge-nest:
[3/12/2018, 12:23:51 PM] SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Plugin.load (/usr/local/lib/node_modules/homebridge/lib/plugin.js:65:22)
at Server. (/usr/local/lib/node_modules/homebridge/lib/server.js:132:14)
at Array.forEach (native)
[3/12/2018, 12:23:51 PM] ====================
[3/12/2018, 12:23:51 PM] Loaded plugin: homebridge-smartthings
[3/12/2018, 12:23:51 PM] Registering platform 'homebridge-smartthings.SmartThings'
[3/12/2018, 12:23:51 PM] ---
[3/12/2018, 12:23:51 PM] Loaded config.json with 0 accessories and 2 platforms.
[3/12/2018, 12:23:51 PM] ---
[3/12/2018, 12:23:51 PM] Loading 2 platforms...
/usr/local/lib/node_modules/homebridge/lib/api.js:122
throw new Error("The requested platform '" + name + "' was not registered by any plugin.");
^
Error: The requested platform 'Nest' was not registered by any plugin.
at API.platform (/usr/local/lib/node_modules/homebridge/lib/api.js:122:13)
at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:284:45)
at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:80:36)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:40:10)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
after doing some testing, it looks like we still need something like setHeatCoolIfNeeded
, but tweaked.
What I tested:
When I start HomeBridge the first time with the plugin enabled and configured no token is displayed.
Include with your bug report this version info:
node --version
v8.9.4
homebridge --version
0.4.44
Make sure you have the latest LTS from https://nodejs.org
and the latest packages: npm upgrade -g homebridge homebridge-nest
Also include debug log output from startup through seeing the issue:
DEBUG=* homebridge -D
When settingto 23 degree Celsius Siri agrees to set to 0 degrees Celsius. It must be annissues with converting formats. This is only when you use the Siri command.
Newest version of node, homebridge and the nest plugin as of today.
I have a Heat-only Nest (UK Nest - we don't have AUTO or COOLING).
My Nests (for the example below) are;
Guest: OFF. Target temp previously at 18 deg C. I have no idea where it is getting 20 deg C from for the target_temperature_low_c variable. When it is ON, it displays 18 correctly.
Living: ECO. Eco temperature is set to 18 deg C. In Home app it shows 10. Looking at the variables it uses to obtain the TargetTemperature - there is clearly something wrong;
[3/9/2018, 6:17:36 AM] [Nest] Guest Thermostat target_temperature_c: 18
[3/9/2018, 6:17:36 AM] [Nest] Guest Thermostat target_temperature_low_c: 20
[3/9/2018, 6:17:36 AM] [Nest] Living Room Thermostat eco_temperature_low_c: undefined
[3/9/2018, 6:17:36 AM] [Nest] Living Room Thermostat eco_temperature_low_c: undefined
When I set Guest to ECO, I get the same;
[3/9/2018, 6:17:52 AM] [Nest] Guest Thermostat eco_temperature_low_c: undefined
[3/9/2018, 6:17:52 AM] [Nest] Guest Thermostat eco_temperature_low_c: undefined
Log entries located at lines 241;
case "eco":
this.log(this.name + "eco_temperature_low_c: " + this.device.eco_temperature_low_c);
return this.device.eco_temperature_low_c;
case "heat-cool":
default:
this.log(this.name + "target_temperature_low_c: " + this.device.target_temperature_low_c);
return this.device.target_temperature_low_c;
And here at line 226 ;
default:
this.log(this.name + "target_temperature_c: " + this.device.target_temperature_c);
return this.device.target_temperature_c;
I installed Homebridge with Homebridge-nest correctly. However, when I launch homebridge, it gives an error with NestFirebase disconnect detected
[2018-3-17 01:07:48] Loaded plugin: homebridge-nest
[2018-3-17 01:07:48] Registering platform 'homebridge-nest.Nest'
[2018-3-17 01:07:48] ---
[2018-3-17 01:07:48] Loaded config.json with 0 accessories and 1 platforms.
[2018-3-17 01:07:48] ---
[2018-3-17 01:07:48] Loading 1 platforms...
[2018-3-17 01:07:48] [Nest] Initializing Nest platform...
[2018-3-17 01:07:48] [Nest] Fetching Nest devices.
[2018-3-17 01:07:48] Loading 0 accessories...
[2018-3-17 01:07:49] [Nest] [NestFirebase] Disconnect Detected
Describe the bug
When the nest thermostat is on eco mode, home bridge always sets a temp for heating or cooling, even when the values are set to off. When set to off, heating or cooling values will show the last value they were set to. Even more odd, if you’ve never set a cooling value for eco, it will be set to 24c. So this bug is pulling some cached and pre-set default values.
In my case, 24c was too low for eco cooling. So, I set a cooling value of 32c (the highest) using the eco mode setting screen in the nest app, then I set eco cooling to off. Now my eco cooling is 32c. Better, but not a fix.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Include with your bug report this version info:
node --version - v4.8.2
homebridge --version - 0.4.43
Also include debug log output from startup through seeing the issue:
Nothing is showing up in the log file other than cool mode is set.
Say if I'm too uncertain about what temperature I want and dragged the slider too many times, it might hit the Firebase's (undocumented) throttling. Possible to do some debounce in that regards?
btw Awesome fork! <3
When displaying the Nest Smoke Detector details the serial number is not displayed correctly.
It's displaying the 'location', in my case 'Hallway' instead of the actual serial number of the device.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Include with your bug report this version info:
By using the official Nest app the serial number is being displayed correctly/
Hi, we have 2 Nests in 2 separate homes. The current home bridge-nest supports both Nests, but they appear in the same home. This leads to issues where if you set the temperate in HomeKit or with Siri, without specifying the thermostat, both Nests are adjusted.
Either it should be possible to add the 2 Nests to separate HomeKit homes. But I assume this would require duplicating the homebridge as this is added to a particular home.
The alternative and relative easy solution would be to hide the second Nest so it's no longer visible in HomeKit. This is not possible at the moment, or at least I could not get it to work.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.