Automatic (and remote) thermostat control

We describe here how to install in your house a control sytem for the thermostat, and optionally for pipe heaters in the crawl space.  The control system enables you to switch at the press of a (web) button from a local mode, where the temperature is controlled by the usual wall thermostat, to a remote mode, in which the house heating is controlled in such a way that:

  • The inside temperature is always above freezing.
  • The crawl space and water pipe temperature is always above freezing.
  • The humidity inside the house is below a specified level.

The remote mode has two sub-modes: a hibernate mode, used to save on heating when the house is unoccupied, and a reheat mode, useful to bring the house back to normal temperaure before your arrival.

Moreover, we wanted to be able to control the heating remotely via a web interface, to reheat the house before going there: it’s much nicer to arrive at a warm, cozy house, rather than at one that is barely above freezing!


Before putting the control system in place, we ensured that the crawl space was well insulated; this helps keep it warm even though it is not heated directly.  The previous owners had installed heating tape on all the pipes, so that part was easy.


  • The house thermostat. This thermostat controls the house temperature when the controller is in at home mode.   We wanted to have a simple, direct control: when one is cold at night, it’s much easier to walk up to the wall thermostat and raise a bit the setting, than to power up a laptop, log into a web page, and change the settings there.
  • An additional, fail-safe thermostat. This thermostat shuts off the heating when the house is above a prescribed temperature.  This thermostat serves a purely safety function: even if the controller goes crazy, the house will not burn down (it might, of course, freeze over).
  • ControlByWeb X300 web-enabled thermostat.  This is the heart of the control system: the X300 is in charge of switching between at home and away modes, and is in charge of controlling the temperature in away mode.  The X300 is a programmable thermostat which connects directly to the ethernet, and which can interface to up to 8 temperature / humidity sensors.  The X300 has three relays, which can be used to switch the heater on / off.
  • Temperature and humidity sensors. We placed one temperature and humidity sensor in the house, one temperature sensor in the crawl space, and one attached to the water pipes in the crawl space.  The sensors for the X300 also come from ControlByWeb.
  • ControlByWeb WebSwitch, used to switch on and off the pipe heat tapes.
  • CAT-3 cable for the sensors, and 20-gauge 2-connector cable for the heating control.
  • Network switch, ethernet cables. If you want to be able to control the thermostat remotely, you need to configure the network for remote access.  We will explain elsewhere how to do this.
  • Power strip for connecting the pipe heaters to the output of the WebSwitch.

Installing the sensors

You need to solder, or connect, the X300 sensors to the CAT-3 cable.  A CAT-3 cable contains two pairs of twisted wires.  We used the two solid-color wires, connected together, for ground, the white-blue wire for signal, and the white-orange wire for +5V.   You also need to connect the thermostats and the heater to separate strands of 20-gauge thermostat wire.  All these wires should lead to the X300 controller, which in our case, is located in the crawl space of the house, along with the web switch for the pipe heating tapes, and with an ethernet switch to provide the X300 and the Webswitch with network connection.

The house thermostat is on the left, and the fail-safe one on the right. Below are the combined temperature/humidity sensors for the X300.

The tape heaters for the pipes are plugged into outlet 1 of the Webswitch.  The X300 sensors were configured as follows:

  1. Interior temperature
  2. Interior relative humidity
  3. Pipe temperature
  4. Crawl space temperature


In the X300, we use relay 1 to switch the central heating on / off, and we use relay 3 to switch from at home to away modes, and vice versa.  Relay 2 is used to select between the Low heat setting, and the Reheat mode.  The connections are as depicted below.


The details of the configuration of the x300 are best explained by the following screenshots.



When the X300 is in away mode, and relay2 is set to Low, we would like the X300 to behave as follows:

  • The heater (controlled by relay1) switches on whenever the heater has been off for at least 5 minutes, and at least one of the following conditions holds:
    • the in-house temperature is below 6.5C;
    • the in-house humidity is above 65%;
    • the crawl space temperature is below 2.8C.
  • The heater switches off when it has been on for 20 minutes, or when it has been on for at least 5 minutes, and all of the following conditions hold:
    • the in-house temperature is above 7.0C;
    • the in-house humidity is below 60%;
    • the crawl space temperature is above 3.8C.

When relay2 is set to Reheat mode, the logic should be similar, but the thresholds for in-house temperature are 17C and 17.5C respectively.  The pipe heaters, controlled by remote relay 1, switch on for 5 minutes whenever the pipe temperature is below 4C.

To obtain this behavior, we rely on the X300’s ability to be programmed via BASIC scripts; the script we use is available here.