Closed ersan closed 6 years ago
I was digging through the commit history to see what was causing this and I found this: https://github.com/chrisjshull/homebridge-nest/commit/7c72502d626b64d479b65ede5921ca43ab2234b4
My Node/JS isn't great, but from what I can tell it was decided that if the current ambient temperature was below what you were setting it to then homebridge-nest should turn on heat/cool mode automatically? This is very much unwanted behavior from me, and probably most people that live in warmer climates. We tend to let the house warm up on its own rather than turning on the heater and wasting energy to get it to the target temperature. Most of us don't run our heaters ever and when they turn on it smells like the house is burning down (which is what happened to me today).
I'm going to try and roll back those changes for my setup, but there are at least two other people unhappy with this idea here https://github.com/KraigM/homebridge-nest/issues/169#issuecomment-398623230
Update: I personally checked out https://github.com/chrisjshull/homebridge-nest/commit/356e13ebb3ffb703cfc8a2ddfdc0b5988f750258 and am using that instead because that was the last version before the code that automatically sets heat/cool was added. I don't have the newer minor fixes but it works as expected now.
Hmm, thanks for the logs and good sleuthing! I swear at the time I wrote 7c72502 Siri knew that when you were in a heat-only or cool-only mode and it would only set "TargetTemperature" and not the "Heating/CoolingThresholds". You can see now it's doing both "Cooling Threshold Temperature" followed by "Target Temperature". Unfortunately we can't just ignore "Target Temperature" since that's still the only thing set via the GUI slider. I'm also seeing that if you tell Siri to target a range it first sets the mode to auto (which I don't recall it doing before). I'm thinking the setHeatCoolIfNeeded() calls can be removed now. (though it would be esp. good to test what happens if you tell Siri to target a range when you are in single-type modes, and when you target a temp or range and the nest is off or in eco - there could be a race condition.) Let me know if you start working on a PR for this? (If not I'll get to it as soon as I can.)
I'm afraid I'd make a mess of things because I don't know Node/JS all that well (and I'm not totally sure on how to fix it anyway). I'd be happy to do any testing that might be needed.
On this old version when I told siri to "set the thermostat between 66 and 72 degrees" it said "The nest thermostat is not responding", but it did actually work (from the Cool state it was set in, it changed it to auto with the appropriate temperatures). I've now hit the API limit and I'm banned for an hour (and this would be the 10th time I've setup a new app in developer). I'll post a debug log when I'm unbanned again if you need it.
Same issue here. Something must have changed on Apple's end.
https://github.com/chrisjshull/homebridge-nest/pull/48
Just removed those calls as you suggested, @chrisjshull. Did not test the changes exhaustively, but if I'm in COOL mode, I stay in COOL mode after asking Siri to set a target temperature.
fix has been deployed in v2.1.4: npm i -g homebridge-nest
Thanks @leehendricks!
I confirm this issue has been resolved for me as well. Was only occurring on my iOS 11.4 devices and iOS 10.1.1 did not appear to be affected.
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:
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