Generic Z-Wave Plus Thermostat Driver - Add State

Can thermostatFanOperatingState be added to the built-in Generic Z-Wave Plus Thermostat driver? I use that for actual filter run time rather than thermostatOperatingState since that does not include Fan on or Fan circulate time.

This is not part of the Thermostat capability, and no built-in or community drivers I can find use this attribute/event name. This is unlikely to happen with a built-in driver, but if your device reports this data somehow, a custom driver should be possible to write that does.

But if your device does report it in the first place: it seems like this should be reported as a "fan only" value for the thermostatOperatingState attribute. Is that not what you're seeing (and if not, does your device indeed actually report this information with a Z-Wave command? debug logging will tell you if the driver is ignoring it for some reason).

1 Like

I am running a Honeywell T6. If I use the Community driver I have that state available but I get a lot of chatter then and think that is causing issues with my Z-Wave mesh. See Thermostat Controller and Honeywell T6 the saga for those details.

Using this system driver I get a LOT less chatter from the device but it is missing this one state.

What "chatter"? Are you sure it's the driver and not the device? Different drivers may log different things, but without debug logging on (in stock drivers; custom ones may work differently), it can't be said what the source is.

Also, just to confirm, do you not see the state I mentioned above?

See the thread I linked for more details on the chatter. I get a lot more device events and Z-Wave log entries when using the community driver. That combined with the Thermostat Controller app ends up creating a lot of chatter between the t-stat and the hub when the t-stat is running.

I do have thermostatOperatingState but that only shows actual cooling, heating, or idle time. If I turn the fan to ON my fan starts running but the operating state is still idle:
image
or
image

If the thermostatFanMode is circulate then the fan runs so many min per hour. thermostatFanOperatingState gave me an accurate reporting of when the fan was actually running.

From the other topic, it's still not clear if you've narrowed down the problem. It could be logging or even events, but I don't see anywhere where the underlying Z-Wave commands (which either driver may or may not deal with but will still be there) have been ruled out as being "chattier" on the custom driver. Debug logging on a stock driver will generally show you everything that is coming in, even if the driver ignores it.

It will also be tell you what command represents the fan state you're looking for, which the driver could be modified to report in the standard way above if that isn't happening already. Without that, it can't be said what it's doing.

To be extra clear, are you using the Generic Z-Wave Plus Thermostat driver?

I just enabled debug logging with that driver. I will let it cycle once or twice and then post the logs

Be sure to go to Logs > Scheduled Jobs and delete the "logsOff" (or similar) job for this device, otherwise (as you'll see in Logs), debug logging will automatically disable itself after 30 minutes, and you might not get the information you need by then.

1 Like

Since I can force fan changes I did that manually to see the values. Looks like the Z-Wave value is ThermostatFanStateReport(fanOperatingState:1) 1 means the fan is running and 0 means the fan is off.

Here is one full cooling cycle

First, I am not a coder and I'm nowhere near the capability of @bertabcd1234 However I have a T6 and have been interested in collecting the fan running time.

It seems to me we would need and app + driver that could receive a notification the fan was running (not the mode) or not running then sum the ON time.
I guess you could sum the COOLING on time and 1/3 the COOLING off time if in the circulation mode.

From what I read in the Z-Wave spec, you would need to query the thermostat to get the fan state. Seems not practical as you would have to spend a lot of time repeating this query.

Thermostat Fan State Command Class:

  • Thermostat Fan State Get
  • Thermostat Fan State Report

The log entries you provided suggest that the desired information is already available by examining both the thermostatOperatingState and thermostatFanMode attribute values in combination. Is there a case where this doesn't work that I am missing?

If the driver reports the events, you don't need a special driver; an app can just subscribe to those events. Indeed, I have such an app that I wrote for myself a while back, though it may need to be modified to look at the specific values your thermostat reports when in the states you desire to track:

Perhaps I'm wrong (likely) but I was under the belief that the thermostat did not broadcast every status variable, and the

  • Thermostat Fan State Get
  • Thermostat Fan State Report

meant that to read the fan state you had to "get" the report.

It looks like the device is sending Thermostat Fan State Reports on its own; if it doesn't, you could sent a Thermostat Fan State Get (or see if the device can be configured in such a way that this does this on its own when it changes, something this device already appears to from the log -- but if absolutely not possible any other way, yes, a driver or app with the right command in a driver could poll the data).

The circulate mode is one. FanMode would report circulate but that does not mean that the fan is running that entire time.

Where does this happen in your logs? I'm missing that if it does.

I did not leave it in circulate mode long enough to see that.