Honeywell Smart Wi-Fi Thermostat Compatibility

awesome! It pasted into your post a little weird but I think i got it.

Question, does the DeviceID need to be in HEX format?

No. It is the 5 or 6 digit number that you see in your URL when you log in. That’s all you need.

cool it works with my Honeywell Wifi 9000 thermostat…

the interface looks a little funky but I can deal with that

thanks man you rock!

Yeah, the point was to get it to work… I will make it look like some of the better thermostats soon.

Does your thermostat not report humidity (the --)? That may be a feature of mine since it has an outdoor sensor.

it does report humidity but it wont show there, if i click on Activity I can see the humidity reading there…but doesnt show on the UI for some reason

oh weird now the humidity suddenly shows up in the spot you made for it…that’s weird…oh well i guess it works now! showing outdoor humidity…
eventually can you make another tile to show indoor humidity as well? mine supports that too

Don’t see not. Not sure if mine supports that or not and if Honeywell returns that in my case. If it does I’ll make the humidity configurable between indoor/outdoor or make it a toggle

Ok, I just checked. My thermostat does not support humidity indoors or outdoors, i am picking it off of the weather data that they send back. I can make it go off of the sensor. Fortunately they indicate whether the device supports indoor and outdoor humidity and what the values are if they do.

I have it in use for both of our zones here. Great work so far!

Ok… another quick change for humidity sensor data… Replace the httpGet section in the getStatus with the below. IndoorHumidity sensor is the highest preference. OutdoorHumidity sensor is next, and lastly the weather data is the default if you have neither of those sensors.

I will get this up on github soon.

httpGet(params) { response ->
    log.debug "Request was successful, $response.status"

    
	def curTemp = response.data.latestData.uiData.DispTemperature
    def fanMode = response.data.latestData.fanData.fanMode
    def switchPos = response.data.latestData.uiData.SystemSwitchPosition
    def coolSetPoint = response.data.latestData.uiData.CoolSetpoint
    def heatSetPoint = response.data.latestData.uiData.HeatSetpoint

	def IndoorHumiditySensorAvailable = response.data.latestData.uiData.IndoorHumiditySensorAvailable
    def OutdoorHumidityAvailable = response.data.latestData.uiData.OutdoorHumidityAvailable
    def OutdoorHumidity = response.data.latestData.uiData.OutdoorHumidity
    def IndoorHumidity = response.data.latestData.uiData.IndoorHumidity
	def outHumidity = response.data.latestData.weather.Humidity
    def Humidity = outHumidity

	if (OutdoorHumiditySensorAvailable == 'true')
    	Humidity = OutdoorHumidity

    if (IndoorHumiditySensorAvailable == 'true')
    	Humidity = IndoorHumidity
    
    log.debug curTemp
    log.debug fanMode
    log.debug switchPos
    log.debug outHumidity
	//fan mode 0=auto, 2=circ, 1=on
    
    if(fanMode==0)
    	fanMode = 'auto'
    if(fanMode==2)
    	fanMode = 'circulate'
    if(fanMode==1)
    	fanMode = 'on'

    if(switchPos==1)
    	switchPos = 'heat'
    if(switchPos==2)
    	switchPos = 'off'
    if(switchPos==3)
    	switchPos = 'cool'


    sendEvent(name: 'thermostatFanMode', value: fanMode)
    sendEvent(name: 'thermostatMode', value: switchPos)
    sendEvent(name: 'coolingSetpoint', value: coolSetPoint as Integer)
    sendEvent(name: 'heatingSetpoint', value: heatSetPoint as Integer)
    sendEvent(name: 'temperature', value: curTemp as Integer, state: switchPos)
    sendEvent(name: 'humidity', value: Humidity as Integer)


}

I have put the code up here https://github.com/ethomasii/honeywell-smartthings

Thanks again!

Also it seems the device doesn’t refresh unless you manually hit refresh on the device tiles…was that intended?

Not intended at all. I do need to figure that out. Several of my custom devices are like that currently, including ones I did not write. There is a thread on here about custom device types not refreshing properly that I need to check into.

I might be doing it wrong but for some reason, i’m not getting the thermostat to update. I copied and pasted the code to MyDeviceTypes, created a new device under MyDevice and linked it to the TotalComfort Api, entered in the login, password, and Device Name. The data’s not updating at all in the ST app under things.

And I see my MyQ device I created has a Sessions next to it but the Thermostat isn’t showing up. Am I missing something?

after you did all that did you go to the “refresh” tile in the device and click it?

Yeah, all the passwords and stuff was entered correctly, I click refresh, the activity feed shows poll command was sent to Honeywell Thermostat, and that was it. Nothing came back.

and the device ID was the 6 digit code that you get from the end of the http address when you’re logged in to your thermostat through mytotalcomfort?
so something like

https://rs.alarmnet.com/TotalConnectComfort/Device/Control/XXXXXX where those X’s are the six numbers that you would want to use for device ID ?

Ah ha! Stupid me… i was thinking the device ID was the device network ID and then I entered the Device Name that shows up in Total Connect as the Device ID. It works now.

But it seems that that app is too wide for Android so some of the temp bar is blocked. It doesn’t look as clean as the version posted above. And of course the humidity doesn’t post on the screen even though it shows up in the activities.

Some point soon I will try to document it a little better and debug it some more. Also, I will be moving away from the slider to up and down arrows.