October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
Bettesworth Construction
433 MHz

Connecting Commercial 433 MHz Sensors to MQTT and Home Assistant with RTL-SDR

Learn how to receive compatible commercial 433 MHz sensors with an RTL-SDR, decode them using rtl_433, publish the data to MQTT, and expose reliable entities in Home Assistant.

By Bettesworth Construction Team 7 min read
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Yes—many inexpensive commercial 433 MHz sensors can be brought into Home Assistant without their proprietary hub. The usual path is sensor → RTL-SDR → rtl_433 → MQTT → Home Assistant. Compatibility is not guaranteed by the “433 MHz” label alone: the sensor’s frequency, modulation, protocol, and decoder support must all match.

For Home Assistant-only installations, also consider the current native rtl_433 integration, which connects through HTTP/WebSocket and can avoid MQTT between the decoder and Home Assistant.

How the system works

433 MHz sensor
    ↓ radio transmission
RTL-SDR USB receiver
    ↓ raw RF samples
rtl_433
    ↓ decoded messages
MQTT broker
    ↓ discovery or manual entities
Home Assistant

An alternative architecture is:

Sensor → RTL-SDR → rtl_433 HTTP/WebSocket output → Home Assistant

rtl_433 supports RTL-SDR hardware and protocols across several ISM/SRD bands, including common 433.92 MHz devices as well as some 315, 345, 868, and 915 MHz equipment. It does not decode every product that happens to transmit near 433 MHz.

Hardware and software required

  • An RTL-SDR-compatible USB dongle, such as an RTL-SDR Blog V4 or comparable receiver.
  • An antenna suitable for the target band.
  • An always-on Linux-capable host with USB access, such as a Raspberry Pi or another computer.
  • A sensor using a protocol supported by rtl_433.
  • rtl_433.
  • A private MQTT broker, normally Mosquitto, if using the MQTT architecture.
  • Home Assistant with MQTT enabled.

A stock antenna may work, but antenna position, orientation, cable length, local interference, and distance often determine whether a supported sensor is reliable. A short USB extension can help move the dongle away from computer noise and improve placement.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Nooelec RTL-SDR v5 Bundle - NESDR Smart HF/VHF/UHF (100kHz-1.75GHz) Software Defined Radio. Premium RTLSDR w/ 0.5PPM TCXO, SMA Input, Aluminum Enclosure & 3 Antennas. RTL2832U & R820T2-Based Radio
  • Turn your computer, phone or tablet into a radio scanner/ham radio receiver that can receive nearly all RF signals! Compatible with Windows, Mac OS, Linux, and Android
  • NESDR SMArt RTL-SDR v5 can be used for the reception of broadcast AM radio, broadcast FM radio, shortwave radio, CB radio, public security radio, trunked radio, air traffic control, ACARS (plane-ground communications), ADS-B (plane tracking), AIS (ship tracking), POCSAG (pagers), NOAA and GOES weather satellites (weather images), weather balloons, radiosondes, DAB radio, DVB-T video, Inmarsat, Iridium, and so much more!
  • The best-performing low-cost RTL-SDR available anywhere! Compared with RTL-SDR v3, HF SNR is improved by up to 15dB, VHF & UHF SNR is improved by up to 6dB, tuning accuracy is improved by an average of 4x, and the frequency range is expanded all the way down to 100kHz
  • v5 has a frequency capability of 100kHz to 1.75GHz and up to 3.2MHz of instantaneous bandwidth. HF reception below 25MHz is accomplished with direct sampling and requires a suitable antenna. We recommend using a Balun One Nine to make a DIY long wire or dipole antenna (sold separately, product ID B08HGSYB7R or B00R09WHT6)
  • Though the direct sampling implementation of NESDR SMArt v5 is much better than any other RTL-SDR, we still recommend using an upconverter like the Ham It Up for a more fulfilling HF experience (sold separately, product ID B076CYK8XZ)

Check the sensor before configuring Home Assistant

“Commercial sensor” can include weather transmitters, temperature and humidity sensors, door contacts, leak detectors, motion sensors, energy meters, soil sensors, and some alarms. The product does not need to advertise RTL-SDR compatibility; it needs to use a decodable protocol.

Before building MQTT topics or Home Assistant entities:

  1. Search the rtl_433 supported-device list for the manufacturer and model.
  2. Install the decoder and start a live test.
  3. Place the sensor close to the antenna or trigger it repeatedly.
  4. Confirm that decoded messages contain a stable identifier such as id, channel, or subtype.
  5. Check that the values belong to your sensor rather than a nearby device.

On Debian or Ubuntu:

sudo apt update
sudo apt install rtl-433
rtl_433 -V
rtl_433 -d help

For a common 433.92 MHz test:

rtl_433 -f 433.92M -C si -M time:unix:usec:utc

The frequency must match the actual device. A product described broadly as “433 MHz” may use a nearby frequency, another regional band, FSK rather than OOK/ASK, or a proprietary or encrypted protocol.

Decoded output varies by device, but may include fields such as model, id, temperature_C, humidity, battery_ok, contact, motion, or rainfall measurements. Treat these as examples, not a universal schema.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If nothing decodes

First improve the test conditions: move the sensor closer, trigger it, verify the frequency, and try a better antenna location. Then use the analyzer and capture tools:

Rank #2
Nooelec NESDR Mini USB RTL-SDR & ADS-B Receiver Set, RTL2832U & R820T Tuner, MCX Input. Low-Cost Software Defined Radio Compatible with Many SDR Software Packages. R820T Tuner & ESD-Safe Antenna Input
  • Included: Nooelec USB dongle & antenna
  • RTL2832U interface IC & R820T tuner IC on USB dongle
  • These are custom USB devices tuned for SDR and include much better components than generics
  • Full 1-year warranty & installation support available!
rtl_433 -A
rtl_433 -S all -T 120
rtl_433 -r capture.cu8

The analyzer can reveal pulse patterns, while saved captures allow later investigation. An unsupported protocol may require a custom decoder, but encryption, rolling codes, poor captures, or proprietary synchronization can make decoding impractical.

Set up MQTT

Home Assistant recommends a private broker, commonly Mosquitto. In Home Assistant OS, the Mosquitto broker app/add-on is the usual route. The decoder must be able to reach the broker, and you need its hostname, port, credentials, and—if applicable—TLS settings.

Do not expose an unauthenticated MQTT port directly to the internet. Create a dedicated broker account for the decoder and use TLS when traffic crosses an untrusted network.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify the broker independently:

mosquitto_sub 
  -h MQTT_HOST 
  -p 1883 
  -u MQTT_USER 
  -P MQTT_PASSWORD 
  -t 'rtl_433/#' -v

Publish decoded data from rtl_433

A basic MQTT output configuration is:

rtl_433 
  -C si 
  -M time:unix:usec:utc 
  -F "mqtt://MQTT_HOST:1883,user=MQTT_USER,pass=MQTT_PASSWORD,retain=0"

For a more explicit topic layout:

rtl_433 
  -C si 
  -M time:unix:usec:utc 
  -F "mqtt://MQTT_HOST:1883,user=MQTT_USER,pass=MQTT_PASSWORD,retain=1,events=rtl_433/events,states=rtl_433/states,devices=rtl_433/devices[/model][/id]"

Topic options and defaults can vary by installed version, so verify them with rtl_433 -h and the project’s operation documentation. The MQTT output can publish event, state, availability, and device information. Store credentials in a protected configuration mechanism or environment variables rather than leaving them in shell history.

export MQTT_USERNAME='rtl433'
export MQTT_PASSWORD='replace-with-a-strong-password'

Make Home Assistant discover the devices

Enable MQTT from Settings → Devices & services → Add Integration → MQTT, then enter the broker details.

Rank #3
Nooelec RTL-SDR v5 SDR - NESDR Smart HF/VHF/UHF (100kHz-1.75GHz) Software Defined Radio. Premium RTLSDR w/ 0.5PPM TCXO, SMA Input & Aluminum Enclosure. RTL2832U & R820T2 (R860)-Based Radio
  • Turn your computer, phone or tablet into a radio scanner/ham radio receiver that can receive nearly all RF signals! Compatible with Windows, Mac OS, Linux, and Android
  • NESDR SMArt RTL-SDR v5 can be used for the reception of broadcast AM radio, broadcast FM radio, shortwave radio, CB radio, public security radio, trunked radio, air traffic control, ACARS (plane-ground communications), ADS-B (plane tracking), AIS (ship tracking), POCSAG (pagers), NOAA and GOES weather satellites (weather images), weather balloons, radiosondes, DAB radio, DVB-T video, Inmarsat, Iridium, and so much more!
  • The best-performing low-cost RTL-SDR available anywhere! Compared with RTL-SDR v3, HF SNR is improved by up to 15dB, VHF & UHF SNR is improved by up to 6dB, tuning accuracy is improved by an average of 4x, and the frequency range is expanded all the way down to 100kHz
  • v5 has a frequency capability of 100kHz to 1.75GHz and up to 3.2MHz of instantaneous bandwidth. HF reception below 25MHz is accomplished with direct sampling and requires a suitable antenna. We recommend using a Balun One Nine to make a DIY long wire or dipole antenna (sold separately, product ID B08HGSYB7R or B00R09WHT6)
  • Though the direct sampling implementation of NESDR SMArt v5 is much better than any other RTL-SDR, we still recommend using an upconverter like the Ham It Up for a more fulfilling HF experience (sold separately, product ID B076CYK8XZ)

Raw rtl_433 events are not automatically the same as Home Assistant discovery. Discovery requires configuration messages on topics such as:

homeassistant/sensor/rtl433_kitchen_temperature/config

The payload normally supplies a unique ID, state topic, JSON value template, unit, device class, availability, and device metadata. Device-level discovery is preferable when one physical transmitter exposes several values.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The official repository includes the rtl_433_mqtt_hass.py helper. It subscribes to rtl_433 MQTT output and publishes Home Assistant MQTT discovery messages. Its documented prerequisites include Python 3, Paho MQTT, and an rtl_433 process publishing event and device messages.

sudo apt install python3-paho-mqtt

Discovery configuration should be retained or republished after Home Assistant’s birth message. Otherwise entities may disappear or remain unavailable after a restart. See Home Assistant’s MQTT documentation for discovery and birth-message behavior.

Manual MQTT entities

Manual configuration is useful when discovery is incomplete, you want stable entity IDs, or you need to filter a shared event topic. The exact topic and JSON fields depend on your rtl_433 configuration and sensor.

Rank #4
RTL-SDR Blog V3 R860 RTL2832U 1PPM TCXO SMA Software Defined Radio (Dongle Only) (Black)
  • Includes 1x RTL-SDR Blog brand R860 RTL2832U 1PPM TCXO HF Bias Tee SMA Dongle (V3) (Dongle Only)
  • Several improvements over other brands including use of the R860 tuner, improved component tolerances, a 1 PPM temperature compensated oscillator (TCXO), SMA F connector, aluminum shielded case with thermal pad for passive cooling, and an activatable bias tee circuit.
  • Can tune from 500 kHz to 1.7 GHz and has up to 3.2 MHz of instantaneous bandwidth (2.4 MHz stable). (HF reception below 24 MHz in direct sampling mode with reduced performance). Please note RTL-SDR dongles are RX only.
  • Please follow the quickstart guide linked in the included the manual for installation of the drivers and free software. Please feel free to contact us via Amazon messaging for technical support - we're happy to help
mqtt:
  sensor:
    - name: "Workshop Temperature"
      unique_id: "workshop_433_temperature"
      state_topic: "rtl_433/events"
      value_template: "{{ value_json.temperature_C }}"
      unit_of_measurement: "°C"
      device_class: temperature
      state_class: measurement

A contact or door sensor can be configured similarly as an MQTT binary sensor:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
mqtt:
  binary_sensor:
    - name: "Workshop Door"
      unique_id: "workshop_433_door"
      state_topic: "rtl_433/events"
      value_template: "{{ value_json.contact }}"
      payload_on: "1"
      payload_off: "0"
      device_class: door

Do not let a generic entity consume every message from a shared topic. Where necessary, test model, id, channel, or subtype in the template so a neighbor’s sensor cannot populate your entity.

Reference formats and supported options in Home Assistant’s MQTT sensor and MQTT binary sensor documentation.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Consider the native rtl_433 integration

The current rtl_433 Home Assistant integration connects to an rtl_433 server through HTTP/WebSocket. Its documented features include automatic device discovery, native Home Assistant devices and entities, diagnostics, availability handling, multiple servers, and a data-driven device-mapping library.

Choose it first when Home Assistant is the main consumer and you want fewer services between the decoder and your automations. Choose MQTT when the SDR host is separate, other applications also need the data, MQTT is already your site-wide message bus, or you want broker-based routing and retention.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
USB DVB-T RTL-SDR Realtek R820T Upgrade Version
  • NEW RTL-SDR FM+DAB USB DVB-T Dongle DVB-T STICK 100% REAL WITH RTL2832U+R820T2! The R820T upgrade version!
  • Use the Rafael Micro's R820T2 offer possible range 25 - 1700 MHz
  • The RTL2832U outputs 8-bit I/Q-samples, and the highest theoretically possible sample-rate is 3.2 MS/s,

The native integration does not make unsupported protocols compatible. Its mappings still depend on what rtl_433 decoded and which fields the integration knows how to expose. The device library documents mappings and extension options.

Troubleshooting decision tree

The USB receiver is not detected

lsusb
rtl_test

Check USB power, cables, drivers, container or virtual-machine pass-through, and whether another SDR application has claimed the device. With multiple dongles, select one explicitly using its index or serial number:

rtl_433 -d :YOUR_SERIAL

The receiver works but no packets appear

Check the antenna, sensor distance, actual frequency, modulation, local interference, and transmission interval. A battery device may transmit only periodically or after a button press.

Packets decode but MQTT is empty

Check broker reachability, credentials, firewall rules, client ID conflicts, and the exact topic names. Subscribe to rtl_433/# and compare the observed topics with the topics configured in Home Assistant.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

MQTT works but no Home Assistant entities appear

Inspect both rtl_433/# and homeassistant/#. If no homeassistant/.../config messages exist, raw events alone cannot create entities. Check that discovery is enabled, the prefix matches, the helper is running, and the model mapping and JSON field names are correct.

Entities become unavailable after a restart

Retain discovery configuration or arrange for the decoder/helper to republish it after Home Assistant’s birth message. A retained measurement is not proof that the battery sensor is currently reachable.

Reliability, privacy, and limitations

  • Repeated packets are normal. Many inexpensive transmitters repeat measurements to improve reception. Use timestamps to understand freshness.
  • Availability is approximate. A one-way battery sensor usually cannot be polled. A missing update may indicate radio loss, a dead battery, sleep behavior, or a long reporting interval.
  • Battery fields vary. battery_ok may be a boolean rather than a percentage.
  • Nearby devices may be visible. 433 MHz broadcasts are generally not private. Filter unknown IDs and avoid publishing sensitive raw identifiers unnecessarily.
  • Receiving is not transmitting. An RTL-SDR decoder does not automatically control a remote or safely replay a packet.
  • Radio rules vary. Frequency use, power, duty cycle, and certification depend on jurisdiction.

Final setup checklist

  1. Confirm the sensor’s actual protocol is supported or decodable.
  2. Install the RTL-SDR, antenna, host, and rtl_433.
  3. Obtain stable decoded output before adding MQTT.
  4. Secure and test the private broker.
  5. Publish rtl_433 events with a deliberate topic layout.
  6. Use the MQTT discovery helper or define filtered manual entities.
  7. Alternatively, test the native rtl_433 Home Assistant integration.
  8. Set availability timeouts longer than the sensor’s normal reporting interval.
  9. Check for unknown devices, stale retained data, and duplicate packets.

The Bottom Line

RTL-SDR and rtl_433 can turn many inexpensive commercial 433 MHz sensors into useful Home Assistant devices, but compatibility depends on the actual radio protocol—not just the product label. Use MQTT for a flexible, multi-consumer architecture; use the native rtl_433 integration when Home Assistant is the primary consumer and you want fewer moving parts.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Site Office

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.