1-Wire LUX9000 Thermostat Monitor


Table of Contents

  1. Overview
  2. Downloads
  3. Hardware
  4. Installation
  5. Software
  6. Future

Overview

This application demonstrates monitoring the LUX9000 Thermostat by utilizing the 1-Wire Network communication port of the TINI platform.

1-Wire addressable switches are used to read the state information from the accessory port of the LUX9000 Thermostat. The protocol to read out this port was graciously provided by LUX. (Thank you LUX!)


LUX9000 and TINI

Here is the description of the LUX unit from their web site. We found ours at Home Depot! http://www.luxproducts.com/thermostats/tx9000.htm

The monitoring is done through a web browser. Here is a screen snapshot of the Thermostat monitor. See the `Software#software' section for more details on it's operation.


Thermostat Monitor applet screen capture

As you can see, at 11:10 on Friday, the unit is running, trying to achieve a temperature of 76 degrees Fahrenheit with the current temperature being 75.0.


Downloads


  Hardware 

The hardware consists of a TINI communicating to an interface board that connects to the LUX unit.

Hardware Overview

The interface board contains (3) DS2406's that connect to the LUX accessory port and (1) DS2433 for tagging information. This board allows the LUX9000 to be a 1-Wire 'node' on the network.

The 1-Wire and power is provided through the RJ-12 connection from TINI. Note the ground 'tail'.


1-Wire Interface board (top)


1-Wire Interface board (bottom)
Note the 4 pin header that plugs onto the accessory port of the LUX9000.

The Schematic can be downloaded here:
1-Wire LUX Schematic

The PCB can be downloaded here:
1-Wire LUX PCB


Installation

The board was designed to give access to a standard RJ-12 1-Wire port out the back of the unit.


LUX9000 Thermostat (back)


Accessory header where the board will mount


Board mounted to accessory header


Ground `tail' inserted between battery and contact


Closed unit with RJ-12 accessible out the back

Software

The software consists of a 1-Wire application called `ThermostatMonitor' running on TINI that listens on a network port (7777) for a socket connection. Once a connection has been established then the monitor updates the new socket every time a change in the Thermostat occurs. The entity on the other end of this socket is a Java Applet running in a browser. Here is the overall software flow:

Software Overview
Download source:
1-Wire LUX Source


Socket Communication

The socket communication is simple text read-line write-line. The consequence of this is the ThermostatMonitor socket server can be linked up to a simple telnet session.

For example:

c:\>telnet my_tini 7777

Telnet Screen

Note that the first message that is recieved is the version of the server. The type of message is denoted by the first character. Here are the available types of messages.

From Server to Client

  • V version
  • X exception
  • Everything else is parsible data

    From Client to Server

  • X kill socket

    Build

    Each sample directory contains batch files to build and deploy the applications. The batch files require the following environment variables be set before use:

  • MY_TINI - name or IP of the TINI to deploy to
  • TINI_HOME - absolute path to the TINI distribution
  • OWAPI_HOME - absolute path to the 1-Wire API distribution

    The source is divided up into the following build directories:

  • ThermostatMonitor - base classes to monitor the Thermostat
  • ThermostatSocketServer - Socket listner that uses ThermostatMonitor
  • ThermostatApplet - Applet to run in remote browser
  • SimpleTINIWebServer - Simple Web server to run on TINI

    Deploy

    When using the 'deploy' batch files, the following 4 files will be copied to TINI:

  • tiniweb.tini - simple web server
  • tserv.tini - Thermstat Server
  • webroot/index.html - main HTML that brings in applet
  • webroot/ThermostatApplet.jar - applet

    Run

    To start the application:
    TINI> java tiniweb.tini &
    
       TINI> java tserv.tini
    To stop the Thermostat server application, hit 'ENTER' at the telnet prompt. To stop the web server, connect on port 6666.


    Future

    This current implementation can only monitor the Thermostat and not set any of the values. We have experimented with a unit that simulates `key' presses to set the trip values. LUX is in the process of changing the firmware of this unit to allow updates through the accessory port. When this unit is available this same board will be able to interface with it.

    Another step forward will be realized with the introduction of the DS2408. This is an 8-channel version of the DS2406 allowing the (3) DS2406's to be replaced with ONE chip!