Tutorial - rtl_433 brings 433MHz sensors to openHAB

Tags: #<Tag:0x00007f61734b0920> #<Tag:0x00007f61734b06a0> #<Tag:0x00007f61734b05b0>

The maintainers of rtl_433 are doing a great job and I received excellent support recently which helps simplifying the integration of 433MHz sensors into openHAB.

One of my recent feature requests just needed a few minutes to get picked-up and implemented. Amazing!

To give something back to them, I just published a HowTo how I did the integration with openHAB on their Wiki to help others.

I’d like to share the link here too since I assume that some members are still wanting to integrate 433MHz sensors and looking for cheap alternatives to RFXCom rfxtrx433 or even RFlink

I do not want to replicate the content here, just roughly what’s described there:

  • receive sensor data by rtl_433 decoded either via a predefined (“built-in”) decoder or via a “flex-spec”-decoder for less common devices
  • prepare/prettify the data to get clean mqtt topics and support easy integration
    making transformations superfluous at the openHAB side in most cases
  • publish the data
  • making the rtl_433 service starting automatically
  • how to prepare things/items on openHAB to consume the 433MHz-sensor data

EDIT: updated the tutorial to …

  • support ISO-time topics for direct use in DateTime items

Here’s the full post:

6 Likes

soory i did not understand the hardware part here…

but looking around for rtl_433 i can see that this is SDR dongle?
so now we can connect it to OH by USB?
will it work also on windows?
will it work for all 433 devices? PIR/Smoke/Leak/Door sensor

this looks cool ! i am using Sonoff RF bridge till now… very limited i can only get codes
no Data …

Same question…

Is there a how to for the hardware part too? Do you have to solder or is there a cheap use-ready hardware out-of-the-box?

What about the range of this receivers?

The hardware is a dead cheap USB-DVB-T stick which can act as a software defined radio. No need to solder anything :wink:

I do use a specific 433MHz antenna but the included antenna is working well too. It’s just larger.

Range is excellent. Same in my setup or even better than rfxtrx433e which I use too (e.g. two concrete walls in between my Alecto WS1200 and the rtl_433).

I’m not sure. I’ve seen a Windows port of it, but never tried. I usually take a old Pi with Raspbian and let them talk to my MQTT broker. This gives the option to place it in a good position for the radio…

Depends on the used “protocol”. For the well known protocols, its easy to get decoded readings out of the box. Some others can be used with a “flex decoder”. This requires more work. But the rtl_433 team is quite helpful on that…

Remark: Since this is just a receiver, you can receive sensor values BUT you can’t send out commands e.g to a 433MHz smart plug. Just to avoid wrong expectations :wink:

And: It’s not limited to 433MHz (despite the name) 868 is supported too …

But is the DVB-T Receiver 868Mhz ready too?

Is there a port for esp8266? A Raspi only as a 433mhz-bridge is a bit oversized…

What about Sonoff RF Link with Tasmota? Is this usable too? Or would this be even a better/cheaper solution?

Answer:

I’m not sure, how do you intend to connect a USB stick to an esp8266 :wink:
And: If you have managed to get some radio working on an esp8266, you still need to do the demodulation and decoding. This is what rtl_433 is doing with the DVB-T stick.

This depends on the use case. I just said, that I’m doing it on a…

You may find the right solution for your requirements :wink:

Btw.: The OP was put here to share some information how to simplify rtl_433 integration if somebody is interested in doing it.

It was not ment to convince sbd. to use rtl_433. There are numbers of other possible ways: Rfxcom, rflink or even the SonoffRF to name a few of them. All have their strenghts …
I have tried all of the four named :sunglasses:

I only want to have a small cheap solution to read out a 433 mhz weatherstation, so i could buy only the outside-part of the weatherstation - as spare part it is about 20-30 Euro - the wohle weatherstation is about 100 Euro…

So i´m looking for the best receiver solution. My oh server is in the basement of the house, so i need a separate device for better receiving the signal.

It was not clear in your former posting if only the software part is 433 and 868 mhz ready or if the hardware DVB-T-stick is 868 capable too…

You say, you have tested all 4 of them. Could you tell me, which one is better for only reading out the weather station? Sonoff RF or rtl_433 and why? (The other two are to expensive for my needs)

To be honest, I did not managed making any use of the SonoffRF for decoding my sensors (Alecto, Oregon Scientific, etc.). If you rule out the other two due to the price, remains just rtl_433 from the above…

If you have a Linux based system for openHAB already, I’d give rtl_433 a try. I got one of my DVB-T sticks for about 10€ - so nothing to worry about if it not fit your needs finally…

But: Check for your preferred weather station protocol first if it is included in rtl_433 already (or buy sensors, which are supported :wink: ):

	= Supported device protocols =
[01]  Silvercrest Remote Control
[02]  Rubicson Temperature Sensor
[03]  Prologue Temperature Sensor
[04]  Waveman Switch Transmitter
[06]* ELV EM 1000
[07]* ELV WS 2000
[08]  LaCrosse TX Temperature / Humidity Sensor
[10]* Acurite 896 Rain Gauge
[11]  Acurite 609TXC Temperature and Humidity Sensor
[12]  Oregon Scientific Weather Sensor
[13]* Mebus 433
[14]* Intertechno 433
[15]  KlikAanKlikUit Wireless Switch
[16]  AlectoV1 Weather Sensor (Alecto WS3500 WS4500 Ventus W155/W044 Oregon)
[17]  Cardin S466-TX2
[18]  Fine Offset Electronics, WH2, WH5, Telldus Temperature/Humidity/Rain Sensor
[19]  Nexus Temperature & Humidity Sensor
[20]  Ambient Weather Temperature Sensor
[21]  Calibeur RF-104 Sensor
[22]* X10 RF
[23]  DSC Security Contact
[24]* Brennenstuhl RCS 2044
[25]  Globaltronics GT-WT-02 Sensor
[26]  Danfoss CFR Thermostat
[29]  Chuango Security Technology
[30]  Generic Remote SC226x EV1527
[31]  TFA-Twin-Plus-30.3049, Conrad KW9010, Ea2 BL999
[32]  Fine Offset Electronics WH1080/WH3080 Weather Station
[33]  WT450, WT260H, WT405H
[34]  LaCrosse WS-2310 / WS-3600 Weather Station
[35]  Esperanza EWS
[36]  Efergy e2 classic
[37]* Inovalley kw9015b, TFA Dostmann 30.3161 (Rain and temperature sensor)
[38]  Generic temperature sensor 1
[39]  WG-PB12V1 Temperature Sensor
[40]  Acurite 592TXR Temp/Humidity, 5n1 Weather Station, 6045 Lightning
[41]  Acurite 986 Refrigerator / Freezer Thermometer
[42]  HIDEKI TS04 Temperature, Humidity, Wind and Rain Sensor
[43]  Watchman Sonic / Apollo Ultrasonic / Beckett Rocket oil tank monitor
[44]  CurrentCost Current Sensor
[45]  emonTx OpenEnergyMonitor
[46]  HT680 Remote control
[47]  Conrad S3318P Temperature & Humidity Sensor
[48]  Akhan 100F14 remote keyless entry
[49]  Quhwa
[50]  OSv1 Temperature Sensor
[51]  Proove / Nexa / KlikAanKlikUit Wireless Switch
[52]  Bresser Thermo-/Hygro-Sensor 3CH
[53]  Springfield Temperature and Soil Moisture
[54]  Oregon Scientific SL109H Remote Thermal Hygro Sensor
[55]  Acurite 606TX Temperature Sensor
[56]  TFA pool temperature sensor
[57]  Kedsum Temperature & Humidity Sensor, Pearl NC-7415
[58]  Blyss DC5-UK-WH
[59]  Steelmate TPMS
[60]  Schrader TPMS
[61]* LightwaveRF
[62]* Elro DB286A Doorbell
[63]  Efergy Optical
[64]* Honda Car Key
[67]  Radiohead ASK
[68]  Kerui PIR / Contact Sensor
[69]  Fine Offset WH1050 Weather Station
[70]  Honeywell Door/Window Sensor
[71]  Maverick ET-732/733 BBQ Sensor
[72]* RF-tech
[73]  LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3 sensor
[74]  Acurite 00275rm,00276rm Temp/Humidity with optional probe
[75]  LaCrosse TX35DTH-IT, TFA Dostmann 30.3155 Temperature/Humidity sensor
[76]  LaCrosse TX29IT Temperature sensor
[77]  Vaillant calorMatic VRT340f Central Heating Control
[78]  Fine Offset Electronics, WH25, WH32B, WH24, WH65B, HP1000 Temperature/Humidity/Pressure Sensor
[79]  Fine Offset Electronics, WH0530 Temperature/Rain Sensor
[80]  IBIS beacon
[81]  Oil Ultrasonic STANDARD FSK
[82]  Citroen TPMS
[83]  Oil Ultrasonic STANDARD ASK
[84]  Thermopro TP11 Thermometer
[85]  Solight TE44
[86]  Wireless Smoke and Heat Detector GS 558
[87]  Generic wireless motion sensor
[88]  Toyota TPMS
[89]  Ford TPMS
[90]  Renault TPMS
[91]  inFactory
[92]  FT-004-B Temperature Sensor
[93]  Ford Car Key
[94]  Philips outdoor temperature sensor (type AJ3650)
[95]  Schrader TPMS EG53MA4, PA66GF35
[96]  Nexa
[97]  Thermopro TP08/TP12/TP20 thermometer
[98]  GE Color Effects
[99]  X10 Security
[100]  Interlogix GE UTC Security Devices
[101]* Dish remote 6.3
[102]  SimpliSafe Home Security System (May require disabling automatic gain for KeyPad decodes)
[103]  Sensible Living Mini-Plant Moisture Sensor
[104]* Wireless M-Bus, Mode C&T, 100kbps (-f 868950000 -s 1200000)
[105]* Wireless M-Bus, Mode S, 32.768kbps (-f 868300000 -s 1000000)
[106]* Wireless M-Bus, Mode R, 4.8kbps (-f 868330000)
[107]* Wireless M-Bus, Mode F, 2.4kbps
[108]  Hyundai WS SENZOR Remote Temperature Sensor
[109]  WT0124 Pool Thermometer
[110]  PMV-107J (Toyota) TPMS
[111]  Emos TTX201 Temperature Sensor
[112]  Ambient Weather TX-8300 Temperature/Humidity Sensor
[113]  Ambient Weather WH31E Thermo-Hygrometer Sensor
[114]  Maverick et73
[115]  Honeywell ActivLink, Wireless Doorbell
[116]  Honeywell ActivLink, Wireless Doorbell (FSK)
[117]* ESA1000 / ESA2000 Energy Monitor
[118]* Biltema rain gauge
[119]  Bresser Weather Center 5-in-1
[120]* Digitech XC-0324 temperature sensor
[121]  Opus/Imagintronix XT300 Soil Moisture
[122]* FS20
[123]* Jansite TPMS Model TY02S
[124]  LaCrosse/ELV/Conrad WS7000/WS2500 weather sensors
[125]  TS-FT002 Wireless Ultrasonic Tank Liquid Level Meter With Temperature Sensor
[126]  Companion WTR001 Temperature Sensor
[127]  Ecowitt Wireless Outdoor Thermometer WH53/WH0280/WH0281A
[128]  DirecTV RC66RX Remote Control
[129]* Eurochron temperature and humidity sensor
[130]* IKEA Sparsnäs Energy Meter Monitor
[131]  Microchip HCS200 KeeLoq Hopping Encoder based remotes
[132]  TFA Dostmann 30.3196 T/H outdoor sensor
[133]  Rubicson 48659 Thermometer
[134]  Holman Industries WS5029 weather station
[135]  Philips outdoor temperature sensor (type AJ7010)
[136]  ESIC EMT7110 power meter
[137]  Globaltronics QUIGG GT-TMBBQ-05
[138]  Globaltronics GT-WT-03 Sensor

( check full post for recent updates: https://github.com/merbanan/rtl_433)

All my sensors which have been among the listed worked at the first try.
As I wrote in a former post, creating a “flex spec” is a bit more hassle. But I received a very good support from the rtl_433 maintainers (Thanks: Christian!) which helped me to specify two flex decoders for a PIR and a 4-Button-Remote.

Good idea! So did I too :wink:
Just buy the replacement sensors and leave the (mostly) ugly indoor displays…

Well, that’s exactly my use case :slight_smile:
Therefore I have dedicated a old Pi with read-only filesystem to host all the radio modules (433MHz, Zigbee, Zwave). This one is placed in a more RF-friendly location upstairs.

I haven’t tried 868Mhz yet (no need so far). But rtl_433 can set the frequency across a wide range supported by the particular DVB-T stick. The stick provides a digitized sampling data stream which can be processed (demodulated, decoded) by software. That’s the beauty of the “software defined radio”:

Specifications

The frequency range is highly dependent of the used tuner, dongles that use the Elonics E4000 offer the widest possible range (see table below) .

Tuner Frequency range
Elonics E4000 52 - 2200 MHz with a gap from 1100 MHz to 1250 MHz (varies)
Rafael Micro R820T 24 - 1766 MHz
Rafael Micro R828D 24 - 1766 MHz
Fitipower FC0013 22 - 1100 MHz (FC0013B/C, FC0013G has a separate L-band input, which is unconnected on most sticks)
Fitipower FC0012 22 - 948.6 MHz
FCI FC2580 146 - 308 MHz and 438 - 924 MHz (gap in between)

(source: https://osmocom.org/projects/rtl-sdr/wiki/Rtl-sdr)

Well, it can receive just one frequency at a time. But it can hop between frequencies. If you just have weather sensors where one valid reading per e.g 10 minutes is sufficient, then you may consider switching between 433 and 868 every ten minutes (which is the default for rtl_433), see:

[-f <frequency>] Receive frequency(s) (default: 433920000 Hz)
[-H <seconds>] Hop interval for polling of multiple frequencies (default: 600 seconds)

As I said: I haven’t tried myself :wink:

I assume suggesting an DVB-T dongle is because it often comes with an remote which is 433mhz. And the DVB-T will have an 433mhz receiver, right? But doesnt it still gives problem with the protocols?

No. It’s not because of the remotes. These are infrared based btw. :wink:

But:
The chipset inside the dvb-t sticks mentioned above have a SDR-feature (“software defined radio”). The rtl-sdr project make use of it:

https://www.rtl-sdr.com/about-rtl-sdr

Hmm thats smart… I just need a dumb 433mzh receiver which can receive my stupid doorbell button and send it to openhab. It seems like this is might do, (beside I have no idea how to handle the software).

Well, that’s what the tutorial is about… :wink:
See the link in the initial post…

Ahh… I jumped directly to the rtl software, which is why I found it rather complicated…
I will give this one a try for sure. I already run mqtt with sonoff/tasmota devices. So I suspect this should be pretty easy to include, specielally since it´s just a dumb doorbell button.

I cant seem to find rtl-sdr.com dongle in europe. Do you know if this one will be suitable:
https://www.amazon.de/dp/B079C4S2BT/ref=psdc_1626220031_t2_B07KWV3DM9

And I wonder, which antenna to use for 433mhz?

I bought this
https://www.amazon.de/Tragbarer-Mini-Digitaler-TV-Stock-Unterst%C3%BCtzung-SDR-Stimmer-Empf%C3%A4nger/dp/B013Q94CT6/ref=sr_1_3?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=Tragbarer+Mini+Digitaler+TV+Stock+USB+2.0+DVB-T&qid=1573549580&sr=8-3

But yours seems to be better as having more antennas to chose.
Mine is working poor, sensors needs to be in direct range.

Ohh :frowning: direct line isn´t suitable for me, since this is a doorbell button project, which mean, there will be at least a door and/or a wall inbetween…

I have no idea if antennas is important or which one to use.

I just played around with this stick, put it on a Rpi, and a sensor from my weather station behind a ~50cm wall was not reachable.
Even the base station from the weather station got this signal without any problem.
I do not want to confuse you, I had no deeper look on this as this is a future project only.

I am using the same stick but it receives even lot of sensor reading from my neighbors. So from my impression it is working really good.

What stick are you using?

I’m using this:

and this:

with these antennas:

… soldered on MCX connectors:

But the included antennas work quite well for me too. But they are way bulkier …

Hmm. 50 cm wall may be a hurdle - but if the original receiver worked, then the rtl_sdr should pick up the signal as well … try limiting the rtl_433 to listen just to the protocol of your weather sensors and disable all others.

Even with the simple helix antennas linked above, I do have very good signal from my outdoor sensors.

… exactly my experience too with the rtl_sdr here :wink:

Edit: Add some pictures of the used antenna:


I think I did this already, but will check at weekend, if I find some time hopefully.