[OBSOLETE] Enerwave ZWN-RSM2 (v1 & v2) & RSM2-Plus —Smart Dual Relay Switch Module

I’ve created a device handler for the new v2 Enerwave RSM2. I believe it will work with v1 as well if someone can test it. Verified that it does work with v1.

Features:

  • Master switch that turns both switches on/off
  • Instant status updates when state changed from physical switch
  • New large tile display to match other SmartThings v2 devices

Update: RSM2-Plus users. I have a device handler for this device that works without the Virtual Sync app listed below. It requires that you install the Parent Device Handler as well as the Child Handler.

Below is the device handler and SmartApp for the regular RSM2.

If you want to create virtual switches to control switch1 & switch2 with, I highly recommend using my Physical/Virtual Device Sync app with my custom Simulated Switch handler.

9 Likes

I’ll test this shortly with my v1’s.

I didn’t get status updates to the app after physical switch changes. Using your Dual Relay Adapter SmartApp that I’ve been using with your Generic Relay Handler.

But you did get them with my generic handler?

Crap, I tested the wrong relay, ignore all that. I’ll retest tonight.

Here’s the logs from your VS handler (simulated switch and smartapp) and the v2 physical device type from app on/off commands.

Relay SmartApp Log:
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:40:55 PM: debug physicalHandler called with event: name:switch2 source:DEVICE value:off isStateChange: true isPhysical: false isDigital: false data: {"microDeviceTile":{"type":"standard","icon":"st.switches.switch.off","backgroundColor":"#ffffff"}} device: LR Light & Fan Relay Device
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:40:54 PM: debug physicalHandler called with event: name:switch2 source:DEVICE value:on isStateChange: true isPhysical: false isDigital: false data: {"microDeviceTile":{"type":"standard","icon":"st.switches.switch.on","backgroundColor":"#79b821"}} device: LR Light & Fan Relay Device
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:40:52 PM: debug virtualHandler called with event: deviceId dd18f950-cbba-44d8-8e7c-245f3c8f4d9c name:null source:COMMAND value:off isStateChange: true isPhysical: false isDigital: false data: null device: Living Room Fan
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:40:51 PM: debug virtualHandler called with event: deviceId dd18f950-cbba-44d8-8e7c-245f3c8f4d9c name:null source:COMMAND value:on isStateChange: true isPhysical: false isDigital: false data: null device: Living Room Fan
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:40:50 PM: debug physicalHandler called with event: name:switch1 source:DEVICE value:off isStateChange: true isPhysical: false isDigital: false data: {"microDeviceTile":{"type":"standard","icon":"st.Lighting.light24","backgroundColor":"#ffffff"}} device: LR Light & Fan Relay Device
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:40:48 PM: debug physicalHandler called with event: name:switch1 source:DEVICE value:on isStateChange: true isPhysical: false isDigital: false data: {"microDeviceTile":{"type":"standard","icon":"st.Lighting.light24","backgroundColor":"#79b821"}} device: LR Light & Fan Relay Device
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:40:47 PM: debug virtualHandler called with event: deviceId 394ad4b1-0044-4bc5-9b4f-eb4516304872 name:null source:COMMAND value:off isStateChange: true isPhysical: false isDigital: false data: null device: Living Room Light
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:40:43 PM: debug virtualHandler called with event: deviceId 394ad4b1-0044-4bc5-9b4f-eb4516304872 name:null source:COMMAND value:on isStateChange: true isPhysical: false isDigital: false data: null device: Living Room Light

Living Room Light Log (VS):
394ad4b1-0044-4bc5-9b4f-eb4516304872 1:40:46 PM: debug PUBLISHED off()
394ad4b1-0044-4bc5-9b4f-eb4516304872 1:40:43 PM: debug PUBLISHED on()

Living Room Fan Log (VS):
dd18f950-cbba-44d8-8e7c-245f3c8f4d9c 1:40:52 PM: debug PUBLISHED off()
dd18f950-cbba-44d8-8e7c-245f3c8f4d9c 1:40:49 PM: debug PUBLISHED on()

Living Room Relay Device Log:
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:40:55 PM: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 0, parameter: [0], sourceEndPoint: 2) to [['name':switch2, 'value':'off', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch2 is off], ['name':'switch', 'value':'off', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch is off]]
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:40:53 PM: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 0, parameter: [255], sourceEndPoint: 2) to [['name':switch2, 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch2 is on], ['name':'switch', 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch is on]]
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:40:50 PM: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 0, parameter: [0], sourceEndPoint: 1) to [['name':switch1, 'value':'off', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch1 is off], ['name':'switch', 'value':'off', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch is off]]
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:40:46 PM: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 0, parameter: [255], sourceEndPoint: 1) to [['name':switch1, 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch1 is on], ['name':'switch', 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch is on]]

And here’s the log from the physical switch toggles. Looks like it IS updating correctly for everything. Had my wife do it while I watched logging/app status so I can’t comment on how quickly the app updated, but it did!

Living Room Relay Device Log:
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:45:23 PM: debug Parsed BasicReport(value: 0) to [null]
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:45:15 PM: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 32, destinationEndPoint: 0, parameter: [0], sourceEndPoint: 1) to [['name':switch1, 'value':'off', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch1 is off]]
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:45:15 PM: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 32, destinationEndPoint: 0, parameter: [0], sourceEndPoint: 2) to [['name':switch2, 'value':'off', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch2 is off]]
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:45:02 PM: debug Parsed BasicReport(value: 255) to [null]
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:44:53 PM: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 32, destinationEndPoint: 0, parameter: [255], sourceEndPoint: 1) to [['name':switch1, 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch1 is on], ['name':'switch', 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch is on]]
77b0831d-36fa-4f36-8dfd-fa567505a03a 1:44:53 PM: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 32, destinationEndPoint: 0, parameter: [255], sourceEndPoint: 2) to [['name':switch2, 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch2 is on], ['name':'switch', 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'LR Light & Fan Relay Device', 'descriptionText':LR Light & Fan Relay Device switch is on]]

Relay SmartApp Log:
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:45:16 PM: debug physicalHandler called with event: name:switch1 source:DEVICE value:off isStateChange: true isPhysical: false isDigital: false data: {"microDeviceTile":{"type":"standard","icon":"st.Lighting.light24","backgroundColor":"#ffffff"}} device: LR Light & Fan Relay Device
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:45:15 PM: debug physicalHandler called with event: name:switch2 source:DEVICE value:off isStateChange: true isPhysical: false isDigital: false data: {"microDeviceTile":{"type":"standard","icon":"st.switches.switch.off","backgroundColor":"#ffffff"}} device: LR Light & Fan Relay Device
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:44:54 PM: debug physicalHandler called with event: name:switch2 source:DEVICE value:on isStateChange: true isPhysical: false isDigital: false data: {"microDeviceTile":{"type":"standard","icon":"st.switches.switch.on","backgroundColor":"#79b821"}} device: LR Light & Fan Relay Device
43c3f4d2-a426-4dfb-8b2e-4461ac515db6 1:44:54 PM: debug physicalHandler called with event: name:switch1 source:DEVICE value:on isStateChange: true isPhysical: false isDigital: false data: {"microDeviceTile":{"type":"standard","icon":"st.Lighting.light24","backgroundColor":"#79b821"}} device: LR Light & Fan Relay Device

Where did you get the new version? I can’t seem to find it for sale.

Awesome! Thanks for testing, I appreciate it. Were you able to test the “master switch” to see if it turns both lights on or off?

I just did, and it does!

Hi I installed 3 ZWN-RSM2 switches, using Erick code, they seems to work. The only issue is that they work some times and some times does not. I thought could be a problem with the range distance even they are apart from the ST2 hub no more than 20 feet, separated by a wall. Then I installed another one in the middle trying to improve the mesh, however it does not improve, some times work, some times does not. I have another GE single switches and work all the times even with further distance from the hub. Any Idea why this is happening? how can I get the ZWN-RSM2 work all the times?. Thanks in advance

What’s the issue with the ZWN-RSM2? Do they work all the time in manual and not with the ST app some time? Are these relays installed in metal gangboxes? Is this a status problem? Did you change the parameters for the physical switch status update yet? I have 4 of these relay modules and they are flawless with his code.

Can you describe what you mean when you say they don’t work?

thanks for your response. I can set the lights on and off, both manually from the switch and using the app with your code, however the app does not get the lights on and off always. It does some times only.

There are occasions that I need to push the off or on button several times in order for the lights to respond.

I have others GE Smart Switches in my set up, however they do On and Off the lights with no issue always.

You are right, all the time in manual, and sometimes with the ST App, they are in metal gang boxes, status as well is an issue,

I have not change the parameters, I am using the last code from Eric that change the parameters automatically.

Refer to this post and go down to around post #118. You will find the step for changing the parameters.

As for losing connection because of metal gangbox. You can try sticking the little antenna out of the metal box.

I just tried sticking the antenna out of the metal on some of the devices , and now is doing better. Let me do several attempts and I will come back with the results. There are some of my devices with the Antenna Inside and others outside now.

Forgot to mention to do a z-wave repair as well.

Hi @erocm1231 thanks again for sharing this with me on another thread. After testing it, here are a few issues that I noticed. However, you are the only game in town that auto-refreshes the ST app w/o having to poll or refresh.

  1. Amazon Echo turns both switches on but I can easily just point to the first switch in the code and comment out the second call. Echo always runs the on() and off() functions from my experience.
  2. This installs a single device for two switches. Making it impossible for me to do any automation (SmartLights or Rule Machine) with the second switch.
  3. The default device that ST uses (and that I’ve been using for a while, which does not report the status to children) has source available from ST via “create from template”. This begs the question of what your secret is for accurately reporting switch state and whether the default ST device code can be hacked up to be as respectful since it has one thing that I feel is needed which is creating/having child devices to make any automation possible.
  4. If you’re aware of any other device/smartapp that will help in automating that SECOND switch, I’m all ears. I wish there was some way to “subscribe” to a Device function call like your on2() or off2() which would make this super-easy. There may be a way with SmartApps to do so but I’m way more experienced with Device Handlers.

Thanks again, awesome device implementation and worked just like you said when I manually flip the physical switch… ST was QUICK to update the tile.

You essentially need to create two virtual switches and use an app to sync the virtual switches with the physical switches. Use the “Simulated Switch” device type with the app in this thread:

This lets you use the two virtual switches in automations and with things like the Echo to have individual control.

Let me know if you have any questions.

You are DA MAN! I will so be trying that out and it opens up a whole new world for me. Thank you so much for sharing!!! I’ll give it a go and report any problems (or success) :slight_smile: