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

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

I put in a support request about the broken Thermostat tile with this info. Maybe it will get fixed soon.

2 Likes

So I added this driver then included the T6 on my hub.
It doesn't look like it's reporting everything. Did I miss something?

That isn't everything.

  1. Make sure you're using this Advanced Honeywell T6 driver, not the built-in T6 driver.
  2. Try clicking "Save Preferences" at the base of all the options. (There are a lot! Most probably shouldn't be edited.)
  3. Then click Save Device and reload the page.

Thanks. I had to hit refresh a handful of times before everything showed up.

Another question. When setting the "SensorCal" value, which temperature is actually referenced?
If I set it to -2, does that mean room temperature is actually -2F from what the T6 is reporting?
OR does -2 mean that the T6 is 2F below actual room temperature?

Another question...
I don't seem to be getting consistent temperature updates.
As you can see below, I get data that the thermostat is switching modes, and updated humidity, but the temperature only sporadically updates. (The top temperature is from me clicking "Refresh".)

I have the T6 set to "Advanced" Z-wave temperature reporting and it's 24v/mains powered.

I've found with these Honeywell thermostats that you will never see the temperature move from the set point when it's cycling normally. In your logs it looks like it's set at the default 3 CPH (cycles per hour)?

If the temperature were to drop overnight (if it gets cool enough where you are), you may see temp updates then. Although, some of us have observed 2F jumps sometimes:

This is correct. It should be reflected in the reported temperature, although you may see some of the reporting oddities I mentioned in my other reply.

When using a heat pump, is it feasible for the T6 device to report when compressor stage 2 is called and active?

If so, would it be feasible for the driver to report on the status of the compressor stages?

I was surprised to see that the T6 display doesn't show (at least by default) when the various stages are active.

Answering part of my question: The T6 manual describes how to use the Menu -> EQMNT STATUS option to view the status of all the equipment the thermostat is controlling. Including the stage information.

@bcopeland - Would you be open to a pull request on your driver to show the ISU numbers next to each preference so that people could more easily associate a preference with the documented ISU numbers in the T6 doc and in the thermostat's installer set up advanced menu?

Assuming that the documented ISU settings won't change over the life of the thermostat.

BTW, great work on this driver!

Enjoying it with a WaterFurnace Envision geothermal unit 3H/2C + electric emergency heat.

1 Like

Short of installing batteries in the T6, is there a way to configure the driver or perhaps enhance it so that when running on mains power only with no batteries installed, the Apple Home app doesn't complain that the device is running low on batteries?

We've got the homebridge app running on a macOS system with the maker API integration set up on our Hubitat so that devices show up in the Apple Home app.

Here's what the T6 looks like in the Home app. Note the exclamation mark and the "Battery Low" indications:


And the device in Hubitate with "battery: 1":

image