Leviton VRCS4

Has anyone tried a VRCS4 yet? I have a few of these on smartthings with a custom device handler and app.

Would I be able to port these over?


1 Like

I have one of these that I would love to get working in the button controller as well.

Bumping this thread. Perhaps @jesseking3 you can share your custom code from ST for the community to port? I have several VRCS4 around my home.


Well surprise surprise from Github… I found this — device-type.Z-Wave-Scene-Controller/Z-Wave Scene Controller.device-type.groovy at master · bdahlem/device-type.Z-Wave-Scene-Controller · GitHub which is a SmartThings driver for the VRCS4. I'm a newcomer to Hubitat and nowhere near ready to attempt a port. Anyone out there wants to give this a (re)spin I'd be very appreciative!

Copy the RAW code, and paste it into your favorite text editor.

Hubitat doesn't use "Simulator" or "Tiles" .. Therefore you can delete lines 36-64 inclusive.

Then using find replace, find "physicalgraph" and replace it with "hubitat". Line 21, replace "Button" with "PushableButton"

That could be all you need to do. I was able to get the driver to load with those changes... can't begin to tell you if it works, since I don't have one of those devices. I created a virtual device using the driver and it, is encouraging.

1 Like

@csteele first of all thank you!

Secondly — I cannot believe it’s that easy?!? I recognize the similarities between ST and Hubitat. I’m surprised that it is that similar.

I’ll experiment and report back on this thread. Hopefully it’ll be as easy as you say! There are LEDs on this button panel that typically associate with the triggered scene. Press #1, as long as that scene still is “active” the LED will illuminate. On other controllers, this behavior came for free. As long as there’s a match between state as recorded in the scene and the state of the lights in real life, the controller would illuminate that LED. I expect that may prove challenging?

A lot of the drivers moving from ST to HE are that easy.. this one, dunno.. as I said, I don't own the device to test BUT it's certainly the most common first steps taken when finding a ST DTH you want to use.

@csteele I followed what you described and I do have successful contact with the VRCS4. At the moment I only see button 1 being captured in the logs but I expect I can fix that by looking in the log at the hex codes captured and adjusting the driver accordingly.

Now what to do with this information? Can I expect HE to expose those buttons to be handled elsewhere in the system? Or do I need to further port the associated app code from ST that was a compliment to the original driver? Here's a link to that app code: smartApp-VRCS-Button-Controller/VRCS Button Controller.SmartApp.groovy at master · bdahlem/smartApp-VRCS-Button-Controller · GitHub

Thanks so much for giving me clues along this process! I tried to get to this exact point with another system and let me say HE has left it in the dust.

The driver "converts" device button events into.. well.. into Events. (Big E) You can then use those Events in Applications. Use Button Controller to "convert" a Button Event into an Action/Scene. Button Controller is where "If Button 1 of Device X is clicked/pressed, then do this" OR "If Button 4 is pressed/Held, do that" is determined. If the button's driver supports it, it can also see "Released", which is then used with Pushed/Held to mimic a dimmer's up/down function.

One of the things I most appreciate about HE is that is is built with an architecture that works like other programming environments/APIs. What you're describing is exactly the behavior I expect but many other home controllers complicate what would be extremely simple behavior. I tried this with a simple virtual device and it all works perfectly.

Wowza! :smile:

Well I thought I'd made some progress here…

As it turns out, my port isn't quite working. I do see that I am pressing a button on the VRCS4 but that does not translate into an actual button press event it seems. I have connected a button controller using the button controller app. I've also attempted using Rule Machine and although I can connect the event, it never seems to fire. I also see in the log that no matter which button I press, it shows up as button 1 only. I see that both in the event list for the device and in the Hub log.

On configure, I do see something odd where it looks like the word "NULL" is being sent where you might see the associated load number. Can that possibly be correct? I'd expect to see some hexadecimal values there not the word NULL unless the to string conversion is broken in the log output, zwave output, or both? I now suspect there is more to this port than was first realized especially to get the rest of the four scenes working.

Any ideas?

It may be that the device specific button controller app is what you need, I can't tell from here since I don't actually own a VRCS4.

Button should be button, and it is entirely possible the old ST driver isn't implementing Hubitat's version of buttons. Hubitat's implementation supports more.. it supports push/release, which can be used to open/close blinds, dimmer, etc. anything in the "do something til I release the button" universe.

As a result, Hubitat uses "pushable buttons" and not "buttons" You'll find this in the driver as:
capability "PushableButton"
However, the real business is found in:

// Handle a button being pressed
def buttonEvent(button) {
	button = button as Integer

that should be compared to drivers that work with Hubitat's intended implementation.

@r.p.ulivella I am trying to get a VRCS4 to include without any luck. Can you provide the steps you took to get it to include? I held down buttons 1 + 3 until amber and excluded it from Smartthings with a minimote. I then held down buttons 1 + 3 for 10 seconds until the lights went red to factory reset it. Next step was inclusion which I can't get working?

Any chance to update the driver to support VRCS2 (that is 2 two-scene controller with two switches)? Seems like current drive works partially, adding device to HE works fine (one just need to add scene controller first by placing it to programming mode by holding both buttons 5+ seconds, only after that is successful can the two switches added one by one by holding each individual button 5+ seconds to set the switch to programming mode). But adding scene controller causes associations to be set incorrectly, this probably could be fixed if driver had option to specify how many switches/loads unit has (0, 1, 2) ?

Also seems like driver could easily be expanded to support Leviton Zone controllers (VRCZ4) that has two buttons (on/off) for each 4 zones (instead of just single push button that is found on scene controller versions). Current driver works somewhat with VRCZ4 but both on and off buttons seem to just toggle zone, which is rather confusing especially since the zone status LED gets out of sync almost immediately...

As this post is now 1 year old, has anyone had luck with the VRCZ4 or have a device handler to share? Have users achieved working results with the "HE-compatible" VRCS4? I will be trying the "Pushable Button" driver mentioned above.

Hi @tjko and @bobstong,

I think I got you (@bobstong) on another thread, but I've just completed porting my App and Driver for the Leviton VRCZ4-M04 Zone Controller from SmartThings to Hubitat Elevation. I'll probably do some additional tweaking, but you should find the current versions fully functional -- have a try and let me know?

See my posting to App and driver porting to Hubitat...

Download the Hubitat app