Connecting VRCZ4-MRZ - not to be confused with VRCS (DTH in post 20)

I feel your pain. Incompatibility sucks. :disappointed_relieved:

There is an official “works with SmartThings” list. Make sure you read the notes if there is a tiny letter “I” on the far right. If a device says “SmartThings Labs” in the notes, it’s still in Beta.

For any other devices, check the forums first to see if people have it working.

And it’s always a good idea when buying electronics to choose vendors with generous return policies.

If you can’t return the VRCZ4, will the seller exchange it for a VRCS4? Those work better with SmartThings. (See forums.)

Any chance V2 of the hub now supports this?

I have several VRI06 switches mated to a VRCZ4-MR zone controller via the Vizia RF+ installer. I don’t want to lose this configuration, but I’d like to have control over the switches via SmartThings as well.

Is it possible to pair the VRI06 to both the VRCZ4-MR and to SmartThings without issue?


Any update on this?

Hi @JDRoberts - you very helpfully outline why this didn’t work with v1 of the hub… but since I have 2 of these overly-priced suckers and a v2 hub, I was wondering if you (or anyone else) knew if they might now work?

The built-in concept of “zone control” isn’t my goal - but I’d like to use the VRCZ4-MRZ as a bunch of buttons to trigger things in SmartThings… including the load that it controls.

I post with my fingers crossed :joy:

Edit for others who come here from a search: the original thread about this has more details, and my post there shows that you CAN get this device to work with ST with some limitations:

BTW, One thing that has changed in the last year or so is that SmartThings is now better at multiple endpoint devices.

I know that with other Z wave controllers the MRZ (which controls a load) actually shows up as two different devices: one scene controller and one switch, the switch being what controls the load. In SmartThings, it originally only showed up as one device. (edited to add @PassionateLogic 's note below that as of May 2017 it does now also show up as two devices in SmartThings. That’s good, and understandable because of the improvements in multi endpoint handling over the last 15 months or so. )

So either there’s some manufacturer proprietary code which is exposing the relay control or there’s a second endpoint. given that it’s Leviton, it could be either.

If it’s a second endpoint, then you may in fact be able to do more with it now in 2017 than could be done back in 2015. :sunglasses:

Again, I can’t read code these days, but maybe one of the grandmaster coders who works with multiple endpoint devices. Would have some suggestions.

Tagging @erocm1231 in case he has any thoughts.

Thanks! Yes, the good news is that you CAN now see both the VRC Z 4-MRZ controller AND its load switch as two separate things in SmartThings - by default, they come up as a “Z-Wave Remote” and a “Z-Wave Switch” accordingly.

The Z-Wave Switch works right away, allowing you to control the load in SmartThings. The Z-Wave Remote’s device handler can be changed to the VRC S 4 scene controller device handler from here - and this will allow you to see “on” button pushes in SmartThings for the 4 controller buttons. You can then use a SmartApp like this one or - for even more lighting control - this one, allowing SmartThings to take action on each of the 4 “on” button pushes.

What we CAN’T yet do is:

  1. See “off” button pushes in SmartThings (although they are generically logged as 2001 commands);
  2. See any pushes of the dimmer buttons at the bottom of the device;
  3. Control the LED indicators in any way (generally, they currently flash once when you push the “on” side of the button, then go off).

One additional note that’s specific to the load bearing variety of this controller (the MRZ): I’ve found that it’s best to stick with the default behavior of button 1 controlling the load. This default seems to be built-in to the controller, and as far as I can tell doesn’t need SmartThings to be used for controlling the load - button 1’s “on” side turns the load on, and button 1’s “off” side turns it off. Trying to override this in SmartThings using a smart app seems to get messy. Fortunately, the on/off state of the load is reported to SmartThings, so the Z-Wave Switch that controls it in SmartThings stays up to date.

@bdahlem - if you have any insight here regarding getting your device handler doing more for the VRCZ4 (like recording the “off” button pushes) I’d love to know if I can help at all!

1 Like

A 20 code isn’t an “off”-- it’s a “basic” command. (“Basic” has a very specific meaning in Zwave.)

That command is being sent out to its associated devices.

There’s no payload beyond that, so you don’t get the button number.

I don’t know what this particular device does, but quite a few will have different association groups for the different buttons.

If it does it that way, then you’ll have to include the hub in each association group, and that is how it will know what button sent the basic command. Is it getting the basic command from Association group one or from Association group two?

Again, this would be very similar to the Cooper device that another community member is working on, so I do definitely encourage talking to him about his code.

The reason you can’t change which button controls the load is because there’s a physical relay involved inside the device. You might do some stuff with software to trigger the light also going on or off when you push a different button, but you would never be able to prevent pushing button one from controlling the load. So it’s best to just stick with the default.

Hi Jake. I’m having a hard time with these VRCZ4. I have already added them as controllers and also their load separately, and changed the device handlers following Bdahlem’s guide. But I just can’t get the buttons to report back to ST, just the first button (whose green is always on) report as “Button released” when I press it, but nothing from the rest of the buttons.
Do you have the solution? I just want to use them as the VRCS4, just like 4 simple trigger buttons.
Thanks I advice.

Hi there - I’m afraid I don’t have anything helpful to add here, other than noting that this device seems very unstable. I had the switch and the buttons working fine in ST for a while, and then the switch just stopped working… and I can’t seem to get it to work again. The buttons, interestingly, still work fine. I’m so frustrated about how expensive this device was, so I hope that at the very least our frustration can help others avoid buying it!

If I have any further joy with the device I’ll post back here… and please do the same!


I’m also having the same issue with a couple VRCS4. So frustrating…

I purchased a VRCZ4-M0Z a few days ago and got it working (with the noted limitations regarding not reading “off” presses or controlling the LEDs) using the VRCS4 device handler and related SmartApps. So far it’s working fine.

I just committed a first-cut DTH and SmartApp for the Leviton VRCZ4-M0Z, adapted from the VRCS4 modules by @ygelfand.

They seem to be working perfectly for on/off with my various Philips Hue bulbs and strips – still have to look at adding dimmer functionality. I’ve also left (most) of @ygelfand’s Z-Wave code in place, so it should be possible to support both Z-Wave Direct Association and plain-old SmartThings integration.

Will update the repository if/when I get dimmer functionality added.

Thanks so much for creating this. I was able to use it to get my VRCZ4 to pair with ST.

When I press the buttons, though, nothing (really) happens (other than the LED turning on).
I used the SmartApp to set up lights that should go on/off. If I press the buttons - nothing happens. If I turn on the lights directly from ST app, then the corresponding VRCZ4 LED turns on (so it clearly knows what it is SUPPOSED to control)

What am I doing wrong?

Thanks so much

Probably nothing (you’re doing wrong):

I’ve installed a second VRCZ4-M0Z and discovered that it’s also behaving like yours, as has @BadPirate (see here). Further analysis shows that while my first one reliably transmits Manufacturer Proprietary (0x91) commands that contain button-press information (and always has), the second one does not (even though it’s seemingly identical to the first VRCZ4 in every other respect). My best guess, at this point, is that whatever machinations I went through initially to get the first unit up and running (including trying other people’s DTHs and smartApps from this community) flipped some sort of configuration flag that enabled the 0x91 commands.

I’ve been trying to work with Leviton, but (as I’d started to suspect from scouring the various home-automation boards) they seem to be committed to preventing the VRCZ4-M0Z from working with SmartThings (or any other non-Leviton gear, for that matter). I’m caught in endless redirects and loops through their contact hierarchy, and along the way I’ve picked up some conspiratorial allusions to the fact that they know how to resolve this issue but have been specifically directed not to as a matter of corporate policy. (Still waiting for response to an escalated inquiry, but nothing yet.)

In any case, I haven’t given up on this – particularly as I have four of these things, and am keen to use them all. I’m fairly certain that the Z-Wave behavior can be manipulated to restore the 0x91 commands we need (or perhaps to provide some alternate workaround), and will continue to plug away both at direct interrogation of the unit and escalation contacts with Leviton.

In the meantime, I’ve ordered a Leviton USB (VRUSB-1US) which should enable me to use Leviton’s own Vizia RF + Z-Wave Installer Tool software to configure the VRCZ4. Hopefully, I can use this (possibly in conjunction with the SmartThings IDE?) to isolate any required Z-Wave configuration adjustments, and figure out how to apply these in future without need for the additional Leviton middleware.

Will keep you posted.


Thanks for the response. Definitely keep me in the loop.

I have two of these & honestly tempted to try to sell them and go down a different path (let me know if you need more :P). I was hoping I was just doing something wrong, but I don’t think the wife will tolerate the lights not working anymore!



I hear you re: the wife – mine is wondering if “the juice is worth all this squeezing” (!!!)

Without Alexa (and the ST/Hue phone apps), we’d have been done long ago. But if I can get them working dependably, I just might want to pick up a couple more…

OK – I’ve just posted an updated DTH and smartApp that now work with both of my VRCZ4-M0Zs.

I’ve essentially added a second control path that doesn’t rely on the 0x91 (Manufacturer Proprietary) button reports, but instead uses sceneControllerConfSet() and SceneActivationSet() commands. It’ll now work with either set of commands (sort of a belt-and-suspenders approach – my first VRCZ4 still utilizes 0x91s, but the second one doesn’t).

I will say that this remains more mysterious and opaque than it ought to be (no thanks to Leviton). But I got my VRUSB-1US yesterday, and the first thing I did was reset/reconfigure (only) my new VRCZ4 after including it to the Vizia RF + Z-Wave Installer Tool. This made it totally unresponsive to my SmartThings hub (as well as my Cooper Aspire Z-Wave dimmer) – in fact, for a while I thought it was completely bricked. I finally reset it again for inclusion back to the SmartThings hub (where it picked up a new networkId this time). While it never started generating the 0x91 messages, I was now able to successfully configure unique Z-Wave scene associations for each button, and then pick these up via SceneActivationSet events. (I have the dimming working for both control paths, too.)

Strangely, I lost the setLightStatus() functionality on the new VRCZ4 for a good long time (even though it had been working initially, before I got the Installer Tool). It, too, relies on 0x91 commands (and always has, ever since I inherited it from @ygelfand – would be curious to know where that logic came from?) Anyway, sometime (but not immediately) after I power-cycled it (via circuit breaker), the LED-tracking behavior began working again.

I’ve still got two more VRCZ4s to go, so hopefully I’ll get a firmer fix on just what (if anything) is really needed vis-à-vis the VRUSB-1US. The DTH and smartApp are certainly more robust now, but I’m not yet convinced there won’t be more Z-Wave finickiness before I can get the other two units stabilized.

Curious to see whether these new versions work any better for @birnboim, @BadPirate, or @barney.raymond?

1 Like

SetLightstatus() comes from lots of tinkering and me reverse engineering the Vera implementation. I did see that if you send something it doesn’t like (e.g. command with bad checksum, etc) it used to lock out. It’s been a while so don’t remember all the details.

Interesting. Did you have a Vera system (and/or can you point me to any documentation for same)?

Yeah I did/still do, though it’s no longer plugged in. It was closed source though as it was some sort of partnership w/ leviton so I think they gave them docs on the 0x91 commands. At least at the time I looked at this there was none public. If you find any id love to see them in case there’s anything else cool.