Creating a simple System Power macro.
Let’s go through a simple 3-device power macro using components that lack any discrete power codes. First, create three new variables to track the power state of each device: “TV Power”, “Receiver Power” and “DVR Power”. You’ll then need a screen with two buttons for each of these devices: one for “Device On” and another for “Device Off”. For each of those six buttons, change the macro type to “Variable”, and select the correct variable to monitor.
For the Power On macro for each device, select the “Variable=0” macro tab and add two commands: the first one with the device’s actual toggle power code, and a second command setting the device’s variable to “1”. Leave the “Variable=1” tab blank. For the Power Off macro do the opposite: select the “Variable=1” macro tab and again add two commands, one with the toggle power code but the second should instead set the device’s variable to “0”. Leave the “Variable=0” tab blank.
A simple variable-based "Power Off" macro.
To assemble these together, link your master “System On” button to the three “Power On” macros, and the “System Off” button to the three “Power Off” macros.
Now, each time any of those “Power On” macros are run, the remote will first check the status of the variable. If “0” or “off”, it performs all steps on the “Variable=0” tab: sending the device’s power command and then changing the variable to “1”. If that same macro is run a second time, perhaps by accident, well the variable now reads “1”, so it only performs commands on the “Variable=1” tab, which has been left blank and thus has no effect on the system: the device remains powered on! If your remote configuration has user-accessible “Power” buttons for any variable-controlled device, it would be a good idea to also add an “Invert State” variable command to those buttons so that the remote knows if the user has later turned a device on or off. Finally, when the user is finished and runs the “System Off” macro, only those devices that have their variable set to “1” will have the power command transmitted.
The downside of internal variables.
Variables are a great way to offer some form of automation on troublesome TOADs (Toggle-Only Actuated Devices) without the expense of URC’s optional MSC-400 backend system, but internal variables by their very nature aren’t bulletproof. It’s always going to be possible for the remote to become out of sync with the device, meaning that it thinks the device is on when it’s really off, either due to a power outage, missed command, someone walking up to a device and turning it on/off, and so forth.
This is why devices such as the MSC-400 offer device status sensors, so it’s possible to know the true state of a component rather than simply making educated guesses. This is also why the Logitech Harmony (which also makes use of internal variables) has a prominent “Help” button whose main purpose is to help users re-synchronize the remote with the actual status of their A/V components. MX-900, KP-900 and TX-1000 programmers who want to make use of internal variables would be recommended to implement their own [Help] button, thus allowing users to easily correct potential out-of-sync situations.
Regardless, this is a very practical addition to an already quite capable remote.
- Daniel Tonks (Remote Central)