I got tired of moving two remotes around between a few rooms so I added several X10 Slimline Wall Switches. The annoying thing about these switches is that only the first button can be directly programmed to a specific House/Unit code. The next two automatically increment the unit number based on the first one, so to have a logical configuration among the various remotes I re-addressed several of the X10 modules.
Some of the switches, such as the ones in our bedroom, have a button dedicated to All Lights On/Off. I did this by setting up virtual X10 switches in mControl. When the computer sees a signal for those switches it executes a macro. If the status is changed to “ON”, it runs a macro that turns on all lights.
Not all slimline switches have this function (for example, I don’t want guests to accidentally turn all lights on or off from the guest bedroom). However, I did have two slimline configurations that were different but both needed to have this ability. Basically, I have two virtual switches (A5 and A8); either one can turn all lights on or off.
I setup two macros that are triggered by either switch. For example, when A5 is set to ON (or A8) a macro is triggered that checks for the ON status of either switch (OR conditional). When it’s true it runs another macro that turns all lights on and then the parent macro also sets both switches to the ON state. Another macro works the same way for All Lights Off.
I was concerned that setting both switches to ON within the macro might re-initiate the macro and create an infinite loop but it looks like the delays built into mControl macro handling avoid this, at least as far as I can tell.