rtl433  UNKNOWN
RTL-433 utility
wt450.c File Reference

WT450 wireless weather sensors protocol. More...

Functions

static int wt450_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 source from: http://ala-paavola.fi/jaakko/doku.php?id=wt450h More...
 

Variables

static char * output_fields []
 
r_device wt450
 

Detailed Description

WT450 wireless weather sensors protocol.

Tested devices: WT260H WT405H

Copyright (C) 2015 Tommy Vestermark Copyright (C) 2015 Ladislav Foldyna

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

◆ wt450_callback()

static int wt450_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

source from: http://ala-paavola.fi/jaakko/doku.php?id=wt450h

  • The signal is FM encoded with clock cycle around 2000 µs
  • No level shift within the clock cycle translates to a logic 0
  • One level shift within the clock cycle translates to a logic 1
  • Each clock cycle begins with a level shift
  • My timing constants defined below are those observed by my program

    +—+ +—+ +----—+ + high | | | | | | | | | | | | | |

    • +—+ +—+ +----—+ low ^ ^ ^ ^ ^ clock cycle | 1 | 1 | 0 | 0 | translates as

Each transmission is 36 bits long (i.e. 72 ms).

Data is transmitted in pure binary values, NOT BCD-coded.

Outdoor sensor transmits data temperature, humidity. Transmissions also include channel code and house code. The sensor transmits every 60 seconds 3 packets.

1100 0001 | 0011 0011 | 1000 0011 | 1011 0011 | 0001
xxxx ssss | ccxx bhhh | hhhh tttt | tttt tttt | sseo
  • x: constant
  • s: House code
  • c: Channel
  • b: battery low indicator (0=>OK, 1=>LOW)
  • h: Humidity
  • t: Temperature, 12 bit, offset 50, scale 16
  • s: sequence number of message repeat
  • e: parity of all even bits
  • o: parity of all odd bits

References bitbuffer::bb, bit(), bitbuffer_printf(), bitbuffer::bits_per_row, DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, DECODE_ABORT_EARLY, DECODE_ABORT_LENGTH, DECODE_FAIL_MIC, decoder_output_data(), r_device::verbose, and xor_bytes().

Variable Documentation

◆ output_fields

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

◆ wt450

r_device wt450
Initial value:
= {
.name = "WT450, WT260H, WT405H",
.modulation = OOK_PULSE_DMC,
.short_width = 976,
.long_width = 1952,
.reset_limit = 18000,
.tolerance = 100,
.decode_fn = &wt450_callback,
.disabled = 0,
.fields = output_fields,
}
static int wt450_callback(r_device *decoder, bitbuffer_t *bitbuffer)
source from: http://ala-paavola.fi/jaakko/doku.php?id=wt450h
Definition: wt450.c:58
Level shift within the clock cycle.
Definition: r_device.h:16
static char * output_fields[]
Definition: wt450.c:122