Premise Vizia RF+ 4 button controllers with switch and VRC0P

Motorola Premise
I was able to do some programming last night to model the VRCZ 4 button zone controllers I have.

I've modeled a controller as a "KeypadDevice" in Premise. So far, the user has to manually tell Premise the number of buttons, NodeID and whether or not the controller has a dim/brt buttons. The idea is you create a "Keypad" under Home, and initialize the keypad from the device object.

Since there's no find command that will only return the zone/scene controllers, I have to figure out some way to automate the process. I also don't know of a command to get the total number of buttons available...
 
Since there's no find command that will only return the zone/scene controllers, I have to figure out some way to automate the process. I also don't know of a command to get the total number of buttons available...
Here's a thought...

If you set Devices.EnableModelDiscovery to true, the discovery process will issue a MANUFACTURER_SPECIFIC request to each device, which will return the manufacturer, product type, and product id of each device on the network. If you define a model class for the the 4-button controller, can you use that mechanism to do the necessary setup?
 
I thought about doing that. However, I think I've devised a generic way to handle things. The problem is I don't have a scene controller to test things on, only zone controllers... The driver should work well for scene controllers, so please post any results here.

Features
Controllers and buttons are automatically found. Everything is modeled to be compatible with Premise's Keypad class. Following a successful find, a controller device will be created that gives the z-wave version and model data. After a find, Premise asks how many buttons the controller has and the buttons are automatically generated. After that, the VRC0P is issues the Leviton proprietary command to allow the VRC0P to report button presses. You may want to issue a "RemoveAllAssociations" command for each button if you want to remove any outstanding associations. You can also set/remove button associations by nodeID by filling in "AssocateWithNodeID" and toggling set or remove. Any z-wave associations will be shown under the associations property for each button. Any time you modify associations for a button, the "Associations" property will be updated for that button. If two buttons (such as Button1On and Button1Off) have the same GroupID, the changes will be populated to those buttons too.

You can also mix/match z-wave associations and Premise events by associating several lighting nodes (done one node at a time for now) to a button (using the method described above) and at the same time binding a home keypad to trigger a script for that same button.

The module also has the ability to use a zone controller's bright/dim buttons with Premise. Since bright/dim buttons send repetitive commands, the Controller class inherits a property from SwitchMultiLevel called Repeat. If Repeat is false, commands received following the first are ignored for 1 second (for both brightness buttons). If repeat is true, it allows a keypad object to process each press individually. All other buttons will work as fast as you can press them. The setup is pretty responsive with the only drawback being no button LED control (for now). You must enable UpDown under the controller's device properties for these buttons to work.


Changes
I had to create several new classes to fully implement the use of controller buttons:
SwitchMultilevel, Associations, GroupAssociation, Controller and Button.

To Install
Follow the directions found here: http://www.cocoontech.com/forums/index.php?showtopic=19134&view=findpost&p=159044

Assuming your controller is found and built correctly, a keypad will need to be made by right clicking on Home, then selecting Keypad. Now, on the home keypad, click InitFromDevice and point it to the controller device object.

To use, I prefer to create a "ScriptMacro" for each button under the home keypad; I like to write code that executes when that button is pressed. However, you can also use macros and do a lot of stuff without any code if you want (there's a macros example in one of the Premise videos).

Example of find commands
Code:
>?FI0,16,0,1
>?FI0,16,0,1
<E010
<E000
>?FI0,17,0,1
>?FI0,17,0,1
<E010
<E000
>?FI0,8,0,1
>?FI0,8,0,1
<E010
<E000
>?FI0,161,0,1
>?FI0,161,0,1
<E010
<E000
>?FI0,33,0,1
>?FI0,33,0,1
<E010
<E000
>?FI0,32,0,1
>?FI0,32,0,1
<E010
<E000
>?FI0,64,0,1
>?FI0,64,0,1
<E010
<E000
>?FI2,1,0,1
>?FI2,1,0,1
<F003
<E000
<E000
>N3SE134,17
>N3SE134,17
<E000
<X000
<E000
<N003:134,018,001,002,097,000,002
>N3SE114,4
>N3SE114,4
<E000
<X000
<E000
<N003:114,005,000,029,007,002,002,097
>N3SE133,5
>N3SE133,5
<E000
<X000
<E000
<N003:133,006,004
>N3SE145,0,29,7,0,8,1,2
>N3SE145,0,29,7,0,8,1,2
<E000
<X000
<E000
>?FI2,1,0,2
>?FI2,1,0,2
<E010
<E000
>N3?NN
>N3?NN
<E000
<X000
<E000
<N003"Zone_Cntrlr_3
 

Attachments

  • ViziaRF v19.3.2.xdo.zip
    99.2 KB · Views: 3
I have a few Monster Illuminessence IWC600 keypads (OEM Leviton RZ RZCS4 scene controllers) that I installed, but haven't associated or programmed yet. I'll associate one tonight, and see if I can get it talking to Premise.

Since Premise talks to the VRC0P, I'm assuming I have to associate the keypad to the VRC0P? Can controllers be associated to other controllers that way?

Odeen-
Were you ever able to figure out how to get the Monster IWC600 Scene Controllers to associate with the VRC0P? When Sending the ASCII Command ">NX,SE,145,0,29,7,0,8,1,Y" I dont get a confirmation response from the VRC0P. My setup is with an HAI OmniPro II system but the theory should be the same as Premise. Thanks for any info you have. Justin
 
Back
Top