If you’ve got an RTL-SDR compatible receiver, you’ve probably used it for picking up signals from all kinds of weird things. Now, [Jaron McDaniel] has built a tool to integrate many such devices into the world of Home Assistant.
It’s called RTL-HAOS, and it’s intended to act as a bridge. Whatever you can pick up using the RTL_433 tool, you can set up with Home Assistant using RTL-HAOS. If you’re unfamiliar with RTL_433, it’s a multitalented data receiver for picking up all sorts of stuff on a range of bands using RTL-SDR receivers, as well as a range of other hardware. While it’s most closely associated with products that communicate in the 433 MHz band, it can also work with products that talk in 868 MHz, 315 MHz, 345 MHz, and 915 MHz, assuming your hardware supports it. Out of the box, it’s capable of working with everything from keyless entry systems to thermostats, weather stations, and energy monitors. You can even use it to listen to the tire pressure monitors in your Fiat Abarth 124 Spider, if you’re so inclined.
[Jaron’s] tool integrates these devices nicely into Home Assistant, where they’ll appear automatically thanks to MQTT discovery. It also offers nice signal metrics like RSSI and SNR, so you can determine whether a given link is stable. You can even use multiple RTL-SDR dongles if you’re so inclined. If you’re eager to pull some existing environmental sensors into your smart home, this may prove a very easy way to do it.
The cool thing about Home Assistant is that hackers are always working to integrate more gear into the ecosystem. Oftentimes, they’re far faster and more efficient at doing this than big-name corporations. Meanwhile, if you’re working on your own hacks for this popular smart home platform, we’d probably like to know about it. Be sure to hit up the tips line in due time.

I start dabbling with Home Assistant and lo, a hackaday article on it!
I do think 433MHz/868MHz ASK/OOK sensors and devices are cool but I honestly don’t like the idea of keeping an RTL-SDR connected and running all the time. It gets concerningly warm. Plus most 433MHz et al devices are Chinese abandonware. No documentation, nothing.
I recently stumbled upon a BLE advertising protocol called “BTHome”. Its a really nice protocol to use if you just want to integrate your BLE sensor/device into home assistant but don’t want to write an entire integration. Just by making the advert format according to their spec, you can make it instantly discover-able with Home Assistant. The only downside is, its unidirectional. But that’s also true with 433MHz sensors, so apples to apples
I agree. RTL dongles are crazy energy pigs that get way too hot. I’m going to try to get it with a CC1101. Thanks for the article though! It’s actually an Acurite 5in1 that I want to integrate.
huh!??
I have two, running all the time. Just checked them both, using the “high tech” way of touching them and the surrounding equipment / parts of the house. Can’t feel any temperature difference at all.
The heating is more present when you use a higher sampling rate (3.2MSps in my case). There really isn’t any reason to use a lower sample rate since the higher sample rate really helps with getting a very clean FFT waterfall chart and of course getting more data
Ehhhhh. You don’t need a waterfall to integrate with home assistant, and most consumer devices have datarates less than 10,000 baud (literally the fastest I have come across and its a Hyundai TPMS sensor). 3.2MSps is absolutely NOT necessary. Hell I have written so many RF decoders and encoders for a variety of radio hardware and my max sample rate is around 250KSps since it is downsampled anyway.
Its like someone saying “Yeah I regularly put my manual car in neutral and redline it so I can go 20 mph”
Its doable if a bit of a pain. I would advise using Radiolib vice elechouse. You would need the baud/modulation/deviation (if fsk) and bandwidth. I quite like the cc1101, it has huge capability for a couple bucks.
If you decide to tx with the cc1101 you will be using my code that was merged about a year ago :).
There’s an ESP32 port of rtl-433 that basically removes the demodulation stuff and offloads it to a dedicated chipset and just uses the rtl-433 protocol decoders
https://github.com/NorthernMan54/rtl_433_ESP
Support for high bitrate FSK was kinda broken last time I poked at it a while ago, and the relevant issues were closed without any obvious fixes for the relevant problems. I’ve been too busy to reinvestigate.
https://github.com/Entropy512/rtl_433_ESP/tree/neptune_r900 – my fork with really fugly hackish fixes that aren’t really upstreamable without more work
https://github.com/Entropy512/r900_esphome – custom esphome component that uses the hacks above to receive data from Neptune R900 water meters
RTL gets too hot? I’ve had two Acurite 5in1 and both now are resting in the local land fill. They just could not take the Texas heat. Good luck with yours.
Merry Christmas
A lot of people have theirs on 24/7 without it ever going over 40°C, although apparently the higher the frequency, the warmer it gets? I still haven’t really gotten a chance to play around enough with mine, despite having it for years now, but I must have had it running in the background for at least a couple months when I first got it, and never had it get hotter than what I would call “warmish”.
I don’t know how old yours is, or if this is still an issue today, but, at least some years back, the RTL-SDR.com folks mentioned that 0.2 – 0.3% of units may have a faulty RTL2832U chip, characterized by higher than normal USB currents (normal is 0.28A), resulting in abnormally high temperatures, which was (is?) apparently an issue across the entire supply line. There are a bunch of topics on Reddit about it of people discussing their experiences, which is how I learned about it.
I’d contact them about any heat concerns, as the latest post on their site is all about your project, so I’m sure they’d be more than happy to help you out.
I have mine running 24/7. Every now and then one of them crashes, but I only have to restart the software (which I could automate) and everything is working again.
I’ve got one listening to my Acurite 5-n-1, with 167 days of uptime so far.
I am listening my neighbors’ Acurite 5-n-1s, also their Oregon-THGR810s, LaCrosse-TX141B, a couple of alarm systems, and a remote control blind open/closer thing (and all of their tires).
433MHz is used by a lot of regular off the shelf equipment, especially heating/AC, for decades now. Why do you think those Chinese companies are the only ones who use it?
433 MHz gear is absolutely standard here in Europe. They make wall plug interceptors that you can turn on/off with a remote, and they cost like $10 for a set of 3. They’re fantastic, and fantastically hackable.
If all you’re interested in is the 433 MHz bit, then you can pick up a $1 radio module that’ll do that all for you, and the rest is easy software for a microcontroller.
This, using an SDR, is complete overkill, and absolutely lovely.
I’ve had a node-red system doing just this for years. Glad to offload that to someone else
I use rtl_433 in my garage with an old raspberry pi B+ to receive the TPMS information from my Ford Fusion tires. rtl_433 already had very good MQTT integration so I just had to define the sensors with the HA mqtt discovery json message. This seems a heck of a lot easier, glad someone took up the challenge.
My SDR has lived in a central Florida garage for a year, on the south wall, so I don’t think you have to worry about them being warm. Yes this is a horribly energy inefficient way of getting TPMS data, but easier than me trying to port the decoder to a real low power RF chip and MCU
This. I spun up a container on my proxmox node and assigned an rtl dongle to the ct which runs rtl_433 with mqtt integration. This works great for my weather station, the neighbors weather station, a few utility company consumption meters…… Took maybe 2 minutes to configure and has been bulletproof for nearly six years now.
I have a system running the rtl_433 client feeding data into HA via MQTT. My sensors don’t report their values very often so I get around the RTL-SDR getting kinda warm by only running it at a 50% duty cycle. It’s fine – sometimes my sensors take a couple extra minutes to update, but no one notices.