XTension Logo

An online tutorial

Newer X-10 Dimmer Controls

New Features

Although they all still use the X-10 technology, and most are made in the same factory, there are some newer dimmer controls which offer some very useful features.

Preset DIM

Perhaps the most useful feature is the ability of a dimmer to remember your preferred lighting level for a lamp. Although the concept is simple, the terminology and techniques used by various manufacturers are quite confusing.

Regardless of what you call it, these modules have a little 'memory' which is either set manually at the switch, or remotely by the home automation controller, so that whenever you command the light to go ON, it will nicely brighten up to the preferred level without going 'NOVA'...

Then, when you command them OFF, they will gently dim to zero.

The best use of the preset dim feature is that of setting a lighting level according to the time of day or 'mode' of the home. For example, late night you might want certain lights to come on to a low light level, different from that you might prefer for evenings or mornings or mid-day.

By 'pre-setting' each lamp to your preference, all of your scripts and scheduled events that affect the lamps, need only send the 'turn ON' command, and the lamps will neatly brighten up to that level.

Two-Way Signalling

Another very valuable feature is the ability for a module to report its current status whenever asked, or whenever the local switch is manually changed.

The implementation of this varies by manufacturer, but with the help of XTension and plug-ins, this can be transparent to the user.

In all cases, the module is able to transmit X-10 signals as well as receive them. This is an important consideration because not only is it a neat feature, it can also be the source of additional signal collisions, as well as 'phantom' signals. (Any unit that can transmit X-10 signals is always suspect when it comes to 'phantoms'...)

The Conundrum

Over 20 years ago, X-10 created and patented both the power line signalling technology, and the 'protocol' or codes used to control and monitor their devices.

In this protocol, there are the more familiar codes for 'turn on', 'turn off', 'dim' and 'bright'. as well as many special codes which anticipated such things as 'preset dim'.

The problem is that there is no 'authority' who demands that all manufacturers employ these codes in the same ways, for the same purposes.

For example, even X-10 chose to use the 'extended code' commands to implement the 'preset dim' and 'group/scene' features of their own two-way dimmer, and RCS chose to employ the 'preset dim' codes to control and monitor their two-way thermostats.

Then along comes the 'SwitchLinc' two-way wall dimmer, and it uses the 'preset dim' codes to implement not only their preset dim feature, but also 'scene' and 'group' controls

Thankfully, XTension is very flexible, and with the help of plug-ins and handlers in the 'Attachments' script, it is possible to mix and match these different modules in a single system with the least amount of bother to the user.

The first 'two-way' Dimmer from X-10

In the Spring of 1997, X-10 delivered the first 'two-way' X-10 dimmer module as well as a two-way Appliance Module. Both of these units have the ability to announce their current status, as well as report local changes.

lamp module
Both the LM14a Lamp Module and
the AM14a Appliance Module
look identical to this picture.
You must check the label on the back.

Responds to:
All Lights ON
All Lights OFF
All Units OFF
Extended Codes for:
--Setting Preset Dim
--Setting up Groups and Scenes
Reports local changes via Extended Code

In an effort to provide a simple method of controlling this unit, XTension provides a special set of verbs:

XPRESS unit to (level) ie: xpress "Kitchen Overhead" to 25
-- This verb commands a LM14a to set its internal preset level to a specified level.
(XTension converts the percentage to the integer level required by the LM14)

ENABLE extended ack for ie: enable extended ack for "Kitchen Overhead"
--This verb commands a LM14a to always respond to explicit X-10 commands such as the 'xpress' command.

DISABLE extended ack for ie: disable extended ack for "Kitchen Overhead"
--This verb commands a LM14a to stop sending auto-acknowledges for every command.
--(Note that there is no way to tell the LM14a to never report 'local' changes.)

How to use the LM14a with XTension

First things First: When you first plug in a LM14a, it will begin to send X-10 messages in an attempt to announce its presence to the home automation controller.
-- ANY command sent to its address will stop these messages, but it is best to send the 'disable extended ack for..." command.

Next, you have two different methods that you can employ to make sure that the light brightens to the desired level at the different times of day.

1. If you want motion sensors to turn on the light, then all you need to do is test the time of day and issue an 'XPRESS' command accordingly.
-- ie: if current time < 6 * hours then xpress "bathroom light" to 25

2. As an alternate, you can create global scripts that set all of your LM14's to certain levels, and then schedule these for different times of day or day of the week.

Note that the LM14a will immediately respond, changing the light level of the lamp when it receives the command. So, if you don't want the lamp to remain on at that time, you will have to send a 'turn off' command too. There is no way to set the internal preset level without turning the lamp on :

xpress "Kitchen Overhead" to 50
turn off "Kitchen Overhead"
xpress "Bathroom Light" to 25
turn off "Bathroom Light"

Special Note for users of the LynX interface:
At the current time, XTension is not able to send the 'extended code' commands to the LynX. In the near future, a new version of the LynX is expected, and XTension will be updated to provide these and other new features.

Leviton 6381 series wall mount dimmers

The Leviton 'Decora' style wall dimmers also respond to the extended code commands, however they do NOT auto-announce local changes.

You can use the 'xpress' command to set their internal preset levels. Therefore you can pre-condition them exactly like the LM14a.

The 'SwitchLinc' -- long-awaited features

In the Spring of 2007, a new wall-mount dimmer switch came out with a combination of features that have been anxiously awaited.

lamp module
The SwitchLinc not only offers the 'preset dim' and 'auto-announcement', as well as group/scene features, but it also is a Decora style wall-mount unit with a delightful 'feel' !

Responds to:
All Lights ON
All Lights OFF
All Units OFF
Status Request
Preset Dim Codes for:
--Setting Preset Dim
--Setting up Groups and Scenes
Reports local changes via Preset Dim

The funny thing is that it employs the standard X-10 'Preset DIM' commands to set its internal modes, rather than the 'extended code' commands used by the LM14.

This should be no problem except that you do have to remember which is which when you have a house with mixed models. The only time you have to make a distinction is when you want to specifically set the 'preset' levels of each. When turning them ON or OFF there is no difference.

Although XTension provides a basic 'preset dim' verb, the task of controlling the SwitchLinc has been made easier by the use of a couple of verb handlers which you can plug into your XTension 'Attachments' script.

The SwitchLinc uses a different method of setting its internal modes, requiring that a special sequence be sent before and after each of these 'maintenance' functions.

For example, in order to set the internal preset level, you must first send a special sequence of 'addresses' to put the unit into the proper mood. Then you send the normal 'preset dim' command, and then you must send another special sequence of 'addresses' to tell it to make that permanent, and turn off the maintenance mode.

This is a big pain and just too much to include in each of your scripts.
So I've made a special 'handler' that makes it a lot easier.

Without going into the special features, it's enough just to let you copy/paste the appropriate AppleScript sequences into your Attachments script.

Click on the link below to see the handler.
The SwitchLinc Preset Dim handler(Updated 10/12/2003)

All you need to do to set the internal preset of the SwitchLinc is to:

SetSwitchLincLevel( "Lamp", 75 ) [where 75 is a percentage 0-100]

This does the same thing for the SwitchLinc that the 'xpress' command does for the LM14a and the Leviton units.

Also of special note is that the SwitchLinc does respond to the normal X-10 'status request' command, however it does not respond with the normal 'status response'. Instead, it returns a response in the 'preset dim' format... sheesh...

As always, there is more to write, and all the above probably isn't clear. But if you have problems understanding this, or you find errors, Please let me know...

Back to Home Page
tutorial index
lighting tutorial
Lighting Tutorial
back to the top

Copyright 2007, Sand Hill Engineering Inc. All rights reserved.

Mac Made

Last modified: October 12, 2003
Michael Ferguson, webmaster@shed.com