rtl433  UNKNOWN
RTL-433 utility
wg_pb12v1.c File Reference

WG-PB12V1 Temperature Sensor. More...

Functions

static int wg_pb12v1_decode (r_device *decoder, bitbuffer_t *bitbuffer)
 WG-PB12V1 Temperature Sensor. More...
 

Variables

static char * output_fields []
 
r_device wg_pb12v1
 

Detailed Description

WG-PB12V1 Temperature Sensor.

Copyright (C) 2015 Tommy Vestermark Modifications Copyright (C) 2017 CiarĂ¡n Mooney

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

◆ wg_pb12v1_decode()

static int wg_pb12v1_decode ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

WG-PB12V1 Temperature Sensor.

Device method to decode a generic wireless temperature probe. Probe marked with WG-PB12V1-2016/11.

Format of Packets:

The packet format appears to be similar those the Lacrosse format. (http://fredboboss.free.fr/articles/tx29.php)

AAAAAAAA MMMMTTTT TTTTTTTT ???IIIII HHHHHHHH CCCCCCCC
  • A: Preamble - 11111111
  • M: Message type?, fixed 0x3, e.g. Fine Offset WH2 has 0x4 here
  • T: Temperature, scale 10, offset 40
  • I: ID of probe is set randomly each time the device is powered off-on, Note, base station has and unused "123" symbol, but ID values can be higher than this.
  • H: Humidity - not used, is always 11111111
  • C: Checksum - CRC8, polynomial 0x31, initial value 0x0, final value 0x0

Temperature:

Temperature value is "deci-celsius", ie 10 dC = 1C, offset by -40 C.

0010 01011101 = 605 dC => 60.5 C
Remove offset => 60.5 C - 40 C = 20.5 C

Unknown:

Possible uses could be weak battery, or new battery.

At the moment it this device cannot distinguish between a Fine Offset device, see fineoffset.c.

References bitbuffer::bb, bitbuffer::bits_per_row, crc8(), DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, DECODE_ABORT_EARLY, DECODE_ABORT_LENGTH, DECODE_FAIL_MIC, DECODE_FAIL_OTHER, and decoder_output_data().

Variable Documentation

◆ output_fields

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

◆ wg_pb12v1

r_device wg_pb12v1
Initial value:
= {
.name = "WG-PB12V1 Temperature Sensor",
.modulation = OOK_PULSE_PWM,
.short_width = 564,
.long_width = 1476,
.reset_limit = 2500,
.decode_fn = &wg_pb12v1_decode,
.disabled = 0,
.fields = output_fields,
}
static int wg_pb12v1_decode(r_device *decoder, bitbuffer_t *bitbuffer)
WG-PB12V1 Temperature Sensor.
Definition: wg_pb12v1.c:51
Pulse Width Modulation with precise timing parameters.
Definition: r_device.h:13
static char * output_fields[]
Definition: wg_pb12v1.c:92