KraigM / homebridge-nest

Nest plugin for HomeBridge
210 stars 72 forks source link

Siri won't give temperature in celsius #35

Closed redec closed 8 years ago

redec commented 8 years ago

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...

KraigM commented 8 years ago

hmm not sure. The are you using the new api? And what version are you using? Those logs look old.

eyv commented 8 years ago

I've experienced the same issue. Siri will correctly set the temperature in Celsius if told to set the temperature, but will only answer in Fahrenheit if I ask what temperature Nest is reporting, even though Nest is set to Celsius.

redec commented 8 years ago

Yes, it is using the new API...running homebridge-nest v1.0.1 with homebridge v0.2.15.

redec commented 8 years ago

Well, I don't have an explanation for it, but I can no longer reproduce this. I was beginning to debug it and then it started working properly. I didn't fix/change anything other than I updated to the latest release of homebridge-wink, which I wouldn't expect should affect this. The logging weirdness was not related and is just a small bug which I've fixed in pull request #38

KraigM commented 8 years ago

Is your nest hooked up to wink as well?

redec commented 8 years ago

It is hooked up to the wink hub, yes...however I have it ignored in the config of homebridge-wink

KraigM commented 8 years ago

The only thing I can think of is that wink had a bug that was still somehow exposing your nest.

@eyv Are you experiencing the issue still? Can you make sure your plugins are up to date?

eyv commented 8 years ago

Yes, I'm still seeing this with all the updated packages. The console output is in Celsius, but Siri gives it to me in Fahrenheit. :(

KraigM commented 8 years ago

I merged #38 into 1.0.2 so the logs should be nicer now.

@eyv can you update to 1.0.2 and send a spit out of the logs and as well as a screenshot of siri giving you F instead of C, please :smile:

eyv commented 8 years ago

$ sudo npm -g update; npm -g update homebridge homebridge-nest /usr/bin/node-gyp -> /usr/lib/node_modules/node-gyp/bin/node-gyp.js

$ homebridge * WARNING * The program 'nodejs' uses the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs * WARNING * The program 'nodejs' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi. * WARNING * Please fix your application to use the native API of Avahi! * WARNING * For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs&f=DNSServiceRegister Loaded plugin: homebridge-ifttt

Registering platform 'homebridge-ifttt.IFTTT'

Loaded plugin: homebridge-legacy-plugins Registering accessory 'homebridge-legacy-plugins.AD2USB' Registering accessory 'homebridge-legacy-plugins.Carwings' Registering accessory 'homebridge-legacy-plugins.ELKM1' Registering accessory 'homebridge-legacy-plugins.FileSensor' Registering accessory 'homebridge-legacy-plugins.GenericRS232Device' Registering accessory 'homebridge-legacy-plugins.HomeMatic' Registering accessory 'homebridge-legacy-plugins.HomeMaticThermo' Registering accessory 'homebridge-legacy-plugins.HomeMaticWindow' Registering accessory 'homebridge-legacy-plugins.HttpGarageDoorOpener' Registering accessory 'homebridge-legacy-plugins.HttpHygrometer' Registering accessory 'homebridge-legacy-plugins.HttpThermometer' Registering accessory 'homebridge-legacy-plugins.Tesla' Registering accessory 'homebridge-legacy-plugins.X10' Registering accessory 'homebridge-legacy-plugins.mpdclient' Registering platform 'homebridge-legacy-plugins.Domoticz' Registering platform 'homebridge-legacy-plugins.HomeAssistant' Registering platform 'homebridge-legacy-plugins.HomeSeer' Registering platform 'homebridge-legacy-plugins.ISY' Registering platform 'homebridge-legacy-plugins.LIFx' Registering platform 'homebridge-legacy-plugins.SmartThings' Registering platform 'homebridge-legacy-plugins.TelldusLive'

Registering platform 'homebridge-legacy-plugins.ZWayServer'

Loaded plugin: homebridge-nest

Registering platform 'homebridge-nest.Nest'

Loaded plugin: homebridge-philipshue

Registering platform 'homebridge-philipshue.PhilipsHue'

Loaded config.json with 0 accessories and 4 platforms.

Loading 4 platforms... [IFTTT] Initializing IFTTT platform... [IFTTT] Loading accessories... [Thermostat] Initializing Nest platform... [Thermostat] Fetching Nest devices. [Lights] Initializing PhilipsHue platform... [Lights] PhilipsHue Platform Plugin Version 0.0.2 [Lights] Fetching Philips Hue lights... [SmartThings] Initializing SmartThings platform... Loading legacy platform SmartThings [SmartThings] Fetching SmartThings devices... [Lights] Initializing platform accessory [redacted]... [Lights] Initializing platform accessory [redacted]... [Lights] Initializing platform accessory [redacted]... [Lights] Initializing platform accessory [redacted]... [Lights] Initializing platform accessory [redacted]... [SmartThings] Initializing platform accessory [redacted]... [SmartThings] Loaded services for [redacted] [SmartThings] Initializing platform accessory [redacted]... [SmartThings] Loaded services for [redacted] ... [Thermostat] Current temperature for Upstairs is: 19.5 C [Thermostat] Current humidity for Upstairs is: 35% [Thermostat] Target temperature for Upstairs is: 18 C [Thermostat] Target heating for Upstairs is: Heating [Thermostat] Initializing platform accessory 'Upstairs'...

img_6001

KraigM commented 8 years ago

@eyv what is between:

[SmartThings] Loaded services for [redacted]
...
[Thermostat] Current temperature for Upstairs is: 19.5 C

because I am not seeing the line that says

[Thermostat] Temperature unit for Upstairs is: Celsius
KraigM commented 8 years ago

@eyv Also can you include a screenshot of the thermostat details on Insteon+ (where it shows its on celsius and not fahrenheit).

KraigM commented 8 years ago

@eyv When this happens, will siri always use fahrenheit for the duration of the homebridge session or will it go back and forth?

eyv commented 8 years ago

OK, I'll get on that. What about the line about temperature unit. Let's assume it doesn't naturally show up. Any idea why it would not? Is there perhaps a setting in the config I'm missing?

Sent from my mobile device: please excuse brevity and typos.

On Mar 1, 2016, at 9:25 AM, KraigM notifications@github.com wrote:

@eyv Also can you include a screenshot of the thermostat details on Insteon+ (where it shows its on celsius and not fahrenheit).

— Reply to this email directly or view it on GitHub.

eyv commented 8 years ago

I've never heard Siri use F to report thermostat temps. "She" does set them correctly when I call them out without units -- sets it in C and not F. Especially when the told to make it 19 :)

Sent from my mobile device: please excuse brevity and typos.

On Mar 1, 2016, at 9:26 AM, KraigM notifications@github.com wrote:

@eyv When this happens, will siri always use fahrenheit for the duration of the homebridge session or will it go back and forth?

— Reply to this email directly or view it on GitHub.

KraigM commented 8 years ago

@eyv So I think I figured out why it is not showing up in the logs. It only logs when the value changes and all values start at 0 which for temp means celsius. Now whether or not that it has bearing or is just a red herring, idk.

Given that I have another thing to try as well. Since the temp unit is live updated, if you change it to F and change it back to C then it might send Siri the correct signal so that Siri will respond in C. Try this:

[Thermostat] Temperature unit for Nest is: Fahrenheit
[Thermostat] Current temperature for Nest is: 69 F
[Thermostat] Target temperature for Nest is: 67 F
[Thermostat] Temperature unit for Nest is: Celsius
[Thermostat] Current temperature for Nest is: 20.5 C
[Thermostat] Target temperature for Nest is: 19 C

If that seems to fix the issue completing, then I can prob figure out what the issue is or at least make a work around for it.

KraigM commented 8 years ago

@eyv One other thing, what version of homebridge are you using?

eyv commented 8 years ago

@KraigM , thanks for the time you're putting into this!

/usr/lib └─┬ homebridge@0.2.19 └─┬ hap-nodejs@0.2.5 ├── curve25519@1.1.0 (git://github.com/KhaosT/node-curve25519.git#922eae612bb379fa84e8deb29f80c53d57c8be7b) ├── ed25519@0.0.3 (git://github.com/KhaosT/ed25519.git#6356bc9e6e4643d56020293c14920ac12bcaa1ac) ├── mdns@2.2.11 (git://github.com/KhaosT/node_mdns.git#8ff4d603197a92c3cc829ddd37ddfac5bfe21332) └── srp@0.2.0 (git://github.com/KhaosT/node-srp.git#7feff53254897a0b1b9f0667ad17a8beb78acbb9)

/usr/lib ├── continuation-local-storage@3.1.6 └─┬ homebridge-nest@1.0.2 └── unofficial-nest-api@0.1.4 (git+https://github.com/kraigm/unofficial_nodejs_nest.git#3cbd337adc32fab3b481659b38d86f9fcd6a9c02)

img_6003

[Thermostat] Temperature unit for Upstairs is: Fahrenheit [Thermostat] Current temperature for Upstairs is: 65 F [Thermostat] Target temperature for Upstairs is: 64 F [Thermostat] Current temperature for Upstairs is: 66 F [Thermostat] Temperature unit for Upstairs is: Celsius [Thermostat] Current temperature for Upstairs is: 18.5 C [Thermostat] Target temperature for Upstairs is: 18 C

No joy -- still reporting 64.4 :(

luisiam commented 8 years ago

I am not 100% sure about this but if you change the region of your iPhone to somewhere which use C primarily (i.e. somewhere in Asia), Siri should be reporting the temp in C.

eyv commented 8 years ago

Well, yes, of course, but is this a debugging question or a "solution"? Because as a solution, it leaves much to be desired :)

Thus spake luisiam on Monday Mar 07 2016 11:15:07:

I am not 100% sure about this but if you change the region of your iPhone to somewhere which use C primarily (i.e. somewhere in Asia), Siri should be reporting the temp in C.

— Reply to this email directly or view it on GitHub.

luisiam commented 8 years ago

I will not be surprised if that's the way Apple set up everything. I still remember I cannot get my iPad to display weather in C (in the notification center and calendar) unless I change the region.

eyv commented 8 years ago

OK, so does this mean we can't keep troubleshooting / trying to fix this? Thanks either way!

On Mar 7, 2016, at 11:22 AM, luisiam notifications@github.com wrote:

I will not be surprised if that's the way Apple set up everything. I still remember I cannot get my iPad to display weather in C (in the notification center and calendar) unless I change the region.

— Reply to this email directly or view it on GitHub.

KraigM commented 8 years ago

@eyv does changing your region work?

eyv commented 8 years ago

Yes, it does. When setting a region which uses Celsius (every civilized place on earth :), Siri reports temperatures in Celsius.

luisiam commented 8 years ago

I would say that's something to do with Apple iOS. We can do nothing on the HomeBridge/plugin side. I may be wrong.

eyv commented 8 years ago

:'(

KraigM commented 8 years ago

Since this particular issue seems to be out of our hands, I'm going to close this