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.

Features:


Hardware

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.


Software

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 (192.168.1.177 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
Screenshot of web user interface

USB Serial Interface

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

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.