Temperature Device to Google Home

I have several Acu-rite Temperature sensors that provides/updates Temp/RH data to ST device(s) which I created for each such sensor. When I link these ST devices to Google Home I get one entity for temperature and one for RH for each ST device. I can then ask Google, "Hey google, what is the backyard temperature" or "Hey Google, what is the basement humidity".

I ported the ST code to Hubitat, redirected the Acurite data to Hubitat and voila... I wish everything migrated that easy. Now here is the problem...

When I link these new Hubitat devices to Google Home they are ignored. For what ever reason, Hubitat treats them as incompatible. Given that each of these devices use the exact same driver as those ST devices, I am not sure why I can link them from ST but not Hubitat.

Below is the driver I use. Can anyone tell from what I have why this link will not work in Hubitat?

/**
 *  SmartWeather Station v3
 *
 *  Author: Cor Dikland
 *
 *  Date: June 3 2017 
 */
// for the UI
metadata {
	definition (name: "Accurite Tower Tile Temp", namespace: "cdikland", author: "CK Dikland") {
		capability "Temperature Measurement"
		capability "Relative Humidity Measurement"
        capability "Battery"
        
        attribute "tempHI", "string"
        attribute "tempLO", "string"
        attribute "temperatureF", "string"

        attribute "rhHI", "string"
        attribute "rhLO", "string"
        
        attribute "lastTempTime", "string"
        attribute "lastRHTime", "string"
	}
    tiles {
		valueTile("temperature", "device.temperature") {
			state "default", label:'${currentValue} c', unit:"C"
		}
		
		valueTile("tempHI", "device.tempHI") {
			state "tempHI",  label:'High: ${currentValue}°C', unit:"C"
		}
		valueTile("tempLO", "device.tempLO") {
			state "tempLO", label:'Low: ${currentValue}°C', unit:"C"
		}
        valueTile("temperatureF", "device.temperatureF") {
			state "temperatureF", label:'${currentValue}°F', unit:"F"
		}

		valueTile("humidity", "device.humidity") {
			state "humidity", label:'${currentValue}%', unit:"%"
		}
	
		valueTile("rhHI", "device.rhHI") {
			state "rhHI",  label:'High: ${currentValue}%'
		}
	
		valueTile("rhLO", "device.rhLO") {
			state "rhLO",  label:'Low: ${currentValue}%'
		}
		valueTile("battery", "device.battery") {
			state "battery", label:'Battery: ${currentValue}'
            }
	
		valueTile("signal", "device.signal") {
			state "signal", label:'Signal: ${currentValue}'
            }
	
 		valueTile("lastResetLabel", "device.lastResetTime", decoration: "flat", width: 1) {
			state "default", label:'Last Temperature Event'
		}
		valueTile("lastTempTime", "device.lastTempTime", decoration: "flat", width: 2) {
			state "lastTempTime", label:'${currentValue}'
		}
 		valueTile("lastRHResetLabel", "device.lastRHResetTime", decoration: "flat", width: 1) {
			state "default", label:'Last Humidity Event'
		}
		valueTile("lastRHTime", "device.lastRHTime", decoration: "flat", width: 2) {
			state "lastRHTime", label:'${currentValue}'
		}

//		main([ "temperature"])
		main([ "temperature", "humidity","battery","tempHI","tempLO",  "rhHI", "rhLO", "temperatureF"])
		details(["tempLO",  "temperature", "tempHI","rhLO","humidity", "rhHI",  "battery", "temperatureF","signal","lastResetLabel","lastTempTime","lastRHResetLabel","lastRHTime"])
        }
}

// parse events into attributes
def parse(String description) {
	log.debug "Parsing '${description}'"
}

def generateEvent(Map results) {
  results.each { name, value ->
    if (name == 'temperature') {
    	sendEvent(name: name, value: value, unit: 'C')
    }
    else {
       	sendEvent(name: name, value: value)
    }
	log.info "Name: $name  Value: $value"
  }
  return null
}

As you have discovered, the native HE/Google integration doesn't support these type of sensors. The community integration below should allow you to do what you want.

I have the same issue but have been too lazy to try out the community integration.

2 Likes

The problem is really in Google Assistant. It supports Thermostats and it supports Humidifiers. But it doesn't support the humidity reading from Thermostats with humidifier control, so therefor you cannot get humidity readings from such a device, and HE doesn't support humidifiers in Google Assistant. So you cannot get humidity readings from HE to Google Assistant.

You don't need to install an app to get the temperature in Google Assistant/Home. Here's how to do it.

The community supported integration does support humidity, Including humidity with a thermostat. It doesn't show you the humidity reading but if you ask google it does know it. The same way it works with the "sensors"
Hopefully they will add the ability to see the readings in the future.

1 Like

Nice. My Ecobee supports humidity, but I cannot ask for the humidity through Google or Alexa. But if I ask via my Ambient Weather Skill for Alexa, I can get indoor humidity.