Selecting decoders
rtl_433 ships with a large library of device decoders — over 250 protocols covering weather stations, thermometers, tire-pressure (TPMS) sensors, energy meters, remotes, and more. Each decoder is identified by a number, and the -R flag is how you choose which ones run. This page covers enabling decoders by number, listing them, disabling individual decoders, and why you should reach for -R rather than the deprecated "enable everything" flag.
By default rtl_433 enables every decoder that has proper validity checking. A subset of decoders is disabled by default because they lack strong validation and share signal characteristics with other devices, which makes them prone to false positives. Those must be enabled explicitly by number.
List the available decoders
To see every decoder with its number and description, pass help to -R:
rtl_433 -R help
The list looks like the excerpt below. Numbers prefixed with an asterisk (*) are the decoders that are disabled by default.
The following block is an illustrative example of the listing. The exact numbers, names, and which entries are starred change between releases as protocols are added.
= Supported device protocols =
[01] Silvercrest Remote Control
[02] Rubicson, TFA 30.3197 or InFactory PT-310 Temperature Sensor
[08] LaCrosse TX Temperature / Humidity Sensor
[19] Nexus, FreeTec NC-7345, NX-3980, Solight TE82S, TFA temperature/humidity sensor
*[87] Generic wireless motion sensor
*[88] Toyota TPMS
The listing is long. Pipe it through a filter to locate a device by name, for example rtl_433 -R help | grep -i tpms.
Enable only specific decoders with -R <number>
Give -R a positive number to enable a decoder. The flag can be repeated, and you can group numbers after a single -R:
# Enable only LaCrosse TX (8) and Nexus (19)
rtl_433 -R 8 -R 19
# Equivalent, grouped form
rtl_433 -R 8 19
-R overrides the defaultsAs soon as you pass any positive -R <number>, rtl_433 stops enabling the default set and runs only the decoders you listed. This is the documented behaviour:
You can enable only selected decoders with any number of
-R <number>options. Note that this will override the default and not select any decoder by default.
Enabling a narrow set is the recommended way to cut down on false detections: turn everything off implicitly by naming just the protocols you care about.
Disable specific decoders with -R -<number>
A negative number disables one decoder while leaving the rest of the default set enabled. This is the inverse of the positive form and is also repeatable:
# Keep the defaults, but disable LaCrosse TX (8) and Nexus (19)
rtl_433 -R -8 -R -19
This is the right tool when a single default-enabled decoder is misfiring on your local RF environment and you want to suppress just that one.
Disable everything with -R 0
The special value 0 disables all decoders. On its own that produces no decoded output, so it is normally combined with the pulse analyzer or a flex decoder to study raw signals:
# No built-in decoders; only the pulse analyzer runs
rtl_433 -R 0 -A
The man page describes the same pattern for -A:
Pulse Analyzer. Enable pulse analysis and decode attempt. Disable all decoders with
-R 0if you want analyzer output only.
-R summary
| Form | Effect |
|---|---|
-R help | Print the numbered list of decoders and exit |
-R <n> | Enable only decoder n (overrides the default set; repeatable) |
-R <n> <m> … | Enable only the listed decoders (grouped form) |
-R -<n> | Disable decoder n, keeping the rest of the defaults (repeatable) |
-R 0 | Disable all decoders |
Combine the forms as needed: a run with both -R <n> and -R -<m> enables the selected positive decoders and then removes any you marked negative. Sorting out exactly which decoders are active is easiest by reading them back from the startup banner with -v.
What about -G?
Older guidance used -G ("register all") to turn on every decoder at once, including the default-disabled ones. That option is deprecated. Invoking it now prints a message and exits:
register_all (-G) is deprecated. Use -R or a config file to enable additional protocols.
Enabling literally every protocol is discouraged because the default-disabled decoders are exactly the ones that lack strong validity checks — running them all guarantees a stream of false positives and wastes CPU. If you genuinely need to test which decoder, if any, recognises an unknown device, enable the default-disabled protocols explicitly with -R <number> (using the starred entries from -R help) rather than blanketing everything, and treat any matches with suspicion.
For anything beyond a quick test, put your decoder choices in a config file instead of a long command line. Each protocol <n> line is the file-level equivalent of -R <n>, and commenting a line out disables it. See the example configuration.