HeatIT / Multireg Item configuration

I have a Multireg where i got the
Off/Comfort/Eco mode switch working
Setpoint adjust working
Actual temperature feedback from floor sensor feedback is working

Only thing missing from the configuration is
E_kwh
Idle/heating status

Should be possible from what i read in the xml, but can’t get it to work

Anyone wo can pinpoint item/sitemap configuration for the last two?

Commandclass-Meter-electric-E_kwh

Hi,

i don’t think the meter class is working (the manual doesn’t mention the METER class, maybe they prepared it but never really implemented?? :thinking:):

if you get it working somehow let me/us know please, so I can detach the switch which I put in the electric circuit before the thermostat to measure the energy consumption :grinning:

Yup - doesn’t seem to work. Very flawed devices (but quite pretty).

Hi,

A few months back I was in contact with HeatIT support on exactly the same matter, there my biggest issue was that with zway the device never appeared as fully initialized due to METER command class not working as expected. On Z-Wave binding this doesn’t seem to be so verbose and bothers less.
They did reply that the meter class is to be included to their next version of the thermostat, and upon further discussion they weren’t 100% sure if it will be also a firmware upgrade to the current thermostats or not. You need a special cable anyway to upgrade the firmware (looks like a very simple USB cable from the pics)

However, as thermostat controlled heating cables/units are usually constant in resistance, you can calculate the power consumption based on the time it’s on. Not as neat as getting an actual realtime metered value but good for your basic “save some energy”-needs

So how is the item config for knowin when heating is active / inactive.

Zwave=command:thermostat_status somthing etc
Hehe

Not sure if there is a direct heating on/off state available, but you can derive it from set point, temperature and hysteresis values.

<?xml version="1.0"?>
<node>
<deviceClass>
<basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
<genericDeviceClass>THERMOSTAT</genericDeviceClass>
<specificDeviceClass>THERMOSTAT_GENERAL_V2</specificDeviceClass>
</deviceClass>
<homeId>0xeaf0c236</homeId>
<nodeId>23</nodeId>
<version>4</version>
<name>Bad Hovedetajs</name>
<location>Bad Hovedetajs</location>
<manufacturer>0x19b</manufacturer>
<deviceId>0x1</deviceId>
<deviceType>0x1</deviceType>
<listening>true</listening>
<frequentlyListening>false</frequentlyListening>
<routing>true</routing>
<healState>DONE @ 2017-09-11T00:26:33+0000</healState>
<security>false</security>
<beaming>true</beaming>
<maxBaudRate>40000</maxBaudRate>
<nodeInformationFrame/>
<supportedCommandClasses>
<entry>
<commandClass>THERMOSTAT_MODE</commandClass>
<thermostatModeCommandClass>
<version>2</version>
<instances>1</instances>
<modeTypes>
<modeType>COOL</modeType>
<modeType>OFF</modeType>
<modeType>HEAT</modeType>
<modeType>HEAT_ECON</modeType>
</modeTypes>
<isGetSupported>true</isGetSupported>
</thermostatModeCommandClass>
</entry>
<entry>
<commandClass>SENSOR_MULTILEVEL</commandClass>
<multiLevelSensorCommandClass>
<version>5</version>
<instances>1</instances>
<sensors>
<entry>
<multilevelSensorType>TEMPERATURE</multilevelSensorType>
<multilevelSensor>
<sensorType>TEMPERATURE</sensorType>
<initialised>true</initialised>
</multilevelSensor>
</entry>
</sensors>
<isGetSupported>true</isGetSupported>
</multiLevelSensorCommandClass>
</entry>
<entry>
<commandClass>ASSOCIATION</commandClass>
<associationCommandClass>
<version>1</version>
<instances>1</instances>
<configAssociations>
<entry>
<int>1</int>
<associationGroup>
<Index>1</Index>
<Nodes>
<int>1</int>
</Nodes>
</associationGroup>
</entry>
<entry>
<int>2</int>
<associationGroup>
<Index>2</Index>
<Nodes>
<int>1</int>
</Nodes>
</associationGroup>
</entry>
</configAssociations>
<maxGroups>2</maxGroups>
</associationCommandClass>
</entry>
<entry>
<commandClass>THERMOSTAT_SETPOINT</commandClass>
<thermostatSetpointCommandClass>
<version>2</version>
<instances>1</instances>
<setpoints>
<entry>
<setpointType>FURNACE</setpointType>
<org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveThermostatSetpointCommandClass_-Setpoint>
<setpointType>FURNACE</setpointType>
<initialised>true</initialised>
<initCount>0</initCount>
<outer-class reference="../../../.."/>
</org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveThermostatSetpointCommandClass_-Setpoint>
</entry>
<entry>
<setpointType>HEATING_ECON</setpointType>
<org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveThermostatSetpointCommandClass_-Setpoint>
<setpointType>HEATING_ECON</setpointType>
<initialised>true</initialised>
<initCount>0</initCount>
<outer-class reference="../../../.."/>
</org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveThermostatSetpointCommandClass_-Setpoint>
</entry>
<entry>
<setpointType>HEATING</setpointType>
<org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveThermostatSetpointCommandClass_-Setpoint>
<setpointType>HEATING</setpointType>
<initialised>true</initialised>
<initCount>0</initCount>
<outer-class reference="../../../.."/>
</org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveThermostatSetpointCommandClass_-Setpoint>
</entry>
</setpoints>
<isGetSupported>true</isGetSupported>
</thermostatSetpointCommandClass>
</entry>
<entry>
<commandClass>METER</commandClass>
<meterCommandClass>
<version>3</version>
<instances>1</instances>
<meterType>ELECTRIC</meterType>
<meterScales>
<meterScale>E_KWh</meterScale>
</meterScales>
<canReset>true</canReset>
<isGetSupported>true</isGetSupported>
<isSupportRequestSupported>true</isSupportRequestSupported>
</meterCommandClass>
</entry>
<entry>
<commandClass>MANUFACTURER_SPECIFIC</commandClass>
<manufacturerSpecificCommandClass>
<version>1</version>
<instances>1</instances>
</manufacturerSpecificCommandClass>
</entry>
<entry>
<commandClass>BASIC</commandClass>
<basicCommandClass>
<version>1</version>
<instances>1</instances>
<isGetSupported>true</isGetSupported>
</basicCommandClass>
</entry>
<entry>
<commandClass>CONFIGURATION</commandClass>
<configurationCommandClass>
<version>1</version>
<instances>1</instances>
<configParameters/>
</configurationCommandClass>
</entry>
<entry>
<commandClass>NO_OPERATION</commandClass>
<noOperationCommandClass>
<version>1</version>
<instances>1</instances>
</noOperationCommandClass>
</entry>
<entry>
<commandClass>VERSION</commandClass>
<versionCommandClass>
<version>1</version>
<instances>1</instances>
<libraryType>LIB_SLAVE_ROUTING</libraryType>
<protocolVersion>3.83</protocolVersion>
<applicationVersion>1.8</applicationVersion>
</versionCommandClass>
</entry>
</supportedCommandClasses>
<securedCommandClasses/>
<nodeNeighbors>
<int>1</int>
<int>2</int>
<int>11</int>
<int>15</int>
<int>17</int>
<int>20</int>
<int>24</int>
</nodeNeighbors>
<lastSent>2017-09-11 17:32:58.745 UTC</lastSent>
<lastReceived>2017-09-11 17:33:01.905 UTC</lastReceived>
</node>

So none of the above can give me the state of relay in/out?

COMMAND_CLASS_ASSOCIATION
• Association group 1: Lifeline. All run-time reporting is addressed to this group. Max.
nodes: 1.
• Association group 2: On/off control. This controls external heaters replicating the
state of the internal relay. Uses BASIC_SET command, values 0x00 (off) and 0xFF (on).
Max. nodes: 8.

I don’t have the in-depth knowledge on the association things with zwave, but associations are usually used to make another zwave device do something based on device state changes, meaning if you add a switch to the second association group, its state will change accordingly.
Not sure what happens if the second group is linked to the controller…
Of course one way would be to associate the on-off group to a switch and then track the state of that switch.

Anyone know if it is possible to access the thing configuration from rules? For this, getting the hysteresis value of the thermostat in rules?

Now that this was brought up, I finally gave it a try (had been on the todo list for ages). No idea if the hysteresis value could be included from actual thing config somehow

this could work:

Number temperature_downstairs_bathroom "Bathroom Temperature [%.1f °C]" <temperature> {channel="zwave:device:15d558b49a8:node3:sensor_temperature"}
Switch heating_state_downstairs_bathroom "Bathroom Heating State"
Number heating_mode_downstairs_bathroom "Bathroom Heating Mode"  <temperature> (Group_Temp_Mode) {channel="zwave:device:15d558b49a8:node3:thermostat_mode"}
Number set_temperature_downstairs_bathroom "Bathroom Set Temperature" <temperature> {channel="zwave:device:15d558b49a8:node3:thermostat_setpoint_heating"}
Number set_temperature_eco_downstairs_bathroom "Bathroom Set Temperature Eco" <temperature> {channel="zwave:device:15d558b49a8:node3:thermostat_setpoint_heating_econ"}

var MODE_ECO =11
var MODE_HEATING = 1

var Number HYSTERESIS = 0.5
rule "Is heating on"
when
	Item temperature_downstairs_bathroom changed   	
then
	var Number currentTemp = temperature_downstairs_bathroom.state as DecimalType
	var Number setTemp = set_temperature_downstairs_bathroom.state as DecimalType
	var Number setTempEco = set_temperature_eco_downstairs_bathroom.state as DecimalType
	if(heating_mode_downstairs_bathroom.state == MODE_ECO) {
		setTemp = setTempEco
	}

	if((currentTemp + HYSTERESIS) < setTemp) {
		postUpdate(heating_state_downstairs_bathroom, ON)
	} else {
		postUpdate(heating_state_downstairs_bathroom, OFF)
	}
end

that’s exactly the kind of logic I use - the disadvantage of course if that this approach tells you if the thermostat is supposed to be on, not if it’s actually on…

I have added Heatit to my openHAB setup (using Aeotec Z-wave gen 5). I mostly works, but I have two questions:

  • What does the “Setpoint (furnace)” channel refer to?
  • Is there any way to use the second association group (which should include the ON/OFF status of the heating)? I tried to associate the Group 2 with the same controller as Group 1 (in the Thing’s properties), but I get only Error 500 and no new channels appear (as I have naively hoped for). Is there some other way?

I think the different setpoints can be used by changing “mode”, but I only get reliable results by using the heating setpoint and setting the “mode” to 1.

The second association group just doesn’t work - the device is lying that it exists (just as it lies about having an internal temperature sensor…)

Hello,

Has anyone been able to set up Heat-it(Multireg) Thermostat with HomeKit ?

The heatit units are so badly behaved I would use homekit to control other items, and then use those items to send commands to the heatits.

I have 13 of these units, and I am quite happy with these. Except for those of my units where there is no physical floor-temperature sensor available, they work just as they should. When you don’t have an external temperature sensor, the internal sensor is used, which suffers from internal heating in the unit, just as stated in the manual (there is firmware code in the unit trying to do the best out of the situation).

It is possible to obtain the state currently-heating-or-not using a hack on the logfiles, after associating group 2 to your OpenHAB controller.

Hopefully, this will be included in the database/binding at some point, see the thread: