Commit Graph

837 Commits

Author SHA1 Message Date
Benjamin Larsson
d9efb4207d Add support for Esun EN2053 two-channel BBQ thermometer (closes #1478)
Generic-brand two-probe BBQ/meat thermometer, FCC ID 2APN2-EN2053,
sold e.g. as Feelle Digital Thermometer. Reverse engineered from the
captures, audio recording and annotated codes posted in the issue.

The checksum byte, unsolved in the issue thread, packs four even-parity
flags and a modulo-8 sum of the four message bytes; it matches all 37
known-good messages across both probe channels.
2026-07-11 00:22:11 +02:00
Benjamin Larsson
624a20fd97 Add OOK variant of Holman WS5029 PWM, sold as BIOWIN 270208 (closes #1476)
The BIOWIN / 2measure / Bioterm No. 270208 weather station from issue
#1476 turns out to transmit the exact Holman WS5029 older-PWM frame,
same preamble, layout and xor_shift_bytes checksum, but OOK modulated
instead of FSK. Register the existing decoder for OOK as well.

The wind direction field, unresolved in the issue, was recovered by
testing bit windows against the reporter's compass annotations and
matches the Holman layout. No barometric pressure is transmitted, the
display console likely measures it locally.
2026-07-10 23:37:44 +02:00
Benjamin Larsson
b3d941e6c6 Add support for Florabest FB-TH-1 BBQ Thermometer
Reverse-engineered from real captures and analysis in the issue
discussion. OOK PPM, 30 bits repeated ~9 times: a 16-bit id (observed
fixed on the one unit tested), a 13-bit temperature, and a parity bit
(XOR of all 30 bits is always 1).

Source: https://github.com/merbanan/rtl_433/issues/1223
2026-07-10 19:19:03 +02:00
Benjamin Larsson
8f6050c4dc Add support for Elster/Honeywell R2S/REXU power meters
Reverse-engineered from Clayton Smith's gr-elster project and real
captures posted in the issue thread. FSK Manchester-encoded, whitened
with 0x55, CRC-16/X-25 protected. Disabled by default pending wider
field-testing; the protocol is only partially reverse-engineered
(the hourly-usage sub-command decode is a port of the reference
implementation, not independently confirmed against a real capture).

Source: https://github.com/merbanan/rtl_433/issues/1196
2026-07-10 18:15:36 +02:00
H. David Todd
88a8fd6fe6 Add Omni Multisensor decoder
Source: https://github.com/merbanan/rtl_433/pull/3278
2026-07-09 22:58:23 +02:00
Klaus Peter Renner
37e8f7ce47 Add support for NetAtmo outdoor temp/hum and wind sensors
Source: https://github.com/merbanan/rtl_433/pull/3396
2026-07-09 21:51:59 +02:00
clockbrain
a4b43f4d17 Add support for Martec MPLCD ceiling fan remote
Decoder for the Martec MPLCD combined light dimmer/fan speed remote:
OOK PWM, 22-bit frame with a reflected/inverted channel ID, 7-bit
dimmer level, 2-bit fan speed, and a 4-bit nibble-sum checksum. The
remote holds its own state and resends the full light+fan setting on
every button press.

Ported from merbanan/rtl_433#3133 (originally by clockbrain/Don
Ashdown). Verified against the 3 sample captures from
merbanan/rtl_433_tests#474 — all decode with valid checksums and match
the documented expected values exactly (channel/speed, and a
progressive dimmer sweep for the long-press sample).
2026-07-09 16:07:31 +02:00
Benjamin Larsson
f6b135d4d8 Add support for RfxMeter (#3582)
Decoder for RFXMeter/RFXPower devices, using X10RF-like PPM framing
with an address-complement check and a nibble-sum checksum.

Cleaned up and rebased from merbanan/rtl_433#2142 (originally by
Christian W. Zuckschwerdt), closes #2141. Verified against the sample
captures from that issue.

Co-authored-by: Christian W. Zuckschwerdt <christian@zuckschwerdt.org>
2026-07-07 23:53:12 +02:00
vidarino
ae28c509ef Add support for Opel Mokka car key (#3479) 2026-07-07 16:09:45 +02:00
Benjamin Larsson
b05e3bebda Add support for TR-502MSV remote smart socket controller (#3586)
Decoder for the TR-502MSV remote for RC-710DX smart sockets, based on
merbanan/rtl_433#2921 by Filip Kosecek.

Applies the simplifications requested in review (direct mask/shift
field extraction instead of bit reformatting helpers, table lookups
for socket/command strings) and resolves the previously unknown 2-bit
checksum: U1 = C ^ S2 ^ S0, U0 = O ^ S1, derived from the sample table
posted in the PR discussion and verified against all 13 captured
samples in filipkosecek/rtl_433_tests#467.

Co-authored-by: Filip Kosecek <filip.kosecek@gmail.com>
2026-07-07 14:04:22 +02:00
Jan Kundrát
0ba8d5d21e Add InfluxDB option for configurable prefix (#2586) 2026-07-07 12:47:31 +02:00
Benjamin Larsson
5a3e53042e Add support for Grill Thermometer RF-T0912 (#3585)
Remote Grill Thermometer with probe (FCC ID TXRFPT0912), sold under
the RF-T0912 model number. Decodes a 16-bit Fahrenheit temperature
with an 8-bit checksum, repeated across multiple rows for reliable
detection, and reports an overload condition.

Co-authored-by: Ethan Halsall <ethanhalsall11@augustana.edu>
2026-07-07 12:44:56 +02:00
Christian W. Zuckschwerdt
0ee1ad293c Change logf length limit from 60 to 80 chars (#3584) 2026-07-07 12:02:30 +02:00
Benjamin Larsson
e52b4b563f Add support for Microchip HCS362 KeeLoq Hopping Encoder remotes (#3579)
Adapted from Christian Zuckschwerdt's untested sketch in PR #3113 and
fixed/verified against real hardware captures in issue #3112 (thanks to
yashikada for testing and reporting the corrected bit layout). Supports
both of the HCS362's transmission modes: PWM (mode 0) and Manchester
(mode 1), sharing a single decode callback that branches on the demod
modulation.

Co-authored-by: Christian W. Zuckschwerdt <zany@triq.net>
2026-07-07 10:31:59 +02:00
Benjamin Larsson
963bb4b259 Fix warnings about size_t being cast to a narrower type (#3580)
Based on PR #1875: several size_t values (from strlen(), fread(),
list_t.len, struct addrinfo::ai_addrlen) were implicitly narrowed to
int/unsigned/socklen_t, which triggers MSVC C4267 warnings on x64
Windows builds. Adds explicit casts and widens a few parameter/local
types to size_t where that is the semantically correct type.

Excludes the original PR's mongoose-related mg_send() casts, and
drops two hunks (flex.c, honeywell_cm921.c) that no longer apply
since the affected code was refactored away since 2021.

Co-authored-by: obones <1314739+obones@users.noreply.github.com>
2026-07-07 09:38:15 +02:00
Ilias Daradimos
a42fd2e4dd Add support for BMW Schrader-MRXBC5A4/MRXBMW433TX1
TPMS decoder for the Schrader MRXBC5A4 sensor (also sold as
MRXBMW433TX1), used on BMW vehicles. Decodes id, pressure, and
temperature, and verifies the packet's 2-bit C1C2 integrity check.

Based on merbanan/rtl_433#1702 by drid, with the C1C2 integrity
check formula derived by merbanan from RDC test tool data.
2026-07-07 01:01:53 +02:00
Benjamin Larsson
57ebfb57a4 Add Honda Keyfob KR5V2X/1X decoder based on PR #2767 (#3578)
Adds an alternate decoding of the Honda/Continental KR5V2X remote as a
separate decoder alongside continental_car_remote, adapted from
gusgorman402's unmerged PR #2767 (honda_kr5vxx.c) with cleanup to match
project style. The two decoders disagree on bit layout and checksum for
the same physical hardware.
2026-07-06 20:58:13 +02:00
Benjamin Larsson
db596ed046 Add Acurite 985 support (#3509)
Code based on https://github.com/merbanan/rtl_433/pull/1582

Assisted-by: Qwen 3.6 Plus

Co-authored-by: jfbauer432 <jfbauer432@users.noreply.github.com>
2026-07-06 02:44:41 +02:00
Jon Klixbuell Langeland
0cc19fe2af Add support for Thermor_a6n_132tx (#3507)
High nibble checksum investigation done by Qwen3.6 Plus.

Assisted-by: Qwen 3.6 Plus
2026-07-06 02:31:00 +02:00
Caz Yokoyama
eb7e900106 Add support for LaCrosse Technology TX22U-IT sensor
http://nikseresht.com/blog/?p=99 describes the data format of TX22U-IT.
However, this code uses a different data format.

Based on PR by Caz Yokoyama <caz@caztech.com>
2026-07-06 00:51:59 +02:00
Benjamin Larsson
296e988a4e Add support for Gear-Hive TPMS sensor (#3496) 2026-07-05 20:40:50 +02:00
Dan Dwyer
4318f9503f Fix Register memory leak at program close by registering flex device
issue: 3350
2026-07-02 22:43:00 +02:00
Christian W. Zuckschwerdt
d1cd77c47a minor: Change low_pass to fm_low_pass, code style and comments 2026-06-30 22:51:06 +02:00
Christian W. Zuckschwerdt
3e7bb66702 minor: Refactor calc_rssi_snr to demod 2026-06-28 22:55:28 +02:00
Christian W. Zuckschwerdt
776581e948 minor: Refactor calc_rssi_snr args 2026-06-28 22:50:38 +02:00
Christian W. Zuckschwerdt
5a6f0fdcf3 minor: Refactor cfg parameters to demod 2026-06-28 22:26:53 +02:00
Christian W. Zuckschwerdt
893d3d40ed minor: Refactor frame stats to demod 2026-06-28 22:01:18 +02:00
Christian W. Zuckschwerdt
ae9b01227b minor: Refactor non flow side effects to sdr handler 2026-06-28 22:01:06 +02:00
Christian W. Zuckschwerdt
cd5bc28968 minor: Refactor sdr flow out 2026-06-28 20:29:57 +02:00
Christian W. Zuckschwerdt
2c98479bea minor: Refactor delay_timer 2026-06-28 20:19:13 +02:00
Christian W. Zuckschwerdt
f5f3d4d421 minor: Rename sdr frame callback to push sdr flow 2026-06-28 19:27:47 +02:00
Christian W. Zuckschwerdt
1855836dc4 minor: Add sdr frame processing doc comments 2026-06-28 19:26:25 +02:00
Bruno OCTAU
cc160e78cf Add support for Schrader Motorcycle TPMS sensor (#3569)
* Add support for Schrader Motorcycle TPMS sensor
2026-06-25 21:25:43 +02:00
Andrew Berry
8e217e0b72 Fix abuf string null-termination and length return
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 13:43:12 +02:00
Andrew Berry
5e20bd2c40 Fix http server truncating large get_stats/get_protocols JSON
The /cmd getters serialized into fixed stack buffers (get_stats 20480,
get_meta 2048, get_protocols 102400). When a report exceeded its buffer
the output was silently corrupted into invalid JSON, not cleanly
truncated: the abuf string builder drops an oversized chunk but keeps
appending the smaller chunks that follow, so e.g. a get_stats reply with
~230 enabled decoders ended like `...,"name":,:8256}`. Clients then fail
to parse the response and the corresponding data never updates.

Make the serializer report truncation and add data_print_jsons_dup(),
which grows a heap buffer until the whole document fits, and use it for
the three JSON-payload getters:

- abuf gains an `overflow` flag, set by abuf_cat/abuf_printf and the
  hand-rolled string formatter whenever a write is dropped or truncated.
- data_print_jsons_dup() retries with a doubled buffer until no overflow
  (64 MiB sanity cap), so the report is never truncated.
- get_stats/get_meta/get_protocols use it and free the buffer after
  responding; out-of-memory yields an error reply instead of a partial one.

Tests:
- data-test asserts a large report serializes to a complete object via
  data_print_jsons_dup() while a fixed undersized buffer does not.
- the HTTP integration test now validates that get_protocols/get_stats/
  get_meta return parseable JSON, not just HTTP 200.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 13:43:12 +02:00
n6ham
66d54ec67d Add support for Thermopro TP863b. (#3485)
TP863b comes with the same probes as TP862b, but with a signal booster.
2026-05-31 22:35:19 +02:00
Christian W. Zuckschwerdt
6dd810e82c build: Change version info to generated header file (#3529) 2026-05-31 20:24:47 +02:00
Jonathan Caicedo
1d705cf3b9 Add support for Cellular Tracking Technologies Life/Power/HybridTag (#3335) 2026-05-01 09:33:09 +02:00
Christian W. Zuckschwerdt
803c805f61 Add SigMF file format support (#2632) 2026-04-21 13:00:36 +02:00
Dennis Kehrig
d855d1597a Add support for Shenzhen Wale WL-TH6R (#3477)
Add support for Tuya WSD024-W-433/Shenzhen Wale WL-TH6R
2026-04-14 23:03:59 +02:00
Christian W. Zuckschwerdt
381191abab Add pulse analyzer as filter to sample grabber (#3309) 2026-04-14 22:48:03 +02:00
Christian W. Zuckschwerdt
416ea6dba6 Add extract_bytes_uart_8n2 util (#3422) 2026-04-14 21:57:45 +02:00
KeystoneCloud
64870064bc Add support for RFM69 LowPowerLab Moteino 2026-04-13 01:14:06 +02:00
Benjamin Larsson
f0a946f5e5 minor: Update docs for car remotes decoders 2026-04-09 11:10:59 +02:00
Reece Neff
58c4e95b45 Add support for Govee H5059 Water Leak Detector (#3493) 2026-03-27 15:34:02 +01:00
Bruno OCTAU
32aa2327ac Add support for TRW TPMS OEM and Clone models (#3279)
* Decode TRW TPMS OOK frame 
* Decode TRW TPMS FSK frame
2026-03-03 14:36:29 +01:00
Ali Rahimi
3b79305e32 Add support for ThermoPro-TP211B temperature sensor (#3462)
* Add support for ThermoPro-TP211B temperature sensor

Co-authored-by: Ali Rahimi <ali@leavemeout.com>
Co-authored-by: Christian W. Zuckschwerdt <zany@triq.net>
Co-authored-by: Bruno OCTAU <62882637+ProfBoc75@users.noreply.github.com>
2026-02-23 09:41:04 +01:00
Bruno OCTAU
7540d4b1fc Add support for Apator Metra E-ITN 30 Heat cost allocator and Improve E-RM 30 water meter (#3458)
* Add support for Apator Metra E-ITN 30 Heat cost allocator
* Improve Apator Metra E-RM 30 Water meter coding
2026-02-21 10:21:39 +01:00
AlexanderG
dc80fb65fb Add support for AirPuxem TPMS (#3472) 2026-02-21 09:47:33 +01:00
Christian W. Zuckschwerdt
c0036e055c minor: Fix time compat for Win32 2026-02-17 10:48:46 +01:00