[NOT MAINTAINED] Advanced Honeywell T6 Pro Z-Wave Thermostat Driver

Don't feel bad, it didn't come with all the freakin' parts! It's missing the UWP Install System which is essentially what you connect the wires to and mount to the wall. I called Honeywell and was basically told good luck, you can't get just that part. So I can't wire it or mount it the way it was meant to be. So if I plan on using it I'm going to have to get pretty creative.

Bummer! Was it advertised as complete? Ebay is pretty good about protecting sellers.

Another option is to pick-up any cheap T-series stat (working or not) on eBay, fb Marketplace, Offerup, Mercari or Craigslist that has the UWP with it. I can give you the pin-outs, but I think the UWP is what snaps it to the wall or the trim plate so you probably need it. The non z-wave stuff goes pretty cheap.

"The Honeywell T Series, a family of non-connected and Wi-Fi connected thermostats, has one thing in common (aside from good looks) a single standard wall mount."

Yep, was advertised as complete. I contacted the person I purchased it from and let them know what Honeywell told me and within 5 minutes had a full refund, Oddly enough you mention trying to find a cheap T-series, that's the thought I had about 30 minutes ago and have been digging around to find the cheapest option. I hadn't thought about FB Marketplace or Mercari, thanks for those suggestions!

I found 2 on ebay less than $10!!

Jesus, the caffeine must really be working on me, I haven't found any that cheap. I haven't had caffeine in almost 8 years and grabbed a drink with some in it and my mind is going like a billion miles an hour. Mind sharing the links? =)

Sorry, I was just scanning for cheap T models to get the UWP base, using recently sold prices. The U version, and T2-T6 go pretty cheap. Here is one:
https://www.ebay.com/itm/Honeywell-T6-Pro-Programmable-Thermostat-TH6210U2001/153907846444?hash=item23d59f5d2c:g:kPYAAOSwQ8Veos3M

Do the U models use the UWP also?

Yes, it is my understanding that all T series use the UWP base regardless of radio or not.

2 Likes

for some reason it showing temperature in F
Everything else is set in Celsuis.

1 Like

also some mixed units on dashboard
image

I’ll check that

I have chosen the Honeywell T6 Pro Z-wave Thermostat as my first Z-wave device. When starting from this point, the code on github chokes on some of the expected zwave command libraries.

"unable to resolve class hubitat.zwave.commands.supervisionv1.SupervisionGet @ line 336, column 17. unable to resolve class hubitat.zwave.commands.supervisionv1.SupervisionReport @ line 342, column 18. unable to resolve class hubitat.zwave.commands.versionv2.VersionReport @ line 361, column 17. "

I will do some reading and figure out what prerequisites are expected in the HE to make this work. This is also my first custom driver. Experience to date on HE is a couple of zigbee switches controlled by a dimmer. I will work through it but thought I would post a new user perspective before I learn to much to post and accurate new user perspective.

I don't have this error with platform 2.2.1.116. What platform version are you running?

Also - how did you add the driver? Cut & paste, or using import? Can you re-import it using this URL and see if the error continues?

https://raw.githubusercontent.com/djdizzyd/hubitat/master/Drivers/Honeywell/Advanced-Honeywell-T6-Pro.groovy

I am currently running 2.1.5.124. I used copy paste from github in raw view mode. My HE does not have the import button. I will upgrade and try the import.

Copy & paste in raw view mode is fine. The problem is the platform version. You need to update.

1 Like

Update of the HE software from 2.1.5.124 to 2.2.1.116 repaired the issue. The trouble with use of import was an error on my part. I did not notice the import button at the top of the new driver dialog on first attempt. I am all good now and have a working dashboard tile to set my thermostat parameters. Thanks for the reply!

2 Likes

I just put in a simple pull request on GitHub, to prevent this from reporting humidity sensor results that are out of range. I just simply put in a check for the value being between 0 and 100, otherwise it doesn't report the event and puts a log.info about the bad result (not sure if that logging is necessarily required, maybe could be log.debug).

I would get occasional values like '-124' from this driver. I'm guessing the hardware just reports bad data occasionally.

I forgot to mention, this doesn't change fan modes from the built-in Thermostat tile. It will change to fan mode = 'on' but not to 'circulate' or 'auto.'

I think maybe the problem is with the Thermostat tile, but I'm not sure. When I try to change the fan mode to 'circulate' or 'auto' I get errors:

Summary

dev:902020-06-29 07:54:30.279 pm errorjava.lang.NullPointerException: Cannot invoke method and() on null object on line 385 (setThermostatFanMode)
dev:902020-06-29 07:54:30.205 pm debugsetting zwave thermostat fan mode null
dev:902020-06-29 07:54:30.204 pm debugsetThermostatFanMode( auto)
dev:902020-06-29 07:54:23.308 pm debugTranslated fan mode: on
dev:902020-06-29 07:54:23.306 pm debugGot thermostat fan mode report: ThermostatFanModeReport(fanMode:1, off:false)
dev:902020-06-29 07:54:23.294 pm debugparse:zw device: 09, command: 4403, payload: 01 , isMulticast: false
dev:902020-06-29 07:54:23.180 pm debugparse:zw device: 09, command: 7006, payload: 01 01 04 , isMulticast: false
dev:902020-06-29 07:54:23.104 pm debugTranslated fan state: running
dev:902020-06-29 07:54:23.102 pm debugGot thermostat fan state report: ThermostatFanStateReport(fanOperatingState:1)
dev:902020-06-29 07:54:23.094 pm debugparse:zw device: 09, command: 4503, payload: 01 , isMulticast: false
dev:902020-06-29 07:54:23.004 pm debugsetting zwave thermostat fan mode 1
dev:902020-06-29 07:54:23.003 pm debugsetThermostatFanMode(on)
dev:902020-06-29 07:52:42.373 pm debuggot temp: 55.0
dev:902020-06-29 07:52:42.370 pm debugparse:zw device: 09, command: 3105, payload: 05 22 02 26 , isMulticast: false
dev:902020-06-29 07:51:08.628 pm errorjava.lang.NullPointerException: Cannot invoke method and() on null object on line 385 (setThermostatFanMode)
dev:902020-06-29 07:51:08.573 pm debugsetting zwave thermostat fan mode null
dev:902020-06-29 07:51:08.571 pm debugsetThermostatFanMode( circulate)

I'm pretty sure that's because the Thermostat tile is broken, asking the driver to set the fan mode to ' circulate' instead of 'circulate.' The same thing happens with 'auto.' The only one with the correct value is 'on.' I'm guessing that when something calls setThermostatFanMode( circulate), it fails, since there is no SET_THERMOSTAT_FAN_MODE[mode] with a space in front. Maybe I could add those? Or maybe Hubitat could fix their Thermostat tile?

Edit: I did just that:
@Field static Map SET_THERMOSTAT_FAN_MODE=["auto":0x00,"on":0x01,"circulate":0x06, " auto":0x00, " on":0x01, " circulate":0x06]

and now it works! Goofy tile. I added the space in front of ' on' just in case...

And my style has spaces, I guess...

Here are the logs now:

Summary

dev:902020-06-29 08:12:50.177 pm debugTranslated fan mode: on
dev:902020-06-29 08:12:50.176 pm debugGot thermostat fan mode report: ThermostatFanModeReport(fanMode:1, off:false)
dev:902020-06-29 08:12:50.172 pm debugparse:zw device: 09, command: 4403, payload: 01 , isMulticast: false
dev:902020-06-29 08:12:50.053 pm debugparse:zw device: 09, command: 7006, payload: 01 01 04 , isMulticast: false
dev:902020-06-29 08:12:49.974 pm debugTranslated fan state: running
dev:902020-06-29 08:12:49.973 pm debugGot thermostat fan state report: ThermostatFanStateReport(fanOperatingState:1)
dev:902020-06-29 08:12:49.970 pm debugparse:zw device: 09, command: 4503, payload: 01 , isMulticast: false
dev:902020-06-29 08:12:49.874 pm debugsetting zwave thermostat fan mode 1
dev:902020-06-29 08:12:49.873 pm debugsetThermostatFanMode(on)
dev:902020-06-29 08:12:41.336 pm debugTranslated fan mode: auto
dev:902020-06-29 08:12:41.335 pm debugGot thermostat fan mode report: ThermostatFanModeReport(fanMode:0, off:false)
dev:902020-06-29 08:12:41.331 pm debugparse:zw device: 09, command: 4403, payload: 00 , isMulticast: false
dev:902020-06-29 08:12:41.246 pm debugparse:zw device: 09, command: 7006, payload: 01 01 04 , isMulticast: false
dev:902020-06-29 08:12:41.149 pm debugTranslated fan state: idle
dev:902020-06-29 08:12:41.148 pm debugGot thermostat fan state report: ThermostatFanStateReport(fanOperatingState:0)
dev:902020-06-29 08:12:41.144 pm debugparse:zw device: 09, command: 4503, payload: 00 , isMulticast: false
dev:902020-06-29 08:12:41.044 pm debugsetting zwave thermostat fan mode 0
dev:902020-06-29 08:12:41.043 pm debugsetThermostatFanMode( auto)
dev:902020-06-29 08:12:30.880 pm debugTranslated fan mode: circulate
dev:902020-06-29 08:12:30.879 pm debugGot thermostat fan mode report: ThermostatFanModeReport(fanMode:6, off:false)
dev:902020-06-29 08:12:30.875 pm debugparse:zw device: 09, command: 4403, payload: 06 , isMulticast: false
dev:902020-06-29 08:12:30.589 pm debugsetting zwave thermostat fan mode 6
dev:902020-06-29 08:12:30.588 pm debugsetThermostatFanMode( circulate)

1 Like

@bcopeland Is this something that can be fixed on the platform/inside-the-dashboard? It seems to affect all drivers, even the stock generic driver.

Yes, this is a bug in the Dashboard. Ideally they should fix it there. I can add a second pull request that includes this work-around for this driver, at least. Or you can go into the driver code and replace this line:

@Field static Map SET_THERMOSTAT_FAN_MODE=["auto":0x00,"on":0x01,"circulate":0x06]

with:

@Field static Map SET_THERMOSTAT_FAN_MODE=["auto":0x00,"on":0x01,"circulate":0x06," auto":0x00," on":0x01," circulate":0x06]

That makes it work for now.

3 Likes