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.