rtl433  UNKNOWN
RTL-433 utility
ambientweather_tx8300.c File Reference

Ambient Weather TX-8300 (also sold as TFA 30.3211.02). More...

Functions

static uint8_t tx8300_chk (uint8_t *b)
 
static int ambientweather_tx8300_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 Ambient Weather TX-8300 (also sold as TFA 30.3211.02). More...
 

Variables

static char * output_fields []
 
r_device ambientweather_tx8300
 

Detailed Description

Ambient Weather TX-8300 (also sold as TFA 30.3211.02).

Copyright (C) 2018 ionum-projekte and Roger

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Function Documentation

◆ ambientweather_tx8300_callback()

int ambientweather_tx8300_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

Ambient Weather TX-8300 (also sold as TFA 30.3211.02).

1970us pulse with variable gap (third pulse 3920 us). Above 79% humidity, gap after third pulse is 5848 us.

  • Bit 1 : 1970us pulse with 3888 us gap
  • Bit 0 : 1970us pulse with 1936 us gap

74 bit (2 bit preamble and 72 bit data => 9 bytes => 18 nibbles) The preamble seems to be a repeat counter (00, and 01 seen), the first 4 bytes are data, the second 4 bytes the same data inverted, the last byte is a checksum.

Preamble format (2 bits):

[1 bit (0)] [1 bit rolling count]

Payload format (32 bits):

HHHHhhhh ??CCNIII IIIITTTT ttttuuuu
  • H = First BCD digit humidity (the MSB might be distorted by the demod)
  • h = Second BCD digit humidity, invalid humidity seems to be 0x0e
  • ? = Likely battery flag, 2 bits
  • C = Channel, 2 bits
  • N = Negative temperature sign bit
  • I = ID, 7-bit
  • T = First BCD digit temperature
  • t = Second BCD digit temperature
  • u = Third BCD digit temperature

The Checksum seems to covers the 4 data bytes and is something like Fletcher-8.

References bitbuffer_extract_bytes(), bitbuffer::bits_per_row, data_append(), DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, decoder_output_data(), tx8300_chk(), and r_device::verbose.

◆ tx8300_chk()

static uint8_t tx8300_chk ( uint8_t b)
static

Variable Documentation

◆ ambientweather_tx8300

r_device ambientweather_tx8300
Initial value:
= {
.name = "Ambient Weather TX-8300 Temperature/Humidity Sensor",
.modulation = OOK_PULSE_PPM,
.short_width = 2000,
.long_width = 4000,
.gap_limit = 6500,
.reset_limit = 8000,
.disabled = 0,
.fields = output_fields,
}
Pulse Position Modulation. Short gap = 0, Long = 1.
Definition: r_device.h:12
static int ambientweather_tx8300_callback(r_device *decoder, bitbuffer_t *bitbuffer)
Ambient Weather TX-8300 (also sold as TFA 30.3211.02).
Definition: ambientweather_tx8300.c:62
static char * output_fields[]
Definition: ambientweather_tx8300.c:130

◆ output_fields

char* output_fields[]
static
Initial value:
= {
"model",
"id",
"channel",
"battery",
"temperature_C",
"humidity",
"mic",
NULL,
}