NB: This project is outdated. Please take a look at replacement http://ala-paavola.fi/Node-RED
Recording readings from commercial wireless temperature and humidity sensors.
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.
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|
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.
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.
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.
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.
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.