User Tools

Site Tools



Multiple Interfaces

In the beginning there was only X10. It was a powerline only protocol, meaning that it had no remotes or motion sensors, it did not operate wirelessly, it was only controllers and modules. They communicated in the same way that X10 does today via pulses of information over the powerline wiring. Early on X10 began offering interfaces for computers to connect. These first interfaces date back to the 80's. I had an “apple cat” modem for my Apple ][e that had an option for connecting a special interface transformer to send X10 commands.

simple X10 history lesson

There was only the computer and any plug in mini-controllers you might have sending signals, and your modules listening for them. The next major step forward was the adding of wireless devices to the mix. Remotes and things like wireless motion sensors entered the mix. however they all still connected to regular X10 devices via the powerline and you had to have a transceiver to listen for wireless X10 signals and retransmit them as wired powerline signals.

Apart from the 2 way X10 pro modules that could transmit changes in dim level at a switch or that a lamp module had been turned on by local control the communication between the computer and the modules was almost all one way. Now that we've added these new wireless/wired devices in the mix the path became 2 way. You push the button on the remote, it sends a wireless signal to the transceiver which repeats it on the powerline which turns on the light, or which talks to the computer which turns on lights in response. Since the wired and wireless devices shared the same messages and addresses you could just assign address B1 to your hawkeye motion sensor and also assign address B1 to the lamp module and the state of motion will cause the light to turn on and off.

This is actually quite clever, getting everything to work together without a computer or any kind of intelligent controller. But with a computer in the mix you have a lot more potential that you cannot do without it. What if you want the lamp to come on for a few hours in the evening as well as responding to motion. Well there are X10 timers, but they wont work for this application because they aren't smart. The timer can send an ON signal at dusk, but as soon as you walk past the motion sensor and send another on, the motion sensor will send an off which will turn the light off while the timer still thinks it's on.

The only way to deal with this is to use logic in the computer and assign different addresses to the motion sensor and the lamp. You dont want the lamp to be directly linked to the motion sensor as you want to be able to change it's behavior from whats offered with the simple devices.

The advent of the separate wireless receiver freed us from having to repeat wireless signals over the powerline and greatly increased the speed of sending signals and greatly reduced the number of potential collisions on the powerline. It also meant that wireless units didn't have to correspond to the wired device that they wanted to control. Now the wireless and wired realms were completely separate, and could be treated separate within XTension. We called this Separate Address Spaces. It already applied to Security units as they picked their own address out of your control and it already sort of applied to wireless units via the round about “allow wireless” flag. Instead of continuing with multiple flags and sharing the same addresses though, we decided to make a clean break from the legacy idea of having a wireless and wired units share the same address.

This frees you from being limited to just the single X10 style address list. You may think that you'll never use them all, but then you'll order one of those 5 for 1 packs of palm pads and realize that in order to use them you have to compact all your addresses on the physical units in order to fit them in. Using separate address spaces means that your programming for the remotes and motion sensors need never be limited to just on/off. It also means that you'll never have to take that wall switch faceplate off again to change the address to make it work with a remote or a motion sensor. You'll do all that in very simple scripts in XTension instead.

If we're not limited to a single address space for X10, then there is no reason not to add all sorts of other interfaces. Data capture, other wired and wireless protocols and none will ever bump into each other. They will only expand the capabilities and not limit the ones you've already got. If you're starting from scratch in XTension then you'll never miss the old combined address space. If you're upgrading an old install then it's well worth the work to separate out your units and fix up the scripting to support this. A little work during the transfer will open you up for easy expansion from here on out.

getting_started/history.txt · Last modified: 2009/07/16 14:47 (external edit)