KraigM / homebridge-nest

Nest plugin for HomeBridge
210 stars 72 forks source link

FIREBASE WARNING: set at /devices/thermostats #82

Open maratonat opened 7 years ago

maratonat commented 7 years ago

I have been trying to setup the plugin. Every setup step I followed seemed to match the expected outcome, except after having added the token to the config file I am seeing the following error when attempting to adjust the thermostat temperature:

FIREBASE WARNING: set at /devices/thermostats/7u3hYcaA_NO...75CZ/target_temperature_f failed: Cannot set %s while mode is %s

Any help would be appreciated.

maratonat commented 7 years ago

Reinstalled completely and it seems to be working better now. Still don't see nest away in iOS 10 Home app.

maratonat commented 7 years ago

The issue is back, re-opening. The problem was alternating between "Cannot set %s while mode is %s" error and "blocked". The mode can still be changed from Off to Cool, or Heat, or back to Off. Only changing the temp is problematic. Also, the concept of Away is not showing up in iOS 10 Home app.

DanielAlcorn commented 7 years ago

Yep also having this problem

maratonat commented 7 years ago

Apparently this issue crops up when the thermostat is OFF. When the thermostat is set to heat or cool, the issue seems to go away. If this is the case, it sounds like Nest is refusing temp changes while thermostat is OFF, reflecting the way the API works. Can anyone confirm this?

DanielAlcorn commented 7 years ago

Yeah I noticed this the other day, can confirm.

bensleveritt commented 7 years ago

I'm also seeing this. I'm happy to pitch in for a fix if anyone has any leads?

marcgetter commented 7 years ago

This is happening for me on one thermostat but not the other. I'm not unable to change temperature or mode. The status is getting read correctly.

ericboehs commented 7 years ago

I'm about 99% certain this is because HomeKit is rapid firing the change events to the thermostat. This is fine for a local network (as Apple intended) but Nest rate limits you quickly. I'm not sure if they automatically unblock you or not (still waiting for mine). (Edit: yes, they unblock you after an hour)

The solution here would be to add a debounce to the API calls (reset a ~2 second timer every time a target temp event is received, once the timer expires, send the target temperature to Nest). Perhaps it could be added here or here?

Update: It looks like Nest recommends you to "limit requests to one call per minute, maximum".

Update: It seems the rate limit is a sliding one hour.

ericboehs commented 7 years ago

@KraigM It seems everyone would be running into this. Do you know of a quick way to debounce the updates?

mike-yesware commented 7 years ago

Yep. Same here. I had this problem the very first time I tried to set the temp. More than anything, I'm curious why this isn't a showstopper for all users.

clintonb commented 7 years ago

I, too, have this issue. After my initial installation, I moved the temperature slider a lot (not the best UI). This resulted in a lot of API calls being made, and my hitting the (unpublished) rate limit. This is indeed a showstopper for me. I'm happy to help implement/review a solution.

igbopie commented 7 years ago

Here it is: https://github.com/KraigM/homebridge-nest/pull/115/files

for the impatient: https://www.npmjs.com/package/homebridge-nest-debounced

danbridgland commented 7 years ago

I'm a complete noob, How do I update an existing installation to this version?