Eurotronic Spirit - Unsupported mode type 31

I got the manual heat mode working!!

I bought three of these devices, after I specifically saw in the manual that the valve could be controlled manually (like a dimmer) So I was a bit frustrated that I got the “type 31 not supported” error.

So I did some digging, and noticed in the manual that the “Manufacturer Specific Mode” was set through the BASIC command class, and also the THERMOSTAT_MODE command class. But when I checked the Zwave database for the Eurotronic Spirit I saw the following message:

“Endpoint 0 has no command class linked to the basic class”

So then I took the zwave jar file, and edited the XML file for the device myself.
And added the following to the XML (hoping to get an extra channel for the device):

	  <channel id="basic_mode" typeId="eurotronic_spirit_00_000_basic_mode">
        <label>Basic mode</label>
        <properties>
          <property name="binding:*:DecimalType">COMMAND_CLASS_BASIC</property>
        </properties>

Reinstalled the edited zwave binding manually through the add-on folder, and this created an extra channel called basic_mode. I then linked an item to it. So I had

Number  Thermo_Mode  "Thermostaat mode"      {channel="zwave:device:512:node7:thermostat_mode"}
Number  Basic_Mode   "Basic mode"            {channel="zwave:device:512:node7:basic_mode"}

Then I send a command to set the basic_mode to 254 (0xFE)
And that did the trick:

2019-01-03 00:28:21.976 [nt.ItemStatePredictedEvent] - Basic_Mode predicted to become 254
2019-01-03 00:28:21.991 [vent.ItemStateChangedEvent] - Basic_Mode changed from NULL to 254
2019-01-03 00:28:26.399 [vent.ItemStateChangedEvent] - Thermo_Mode changed from 1 to 31

I can now control the valve through the Multilevel Switch, and set the valve to any percentage I want.
(the THERMOSTAT_MODE was automatically set to 31)

I also added the following to the XML giving me a nice dropdown list for the BASIC_MODE:

<channel-type id="eurotronic_spirit_00_000_basic_mode">
    <item-type>Number</item-type>
    <label>Basic Mode</label>
    <description>Sets the Basic mode</description>
    <category>Temperature</category>
    <state pattern="%s">
      <options>
        <option value="15">Off</option>
        <option value="0">Economy Heat</option>
        <option value="255">Heat</option>
        <option value="240">Full Power</option>
        <option value="254">Manual</option>
      </options>

@chris
Although I am certainly no expert, but I think a permanent fix would be that the device should be updated in the zwave database to add the basic_mode channel (COMMAND_CLASS_BASIC) so you can set this value through an item. But I don’t know the best approach for this?

(disclaimer; I was excited to get this to work, so I wrote this post, but did not do a lot of testing yet but it seems to be working fine)

–EDIT:
I did some testing/thinking, and I don’t see any need for the THERMOSTAT_MODE channel anymore, because the COMMAND_CLASS_BASIC seems to control the THERMOSTAT_MODE. Setting a value for BASIC_MODE automatically changes the THERMOSTAT_MODE. And the options to choose from are the same.

–EDIT2:
On second thought you do need the THERMOSTAT_MODE.
Setting the BASIC_MODE to “Manual” changes the THERMOSTAT_MODE to “Manual”. (but not vice versa)
So changing the THERMOSTAT_MODE to Heating does not change the BASIC_MODE to Heating.(it remains “Manual”) And I think this (changing Thermostat mode) could happen when you press the buttons on the physical device.

5 Likes