In my underfloor heating project, using Node-RED, I have to have one sensing thermometer per room/zone, seems to be 8 in total, so therefore it would be nice with a wireless battery sourced device with good resolution and frequent updates.
During the test phase I used a Z-way device but the resolution was pretty bad. Another device mentioned is the Ruuvi tag but since it's a bluetooth device the transmitting range could be better.
After some googling I went for 433 MHz devices.
After some googling I went for 433 MHz devices.
Thermometer
For some years ago I used a Tellstick for home automation and also had some ESIC WT450(WT) thermometers. They where still working so how to receive their data sent over 433 MHz ?
RTL-SDR
Another project have been receiving AIS data with a RTL-SDR so after some search I found an amazing package, rtl_433, decoding over 150 device protocols including my WT.
In the beginning of the tests I had some problem receiving data from the sensors due to that I used an antenna from the mentioned Tellstik device. When I built my own dipol antenna, check picture, it worked much better.
I built the dipol from a cut SMA coaxial cable and 2 wires from a ordinary 230 VAC cable. Please note that the length should be changed from 49 cm to 16,5 cm. I soldered the connections, instead of the choc block, and used heat shrink tubing to isolate.
Warning
I hade big problems to receive any data when this setup was used with a Raspberry Pi 5. Check out this post and search for "Warning" to get some hints to make it work !
Installing
Installing on Raspberry Pi(RPi), with OS Bookworm, it's easy since there is a ready package
sudo apt install rtl-433
For other versions check the help or compile the latest version yourself.
Test
Start with just checking the command help
rtl_433 -h
and then check your environment with
sudo rtl_433
Probably you will discover that also your neighbors have 433 devices.
Checking the device list, in the help command, I saw that my WT device had id "33". So with the command
sudo rtl_433 -R 33
I filtered out everything except my own device.
For other command use just check the fantastic documentation.
Node-RED
The application for the underfloor heating project is using Node-Red(NR) so the first idea I got was to use the "exec" node, executing "sudo rtl_433 -R 33 -F json" and then use the output to retrieve the temperature.
But I found the "node-red-contrib-rtl_433" node which have a nice interface and will output the temperature as
"msg.payload.temperature_C"
Another way
It could be that you want to send the out data to some other place ? The command below sends the output to local host, but it could be another host, on port 1433. Using NodeRed, just set up a UDP in node, port 1433, to receive the data.
socat -u EXEC:"/usr/local/bin/rtl_433 -R 33 -F json" UDP-SENDTO:127.0.0.1:1433
Wrap up
Sensor resolution
The resolution for my WT devices where good enough but the accuracy could be better. I used a referens thermometer and then applied an offset to the measured value.
Compact install
sudo apt install librtlsdr-dev cmake
wget https://github.com/merbanan/rtl_433/archive/refs/heads/master.zip
unzip master.zip && mv rtl_433-master rtl_433
cd rtl_433
cmake -B build
sudo cmake --build build --target install
which rtl_433
/usr/local/bin/rtl_433
No comments:
Post a Comment
Feel free to leave a comment ! ... but due to a lot of spam comments I have to moderate them. Will reply ASAP !