I added an MR26 and an HR12A child device and that exposes all of its ON and OFF buttons plus the bright and dim buttons. Now what? In the real world, an HR12A is assigned a house code. Set it to "J" and pressing the first ON button will transmit a J1 ON command. I don't see where I assign the house code to the HR12A device in Premise.
The HR12A button's must be bound to an object ... but what exactly? Binding a light to Button1On makes no sense.
The only place I see X10 House and Unit Codes is in the CM11A ... and not with the MR26 or any of its RF-based child devices like the HR12A. Clearly, I've missed an important concept because this seems overly confusing! Could someone please shed some light on it?
When using an MR26a, the HR12a command is sent over RF to the MR26a and a powerline command is not automatically sent. SYS gets notified of the RF command and you can decide how you want to use it. For example, I use several palmpads to control my distributed audio system in different rooms.
The step you are missing is to add a home-level keypad whose buttons will be bound to the device-level HR12. Assuming you already have the HR12 added and set the house code, add a keypad to the home (i.e. right-click on a room and select New|Keypads|Keypad. Go to the "InitFromDevice" property for the keypad and pick the HR12a that you added. A bunch of buttons at the home-level keypad will be added
and automatically bound to the device-level keypad.
Now, you can add scripts or actions to your home-level keypad buttons.
Thanks for your reply. Your instructions are crystal-clear but one step doesn't work for me. When I attempt to set the "InitFromDevice" property, the "SelectKeypadDevice" dialog box does not list anything in the X10 category.
Here's what I did:
- I reset the Premise Server, from Builder, in order to start with a clean slate.
- Blank Home template
- X10_Devices driver
- AutomationBrowser and ScriptExport modules
- I added and configured the MR26A and HR12A.
- I added a Home-level keypad.
- Selected the keypad's InitFromDevices property
- It spawns SelectKeypadDevice dialog box ... and it lists nothing.
FWIW, I followed your instructions with the Lutron RadioRAController device and it worked perfectly. The "SelectKeypadDevice" dialog-box successfully listed "Lutron". I navigated through the hierarchy (Devices|Lutron|RadioRAController|Keypads) and selected "MasterControl1". As you explained, my Home-level Keypad was automatically populated with the buttons found in "MasterControl1". Beautiful!
Unfortunately, I can't repeat this success with the X10 driver. In the Palette, my Devices tree clearly contains Devices|X10|MR26A|HR12A, yet the "SelectKeypadDevice" dialog box does not list it. It is behaving like it does not recognize any keypads within the X10 category. Phooey.
Clearly, there must be something in your Premise configuration that I've failed to do on mine. Any thoughts?
Ah, it has been so long I forgot a key step.
Note: This change will be persisted to slserver.xdo but if you reset the server, this change will be lost.
The problem is that the MR26a devices don't inherit from the "KeypadDevice" class. Here is how you fix that.
- Click on the HR12a instance under the MR26.
- Find the "Type" property for the HR12a in the properties window.
- While holding the "Ctrl" key, double click the "HR12a" value of the "Type" property. This navigates you to the HR12a class.
- In the center pane, find the "Remote" baseclass and click it.
- Find the "LinkObject" property in the properties window.
- While holding "Ctrl", double-click the value ("Remote"). This should navigate you to the "Remote" class that all MR26a remotes derive from.
- Using the tree control on the left, navigate to Schema/Device/Keypads/KeypadDevice.
- In the properties window, check the "virtual" property to make it true. (This allows this class to be added as a base class to other classes.)
- Navigate back to the "Remote" class. (you can use the back arrow in the toolbar)
- In the center pane, click on "BaseHouseCode". This step is only needed to get the focus on the center pane for the next step.
- While holding "Ctrl" and "Shift" at the same time, press the "A" key. (i.e. ctrl-shift-A). A message box pops up saying that "expert mode" has been enabled. This is necessary for the next step.
- Right-click in the center pane and select "New|Relationship|Inherited Class".
- A dialog comes up. Navigate to "Schema|Device|Keypads|KeypadDevice" and press OK. (Note: if you mess up, you can't delete it and you will need to reset the server or go edit the slserver.xdo file manually.)
- Press ctrl-shift-A to turn off expert mode.
Thanks, I will certainly try this out!
BTW jimspr, you've compromised your anonymity and revealed you are one of SYS's original developers. Your answer demonstrates a deeper understanding of Premise than anything that can be found, or inferred, from the help file! ;-)
I discovered that keypads are "auto-discovered" only with the Lutron and Litetouch drivers. I examined what happened when the Keypad was automagically populated with buttons using InitFromDevice. I added a Keypad button manually and then opened its BoundObject property. The resulting dialog box "Select BindingTarget" does list the X10 (and Lutron and Litetouch). Eureka! I was able to bind the buttons together. Tedious, yes, but successful.
Now I need to read several scripting examples to learn how to code the OnButtonChangeState.