Integrating Radio Signals with the Smart Home - RTL-433 SDR

I should just get an SDR, replace batteries in the old door sensors of the ancient alarm system and integrate them into Home Assistant. It'll be easy!

I broke up the steps into separate pages below if anyone is interested in seeing how I installed everything or jump right in https://stevewilsonjr.blogspot.com/p/installing-and-setting-up-rtl-433.html.

RTL-433 is an awesome piece of software that can work with an SDR like this Nooelec NESDR Mini 2+ I got from Amazon. There is a list of signals it can decode by default here, and there are ways you can decode them yourself. I spent a good month reading, learning and playing with the thing until I finally got comfortable with what I had.

Example of LaCrosse Thermometer Sensor with graph overlaying with a BLE device and NWS data


This was a frustrating and fun experience. First, I have compiled a list of issues and other things I came across along the way that might help.

Caveats Issues and Downsides

  • Check version numbers. At the time of this writing, the latest version is 25.2. I had started my testing on a Linux Mint box which is based on Ubuntu. It had installed version 23. I went to install this on my Debian server for production and it was so much better. I wasted so much time playing with availability templates that I don't need.
  • With one tuner, you can only pick up one frequency at a time. You can pick up multiple frequencies with one tuner, but then you have to set up a hop interval. Honeywell door sensors are on 345MHz and LaCrosse weather sensors use 433MHz. While it's on one frequency it missed others, so I might miss a door opening or closing.
  • Use USB2 ports, don't use USB3. A powered USB hub isn't a bad idea.
  • To check if RTL-SDR drivers are installed on Linux, plug in your device and run rtl_test in the terminal. If installed, it will list the device (e.g., Realtek RTL2838UHIDIR) and start sampling. If not found, install using sudo apt install rtl-sdr. Sometimes the driver will be available but the USB port just won't work with the tuner. Try another tuner on another bus.
    • Detailed Verification Steps
    • List USB Devices: Verify the hardware is detected by running lsusb. Look for 
      • Bus 001 Device 002: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
    • Run Test Command: Execute rtl_test in the terminal.
      • Success: The output will display "Found 1 device(s)" and start showing sample data.
      • Failure: It will show "No supported devices found".
  • Check Kernel Modules: Ensure the default DVB drivers are not conflicting by running:
    • lsmod | grep dvb_usb_rtl28xxu
  • Blacklist Conflicting Drivers: If the kernel driver is loaded, it can interfere with the RTL-SDR driver. Prevent this by blacklisting it:
    • echo "blacklist dvb_usb_rtl28xxu" | sudo tee /etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf
    • echo "blacklist rtl2838" | sudo tee /etc/modprobe.d/blacklist-rtl2838.conf
    • echo "blacklist rtl2832" | sudo tee /etc/modprobe.d/blacklist-rtl2832.conf
    • echo "blacklist rtl2830" | sudo tee /etc/modprobe.d/blacklist-rtl2830.conf
    • Reboot after running this command.


Now, for the fun stuff

Install RTL-433 and set it up as a service

Coming Soon...

See what you get and try to make sense of it

Add it to HomeAssistant


Comments

Popular posts from this blog

Blue Charm beacons, TLM data via ESPHome

Tracking BMs with Home Assistant AKA Poop Button

Mason Bees