These report their ON/OFF state via association group 2, through a Basic Set command. I guess it is possible (and maybe simple) to add a channel for this in the Z-wave database, but I am unsure how to do it?
I have managed to confirm this is working through code that parses the DEBUG log-file to trace these Basic Set - few other home automation softwares get this one right.
It should be possible, and maybe even easy to add, but I guess the first question is if itās needed? Why not use the mode - is this not also sent when it changes?
Iāve no great problem with adding the channel, but on the other hand Iād also prefer not to add channels that can easily, and possibly better, already be performed in another wayā¦
The mode (THERMOSTAT_MODE) tells the thermostat to be permanently off, or to employ its thermostat functions - which means: āactivate the heating if it is coldā. Then if it is actually ācoldā - below the setpoint - the thermostat will send a Basic Set to Association group 2 whenever the relay is activated (and power is actually drawn) and not.
Ok, thatās fine. Iāll add it. Apologies if it seems like Iām being difficult, but I just want to ensure we donāt add lots of unnecessary channelsā¦
I tried the latest snapshot (2.4.0.201806152142), but did not manage to find any extra channel (that would report the active state of the thermostat). Should an extra channel pop up by itself in Paper UI/Habmin? I also tried deleting the xml-file and let it be regenerated, but still I did not see any extra channel. If I need to exclude and reinclude, I will do that.
Got it - I deleted the thing and readded it, and saw the new channel called āThermostat stateā. But it is linked to switch_binary, which apparently is the functionality for turning the thermostat entirely off, or on (which also can be accomplished with the channel āThermostat Modeā).
It is the message sent to association group 2 I would like to capture in a channel, which tells me whether there is power being drawn at the moment. Maybe it is difficult to get into a channel?
To be clear, the binding doesnāt know anything about association groups - only the commands it receives. When the device sends a command, there is no way to know why it sent the command - eg which association group might have caused it. Association groups are what the device uses to provide functionality onlyā¦
So, with that said, we did add a channel called āThermostat Stateā a few months back - if this doesnāt work, then I would need to see logs to see what the binding is actually sending as this channel was linked to the basic command class as requested in the original request.
I am not able to state how it should be accomplished in the Z-wave database (or if it is even possible). But my log-file-parser looks for DEBUG statements like this:
2018-03-17 00:00:47.060 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 5: Basic Set sent to the controller will be processed as Basic Report
2018-03-17 00:00:47.067 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 5: Basic report, value = 0x00
where the āBasic Setā is the crucial point, and the value 0x00 is then picked up and interpreted as the thermostat being turned off.
From this it sounds like the thermostat reports when it is turned OFF (stops heating), but not when it is turned ON (heating starts)?
I am interested in this because I want to know the energy consumption on my non-energy-reporting thermostats. One solution might be to set up a recurring check that uses what we know (temperature, setpoint, hysteris), something along the lines of (pseudo code):
var powerConsumptionDiningRoom = 0.60 * 50 // watts * square meters for floor heating
var isOn = (heating_setpoint-temperature+hysteresis)>0
var currentConsumption = isOn*powerConsumptionDiningRoom
But Iām not sure if I want to have a lot of recurring rules running very often..
The thermostat is reporting both ON and OFF correctly (with Basic Set), the log excerpt is just an example.
In my case half of my thermostats do not have a floor sensor, and then there is no readout of measured temperature from the thermostat (it measures air internally, but refuses to send it over Z-wave as it is affected by internal heating inside the unit), and such a recurring check would not work at all. For the others, the check could work, but most likely with quite a bit of uncertainty.
As you can see, the channel is configured to use the BASIC command class, so it should work as far as I can see. Please provide a log showing this data being received so I can see what is happening.