Problems with Eutronic Spirit Z-Wave Plus thermostatic valve


though I’m relatively new to openHAB I think I’m getting along quite good so far.
My Spirit Z-Wave Plus works in generall (I’m using openHAB 2.2.0 an an RPi3 and the ZMEEUZB1 Z-Wave stick).

However I seem to have some issues with my Spirit Z-Wave Plus that I -as far as I can tell- consider as issues with the valve’s representation in the database and therefore would like to hear your opinion:
After consulting the manual and playing around a little with the valve my understanding of it is as following:
It has several operating modes:

  • 0x00 „Off“
  • 0x0B Energy Heat
  • 0x01 Heat
  • 0x0F Full Power (which after 5 minutes switches back to its previous mode)
  • 0x1F Manufacturer Specific (for setting the valve positon directly)

So the idea would be to switch it „off“ in summer and during the heating period to toggle between „energy heat“ to maintain a minimum temperature and „heat“ to get it warm and cosy (e.g. switching to „heat“ for any hour at 6am and then back to „energy heat“ via rules) – with the occasional boost to „full power“
The temperature levels of „heat“ and „energy heat“ can be set individually and are automatically shown in the valve’s display when switching to the corresponding mode.

The two issues I encountered are the following:

  1. „Full Power“ is not available.
    Somewhere I found the link to some kind of definition file for the valve ( which shows that this mode is simply missing:
 <channel-type id="eurotronic_spirit_00_000_thermostat_mode">
    <label>Thermostat Mode</label>
    <description>Sets the thermostat mode</description>
    <state pattern="%s">
        <option value="0">Off</option>
        <option value="11">Economy Heat</option>
        <option value="1">Heat</option>

Working around that is fairly simple with a selection element in my sitemaps which uses this option as well:

Selection item=Thermostat_ThermostatMode label="Mode" mappings=[0="Off", 1="Heat", 11="Eco Heat", 15="Full Power (for 5min)"]

But would be neat if this could be added to the description file directly

  1. Setting temperature for “economy heat” doesn’t work
    Let’s assume I set the temperature for “heat” to 22.0°C and for “economy heat” to 19.0°C.
    When I switch to “heat” mode the 22.0°C show up in the valve’s display immediatly and are also updated immediatly when altering them.
    However when switching to “economy heat” mode there’s always 18.0°C shown in the valve’s display (probably the default value) and remains there no matter to what temperature I change the value in my GUIs - openHAB seems to accept all change while the valve appears totally unaware of them.
    To me it looks as if setting the two temperatures is not declared correctly (e.g. I couldn’t fin out what values HEATING and FURNACE in the linked description file have).

As a mere user of openHAB who hasn’t come down to e.g. tracing Z-Wave communication or gotten into programming not just yet I’d like to hear your advice or if maybe everything works with your Spirit Z-Wave Plus valve.



I bought one of these to support debugging in December, but it didn’t work and had to go back to the supplier. I’ve just received the replacement so will try and have a look at this in the coming days.


In the meantime I finally managed to set up logging for Z-Wave I was able to play around with some commands and obtain the byte code of the messages, e.g.:

01 0C 00 13 08 05 43 01 01 01 16 25 D3 4F      Set Heat temperature to 22,0  
01 0C 00 13 08 05 43 01 07 01 16 25 D5 4F      Set Energy Heat temperature to 22,0

Useful documentation is hard to find when it comes down to bits & bytes for Z-Wave (any hint would be highly appriciated…) but what I identified so far is 43 01 as Thermostat SetPoint Set and 01 16 as the unsigned integer for 0x16 (=22) degrees.
That leaves the byte in between for specifying the temperature you’d like to set.
This byte is listed in the manual as 0x01 for Heat and 0x0B for Energy Heat.
Note that in the trace the correct value 0x01 is used for Heat, but 0x07 instead for Energy Heat. That might be the reason why setting the latter doesn’t work.

BTW I found some examples for openHAB1 where the Z-Wave items where defined directly but failed to adapt them for my thermostat, e.g.:

Number HVAC_HeatSetPoint        "Heat Set [%.1f F]"                            <thermostat>    (ALL,HVAC)                   {zwave="5:command=thermostat_setpoint,setpoint_type=1,setpoint_scale=1" }
Number HVAC_CoolSetPoint        "Cool Set [%.1f F]"                            <thermostat>    (ALL,HVAC)                   {zwave="5:command=thermostat_setpoint,setpoint_type=2,setpoint_scale=1" }
Number HVAC_Temperature         "Thermostat temperature [%.1f °F]"             <temperature>   (ALL,HVAC,ff)                {zwave="5:1:command=sensor_multilevel,sensor_type=1,refresh_interval=60"}
Number HVAC_Humidity            "Thermostat humidity [%.1f %%]"                <humidity>      (ALL,HVAC,ff)                {zwave="5:2:command=sensor_multilevel,sensor_type=5,refresh_interval=60"}

Do you know if that still works with openHAB2 and if there’s some documentation/tutorial around for it?
For just trying out something that would be much more feasable than every time having to bother someone who knows how to modify the database…

Thanks again

I ran into the exact same issue. The thermostat set point type “FURNACE” is incorrect. I’ve created an issue and an associated pull request: