[RELEASE] Advanced GoControl GC-TBZ48 Thermostat Driver

Driver for Gocontrol thermostat working great. I did, however, download the manual and noticed 2 settings differed from your driver. The heat setpoint max was 90F, yours 109F, Cool setpoint min 60F, yours 33F. Just wondering what your settings are reading on your thermostats for these two settings. Again thank you again for the driver. It gives great control of many Gocontrol settings that comes in handy. Tony

Feature Description Range Default
Setting
Test Mode Test mode shortens the system built-in delays (like
MOT and MRT)
Y = Test mode on. Reduces all delays to 10 seconds for
quicker system tesƟ ng
N = Test mode off . Normal system delays
Y or N N
Aux Heat
Enable (Heat
Pump Systems
only)
Enables the auxiliary heat operaƟ on.
Typically the auxiliary heat will be heat-strips in a heat
pump system.
Y or N N
2nd Stage
Heat Enable
Enables the second stage heat operaƟ on Y or N N
2nd Stage Cool
Enable
Enables the second stage cool operaƟ on Y or N N
Minimum run
Ɵ me
Sets the Minimum Run Time (MRT) delay before a
heaƟ ng/cooling cycle can turn off .
Sets heaƟ ng/cooling cycle Ɵ me. Prevents rapid on/off
cycling.
1-9 3
Minimum Off
Ɵ me
Sets the Minimum Off Time (MOT) delay before
another heaƟ ng/cooling cycle can begin. Provides
compressor short cycle protecƟ on. “Wait” is displayed
on screen when acƟ ve.
5-9 Minutes 5
Heat Setpoint
Max.
Sets the maximum heaƟ ng setpoint value.
Will not ramp or accept setpoints higher than this
maximum
55F to 96F
(4C to 43C)
90F
(32C)
Cool Setpoint
Min.
Sets the maximum heaƟ ng setpoint value 60F to 99F
(6C-45C)
60F
(15C)
Heat Blower
Off Delay
Sets the system blower delay off Ɵ me aŌ er a heat call
ends (fan purge)
0 to 9
seconds
0 (off )
Cool Blower
Off Delay
Sets the system blower delay off Ɵ me aŌ er a cool call
ends (fan purge)
0 to9
seconds
0 (off )

My settings were from the documentation at the z-wave alliance for the certification

1 Like

Really, the main functional difference between your driver and mine is that the sensor calibration parameter is exposed as a command on my driver. A number of us use that to programatically bias the thermostat temperature to effectively control off of a remote temperature reading.

If you added that command (or a similar command) to yours, my driver could be retired altogether and we would be back down to 1 user driver for this device. If not interested, that's fine too - just a thought

It is param 48, size=1.

command "SensorCal", [[name:"calibration",type:"ENUM", description:"Number of degrees to add/subtract from thermostat sensor", constraints:["0", "-7", "-6", "-5", "-4", "-3", "-2", "-1", "0", "1", "2", "3", "4", "5", "6", "7"]]]		

attribute "currentSensorCal", "number"

def SensorCal(value) {
	value = value.toInteger()
	if (logEnable) log.debug "SensorCal value: " + value
	def SetCalValue

	if (value < 0) {
		SetCalValue = 256 + value // == -1 ? 255 : value == -2 ? 254 : value == -3 ? 253 : value == -4 ? 252 : value == -5 ? 251 : value == -6 ? 250 : value == -7 ? 249 : value == -8 ? 248 : value == -9 ? 247 : value == -10 ? 246 : "unknown"
		if (logEnable) log.debug "SetCalValue: " + SetCalValue
	} else {
		SetCalValue = value.toInteger()
		if (logEnable) log.debug "SetCalValue: " + SetCalValue
	}

	if (logEnable) log.debug "SetCalValue: " + SetCalValue
	
	commands([
		zwave.configurationV1.configurationSet(scaledConfigurationValue: SetCalValue, parameterNumber: 48, size: 1),
		zwave.configurationV1.configurationGet(parameterNumber: 48)
		], 500)
}
2 Likes

I can add this.. It's currently exposed in the preferences.. but I can put the command in..

Done.. And update pushed..

Metadata:

    command "SensorCal", [[name:"calibration",type:"ENUM", description:"Number of degrees to add/subtract from thermostat sensor", constraints:["0", "-7", "-6", "-5", "-4", "-3", "-2", "-1", "0", "1", "2", "3", "4", "5", "6", "7"]]]
    attribute "currentSensorCal", "number"

Command:

void SensorCal(value) {
    if (logEnable) log.debug "SensorCal($value)"
    List<hubitat.zwave.Command> cmds=[]
    cmds.addAll(configCmd(48,1,value))
    sendToDevice(cmds)
}

Updated attribute on configReport:

    if (cmd.parameterNumber==48) {
        eventProcess(name: "currentSensorCal", value: scaledValue)
    }

It even updates the preference to this value after receiving the config report.

Thanks Bryan! I'll have time to test it out this afternoon or this weekend at the latest.

This is a good thing. One well made user driver is better than 1 good + 1 so-so user driver. Less confusion for everyone.

1 Like

Anytime.. I’m always willing to take requests..

GCThermCapture

Fyi, small typo (missing parenthesis):

Minor comment. might not be worth anything, might be nice to name the two entries the same (both R1, or both Remote Sensor 1):

1 Like

Updated.. Now shows Gas (No fan w/Heat )

and Remote Sensor Temp Offset

Not sure sensor cal is working...

Just changed from 0 to -1.

Log (notice no report back):

Attribute didn't change (this is after refreshing the screen):


Notice no event created on device at 9:33 either:

1 Like

Checking

I never hit configure after saving params. Let me try that 1st...

EDIT: Nope, same.

1 Like

No.. it's failing on negative numbers.. Checking.. Because I know I have tested config param with negative..

Yup, you're right. It takes positive and 0. I guess I just got lucky trying negative 1st. :slight_smile:

1 Like

:thinking: It's failing on negative on settings too now.. Hang tight..

No worries, I have 5 of these (4 in service), so am playing on my test/dev thermostat.

1 Like

I see the problem..

Fix pushed.. v1.3

Yup, that works. Not sending 0 as the payload anymore for negative numbers.

1 Like

I have several tweaks in this driver for the quirkiness of the device not sending complete status updates randomly.. I use a few triggers to recognize that it missed a complete update and poll for the missing information ..

Since doing this .. Status updates have been rock solid

Ex: it will send a fan status update but not a operating state update.. or it will send a scp / mech update but not operating state or fan state..