Leviton VRCS4

Hi Iskender, First let me thank you for your enhancements to Brian’s great work. For a time, my logs were showing button one presses, but now alas they are not. At one point, using Brian’s Smartapp, I switched the button one association to control the internal relay to on, and saved, then hit configure in the tile. Presently, something is amiss: Button 1 turns the internal relay on, but wont turn it off. I’d prefer to create a scene with that button, but logs show no activity when i press button 1 and tile doesn’t show it either (as it does for buttons 2-4). I am able to configure scenes for all but button one. Also, my dimer buttons do not appear to be working, and the button lights do not remain on for current scene. I’d appreciate any ideas you or anyone else may have to resolve my problems, especially the button one problem. Thanks in advance.

A quick update! Repairing solved the button one problem, but still looking for solutions to handling dimming switch presses.

@ygelfand - know any way to fix this?

To be clear, in ST, you only see the first button push.

EDIT: When I switched to @mpk’s DTH/SA, it correctly sets the scenes on each button, solves the problem. Beautiful!

1 Like

For what it’s worth, I just swapped out a problematic VRCS4 (>10 seconds for lights to respond!) for a VRCZ4 with @mpk’s smartapp/DTH and the Homeseer switches now respond in ~1 second.

The previous smartapps tested with the VRCS4 scene controllers was both
@bdahlem’s Leviton VRCS Z-Wave Scene Control and also
@ygelfand’s VRCS4 Scene Associator with their affiliated DTHs.

I also tested with @ieguz’s modified Leviton VRCS Scene Controller without any noticable improvement. I also moved the hub around in the hopes that it would involve fewer hops but nothing seemed to change based on the relative proximity between the scene controllers, hub and switches.

To be fair, I still have 3 other VRCS4 controllers installed with the Leviton VRCS Scene Controller smartapp and those turn on within 2-3 seconds-- and which I will now replace with VRCZ4 switches in the hopes that this will speed up the response time from the associated switches.

Am I the only one who has been experiencing such long response times with VRCS4 switches?
Is it likely related to the a particular controller switch firmware not playing well with the DTH/smartapp?

1 Like

I have a question on associating the Smart Things Hub to a device. I know the Hub has to be in close proximity, but does the Hub have to stay connected to my wi-fi router in order for my iPhone to control the pairing process? It seems impossible to arrange for the Hub to be close to the installed device and remain connected to the wi-fi router.

The phone app does not talk directly to the hub at any time, even if they are on the same Wi-Fi. The app talks to the cloud and the cloud talks to the hub. So the hub always has to be connected to the SmartThings cloud while you are adding the new device.

If you have one of the hub models that plugs into your ethernet router, what you can do is borrow a Wi-Fi access point from someone, or buy an an inexpensive one, that has an ethernet port on it, then plug the hub into that. That’s what a lot of people do.

The following is just one example of this kind of device: there are many different brands and models.

I followed your instructions for getting my VRCS1 controller to work with my DZ6HD dimmer and…IT WORKS!! You are an absolute gift to us Leviton-frustrated ST newbies. A million thanks for your solutions. Now, I have a question. As I’m playing with my switches and beaming with delight that I can now shut off our kitchen pendant lights from the hallway entrance as I make my way to bed rather than at the kitchen sink and then stumbling in the dark to exit the kitchen, I notice that my dimmer takes a couple of seconds to shut off. I’d like it be instantaneous. I notice on the instruction sheet for the DZ6HD there is a parameter for setting the Fade Off time. I’m guessing I need to switch the Device Handler for the DZ6HD back to Z-Wave Tweaker and then adjust that parameter, and then switch back to the VRCS2 button. My question is, do I need to suspend the VRCS Button Controller Smart App first? Will the app crash if it can’t find the VRCS2 button device while I have the DZ6HD set as a Z-Wave Tweaker device?

Curious if anyone has been able to get this working on a v3 controller? I suspect that might be my problem, but I’m not sure.

I have it paired, device handler is installed, smartapp is installed, I’ve hit the configure button within the ST classic app and changed the device from “remote” to the “scene controller”. However, when I push the physical buttons on the device, I don’t see any logs show up under “live logging” online. I do see logs when I hit configure and also see logs when I am in the Scene controller SmartApp when I am configuring the different button actions, but that’s about it. No logs when the physical buttons are actually pushed.

Here’s what I see when configuring the different buttons while in the SmartApp:

17fcbe90-a393-4409-b15d-ea9b8ce85ea5 9:07:22 PM: trace [Goodbye!, I’m Back!, Good Night!, Good Morning!]
17fcbe90-a393-4409-b15d-ea9b8ce85ea5 9:07:21 PM: debug Found: [Lamp by door] for lights_4_off
17fcbe90-a393-4409-b15d-ea9b8ce85ea5 9:07:20 PM: trace [Goodbye!, I’m Back!, Good Night!, Good Morning!]
17fcbe90-a393-4409-b15d-ea9b8ce85ea5 9:07:20 PM: debug Found: [Lamp by door] for lights_3_off
17fcbe90-a393-4409-b15d-ea9b8ce85ea5 9:07:19 PM: trace [Goodbye!, I’m Back!, Good Night!, Good Morning!]
17fcbe90-a393-4409-b15d-ea9b8ce85ea5 9:07:19 PM: debug Found: [Lamp by door] for lights_2_off
17fcbe90-a393-4409-b15d-ea9b8ce85ea5 9:07:16 PM: trace [Goodbye!, I’m Back!, Good Night!, Good Morning!]
17fcbe90-a393-4409-b15d-ea9b8ce85ea5 9:07:16 PM: debug Found: [Lamp by door] for lights_1_on

Here’s what I see when I click on “Configure”

b1e1ae8e-f8ff-4974-8dba-b51fe1b943c2 9:08:41 PM: debug Sending configuration: [7204, delay 100, 8505, delay 100, delay 100, 2C0300FFFF]

I don’t see anything else.

Under “My Devices”, it shows up as “Active”.

Any ideas?

I ended up getting it to work, but not sure what I did…

A VRCS4 can be joined to a network but generate no traffic from pushing the buttons ( in some firmware the VRCS4 will not light up any buttons if it joined but is unconfirmed ). Asking for a basicReport is unreliable in this state.

If you need a reliable ping to see if the device is online, you can ask it for its current powerlevel. You will need an event handler which resembles:

def zwaveEvent(physicalgraph.zwave.commands.powerlevelv1.PowerlevelTestNodeReport cmd, result) {
log.debug “$device.displayName $cmd”

You will need to send the following command:
zwave.powerlevelV1.powerlevelSet(powerLevel: 0, timeout: 0)

There are other z-wave commands you can use as well ( the above will just fetch the current power level ).

For the VRCS4 to respond properly, you need to have all 8 scenes associated and valid values set for the associations.

The driver has an obvious bug in it. Search for this line:

commands << zwave.sceneControllerConfV1.sceneControllerConfSet(groupId: buttonNum, sceneId: buttonNum, dimmingDuration: buttonNum).format()

Setting the dimmingDuration with the buttonNum is going to give you delay based on the number of seconds that equal the button’s number :slight_smile:

You probably want to set the dimmingDuration to 0 ( i.e. instant ), unless you want the per device delay to be used ( which would be 255 (i.e. 0xff) ).

That dimming duration value is only used if you have directly associated devices.

One reason why some folks may be finding that delays become worse/device stops working, is because SceneActuatorConfGet() is implemented to receive the request on the Smartthings hub, but I don’t see where it implements the zwave.sceneActuatorConfV1.sceneActuatorConfReport() which is expected to follow.

Let me quote the code:

def zwaveEvent(physicalgraph.zwave.commands.sceneactuatorconfv1.SceneActuatorConfGet cmd) {
// log.debug “SceneActuatorConfGet: $cmd”

buttonEvent() should be followed by the sceneActuatorConfReport() stating either the current scene number ( if the get requests a scene of 0) or by the value sent to the SceneActuatorConfGet() once it has been executed. A value of 0 as a response may indicate a failure to the Scene Controller ( at least, this is what I recall from memory, it might be specific to the firmware ( or manufacture )).

1 Like

Do you have your VRCS4 switches working properly with on/off control for each button as well as working with the dimming switches? Please let me know, I’m stumped!

Making use of the dimmer requires your driver to track what the state of accessories should be ( assuming you aren’t doing direct association ( direct association will just work )).

What part are you stumped by? The handshake? The light on the switch?

I have the VRSC4 switches, I can get each button to turn on a set of lights whether they are zigbee, wifi, zwave, etc. However when I press the button again it doesn’t turn off the lights. It does however dim them and it all works great. What I need is when I press the button the second time, that it will turn off the lights. It doesn’t, it only turns them on with the first press. That’s using MPKs device handler. His is the only one that dimming works. If I use Brian’s device handler, each switch turns on and off the respected lights but doesn’t dim them. I can’t direct associate the buttons because my devices aren’t all zwave. It’s like I need to combine both device handlers and maybe then it will work properly, but I don’t know.

I just tossed this driver together ( it has some code that will never be reached ).

Leviton VRCS4 / VRCS1

The VRCS4 works as a scene controller.

When a button is pressed, it sends out a SceneActivation command; if SmartThings is within broadcast range it will call SceneActivation twice if the hub is near the switch. SmartThings doesn’t inform a driver if a message is broadcast or unicast, and it does not dedupe messages.
After SceneActivation is sent, the scene controller will then send a SceneActuatorConfGet() with a scene ID of 0 to see if ST received the message.
The driver (acting as the hub) then needs to send back a SceneActuatorReport(). The VRCS4 will turn off the light if the value returned is 0xFF ( in my driver I want the light to stay on, so I return 0x63 ).
If you press the lit button on the controller to turn it off, a new SceneActivation() is sent which will give you which button has been turned off.
If you look at refresh() you can see how current state is determined ( any Z-wave scene/zone controller should return state upon receiving a sceneControllerConfGet(groupID: 0).(*)

I’ll provide a few more details later. Dimming control for direct is easy, but going through the controller? A Smart app is also needed.

*) For years,… well since whenever I started using the platform, sceneControllerConfGet(0) and its companion methods have been busted. I noticed today that they now work! That bug is what has made scenes a bit broken on ST. So,… status for scene actuator and controllers now work!

1 Like

yes i used MPKs smart app to set up the four VRCS4 switch buttons, and each button turns on the respective load as well as dims them be it zigbee, wifi, etc. but it wont turn off on a second press of the same button. I tried your newly created device handler with all the smart apps i could find for button controllers as well as all the ones in this thread, and nothing happens after i set up the buttons. I’m guessing one needs to be made tailored to your code? TIA!

I’m trying to pick up what you’re putting down, it partially makes sense to me, but please excuse my ignorance in smartthings programming. Feed me more info, please! It has to be a simple fix when the one dth and smart app on here from Brian does everything I need excluding the dimming portion, and the other dth and smart app from mpk does the dimming portion, but just doesn’t turn the controlled device off after turning it on with the first button push. Is it just a matter of combining both dth’s and smart apps into one, or is it more complicated than that?

I’ve found when I change this section of code in mpk’s smart app, that it lets me have one button turn on zigbee lights, i can dim them, and then i can assign another button to turn off zigbee lights, by changing (data.status == “on”) and (data.status == “off”) respectively. So now i just have two switches for a set of zigbee lights and the last two for another set. I just wish there was a way to toggle them so i could have 4 switches each doing a set of zigbee lights. Anyone have an easy way of doing this. Yes I’m such a newb.

case "1":
    	// log.debug "Turning ${data.status} switches for button 1"
    	(data.status == "on") ? switches_1.on() : switches_1.off()
	case "2":
    	// log.debug "Turning ${data.status} switches for button 2"
    	(data.status == "off") ? switches_2.on() : switches_2.off()
	case "3":
    	// log.debug "Turning ${data.status} switches for button 3"
    	(data.status == "on") ? switches_3.on() : switches_3.off()
	case "4":
    	// log.debug "Turning ${data.status} switches for button 4"
    	(data.status == "off") ? switches_4.on() : switches_4.off()

If you want to have four switches which can be turned on and off separately then what I believe you want to look into buying is the “zone” version of the Leviton device, not the “scene” controller.
The scene controller keeps one state ( not counting the multi-level button ), but the zone controller I believe will keep four states. This is from memory FWIW, I have only debugged one once.

Hi guys. I’ve been struggling with a VRCS4-M0Z 4-Button Scene controller; I can’t seem to get it to recognize anything but a button press on button 1. I’ve tried a few of the device handlers on the forum but all seem to only recognize the first button presses and the other 3 go unnoticed. If anyone has any advice, I’m all ears :slight_smile: Thanks.

1 Like