Radio & SDRTechnician

Bring Your 433 MHz Weather Sensors into Home Assistant with rtl_433

Decode the wireless thermometers, rain gauges and door sensors you already own and publish them over MQTT.

LevelTechnician
Time1 h
Est. cost~$119
Steps5

Cheap weather stations and wireless thermometers send readings on 433.92 MHz (or 915 MHz in the US). rtl_433 recognizes hundreds of these devices and turns each transmission into JSON, so your own sensors can feed Home Assistant without their original display.

Mission steps

  1. Install

    Run sudo apt install rtl-433 mosquitto mosquitto-clients on the Pi.

  2. Discover your sensors

    Run rtl_433 -M protocol -F json and note the model, id and protocol number of your own devices.

  3. Filter to your devices

    Use -R with your sensor's protocol number so you only decode the protocols you own.

  4. Publish to MQTT

    Add -F mqtt to send each reading to the local Mosquitto broker, then add the MQTT integration in Home Assistant.

  5. Create entities

    Use the Home Assistant discovery helper script from the rtl_433 project, or define MQTT sensors by hand.

Code

sudo apt install rtl-433 mosquitto mosquitto-clients

# 1. See everything nearby, with protocol numbers
rtl_433 -M protocol -F json

# many US sensors use 915 MHz instead
rtl_433 -f 915M -M protocol -F json

# 2. Only your sensor's protocol (replace 40), sent to the local MQTT broker
rtl_433 -R 40 -F mqtt

# 3. Watch the messages arrive
mosquitto_sub -t 'rtl_433/#' -v

Tip: test every script on the bench before installing it in a moving machine.

Questions

I see my neighbor's sensors too.

Those signals are broadcast openly, but keep your setup to your own devices: filter by protocol and id and only save your own readings.