Jump to content

Google home thermostat support


bmercier

Recommended Posts

Posted

Hello everyone,

 

ISY Portal Google Home now supports thermostats.

 

Here's what you can do with it.

 

Query thermostat:
what is <device> set to
what is <device> inside temperature
what is <device> humidity (If your thermostat supports it)
 
Change mode:
Set <device> mode to <off|heat|cool|auto|on>
Turn off <device>
Turn on <device>
 
Change temperature:
Set <device> to <temp>
Increase <device> by <tempDelta>
 
Multiple thermostat commands:
What is the inside temperature
Set heating to <temp>
Set cooling to <temp>
Set the thermostat modes to <mode>

 

WARNING:

- Please note that increase/decrease temperature do now work well IMHO. As an example, if the thermostat is set to cool, and you ask Google to "increase <device> temperature", it may very well set your thermostat to heating. 

- If you increase/decrease temperature without specifying a delta, it may increase/decrease the setpoint more than you would like.

 

Benoit

 

  • Like 2
Posted

Awesome - Thank you Benoit!

 

I've updated the Google Home supported commands wiki subpage to reflect the new commands...  so they are easier to find by new users. You likely need to update the screenshots there as the Portal has evolved since the existing screen shots were taken.

 

https://wiki.universal-devices.com/index.php?title=ISY_Portal_Google_Home_Integration

 

Michael.

  • Like 3
Posted

This is great! Thanks Benoit!

 

When I ask about the temperature, the response is in centigrade degrees. Can I configure it for fahrenheit somehow? 

Posted

I keep getting an error when attempting to control our thermostat. I have verified it is in Google home control and have even unlinked and relinked the universal devices account. Any suggestions?23baafc04e503c2aa52a263840f67ad6.jpgac23b876174a74b6ecdaaedd9bcf27c3.jpg

 

Sent from my Nexus 5X using Tapatalk

Posted (edited)

I’ve just noticed that asking what the thermostat is set to returns the currently sensed temperature rather than the set point.

 

My set point is currently 74, but the stat is reading 75 right now. Asking Home returned 75 when I would expect the setpoint of 74,

 

I would expect asking for the inside temperature to return 75 (in my case).

Edited by MWareman
Posted

That's not just correct, but as it should be IMO.

 

"Alexa, what's the living room temperature?" returns the ambient living room temperature, not the set point, "Alexa, what is the living room set to?" correctly reports the set point.

Posted

This is great! Thanks Benoit!

 

When I ask about the temperature, the response is in centigrade degrees. Can I configure it for fahrenheit somehow? 

 

I unfortunately do not know. 

 

At the API level, everything is always handled in Celsius. 

 

Google must translate that to Fahrenheit, or keep it in Celsius, based on user preferences. 

 

Anyone knows how to change that? I could not find it.

Awesome - Thank you Benoit!

 

I've updated the Google Home supported commands wiki subpage to reflect the new commands...  so they are easier to find by new users. You likely need to update the screenshots there as the Portal has evolved since the existing screen shots were taken.

 

https://wiki.universal-devices.com/index.php?title=ISY_Portal_Google_Home_Integration

 

Michael.

 

Thanks Michael!

  • Like 1
Posted

@stusview, MWareman

 

FYI, at the API level, there is only one thermostat query, and it returns both the thermostat temperature, the mode and setpoints (2 if in auto).

 

Google Home decides what it will speak.

By experimentation, saying "Ok Google, what is <device> set to" can return either the thermostat inside temp, or the mode + setpoint. It seems to alternate between the 2.

Posted

I keep getting an error when attempting to control our thermostat. I have verified it is in Google home control and have even unlinked and relinked the universal devices account. Any suggestions?23baafc04e503c2aa52a263840f67ad6.jpgac23b876174a74b6ecdaaedd9bcf27c3.jpg

 

Sent from my Nexus 5X using Tapatalk

 

James,

 

Can you try again? It should work better now.

 

With the help of the device address on the screen shot, I was able to locate the error in the logs and make a fix.

 

Thanks,

 

Benoit.

Posted

James,

 

Can you try again? It should work better now.

 

With the help of the device address on the screen shot, I was able to locate the error in the logs and make a fix.

 

Thanks,

 

Benoit.

A little better but still issues. Attached images. Appears to be a unit conversion issue. d6b31f5dd21bfbf4c3556ca1927b6f62.jpg63eca9d0b0c9f35fa088c4a99f169ecb.jpg

 

Sent from my Nexus 5X using Tapatalk

Posted

James,

 

Google Home thinks you want to work in Celsius.

 

It reports the temp to you in Celsius

When you request 72, it us understood as Celsius, and well.. 72 celsius is out of range.

 

Now, I don't know how to change the user setting to Fahrenheit.

 

You are a programmer, here's more info;

 

API Doc: https://developers.google.com/actions/smarthome/thermostat-schema

 

You can see at the API level that all temps are normalized to Celsius.

 

This is the request ISY Portal received:

{
    inputs: [{
        intent: 'action.devices.EXECUTE',
        payload: {
            commands: [{
                devices: [{
                    customData: {
                        address: '11 93 4F 1',
                        category: 'thermostat',
                        type: '5.3.146.0',
                        uuid: '00:21:b9:02:07:ff'
                    },
                    id: '5835f0c62dc9c25a649e2e44'
                }],
                execution: [{
                    command: 'action.devices.commands.ThermostatTemperatureSetpoint',
                    params: {
                        thermostatTemperatureSetpoint: 72
                    }
                }]
            }]
        }
    }],
    requestId: '6932436822782406037'
}
 
It is not converted from F to C.
 
This is why I think there is a configuration issue.
 
Just to be sure, anyone else got it working in Fahrenheit?
 
Benoit
Posted

James,

 

Google Home thinks you want to work in Celsius.

 

It reports the temp to you in Celsius

When you request 72, it us understood as Celsius, and well.. 72 celsius is out of range.

 

Now, I don't know how to change the user setting to Fahrenheit.

 

You are a programmer, here's more info;

 

API Doc: https://developers.google.com/actions/smarthome/thermostat-schema

 

You can see at the API level that all temps are normalized to Celsius.

 

This is the request ISY Portal received:

{

inputs: [{

intent: 'action.devices.EXECUTE',

payload: {

commands: [{

devices: [{

customData: {

address: '11 93 4F 1',

category: 'thermostat',

type: '5.3.146.0',

uuid: '00:21:b9:02:07:ff'

},

id: '5835f0c62dc9c25a649e2e44'

}],

execution: [{

command: 'action.devices.commands.ThermostatTemperatureSetpoint',

params: {

thermostatTemperatureSetpoint: 72

}

}]

}]

}

}],

requestId: '6932436822782406037'

}

 

It is not converted from F to C.

 

This is why I think there is a configuration issue.

 

Just to be sure, anyone else got it working in Fahrenheit?

 

Benoit

I made a small test to set the temp using celcius. It made my thermostat read error.

Attached photos. You can see that I set my thermostat to a celcius degree and put in an error state.

 

I think you may need to add a preferred unit option somewhere that the portal can read so that it can send the appropriate values back to the devices.

4ab893efdcca9545e31722b2f28e03ab.jpga05dc3cf84249b018845d9d0be413dcb.jpg

 

Sent from my Nexus 5X using Tapatalk

Posted

In the Home app, at the very bottom of the device settings it lists the country code the Home device is registered to.

 

Mine says ‘US’ and appears to be working in Fahrenheit. I don’t know how to change it, but might be a point to look at...

Posted

Hey, just found this out.

 

Try saying ‘Hey Google, change temperature to Fahrenheit’ and see if that helps...

Posted

James,

 

I think you uncovered a new issue.

 

ISY Portal is supposed to detect the UOM of the thermostat, but I think that in your case, it did not do it correctly. Let me look into that.

 

Benoit

Posted

In the Home app, at the very bottom of the device settings it lists the country code the Home device is registered to.

 

Mine says ‘US’ and appears to be working in Fahrenheit. I don’t know how to change it, but might be a point to look at...

One issue also could be that I am not using a Google Home.  I am attempting to use it through Google Assistant.  

 

Hey, just found this out.

 

Try saying ‘Hey Google, change temperature to Fahrenheit’ and see if that helps...

trying now.  

Posted

Hey, just found this out.

 

Try saying ‘Hey Google, change temperature to Fahrenheit’ and see if that helps...

 

Hi Michael,

 

I tried that, but it did not help.

 

It works for when you ask for weather information. But it does not seem to apply to the Google Assistant.

 

Benoit

Posted

Jimbo,

 

Also please let me know what the addresses are for "family room thermostat", "master thermostat" and "outside thermostat".

 

It's really odd!

 

Benoit

  • Like 1
Posted

If it will help: here is my node dump of the thermostat:

<nodeInfo>
<node flag="128" nodeDefId="Thermostat">
<address>11 93 4F 1</address>
<name>hvac - Main</name>
<type>5.3.146.0</type>
<enabled>true</enabled>
<deviceClass>1</deviceClass>
<wattage>1000</wattage>
<dcPeriod>60</dcPeriod>
<startDelay>0</startDelay>
<endDelay>0</endDelay>
<pnode>11 93 4F 1</pnode>
<ELK_ID>A07</ELK_ID>
<property id="ST" value="146" formatted="73.0°" uom="101"/>
<property id="CLIMD" value="1" formatted="Heat" uom="98"/>
<property id="CLISPC" value="152" formatted="76.0°" uom="101"/>
<property id="CLISPH" value="143" formatted="71.5°" uom="101"/>
<property id="CLIHUM" value="0" formatted="0%" uom="22"/>
</node>
<properties>
<property id="CLIFS" value="7" formatted="On" uom="99"/>
<property id="CLIHCS" value="0" formatted="Idle" uom="66"/>
<property id="CLIHUM" value="0" formatted="0%" uom="22"/>
<property id="CLIMD" value="1" formatted="Heat" uom="98"/>
<property id="CLISPC" value="152" formatted="76.0°" uom="101"/>
<property id="CLISPH" value="143" formatted="71.5°" uom="101"/>
<property id="ST" value="146" formatted="73.0°" uom="101"/>
</properties>
</nodeInfo>
Posted

James, Jimbo,

 

After pulling my hair out, I finally resolved the mystery of C/F setting. We could not find it because there are none!

 

The C/F setting is determined when you first enter the device in ISY Portal. Then, when you sync your devices (Unlink/Link), the C/F setting is passed along with the other device parameters. Based on that setting, GH will give you the setpoints or temperatures accordingly. Also, when you speak a setpoint, it has to be in that C/F setting. In other words, you have to talk in the same unit of measure as the thermostat. BUT, if you ever change your thermostat C/F setting, you will have to remove it from ISY Portal, add it again, then sync Google Home.

 

For those who entered your device before it went live, you may have to do it again.

 

I also found some bugs relater to the unit of measure that have been fixed.

 

Please consider thermostat support in Google Home as beta code.

 

Benoit.

  • Like 2
Posted

James, Jimbo,

 

After pulling my hair out, I finally resolved the mystery of C/F setting. We could not find it because there are none!

 

The C/F setting is determined when you first enter the device in ISY Portal. Then, when you sync your devices (Unlink/Link), the C/F setting is passed along with the other device parameters. Based on that setting, GH will give you the setpoints or temperatures accordingly. Also, when you speak a setpoint, it has to be in that C/F setting. In other words, you have to talk in the same unit of measure as the thermostat. BUT, if you ever change your thermostat C/F setting, you will have to remove it from ISY Portal, add it again, then sync Google Home.

 

For those who entered your device before it went live, you may have to do it again.

 

I also found some bugs relater to the unit of measure that have been fixed.

 

Please consider thermostat support in Google Home as beta code.

 

Benoit.

w00t..w00t!!!!

 

I removed the thermostat and re-added it.  Failed.  Then I unlinked and relinked the google home account and it seems to be working.  

 

CHEERS!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...