Home automation

NB: This project is outdated. Please take a look at replacement http://ala-paavola.fi/Node-RED

Wireless temperature sensors

Recording readings from commercial wireless temperature and humidity sensors.


  • Stand-alone operation, recording data locally to SD-card (planned)
  • Receiving and reporting data from up to 60 concurrent wireless sensors supported.
  • Recording data from 12 sensors.
  • Time synchronization from Internet with NTP
  • Human-friendly wed user interface
  • USB serial interface for instantaneous data logging and visualization with PC


Clas Ohlson sells wireless weather stations with brand UPM. Sensor unit has model marking WT450H and display unit WS2015H. The same hardware is sold with many different brands by different retailers. The system uses 433 MHz frequency band, with unknown modulation.

WT450H WS2015H WT450H opened
UPM WT450H sensor and WS2015H display unit

It's easy to recognize the radio module inside display unit. It's connected to the main board with three wires: +3VDC, Data, and GND. Which are connected as shown in the table.

RF pin Arduino pin Description
V 3V 3VDC supply power
R D2 Data signal
G GND Power ground

Arduino is a nice commercial open source SW+HW project. Very easy to start with good library routines for peripherals and add-on modules. One of the extension modules is Ethernet-shield that can snap-on a top of the Arduino board. Ethernet-shield contains socket for micro-SD memory card.

ArduinoBoardDuemilanove ArduinoEthernetShield
Arduino Duemilanove & Ethernet shield

Arduino Duemilanove is discontinued and replaced by Arduino Uno, which is pin and function compatible.


The communication protocol of the wireless weather station is reverse-engineered by Swedish and Norwegian heat-pump activists Johan Adler and Øyvind Kaurstad. The protocol definition is available at Swedish heat-pump forum. Here is a local back-up copy of the wt450h protocol.

This software is implemented with Arduino SW version 0022. Integrated Ethernet and SPI libraries are used. Additional Time library is needed from Arduino Playground.

Web interface

The device has hard coded IP address ( by default). What ever request comes to the http-port 80, the main web page reporting readings is returned. You may try telnetting to port 80 and just press the enter to receive the html code.

Screenshot of web user interface

USB Serial Interface

The devices reports three kind of messages: Info, Data, Error messages.

  • Info: More like a debug messages, should not be parsed by any PC program
  • Data: Instantenous readings from wireless sensors
  • Error: Error messages of some sort

The syntax of data messages is as follows:

Data: NET:1 ID:2 RH:47 T:22.5 DATE:2011-02-21 TIME:20:40:20
NET:   Home network number 0-14
ID:    Sensor device number 0-4
RH:    Relative humidity 0-100%
T:     Temperature in Celsius
Date:  Timestamp of the readings (UTC)
Time:  Timestamp of the readings (UTC)

Network numbers are substracted by one, to map from 1-15 to 0-14. Network number 0x00 is not used.

Source code

wirelesstemp_0_1.tgz 27.2.2011
Release note:
Implemented features: RF receive, USB serial reporting, Ethernet support, local clock with NTP sync, min/max counting, http server.
Missing functions: RF message checksum evaluation, average computation, SD storage, fetching data from SD card over the network.

Improvement ideas: each sensor transmits the signal 3 times consequently. One could implement an error correction algorithm trying to fix bit errors of weak transmission by comparing those three transmits.

Roadmap: Implement Linux service that receives readings from USB terminal and represents them in file system the same way as owfs does using Fuse library.

wireless.txt · Last modified: 2014/12/19 23:07 by jap
Recent changes RSS feed CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki