Hello. I just bought the the TBZ48 thermostat. Should I use this custom driver or yours when setting the thermostat temp sensor calibration from rule machine on the fly? I want to use an average from multiple sensors. Is there a calibration offset limit? Thanks!
The built in driver does not allow for the calibration to be changed. The user driver does. So if you want to change that parameter, you have to use the user driver (mine is the only custom/user driver for this thermostat that I know of).
The calibration is limited to +/- 7 DegF. That is a hard limit in the device, it can not be extended.
Also note that the user driver may/may not work well in Celsius. I never tested it that way, so don't know.
I wrote a custom app to adjust my SensorCal offset, but it should be usable in RM with a custom action.
Good information, thanks for the quick reply. When setting the heating and cooling set points through your app, do you ever notice any odd decimals being added via the hardware? For instance, if you set the heating set point to 68, does it take/report back 68.0 or does it append to something like 68.2, etc. I noticed this problem with the Zen thermostat so want to be sure the TBZ48 does not have this defect.
Nope. And since all 4 of my thermostats use thermostat schedule, they have been doing 8x setpoint changes/day * 4 thermostats * 9 months... (8600+ setpoint changes to date)
Note that the thermostat itself only supports 1 DegF setpoint changes, If you try to write a decimal setpoint to it, it is rounded to the nearest integer. So, yes, if you chose to write 77.5 to the setpoint, it would come back as 78 (just like 77.4 would come back as 77)... I can't change the input field from double to integer to prevent you from entering decimals - it is built into the system. So just don't input decimal setpoint values...
That is important to note, though. If you want/need <1 DegF setpoint changes, this isn't the thermostat for you.
This is the thermostat for me, thank you Jason for writing this app. Can't wait to try it out!
After using Nest, then Ecobee, and then Remotec zwave plus thermostats - I can say I have been happier with the GoControl than any of the others. It just works, and stays working. And that is my #1 criteria for a good thermostat.
- Do I wish the relays were a little quieter? Sure.
- Do I wish the display was "prettier"? I guess. I don't spend any time "looking" at my thermostat, so that is pretty low on my want list...
But not at the expense of it actually working 24/7/365.
100% agree, what do you mean by "Do I wish the relays were a little quieter? Sure."?
I think the relays are a little loud when they turn the heat/cool on/off. One of the thermostats is in my bedroom, so the "click" when it turns on/off is a little annoying. But we are used to it now - and it isn't unique to this thermostat... I've had other thermostats where the relay click was noticeable, too.
Yeah, Zen thermostat made a click as well.
First, thanks for this driver, I have been using the thermostat with a remote sensor/rules and it is working very well.
After heating didn't come up as expected this morning, I noticed that thermostatOperatingState="fan only" was out of sync with the real thing "idle". See this log (temperature/calibration entries removed).
thermostatFanState running DEVICE 2020-01-15 22:13:11.614 EST
thermostatFanMode fanOn DEVICE 2020-01-15 22:13:07.611 EST
thermostatFanState idle DEVICE 2020-01-15 21:38:41.987 EST
thermostatFanMode fanAuto DEVICE 2020-01-15 21:38:37.987 EST
thermostatOperatingState fan only DEVICE 2020-01-15 21:34:35.978 EST
thermostatOperatingState pending heat DEVICE 2020-01-15 21:29:39.774 EST
thermostatOperatingState heating DEVICE 2020-01-15 21:17:44.291 EST
thermostatFanState running DEVICE 2020-01-15 21:01:43.607 EST
thermostatFanMode fanOn DEVICE 2020-01-15 21:01:39.606 EST
thermostatOperatingState idle DEVICE 2020-01-15 19:05:00.711 EST
At 21:01 I put the fanOn mode, shouldn't thermostatOperatingState be set to "fan only" at the same time?
At 21:34, thermostatOperatingState is "fan only", which is fine at that point since it came out of "pending heat" and the fan setting was still ON .
At 21:38 however, I put the fanAuto mode. The fan state became idle but thermostatOperatingState is still set to "fan only", should be idle, I think?
Not sure really. Let me think on it.
What mode was the thermostat in (not the fan - the thermostat). Auto, heat, cool, other?
Heat
For this, I have no control over that. The driver simply reports what the thermostat says its operating mode is... If it never reported idle back, it would never change in the driver.
That's why I would have to think on it. Not sure this is a driver problem as much as a thermostat logic problem. Might be something that can be caught manually though.
But that state has nothing to do with the heat turning on the next morning... That is all in the thermostat - again pointing to a thermostat logic issue.
if the thermostatMode (not "operating" mode) was heat or auto, then the heat should kick on at setpoint. There isn't anything the driver can do to stop that.
OK, thanks. The heat not turning on is more my fault than anything else. I am mostly at the proof of concept at this point and one rule was based on the thermostat state being idle, I corrected that since...
I also would have expected it to go from fanOnly back to idle though after you put the fan mode back in auto. That is the part I'm noodling on.
EDIT... Unless one of the MOS/MOT timers kicked in! There are protections in the thermostat to prevent you from cycling things too frequently. Looking at the trime between commands, it may have gotten pissy with it being changes so often/quickly...
After some testing It looks like the thermostat is sending configuration parameters #21 (Mechanical Status) and #22 (SCP Status) reliably with the correct state info when the fan or the furnace state changes but the driver is not using them. The ThermostatOperatingStateReport is not sent in all cases when playing with the fan mode.
Ok. I'll look when I get some time.
If you have any logs of what is being sent and not used, that would be helpful to post.
It is true I don't do anything with the Mecahnical Status or SCP reports in my driver.... Shouldn't really have to - and I've never seen any situation where it was needed before today.
In fact, per the manual, it shouldn't even be sending those reports by default (and I don't allow setting/changing the reporting bits in my driver), so I'm surprised they are showing up at all.
Anyway, I'll look and see if I can replicate what you are seeing on my end. If so, maybe I'll have to break down and use the mechanical status or SCP reports for this. Kind of a pain, as that isn't how it is supposed to work, but whatever. Wouldn't be the first time a vendor didn't get their firmware 100% compliant.
I joined a cleaned-up/commented log below, since the thermostatOperatingState is not always updated properly because of missing reports, maybe just making parameters 21 and 22 available as state variables would provide a way to bypass it.
---Just saw your new post, yes it is a pain...
--> Fan is switched off, ThermostatOperatingStateReport is not generated but param. 21 and 22 shows thermostat has switched to idle...
dev:4492020-01-16 13:22:25.609 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:22, size:1, value:0 --> IDLE
dev:4492020-01-16 13:22:24.596 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:21, size:2, value:0 --> IDLE
dev:4492020-01-16 13:22:23.606 debugIn ThermostatFanStateReport map is [name:thermostatFanState, unit:, value:idle]
dev:4492020-01-16 13:22:23.590 debugcmd: ThermostatFanStateReport(fanOperatingState:0)
dev:4492020-01-16 13:22:22.570 debugIn ThermostatFanModeReport map is [value:fanAuto, name:thermostatFanMode, displayed:false]
dev:4492020-01-16 13:22:19.584 debugIn ThermostatFanModeReport map is [value:fanAuto, name:thermostatFanMode, displayed:false]
--> I switch fan to auto mode
dev:4492020-01-16 13:22:18.514 debugSwitching fan to AUTO mode...
--> Thermostat state switch from pending heat to fan only, which is correct
dev:4492020-01-16 13:20:38.218 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:22, size:1, value:16 --> STATE_FAN
dev:4492020-01-16 13:20:34.395 debugIn ThermostatFanStateReport map is [value:fan only, name:thermostatOperatingState]
--> Thermostat switch heat off, goes to pending heat state
dev:4492020-01-16 13:15:40.301 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:22, size:1, value:81 --> STATE_MOT+STATE_FAN+STATE_HEAT
dev:4492020-01-16 13:15:40.206 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:22, size:1, value:81 --> STATE_MOT+STATE_FAN+STATE_HEAT
dev:4492020-01-16 13:15:40.185 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:22, size:1, value:81 --> STATE_MOT+STATE_FAN+STATE_HEAT
dev:4492020-01-16 13:15:39.073 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:21, size:2, value:128 --> MANUAL_F
dev:4492020-01-16 13:15:35.276 debugIn ThermostatOperatingState map is [value:pending heat, name:thermostatOperatingState]
dev:4492020-01-16 13:15:35.206 debugIn ThermostatOperatingState map is [value:pending heat, name:thermostatOperatingState]
--> I put fan mode to ON, heat is still on because of MRT
dev:4492020-01-16 13:07:11.418 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:22, size:1, value:17 --> STATE_FAN + STATE_HEAT
dev:4492020-01-16 13:05:48.098 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:21, size:2, value:129 --> MANUAL_F + MECH_H1
dev:4492020-01-16 13:05:47.097 debugIn ThermostatFanModeReport map is [value:fanOn, name:thermostatFanMode, displayed:false]
dev:4492020-01-16 13:05:44.080 debugIn ThermostatFanModeReport map is [value:fanOn, name:thermostatFanMode, displayed:false]
dev:4492020-01-16 13:05:43.019 debugSwitching fan to ON mode...
--> I decrease thermostat setpoint to stop heating cycle
dev:4492020-01-16 13:04:54.035 debugIn ThermostatSetpointReport map is [value:73, unit:F, displayed:true, name:heatingSetpoint]
dev:4492020-01-16 13:04:50.901 debugsetpoint written is 73.0
dev:4492020-01-16 13:04:50.222 debugsetpoint written is 74.0
--> Thermostat switches heat on
dev:4492020-01-16 13:04:17.879 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:22, size:1, value:-111 --> STATE_MRT + STATE_FAN + STATE_HEAT
dev:4492020-01-16 13:04:16.874 debug---CONFIGURATION REPORT V1--- Thermostat sent parameterNumber:21, size:2, value:33 --> PHANTOM_F + MECH_H1
dev:4492020-01-16 13:04:13.139 debugIn ThermostatOperatingState map is [value:heating, name:thermostatOperatingState]
dev:4492020-01-16 13:04:12.157 debugIn ThermostatFanStateReport map is [name:thermostatFanState, unit:, value:running]
--> I Increase setpoint to start heating cycle
dev:4492020-01-16 13:03:41.416 debugIn ThermostatSetpointReport map is [value:75, unit:F, displayed:true, name:heatingSetpoint]
dev:4492020-01-16 13:03:38.233 debugsetpoint written is 75.0
dev:4492020-01-16 13:02:51.958 debugIn ThermostatSetpointReport map is [value:74, unit:F, displayed:true, name:heatingSetpoint]
dev:4492020-01-16 13:02:51.854 debugIn ThermostatSetpointReport map is [value:74, unit:F, displayed:true, name:heatingSetpoint]
dev:4492020-01-16 13:02:51.828 debugIn ThermostatSetpointReport map is [value:74, unit:F, displayed:true, name:heatingSetpoint]
dev:4492020-01-16 13:02:51.698 debugIn ThermostatSetpointReport map is [value:74, unit:F, displayed:true, name:heatingSetpoint]
--> I put Thermostat in heat mode:
dev:4492020-01-16 13:02:01.002 debugIn parse, map is [name:thermostatMode, data:[supportedThermostatModes:off heat cool auto ], value:heat]
dev:4492020-01-16 13:01:58.000 debugIn parse, map is [name:thermostatMode, data:[supportedThermostatModes:off heat cool auto ], value:heat]
dev:4492020-01-16 13:01:56.915 debugSwitching to heat mode...
dev:4492020-01-16 13:01:56.914 debugvalue: heat
dev:4492020-01-16 13:01:56.913 debugExecuting 'setThermostatMode'e