Coming to this late, I realize, but maybe still useful to you or someone in future…
I have several VRCS1/VRCZ1 scene controllers that I use with great success. Direct scene activation through Vera configuration doesn’t work, as you’ve pointed out. The log messages seem to suggest that the scene controller is telling the Vera that “button 0” is being pressed, and Vera is probably expecting “1” for a single-button controller. Whatever the reason, any scenes configured on the controller don’t run.
But there is another way… you can put a Lua code snippet into a scene, as your code example shows (I do almost exactly the same thing that you came up with), and then, leave the scene bindings empty in the scene controller configuration. Instead, set your scene up with a device trigger on the scene controller when button 0 is pressed. The UI and MiOS will accept 0 for the button number in the trigger, match it correctly when handling the notification from the scene controller, and run your scene Lua!
Here’s the scene Lua I use:
-- Single-button Scene Control/Toggler (Workaround) for SINGLE DEVICE
-- This is a variation on the multi-button scene controller code I use
-- for the Enerwave SC7 7-button controllers. This version specifically
-- supports for Leviton VRCS1 and VRCZ1.
--
-- CONFIGURATION:
--
-- Device # of the controlled load
local loadID = 55 -- Foyer Chandelier
--
-- END OF CONFIGURATION. DO NOT CHANGE ANYTHING BELOW THIS LINE. Unless,
-- of course, you know what you're doing, in which case, have at it!
-- Please post updates/fixes on the forum for the benefit of others!
-- ---------------------------------------------------------------------
local category = tonumber(luup.devices[loadID].category_num,10)
if category == 2 then
-- It's a dimmable light
local level = luup.variable_get("urn:upnp-org:serviceId:Dimming1", "LoadLevelStatus", loadID)
if ( tonumber( level, 10) > 0 ) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", { newLoadlevelTarget = 0 }, loadID)
else
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", { newLoadlevelTarget = 100 }, loadID)
end
elseif category == 3 then
-- It's an on/off switch
local status = luup.variable_get("urn:upnp-org:serviceId:SwitchPower1", "Status", loadID)
if ( status == "0" ) then
luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", { newTargetValue=1 }, loadID)
else
luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", { newTargetValue=0 }, loadID)
end
end
return true
Using a similar strategy, I’ve gotten Leviton four-button scene controllers to work really well (IMHO) as well, and as indicated in the code comments, the Enerwave 7-button scene controller (although it’s generally a clunky, tempermental beast and not my favorite to use). I’m working on packaging that into a plugin.