chrisjshull / homebridge-nest

Nest plugin for HomeBridge
699 stars 112 forks source link

HomeKit Automation overwrites Nest Thermostat Mode #574

Closed tomeranaray closed 1 year ago

tomeranaray commented 1 year ago

Describe the bug

I’m using several HomeKit automations to control my Nest thermostat: when I go away, when I arrive home, when I go to bed, etc. It all works great. But sometimes, I set my Nest to OFF to save energy (especially during warmer days in fall). Then, I can no longer change the temperature in the Home app or use Siri. As expected. And if I were to change the temp in the Nest app, I need to confirm first I want to switch from OFF to HEAT.

But … HomeKit automations that change the temperature do overwrite the OFF setting. The temperature is set and the mode automatically changes from OFF to HEAT. That seems inconsistent with how the Home app, Nest app and Siri behave.

Annoyingly, I would have to modify all my automations if I want to keep the heater temporarily off.

To Reproduce Steps to reproduce the behavior:

  1. Set the Nest thermostat mode to OFF.
  2. Fire a HomeKit automation that sets the temperature.

Expected behavior The heater should remain OFF but it switches to heat.

I first assumed this shouldn’t be a bug report but a feature request, but as the behaviour is not consistent I consider it a bug. I could be wrong but I think changing temperature shouldn’t change modes. There already is a switch to set the mode, so that one can be included in an automation to turn the heater on.

But I f it isn’t considered a bug, maybe a new option modePriority could be added that prevents from overwriting modes?

(I have an EU 3rd gen learning thermostat)

adriancable commented 1 year ago

Thanks for the feedback, @tomeranaray.

The Nest thermostat does not support changing temperature in the OFF state (because there is no temperature in the OFF state). If HomeKit sends a command to change the temperature when the thermostat is in the OFF state (which is what happens in an automation), the only real alternative is to just 'ignore' HomeKit's request and this also doesn't seem right.

If you don't want your automation to run if the thermostat is OFF, use a shortcut automation and check the thermostat state before changing the temperature.