X10Client - Java user-interface for controlling X10 devices

Control X10 capable devices from anywhere on your network, incliuding from your Sharp Zaurus equiped with a Wireless Network CF Card.
Sharp Zaurus Screenshot



To utilize the capabilities of the X10Client you first need to install the X10Server which also requires purchasing a CM11A (available in the "ActiveHome" package), or 'FireCracker' CM17A, computer interface module from X10 , plus several X10 capable devices for the X10Server to control.  See also SmartHome.com and search for other X10 capable switches and devices.

The X10Client was designed specifically for the Sharp Zaurus PDA, but will work on any system that supports Java.
Note: While the look and feel of this AWT application should appear the same on all Java platforms, this application was visually optimized for the Zaurus and may appear differently on various non-Zaurus platforms.

General Installation:

Sharp Zaurus Installation:

Note: The X10Client requires a network connection to be able to communicate with the X10Server.  While the Sharp Zaurus can be configured to work over its USB docking station, practicality suggests that the Zaurus be equiped with a Wireless Network CF Card so that it can be used without having to be hardwired to the network.


Start X10Client Java application with 'bin/runX10Client[.bat]', or on the Sharp Zaurus, click on the X10 icon in the 'Applications' tab.
Here's a screenshot of the X10Client application running on the Sharp Zaurus.

To configure the X10Client to properly communicate with the X10Server, select the option "X10 Server Properties..." from the "Files" menu.  Enter the IP address or name of the host running X10Server.  Enter the Command Port which the X10Server is using to receive X10 commands.  Optionally, enter the Log Port to which the X10Server is broadcasting X10 events (this requires that the X10Server is configured to broadcast X10 events on a specific port, either to the specific host running X10Client, or to a general subnet broadcast address.  X10 events are considered informational only, thus the X10Server broadcasts X10 events via UDP packets.  This means that any client listening to X10 events isn't guaranteed to receive a specific event, but in practice few X10 event packets are ever lost).  Click 'OK' when the server configuration is completed.

To edit your custom defined house/unit code aliases, select the option "Edit HouseCode Names..." from the "Files" menu.  For each house/unit code alias you wish to enter, select the desired House/Unit codes from the pull-down menus, enter a brief description in the text field, then click "Add".   To remove an item, select it with the mouse (or stylus), then click "Remove".  When finished, click "OK".


To specify a house/unit code address, you may select the "Name" radio button and a desired predefined house-code name from the pull-down menu, or select the "House/Unit" radio button and a specific house/unit code address.  Send a command to the selected X10 address by clicking one of the following buttons:


The X10Client sends the command to the X10Server over the local-area-network, which then forwards the command to the X10 CM11A computer interface over the serial interface, which then sends the command over the house wiring to the individual X10 capable devices.  As a result there is latency of about 1 second between the time the command is sent by the X10Client and the time the X10 device actually responds to the command.

As the X10Client sends commands to X10Server, they will be shown in the "X10 Event Log:" text area prefixed with "Send->".  Also, if the X10Server has log broadcasting enabled, and the proper "Log Port:" has been specified, then X10 events broadcasted from the X10Server will also be shown in the "X10 Event Log:" text area prefixed with "<-X10:".  Log messages coming from the X10Server may be one of the following types:
        <X10> - X10Server has received an X10 command coming from another X10 transmitter device.
        <event_macro> - An event based macro was executed.
        <timer_macro> - A timer based macro was executed.
        <command> - X10Server has received a command to execute.
        <notify> - X10Server has executed a 'Notify' command.
        <error> - X10Server has detected an error.

By configuring the X10Server to recognize a command and trigger a macro, you can have the X10Server begin execution of a series of commands triggered by a single command sent by the X10Client.  For instance, assume the following macro is defined on the X10Server (X10Server/conf/X10.conf).

<on D1> on A 3 4; off A 5 6 7;
If  D-1 is sent an ON command from the X10Client, then the X10Server will receive this event and invoke the corresponding macro in which A3/A4 will be turned 'on', and A5/A6/A7 will be turned 'off'.  Other configuration options are also possible.  See X10Server and the X10Server config file 'X10Server/conf/X10.conf' for more information.


Questions? Comments?  Let me know what you think!  Contact me at: mflynn@usa.net

Copyright (c) 2002 Martin D. Flynn