Google Home not Setting Thermostat Temp

Update with the CT101 Driver:

So I discovered 2 things: 1) The thermostat would not send updates to HE and 2) If I manually changed the temperature at the thermostat, whenever I'd use refresh the thermostat would revert back to the scheduled temp.

My next step. The thermostat has a "Simple Mode". Basically in this mode, the thermostat becomes "dumb" and ignores the schedule. Here's where things get weird. When I put the stat in "Simple" mode, if I make a change at the stat it IMMEDIATELY sends the update to HE. So no need to refresh it. One step closer. If I do happen to hit refresh, everything remains as it should. Now we're on to something.

So my final resolve: I'm keeping the stat dumb and running the schedules through the HE scheduler. Something has to be wonky with the stat, but I have it running just fine now and have the ability to use Google Home and Home Hub with stat.

i have 2 sleepy z-wave trvs, they worked in GH when i was on smartthingings, ive moved them over with the driver, and they work in HE fine, but when i 'tick' them for google home intergration, clcik done, they dont get added, going back to google intergration they have become unticked.

reading above i have - createEvent(name: "thermostatSetpoint", value: radiatorTemperature, unit: getTemperatureScale(), descriptionText:discText)
Any ideas -

could the data be stored and accessed by googl;e using an attribute and send event?

You just need to include the update line when your driver first loads (to set an initial value):
updateDataValue("lastRunningMode", "heat"):
and if you use both heat and cool, you can update it anytime you switch too.
If you add that to the initialize event, make sure to re-initialise your existing devices that are using that driver before trying to add them to Google Home again.

If it's still not working, check you've included all the attributes and commands from the Thermostat capability, and set default values on them (see docs, or see a mostly bare bones thermostat example I made that works with GH).

1 Like

Thanks for that, that's what I've been looking for

it didnt work!
found the issue, it had the capability switch as well!!!! it worked fine in ST with it

capability "Actuator"
        capability "Sensor"
		capability "Thermostat"
		capability "Battery"
		capability "Configuration"

    	command "temperatureUp"
		command "temperatureDown"
		
    	attribute "nextHeatingSetpoint", "number"
        attribute "lastseen", "string"
        attribute "lastRunningMode", "string"

and

sendEvent(name:"minHeatingSetpoint", value: "4", unit: "°C", displayed: false)
	sendEvent(name:"maxHeatingSetpoint", value: "28", unit: "°C", displayed: false)
    
    sendEvent(name: "supportedThermostatFanModes", value: ["off"], isStateChange: true)
    sendEvent(name: "thermostatFanMode", value: "off", isStateChange: true)
    
    sendEvent(name: "supportedThermostatModes", value: ["off", "heat"] , isStateChange: true)

with a

updateDataValue("lastRunningMode", "cool") or heat

dont know what is the minimum but thats what i have and works. The popp dosnt report temp so im faking it with the setpoint

Hi @mark.cockcroft, is your drive still working with google home? I tried to do exactly what you wrote but I can't get my driver to integrate with google home :frowning:

Yea its working fine
Try this driver for inspiration
Not sure what GH wants but its working
https://raw.githubusercontent.com/Mark-C-uk/Hubitat/master/Danfoss%20Living%20Connect%20and%20POPP%20Radiator%20Thermostat

Thanks for your reply! I tried but it didn't work. I tried to add your code (same capabilities and attributes). Removed my thermostat and re-added but it didn't work. Tried with both options below:
updateDataValue("lastRunningMode", "heat")
state.lastRunningMode = "heat"

I tried adding your driver even though I don't have your thermostat but it didn't work either (expected?). The "Virtual Thermostat" provided by Hubitat worked flowless so I don't know what is the problem now :frowning:

I don't know if it's worth mentioning but my thermostat is a child under a hub parent driver. I tried to set isComponent to false and true when creating the child but it didn't change anything.

If someone is struggling with this, this is the minimum functionally you need to make the integration work with google home:

metadata {
    definition (name: "Test Google Home Thermostat Integration", namespace: "community", author: "test") {
        capability "Actuator"
        capability "Sensor"
        capability "Temperature Measurement"
        capability "Thermostat"
		
		command "setThermoStuff"
    }
}
preferences {
}

def installed() {
    log.warn "installed..."
    initialize()
}

def updated() {
    log.info "updated..."
    initialize()
}

def uninstalled() {
    log.info "uninstalled..."
}

def initialize() {
    log.info "initialize..."
    setThermoStuff()
}

//empty funcs for thermostat capability 
def setThermoStuff() {
	sendEvent(name: "supportedThermostatFanModes", value: ["auto"], isStateChange: true)
	sendEvent(name: "supportedThermostatModes", value: ["off", "auto", "heat"] , isStateChange: true)
	sendEvent(name: "thermostatMode", value: "off", isStateChange: true)
	sendEvent(name: "thermostatFanMode", value: "auto", isStateChange: true)
	sendEvent(name: "thermostatOperatingState", value: "idle", isStateChange: true)
	sendEvent(name: "thermostatSetpoint", value: 18, isStateChange: true)
	sendEvent(name: "heatingSetpoint", value: 18, isStateChange: true)
	sendEvent(name: "coolingSetpoint", value: 30, isStateChange: true)
    sendEvent(name: "temperature", value: 20, isStateChange: true)
	updateDataValue("lastRunningMode", "heat")	
} 
def auto() {}
def cool() {}
def heat() {}
def off() {}
def fanCirculate() {}
def fanOn() {}
def fanAuto() {}
def emergencyHeat() {}
def setCoolingSetpoint(temperature) {}
def setHeatingSetpoint(temperature) {}
def setSchedule(schedule) {} 
def setThermostatFanMode(fanmode) {}
def setThermostatMode(thermostatmode) {} 
2 Likes

I am unable to get my Google Home to communicate with my GoControl Thermostat. The GoControl is meshed with HubMesh - not sure if that has anything to do with it...