rtl433  UNKNOWN
RTL-433 utility
tfa_30_3196.c File Reference

TFA Dostmann 30.3196 T/H outdoor sensor. More...

Functions

static int tfa_303196_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 TFA Dostmann 30.3196 T/H outdoor sensor at 868.33M. More...
 

Variables

static char * output_fields []
 
r_device tfa_303196
 

Detailed Description

TFA Dostmann 30.3196 T/H outdoor sensor.

Copyright (c) 2019 Christian W. Zuckschwerdt zany@.nosp@m.triq.nosp@m..net Documented by Ekkehart Tessmer.

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

◆ tfa_303196_callback()

static int tfa_303196_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

TFA Dostmann 30.3196 T/H outdoor sensor at 868.33M.

https://www.tfa-dostmann.de/en/produkt/temperature-humidity-transmitter-11/ https://clientmedia.trade-server.net/1768_tfadost/media/7/86/3786.pdf

The device comes with 'TFA Modus Plus' (indoor) base station. Up to three outdoor sensors can be operated (ch 1, 2, or 3).

  • At the start there is a 6 ms gap (FSK space)
  • Data is Manchester coded with a half-bit width of 245 us
  • The data row is repeated four times with 7 ms gaps (FSK space)
  • A second layer of manchester coding yields 16 bit preamble and 48 bits data
  • The 64 bits of preamble 0xcccccccccccccccc, after first MC 0xaaaaaaaa, after second MC 0xffff
  • A data row consists of 48 bits (6 Bytes).

Data layout:

FFFFFFFF ??CCTTTT TTTTTTTT BHHHHHHH AAAAAAAA AAAAAAAA
  • F: 8 bit Fixed message type 0xA8. d2d2d333 -> 9995 -> 57 (~ A8)
  • C: 2 bit Channel number (1,2,3,X)
  • T: 12 bit Temperature (Celsius) offset 40 scaled 10
  • B: 1 bit Low battery indicator
  • H: 7 bit Humidity
  • A: 16 bit LFSR hash, gen 0x8810, key 0x22d0
  • e.g. TYPE:8h ?2h CH:2d TEMP:12d BATT:1b HUM:7d CHK?16h

Example data:

a8 21 fa 5b 38 54 : 10101000 00100001 11111010 01011011 00111000 01010100
a8 22 22 5e 90 48 : 10101000 00100010 00100010 01011110 10010000 01001000

References bitbuffer::bb, bitbuffer_find_repeated_row(), bitbuffer_manchester_decode(), bitbuffer_search(), bitbuffer::bits_per_row, DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, DECODE_ABORT_EARLY, DECODE_ABORT_LENGTH, DECODE_FAIL_SANITY, decoder_output_data(), lfsr_digest16(), and preamble_pattern.

Variable Documentation

◆ output_fields

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

◆ tfa_303196

r_device tfa_303196
Initial value:
= {
.name = "TFA Dostmann 30.3196 T/H outdoor sensor",
.short_width = 245,
.long_width = 0,
.tolerance = 60,
.reset_limit = 22000,
.decode_fn = &tfa_303196_callback,
.disabled = 0,
.fields = output_fields,
}
static char * output_fields[]
Definition: tfa_30_3196.c:107
static int tfa_303196_callback(r_device *decoder, bitbuffer_t *bitbuffer)
TFA Dostmann 30.3196 T/H outdoor sensor at 868.33M.
Definition: tfa_30_3196.c:51
FSK, Manchester encoding.
Definition: r_device.h:21