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
}