Thermofloor trm2 config

Hi, I am struggling with a thermostat in HassIO. I want to regulate the floor temp whit the climate control object in HA. The device is recognized as a thermoflor version 1 controller, and i get three climat control objects in the GUI. But non of them report the floor sensor temperature, only air sensor. The thermostat is set up with floor temperature regulating localy. My question is where in the zwcfg file do i make a cange to get “current value” to come from floor sensor?
The “COMMAND_CLASS_SENSOR_MULTILEVEL” define floor sensor to be instance=“3” index="1, and i also get a sensor in the GUI that trend this value… but i am lack off knowledge to use this in the COMMAND_CLASS_THERMOSTAT… Could somebody help and pointing me in the right direction?

<?xml version="1.0" encoding="utf-8" ?>
<Driver xmlns="http://code.google.com/p/open-zwave/" version="3" home_id="0xcc96ff78" node_id="1" api_capabilities="0" controller_capabilities="8" poll_interval="60000" poll_interval_between="true">
	<Node id="1" name="" location="" basic="2" generic="2" specific="1" type="Static PC Controller" listening="true" frequentListening="false" beaming="true" routing="false" max_baud_rate="40000" version="4" query_stage="Complete">
		<Manufacturer id="147" name="Z-Wave.Me">
			<Product type="400" id="2" name="RaZberry Controller 2016 ZWave+" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" after_mark="true">
				<Instance index="1" />
				<Value type="byte" genre="basic" instance="1" index="0" label="Basic" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
			</CommandClass>
		</CommandClasses>
	</Node>
	<Node id="4" name="" location="" basic="4" generic="8" specific="6" roletype="5" devicetype="4609" nodetype="0" type="General Thermostat V2" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
		<Manufacturer id="19b" name="ThermoFloor AS">
			<Product type="3" id="202" name="Unknown: type=0003, id=0202" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="5" mapping="64">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="bool" genre="user" instance="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
				<Value type="bool" genre="user" instance="2" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			</CommandClass>
			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="1">
				<Instance index="1" endpoint="2" />
				<Instance index="2" endpoint="3" />
				<Instance index="3" endpoint="4" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="25.6" />
				<Value type="decimal" genre="user" instance="2" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
				<Value type="decimal" genre="user" instance="3" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="21.4" />
			</CommandClass>
			<CommandClass id="50" name="COMMAND_CLASS_METER" version="3" request_flags="3" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="1.4" />
				<Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.02" />
				<Value type="decimal" genre="user" instance="1" index="16" label="Voltage" units="V" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="236.5" />
				<Value type="bool" genre="user" instance="1" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
				<Value type="decimal" genre="user" instance="2" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="1.4" />
				<Value type="decimal" genre="user" instance="2" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="COMMAND_CLASS_THERMOSTAT0" min="0" max="0" value="0.02" />
				<Value type="decimal" genre="user" instance="2" index="16" label="Voltage" units="V" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="236.9" />
				<Value type="bool" genre="user" instance="2" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			</CommandClass>
			<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Item label="Off" value="0" />
					<Item label="Heat" value="1" />
					<Item label="Cool" value="2" />
					<Item label="Heat Econ" value="11" />
				</Value>
				<SupportedModes>
					<Mode index="0" label="Off" />
					<Mode index="1" label="Heat" />
					<Mode index="2" label="Cool" />
					<Mode index="11" label="Heat Econ" />
				</SupportedModes>
			</CommandClass>
			<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="5" innif="true" base="1">
				<Instance index="1" />
				<Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="21.0" />
				<Value type="decimal" genre="user" instance="1" index="3" label="Unused 3" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
				<Value type="decimal" genre="user" instance="1" index="8" label="Dry Air" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
			</CommandClass>
			<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="5" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="94" name="COMMAND_CLASS_ZWAVE_PLUS_INFO" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Instance index="3" endpoint="2" />
				<Instance index="4" endpoint="3" />
				<Instance index="5" endpoint="4" />
				<Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
				<Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4608" />
				<Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4609" />
				<Value type="byte" genre="system" instance="2" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="2" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="2" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="byte" genre="system" instance="3" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="3" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="3" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="byte" genre="system" instance="4" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="4" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="4" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="byte" genre="system" instance="5" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="5" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="5" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
			</CommandClass>
			<CommandClass id="96" name="COMMAND_CLASS_MULTI_INSTANCE/CHANNEL" version="4" request_flags="1" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="5" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Failed" value="0" />
					<Item label="Success" value="1" />
					<Item label="In Progress" value="2" />
				</Value>
				<Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Instance index="3" endpoint="2" />
				<Instance index="4" endpoint="3" />
				<Instance index="5" endpoint="4" />
				<Associations num_groups="5">
					<Group index="1" max_associations="8" label="Group 1" auto="true" multiInstance="true">
						<Node id="1" />
					</Group>
					<Group index="2" max_associations="8" label="Group 2" auto="false" multiInstance="true" />
					<Group index="3" max_associations="8" label="Group 3" auto="false" multiInstance="true" />
					<Group index="4" max_associations="8" label="Group 4" auto="false" multiInstance="true" />
					<Group index="5" max_associations="8" label="Group 5" auto="false" multiInstance="true" />
				</Associations>
			</CommandClass>
			<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
				<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="4.61" />
				<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="2.06" />
			</CommandClass>
			<CommandClass id="142" name="COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Instance index="2" endpoint="1" />
				<Instance index="3" endpoint="2" />
				<Instance index="4" endpoint="3" />
				<Instance index="5" endpoint="4" />
				<Associations num_groups="5">
					<Group index="1" max_associations="8" label="Group 1" auto="true" multiInstance="true">
						<Node id="1" />
					</Group>
					<Group index="2" max_associations="8" label="Group 2" auto="false" multiInstance="true" />
					<Group index="3" max_associations="8" label="Group 3" auto="false" multiInstance="true" />
					<Group index="4" max_associations="8" label="Group 4" auto="false" multiInstance="true" />
					<Group index="5" max_associations="8" label="Group 5" auto="false" multiInstance="true" />
				</Associations>
			</CommandClass>
			<CommandClass id="152" name="COMMAND_CLASS_SECURITY" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="bool" genre="system" instance="1" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			</CommandClass>
		</CommandClasses>
	</Node>

I have exactly the same problem.
Did you find a solution to it?

Is this the first generation or z-trm2?

Its the Z-TRM2 with firmware 2.6

Alright, they have a new firmware 2_11.
The problem there is that the template\config is not correct. The associations is different, so someone need to do some adjustments in order to get that to work. I am waiting for the documentations for the new firmware and hopefully get some help to do the correct changes.

1 Like

2.11 feels even worse than 2.6 to me. Including non-secure seems to somewhat work.

Anyone else getting alot of “Er4” in the display? Looks like an issue with the floor sensor, but i get this on all 3 of my thermostats… 2 of them is 2.11 and 1 is 2.6

Sorry it is in Norwegian:

Due to the problems with Z-TRM2 thermostats reporting ER4 that cannot be fixed by a firmware update, Heatit have made a new version: Z-TRM2fx.

https://www.heatit.com/heating-control/floor-heating-thermostats/heatit-z-trm2/

They will release a firmware update as well together with the new hardware.
I have allready opted for the return of all my thermostats go get the new fx version.

Hope this will solve my issues.

I have 3 z-trm2fx and they kind of work. Seems the config in OpenZWave is generic for all models and I only have one problem with one that has floor sensor I installed a couple of days ago. The problem is that HA (through OpenZWave) doesn’t set the current temperature so the climate themostat in Lovelace doesn’t show it correctly. I’m looking into it and have sent a support email to HeatIt so they might help.

If anyone knows anything that might help I would be greatful if you post it here.

You can try this in your zwcfg…xml file, I got the xml from Dennis87 and it seams to work.
I only use internal temp sensor, but the floor and external temp sensor say 0. so I guess thy might work.

<Node id="60" name="badegulv_thermostat_tf_033" location="" basic="4" generic="8" specific="6" roletype="5" devicetype="4609" nodetype="0" type="General Thermostat V2" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
		<Manufacturer id="19b" name="ThermoFloor AS">
			<Product type="3" id="202" name="Heatit Thermostat TF 056" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="5" mapping="64">
				<Instance index="1" endpoint="1" />
			</CommandClass>
			<CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY" version="1">
				<Instance index="1" endpoint="4" />
				<Value type="bool" genre="user" instance="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			</CommandClass>
			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5">
				<Instance index="1" endpoint="3" />
				<Value type="decimal" genre="user" instance="1" index="0" label="External sensor" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
				<Value type="decimal" genre="user" instance="2" index="1" label="Floor sensor" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
			</CommandClass>
			<CommandClass id="50" name="COMMAND_CLASS_METER" version="3" request_flags="3" innif="true">
				<Instance index="1" endpoint="4" />
				<Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.2" />
				<Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.09" />
				<Value type="decimal" genre="user" instance="1" index="16" label="Voltage" units="V" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="224.0" />
				<Value type="bool" genre="user" instance="1" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			</CommandClass>
			<CommandClass id="64" name="COMMAND_CLASS_THERMOSTAT_MODE" version="1" request_flags="5" innif="true">
				<Instance index="1" endpoint="1" />
				<Value type="list" genre="user" instance="1" index="0" label="Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="0">
					<Item label="Off" value="0" />
					<Item label="Heat" value="1" />
					<Item label="Cool" value="2" />
					<Item label="Energy Heat" value="11" />
				</Value>
				<SupportedModes>
					<Mode index="0" label="Off" />
					<Mode index="1" label="Heat" />
					<Mode index="2" label="Cool" />
					<Mode index="11" label="Heat Econ" />
				</SupportedModes>
			</CommandClass>
			<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" innif="true" base="0">
				<Instance index="1" endpoint="1" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Heating" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="21.0" />
				<Value type="decimal" genre="user" instance="1" index="2" label="Cooling" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="21.0" />
				<Value type="decimal" genre="user" instance="1" index="11" label="Energy Heat" units="C" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="18.0" />
			</CommandClass>
			<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="5" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="94" name="COMMAND_CLASS_ZWAVEPLUS_INFO" version="1" request_flags="5" innif="true">
				<Instance index="1" endpoint="1" />
				<Instance index="2" endpoint="2" />
				<Instance index="3" endpoint="3" />
				<Instance index="4" endpoint="4" />
				<Value type="byte" genre="system" instance="1" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
				<Value type="short" genre="system" instance="1" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4608" />
				<Value type="short" genre="system" instance="1" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="4609" />
				<Value type="byte" genre="system" instance="2" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="2" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="2" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="byte" genre="system" instance="3" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="3" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="3" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="byte" genre="system" instance="4" index="0" label="ZWave+ Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="short" genre="system" instance="4" index="1" label="InstallerIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="short" genre="system" instance="4" index="2" label="UserIcon" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
			</CommandClass>
			<CommandClass id="96" name="COMMAND_CLASS_MULTI_INSTANCE/CHANNEL" version="4" request_flags="1" innif="true" mapping="endpoints">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="1" label="Operation mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="0">
					<Help>Set operation mode</Help>
					<Item label="Off" value="0" />
					<Item label="Heat" value="1" />
					<Item label="Cooling Mode (Not implemented)" value="2" />
					<Item label="Heat Energy Saving" value="11" />
				</Value>
				<Value type="list" genre="config" instance="1" index="2" label="Sensor mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="0">
					<Help>Set sensor mode</Help>
					<Item label="F - Floor sensor" value="0" />
					<Item label="A2 - External room sensor" value="3" />
					<Item label="A2F - External sensor with floor limitation" value="4" />
				</Value>
				<Value type="list" genre="config" instance="1" index="3" label="Floor sensor type" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="0">
					<Help>Floor sensor type (10K NTC Default)</Help>
					<Item label="10k ntc" value="0" />
					<Item label="12k ntc" value="1" />
					<Item label="15k ntc" value="2" />
					<Item label="22k ntc" value="3" />
					<Item label="33k ntc" value="4" />
					<Item label="47k ntc" value="5" />
				</Value>
				<Value type="byte" genre="config" instance="1" index="4" label="Temperature control Hysteresis" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="3" max="30" value="5">
					<Help>3-30 (0.3°C – 3.0°C) Default is 5 (0.5°C)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="5" label="Floor minimum temperature limit" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="50" max="400" value="50">
					<Help>50-400 (5.0°C – 40.0°C) Default is 50 (5.0°C)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="6" label="Floor maximum temperature limit" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="50" max="400" value="400">
					<Help>50-400 (5.0°C – 40.0°C) Default is 400 (40.0°C)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="7" label="Air (A2) minimum temperature limit" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="50" max="400" value="50">
					<Help>50-400 (5.0°C – 40.0°C) Default is 50 (5.0°C)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="8" label="Air (A2) maximum temperature limit" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="50" max="400" value="400">
					<Help>50-400 (5.0°C – 40.0°C) Default is 400 (40.0°C)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="9" label="Heating mode setpoint (CO)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="50" max="400" value="210">
					<Help>50 - 400 (5.0°C – 40.0°C) Default is 210 (21.0°C)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="10" label="Energy saving mode setpoint (ECO)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="50" max="400" value="180">
					<Help>50-400 (5.0°C – 40.0°C) Default is 180 (18.0°C)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="11" label="Cooling setpoint (COOL)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="50" max="400" value="210">
					<Help>50-400 (5.0°C – 40.0°C) Default is 210 (21.0°C)</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="12" label="Floor sensor calibration" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
					<Help>-40 - 40 (-4.0°C – 4.0°C) Default is 0 (0.0°C) To set a negative value, use 255 and subtract the desired value.</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="13" label="External sensor calibration" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
					<Help>-40 - 40 (-4.0°C – 4.0°C) Default is 0 (0.0°C) To set a negative value, use 255 and subtract the desired value.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="14" label="Temperature display" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Help>Show setpoint or calculated temperature on display(</Help>
					<Item label="Display setpoint temperature (Default)" value="0" />
					<Item label="Display measured temperature" value="1" />
				</Value>
				<Value type="byte" genre="config" instance="1" index="15" label="Button brightness - Dimmed state" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="50">
					<Help>0-100 (0 - 100%)</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="16" label="Button brightness - Active state" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="100">
					<Help>0-100 (0 - 100%)</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="17" label="Display brightness - Dimmed state" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="50">
					<Help>0-100 (0 - 100%)</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="18" label="Display brightness – Active state" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="100" value="100">
					<Help>0-100 (0 - 100%)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="19" label="Temperature report interval" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="32767" value="60">
					<Help>0 (Report disabled) 30-32767 (30-32767 seconds)</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="20" label="Temperature report hysteresis" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="1" max="100" value="10">
					<Help>0-100 (0.1°C – 10.0°C) Default is 10 (1.0°C)</Help>
				</Value>
				<Value type="short" genre="config" instance="1" index="21" label="Meter report interval" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="32767" value="60">
					<Help>0 (Report disabled) 30-32767 (30-32767 seconds)</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="22" label="Meter report delta value" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="10">
					<Help>0-127 A delta value of 0 – 12.7 kWh will result in a metering report. Default is 10 (1.0 kWh)</Help>
				</Value>
			</CommandClass>
			<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="5" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="115" name="COMMAND_CLASS_POWERLEVEL" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="list" genre="system" instance="1" index="0" label="Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="byte" genre="system" instance="1" index="1" label="Timeout" units="seconds" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="button" genre="system" instance="1" index="2" label="Set Powerlevel" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="byte" genre="system" instance="1" index="3" label="Test Node" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="list" genre="system" instance="1" index="4" label="Test Powerlevel" units="dB" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Normal" value="0" />
					<Item label="-1dB" value="1" />
					<Item label="-2dB" value="2" />
					<Item label="-3dB" value="3" />
					<Item label="-4dB" value="4" />
					<Item label="-5dB" value="5" />
					<Item label="-6dB" value="6" />
					<Item label="-7dB" value="7" />
					<Item label="-8dB" value="8" />
					<Item label="-9dB" value="9" />
				</Value>
				<Value type="short" genre="system" instance="1" index="5" label="Frame Count" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
				<Value type="button" genre="system" instance="1" index="6" label="Test" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="button" genre="system" instance="1" index="7" label="Report" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="list" genre="system" instance="1" index="8" label="Test Status" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Failed" value="0" />
					<Item label="Success" value="1" />
					<Item label="In Progress" value="2" />
				</Value>
				<Value type="short" genre="system" instance="1" index="9" label="Acked Frames" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-32768" max="32767" value="0" />
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="5" innif="true">
				<Instance index="1" endpoint="1" />
				<Instance index="2" endpoint="2" />
				<Instance index="3" endpoint="3" />
				<Instance index="4" endpoint="4" />
				<Associations num_groups="4">
					<Group index="1" max_associations="5" label="Lifeline" auto="true" multiInstance="true">
						<Node id="1" instance="1" />
					</Group>
					<Group index="2" max_associations="5" label="Multilevel sensor reports - External sensor" auto="false" multiInstance="true" />
					<Group index="3" max_associations="5" label="Multilevel sensor reports - Floor sensor" auto="false" multiInstance="true" />
					<Group index="4" max_associations="5" label="On/Off switch of internal relay" auto="false" multiInstance="true" />
				</Associations>
			</CommandClass>
			<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
				<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="5.03" />
				<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3.04" />
			</CommandClass>
			<CommandClass id="142" name="COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION" version="1" request_flags="5" innif="true" ForceInstances="true">
				<Instance index="1" endpoint="1" />
				<Instance index="2" endpoint="2" />
				<Instance index="3" endpoint="3" />
				<Instance index="4" endpoint="4" />
				<Associations num_groups="4">
					<Group index="1" max_associations="5" label="Lifeline" auto="true" multiInstance="true">
						<Node id="1" instance="1" />
					</Group>
					<Group index="2" max_associations="5" label="Multilevel sensor reports - External sensor" auto="false" multiInstance="true" />
					<Group index="3" max_associations="5" label="Multilevel sensor reports - Floor sensor" auto="false" multiInstance="true" />
					<Group index="4" max_associations="5" label="On/Off switch of internal relay" auto="false" multiInstance="true" />
				</Associations>
			</CommandClass>
			<CommandClass id="152" name="COMMAND_CLASS_SECURITY" version="1" request_flags="5" innif="true">
				<Instance index="1" />
				<Value type="bool" genre="system" instance="1" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			</CommandClass>
		</CommandClasses>
	</Node>

Did you find any solution to this…? I have the same issue with most of my z-trm2fx - some don’t report temperature at all and some do - although most times they just report 0, so the state history gets pretty chaotic:
2019-12-13_17-00-45

Did you fix it?

I too have two of these thermostats, not sure about fw version. I’ve got it appearing and behaving correctly in HA by changing the following lines in zwcfg_blablabla.xml from this:

			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5">
				<Instance index="1" endpoint="2" />
				<Instance index="2" endpoint="3" />
				<Value type="decimal" genre="user" instance="1" index="0" label="External sensor" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.0" />
				<Value type="decimal" genre="user" instance="2" index="1" label="Floor sensor" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="8.9" />
			</CommandClass>

To this:

			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5">
				<Instance index="1" endpoint="3" />
				<Value type="decimal" genre="user" instance="1" index="0" label="External sensor" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="11.5" />
				<Value type="decimal" genre="user" instance="2" index="1" label="Floor sensor" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="4.8" />
			</CommandClass>

However, while this is working perfectly for me, it does spam the OZW_Log.txt file twice pr minute like this:

2020-01-31 22:37:13.993 Error, Node014, Cannot find endpoint map to instance for Command Class COMMAND_CLASS_SENSOR_MULTILEVEL endpoint 2
2020-01-31 22:37:14.083 Error, Node014, Cannot find endpoint map to instance for Command Class COMMAND_CLASS_SENSOR_MULTILEVEL endpoint 2
2020-01-31 22:38:13.999 Error, Node014, Cannot find endpoint map to instance for Command Class COMMAND_CLASS_SENSOR_MULTILEVEL endpoint 2
2020-01-31 22:38:14.089 Error, Node014, Cannot find endpoint map to instance for Command Class COMMAND_CLASS_SENSOR_MULTILEVEL endpoint 2

I have a feeling it can be fixed by playing with around with the index, endpoint and/or instance values, but i haven’t figured it out yet.

With z-trm2fx I have noticed the following…

  1. if adding using the aeotec stick, it gets the funny red bars and jumping from 0 to actual temp the whole time.
  2. if adding using home assistant, actual temperature stays constant, but is shown as 0 for floor temp. Can be fixed by changing:
			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5">
				<Instance index="1" endpoint="2" />
				<Instance index="2" endpoint="3" />

with:

			<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5">
				<Instance index="1" endpoint="3" />
				<Instance index="2" endpoint="2" />

Then I have z-trm2fx which works with no jumping and red bars and shows correct temp instead of 0.

Also got an error with “Info, Value size is invalid. Only 1, 2 & 4 supported for node”.
To fix just change size=“0” to size=“1” for the given parameters in the error message…

2 Likes

Finally, i always knew it had to be possible, just never found the right combo. This seems to do the trick :smiley:

Any idea how to manage this when on zwave JS?

Hi!

I have the same problem as you, with:

“Cannot find endpoint map to instance for Command Class COMMAND_CLASS_SENSOR_MULTILEVEL endpoint 2”.

What did you do to resolve the issue?

Thanks in advance!