HELTUN HE-RS01 - 5 channel relay switch

Just bought this multirelay and added it as generic Z-Wave. Adds as “Z-Wave device Multichannel”

it shows 5 endpoints, so i guess this are the available child devices:

I’m new to SmartThings and Device handlers; could i just try the DTH for the Zooz ZEN16 for use with the three first relays, and perhaps modify it with two more relays?




When using the Zooz ZEN16 DTH i get 5 relays/child devices. I’m able to turn them all on, i hear the relays click, but i’m not able to turn them off again.

When using the native Fibaro Double Switch 2 - ZW5 DTH, it adds 1 relay and 1 child device (with the Fibaro Double Switch 2 - USB DTH).

Both relays turns on and off and works fine…but i’m missing 3 relays.

Anyone who knows if there is an easy mod to the Fibaro DTH so it adds all 5 relays?


Back to the Zooz DTH.

All 5 relays visible and turns on - The on/off icon spins for 10sec but state is not changing. Still not able to turn them off with buttons/tiles in app.

When changing from default NO (normally open) to NC (normally closed) in the parameters the relays turns off.

log does not tell me anything


First rule of home automation: “the model number matters.“

All of which is to say, sure, you can try a DTH for a different model, but if the underlying physical device uses a different method or even just a different channel, then things may not work. Which is what’s happening to you.

( It’s also important to note that the smartthings implementation of zwave is pretty limited. It doesn’t provide a standard way of setting zwave associations, of processing central scene commands, or even really of handling multi endpoint devices.

One obvious example is the aeotec quad wallmote. This device is advertised as being able to handle up to 16 scenes through four different gestures on each of four zones. And indeed that’s what you will get with a number of zwave controllers, including homeseer, ezlo vera, and Fibaro.

However, even if you use the official DTH provided by the manufacturer and approved by smartthings, when used with a smartthings hub you will only get control of up to eight scenes. Because the hub will only recognize two of the four possible gestures in each zone. :disappointed_relieved:)

OK, back to this device. It’s a really nice device using the most current zwave technology. Lots and lots of options.


Unfortunately, most of those options are not easily supported in smartthings.

The Fibaro is actually a much simpler device:


And for that matter, so is the Zooz:


All of which is to say my guess is you cannot get full functionality out of the Heltun on a smartthings platform, but I could be wrong on that. In any case, you will have to go through each of the individual options that the heltun lists and its technical documentation and then figure out how to map that to smartthings functionality. All of this made harder by the fact that smartthings doesn’t provide you with a standard interface for this kind of functionality.

I’m sorry, I wish I had better news for you, as I said, it looks like a very cool device.

@mwav3 might have some ideas, he’s done quite a bit with multi button devices which is essentially what this will be when viewed from smartthings.

I see. The manual lists 175 parameters and lots of classes and versions not supported by ST.

The only thing i need is 3 dry-relays to turn on/off, and a parameter for auto off in seconds, nothing more.

Was hoping this was possible for this unit with smartthings, if not i’ll look for another Fibaro 222 (already have one) .


1 Like

tested a Zooz Power Strip DTH, one without the USB-port functions etc.

Under main unit in IDE it creates 5 child units with the power strip outlet child DTH - but the child devices are not visible under My Devices or in the App.

With the main tile in app i can turn on AND off the relays, but only all together. The countdown function do also work :slight_smile:

one step further for my simple needs.


Smartthings significantly changed the way multi button devices, and for that matter single buttons, are handled recently and a lot of the older DTHs have not been updated for that purpose.

If you use an older DTH, the most common issue is that only one button will be actionable and the others won’t do anything.

The smartest house has rewritten the DTH is for most of their current Devices to now work with the new V3 app. But I think the original power strip was discontinued so the DTH may not have been updated.

If you want to get into the technical details, compare the code for that DTH to the one for the zen16. if you are using the most current DTH for the zen16, you will probably see significant differences.


Tried the Power Strip v2 DTH and now i have 5 workin relays!

…saved my weekend


1 Like

From looking at the device it looks really cool and can do quite a bit, but @jdroberts is absolutely right that this is not easily supported in Smarthings. I think it can be but it would take a TON of Groovy coding. JD definitely knows a lot more about Zwave and the overall Smarthings platform platform then I do, but from my experience with updating DTH code for Zwave devices, every incoming Zwave command needs to be coded as a method using Groovy programming in the device handler so Smarthings knows exactly what to do with it. This device from the log posted by the OP shows it sends a ton of information, and anything a DTH isn’t specifically coded to handle will just come in as an “unhandled command”

That being said, it appears @Khhh doesn’t need full functionality of the device, which is good so there’s a chance we can get this working for what they need. It seems another DTH already gets the device’s relays to turn on, so based on this statement:

Sounds like you can get them to turn on, but just need them to turn off automatically in X seconds? Parameter values are here from the Zwave alliance - Product Configuration Capabilities If that’s the case you might just need to set parameters 16, 17, and 18 (control for relay 1,2,3) to a value of 5 (Timer: On>Off Mode: Relay output switches to ON state (contacts are closed) then after a specified time switches back to OFF state (contacts are open). The time is specified in parameters 35-39) and then set parameters to the number of seconds before the relay turns back off. That should be easy enough, but reading further in the Zwave alliance site reveals some typos and inconsistencies with the parameter numbers not making sense, so that could complicate things. I’m thinking paremeters 21,22, and 23 are the time in seconds to turn off. They probably jumbled them up at some point and didn’t update all the references. Or, I’m just not understanding the device. This is tough for me to figure out without having the device to test. By doing the following modifications to whatever DTH you’re using, you might be able to get it work, but it could be a long shot:

in the preferences() method, create preferences for adding the seconds until off for each relay (add the method if not already there or add to the existing preferences () method):

input "relaytime1", "number", title: "Turn off delay for relay 1", description: "Turn off delay for relay 1 in seconds", required: false, range: "0..43200"
input "relaytime2", "number", title: "Turn off delay for relay 2", description: "Turn off delay for relay 2 in seconds", required: false, range: "0..43200"
input "relaytime3", "number", title: "Turn off delay for relay 3", description: "Turn off delay for relay 3 in seconds", required: false, range: "0..43200"

These preferences then pass to the updated() method, so add these lines to the updated() method, or create an updated() method if not already in your DTH. This will get the Smarthings hub to send the values to the device’s parameters:

if (settings.relaytime1 != null) {
    def relaytime1= Math.max(Math.min(relaytime1, 43200), 0)
    sendHubCommand(new physicalgraph.device.HubAction(zwave.configurationV2.configurationSet(scaledConfigurationValue: 5, parameterNumber: 16, size: 1).format()))
    sendHubCommand(new physicalgraph.device.HubAction(zwave.configurationV2.configurationSet(scaledConfigurationValue: relaytime1, parameterNumber: 21, size: 2).format()))
    sendEvent(name: "relaytime1", value: relaytime1, displayed: false)

if (settings.relaytime2 != null) {
    def relaytime2= Math.max(Math.min(relaytime2, 43200), 0)
     sendHubCommand(new physicalgraph.device.HubAction(zwave.configurationV2.configurationSet(scaledConfigurationValue: 5, parameterNumber: 17, size: 1).format()))
    sendHubCommand(new physicalgraph.device.HubAction(zwave.configurationV2.configurationSet(scaledConfigurationValue: relaytime2, parameterNumber: 22, size: 2).format()))
    sendEvent(name: "relaytime2", value: relaytime2, displayed: false)

if (settings.relaytime3 != null) {
    def relaytime3= Math.max(Math.min(relaytime3, 43200), 0)
    sendHubCommand(new physicalgraph.device.HubAction(zwave.configurationV2.configurationSet(scaledConfigurationValue: 5, parameterNumber: 18, size: 1).format()))
    sendHubCommand(new physicalgraph.device.HubAction(zwave.configurationV2.configurationSet(scaledConfigurationValue: relaytime3, parameterNumber: 23, size: 2).format()))
    sendEvent(name: "relaytime3", value: relaytime3, displayed: false)

Hopefully that works, or honestly this device might just be too complex to setup on Smarthings and if you have an alternative, that might just be better to go with. Let me know what you think.

1 Like

Opps missed the updated posts, so looks like you’re all set

1 Like