Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Acurite-606TX decoder to also decode the Technoline TX960 sensor #3078

Merged
merged 4 commits into from
Oct 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ See [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
[52] Bresser Thermo-/Hygro-Sensor 3CH
[53] Springfield Temperature and Soil Moisture
[54] Oregon Scientific SL109H Remote Thermal Hygro Sensor
[55] Acurite 606TX Temperature Sensor
[55] Acurite 606TX / Technoline TX960 Temperature Sensor
[56] TFA pool temperature sensor
[57] Kedsum Temperature & Humidity Sensor, Pearl NC-7415
[58] Blyss DC5-UK-WH
Expand Down
2 changes: 1 addition & 1 deletion conf/rtl_433.example.conf
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ convert si
protocol 52 # Bresser Thermo-/Hygro-Sensor 3CH
protocol 53 # Springfield Temperature and Soil Moisture
protocol 54 # Oregon Scientific SL109H Remote Thermal Hygro Sensor
protocol 55 # Acurite 606TX Temperature Sensor
protocol 55 # Acurite 606TX / Technoline TX960 Temperature Sensor
protocol 56 # TFA pool temperature sensor
protocol 57 # Kedsum Temperature & Humidity Sensor, Pearl NC-7415
protocol 58 # Blyss DC5-UK-WH
Expand Down
30 changes: 24 additions & 6 deletions src/devices/acurite.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Devices decoded:
- Acurite 609TXC "TH" temperature and humidity sensor (609A1TX)
- Acurite 986 Refrigerator / Freezer Thermometer
- Acurite 515 Refrigerator / Freezer Thermometer
- Acurite 606TX temperature sensor, optional with channels and [TX]Button
- Acurite 606TX / Technoline TX960 temperature sensor, optional with channels and [TX]Button
- Acurite 6045M Lightning Detector
- Acurite 00275rm and 00276rm temp. and humidity with optional probe.
- Acurite 1190/1192 leak/water detector
Expand Down Expand Up @@ -1608,8 +1608,29 @@ static int acurite_986_decode(r_device *decoder, bitbuffer_t *bitbuffer)
}

/**
Acurite 606 Temperature sensor
Acurite 606TX / Technoline TX960 Temperature sensor decoder.

Specs:
- Temperature -40 to 158 F / -40 to 70 C

Status Information sent
- button pressed
- low battery
- channel
- id

Message format:

Byte 0 Byte 1 Byte 2 Byte 3 Byte 4
IIIIIIII BbCCTTTT TTTTTTTT KKKKKKKK f

- I = Sensor ID (8 bits, changes with every battery replacement)
- B = Battery OK (cleared for low)
- b = Button pressed
- C = Channel (2 bits, Channels 0, 1 or 2)
- T = Temperature (12 bits)
- K = Checksum (8 bits)
- f = Final bit (== 0 for Acurite sensor, == !B for Technoline sensor)
*/
static int acurite_606_decode(r_device *decoder, bitbuffer_t *bitbuffer)
{
Expand All @@ -1631,9 +1652,6 @@ static int acurite_606_decode(r_device *decoder, bitbuffer_t *bitbuffer)

b = bitbuffer->bb[row];

if (b[4] != 0)
return DECODE_FAIL_SANITY;

// reject all blank messages
if (b[0] == 0 && b[1] == 0 && b[2] == 0 && b[3] == 0)
return DECODE_FAIL_SANITY;
Expand Down Expand Up @@ -1986,7 +2004,7 @@ static char const *const acurite_590_output_fields[] = {
//.gap_limit = 1200,
//.reset_limit = 12000,
r_device const acurite_606 = {
.name = "Acurite 606TX Temperature Sensor",
.name = "Acurite 606TX / Technoline TX960 Temperature Sensor",
.modulation = OOK_PULSE_PPM,
.short_width = 2000,
.long_width = 4000,
Expand Down
Loading