Remote temperature 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).
  • A 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 fromControlByWeb.
  • Pipe heat tapes, of the kind you wrap around water pipes in the crawl space.  Remember to install them properly, and insulate the pipes.  My heat tapes consumed 350W when on: this is why I put them on thermostat control rather than leaving them always on.
  • A 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.

In the figure, the house thermostat is on the left, and the fail-safe one on the right.  Below the thermostats is the combined temperature and humidity sensor 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 here. 


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 5.0C; 
    • the in-house humidity is above 60%; 
    • 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 5.5C; 
    • the in-house humidity is below 55%; 
    • the crawl space temperature is above 3.5C. 
When relay2 is set to Reheat mode, the logic should be similar, but the thresholds for in-house temperature are 17.2C and 17.7C respectively. The pipe heaters, controlled by remote relay 1, switch on for 5 minutes whenever the pipe temperature is below 4C.  The pipe heaters do not activate if the controller is in at home mode: they are not needed, and I don't like electricity that close to my pipes when I am in the house.

To obtain this behavior, we rely on the X300′s ability to be programmed via BASIC scripts; the script we use is attached to this page.  The variables used in the script have the following functions:


  • t0: enforce min off
  • t1: enforce min on
  • t2: enforce max on
  • t3: pipe heater min off / on


  • relay1: heating on/off
  • relay2: low/high remote temp
  • relay3: local/remote mode
  • rmt_relay1: pipe heater


  • temp1: House
  • temp2: House RH
  • temp3: Pipes
  • temp4: Crawl space


  • a: next relay state
  • b, c: threshold for inside temp
  • d: whether the pipe heates are on
Luca de Alfaro,
Nov 17, 2014, 8:31 PM
Luca de Alfaro,
Aug 9, 2011, 2:33 PM