Inovelli Zwave 2 Outlet NZW37 Child Devices

@Eric_Inovelli Tagging you in case you know the answer to this. I don’t mind using the Classic app, but would prefer to see the child devices in the V3 app as well. Not sure if a custom device handler should be used and if so, which one?

Hey @Nameless – sorry, didn’t see this originally and thanks for tagging!

First, welcome to ST – I hope you like it. I switched to ST a couple years ago and haven’t looked back since. Solid platform.

With that said, there are some quirks and this is one of them. The new app doesn’t allow for device handlers but I’m told this is being worked on and hopefully should be finished by the end of the year.

I do believe there is a built in handler for the NZW37, but I honestly haven’t tested it on the new app (as I still use the classic and quite frankly we switched manufacturers and haven’t had the NZW37 for a while and I just haven’t tested) – good news is we can try together now!

Can you log into IDE: and see if this works?

  • Click on, “My Locations” and select your location
  • Then click on, “My Devices” and then select what you named your NZW37
  • Scroll to the bottom and click, “Edit”
  • Then go to, “Type” and click on it – select, “Inovelli 2-Channel Smart Plug” from the drop down
  • Click Save

Can you let me know if it shows up in the new App once you’ve completed the above?

Thanks for the reply. Yes, I’ve already set it as Inovelli 2-Channel Smart Plug and it works well. It shows the child devices in the IDE and Classic app. I had very little trouble adding it, following the instructions on your website.

Hopefully, we’ll see more function added to the V3 app this year. That would be a nice addition. Until then, it does work to control the child devices separately in the Classic app, Alexa, and Google Assistant.

Oh dang, that stinks it still doesn’t show the child devices in the new app. Let me reach out to a couple of the ST engineers and see what they say. More to come and I’m with you – I’m looking forward to the upgrades!


@Eric_Inovelli Seems that this wasn’t fixed yet. I even excluded and included the zw37 and it did not help. I can see it in the old app and in IDE, but not in the new app

Hey, I ran into this problem as well once I did the transition to the new App (Among the other super annoying things that it did). I managed to get at least one of my NZW37s to work by:

  1. Updating the version I was using from the 2017 version to the 2018 version
  2. Recreating the child Devices by editing the device handler (this made four child devices total)
  3. Deleting the old child devices
  4. Hacking together the old Child Device handler for the 2-Channel switch with the newer Fan Switch published by @Eric_Inovelli.
  5. Assigning my modified child device handler to the newly recreated childrn of the NZW37

My hack is as follows:
metadata {
definition (name: “Switch Child Device-Modified”, namespace: “inovelliUSA”, author: “Tom O’Brien”, vid: “generic-switch”) {
capability “Switch”
capability “Actuator”
capability “Sensor”
capability “Refresh”

tiles {
	multiAttributeTile(name:"switch", type: "lighting", width: 3, height: 4, canChangeIcon: true){
		tileAttribute ("device.switch", key: "PRIMARY_CONTROL") {
			attributeState "off", label: '${name}', action: "switch.on", icon: "", backgroundColor: "#ffffff", nextState:"turningOn"
			attributeState "on", label: '${name}', action: "", icon: "st.switches.switch.on", backgroundColor: "#00A0DC", nextState:"turningOff"
			attributeState "turningOn", label:'${name}', action:"", icon:"st.switches.switch.on", backgroundColor:"#00A0DC", nextState:"turningOff"
			attributeState "turningOff", label:'${name}', action:"switch.on", icon:"", backgroundColor:"#ffffff", nextState:"turningOn"
    valueTile("level", "device.level", inactiveLabel: false, decoration: "flat", width: 2, height: 2) {
		state "level", label:'${currentValue} %', unit:"%", backgroundColor:"#ffffff"
	standardTile("refresh", "device.switch", width: 2, height: 2, inactiveLabel: false, decoration: "flat") {
		state "default", label:'', action:"refresh.refresh", icon:"st.secondary.refresh"


def parse(Map description) {
def eventMap
if (description.type == null) eventMap = [name:"$", value:"$description.value"]
else eventMap = [name:"$", value:"$description.value", type:"$description.type"]

def parse(description){
log.debug description
//if ( && description.value)sendEvent(name:, value: description.value)

def on() {
sendEvent(name:“switch”, value:“on”)
if (!parent.installedSmartApp) parent.childOn(device.deviceNetworkId)

def off() {
sendEvent(name:“switch”, value:“off”)
if (!parent.installedSmartApp) parent.childOff(device.deviceNetworkId)

def refresh() {
if (!parent.installedSmartApp) parent.childRefresh(device.deviceNetworkId)

@golanremi - Give it a try and let me know if that works for you!

Tagging @johnconstantelo

So I’ve since done all five of my NZW37s following the above procedure and they’re all responding normally now and I can properly add them to both Alexa rooms and smartthings routines. Verbal commands are working like they were in the old smarttthings with the old Alexa integration.

So I’m gonna call that a successful hack.

1 Like

This is awesome, nice work! Tagging @erocm1231 as he’s actually the Eric who wrote this :slight_smile:

1 Like

@TRO-III Thanks for the work on this, but I believe this issue has already been addressed with the device handler, but the child devices need to be re-created. So if you update the device handler:

Delete the children in the app and then re-create them by going into the parent device and toggling a preference, they should work in the new app.

1 Like

Ha, thanks Eric, I said it was a hack! I wasn’t quite sure why it worked, but it did, so I was happy. I had considered that just recreating the child devices could have been the reason, but it worked, so I wasn’t going to retry. Clearly you know better than I do! Keep doing great work. Love your products.

1 Like

I am having trouble duplicating your instructions. I deleted the child devices, but when I go into the parent device in the app there is nothing to “toggle” to recreate them. Can you help me out on this?

Also, I noticed that on the Smartthings App it shows the device is on all the time.  Trying to turn it off does not work.  However, I can turn it on and off using the Google voice command.

This PR is in the process of rolling out to production.

With any luck it will work fine. If the child devices were created by the original DTH and there weren’t any changes to the installed device out side of the scope of the original DTH it should get “migrated” just fine. (It might take a while for the two outlets to show up in the new ST app.)

Please let me know if stuff ends up working, or if anything breaks.

I will now hold my breath…


You can also do this in the IDE. You just need to “Edit” the parent device and click on “Update”.

For those using the built in SmartThings device handler it looks like they are automatically moving people over to the MCD handler.


Thank you. Finally got it working again!

Yup! This is the code that does that, btw:

If anyone still notices issues, please let me know. We called updated() on all devices using that old DTH after the deploy, but there is a chance that there were some stragglers, and possibly the new SmartThings client might not yet be actually showing the child devices.

@dckirker, I’ve followed all the latest instructions for this device. I’ve even excluded it and tried to add it again. Everything seems to go well up until I remove the children, then recreate them. They show in the new ST app as one single device. I’m not able to get the children to be separate devices as shown in the inovelli screenshots.

Any guidance here? I need them as separate devices so I can control with Alexa.

@dckirker, I manually updated the device type to “Inovelli 2-Channel Smart Plug MCD”. At that point, the 2 child devices only appear under the main device and not as separate devices so there is no way to control them separately. I tried changing their device types back to InovelliUSA’s Switch Child Device but that didn’t help.