rtl433  UNKNOWN
RTL-433 utility
ambientweather_wh31e.c File Reference

Ambient Weather WH31E protocol. More...

Functions

static int ambientweather_wh31e_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 Ambient Weather WH31E protocol. More...
 

Variables

static char * output_fields []
 
r_device ambientweather_wh31e
 

Detailed Description

Ambient Weather WH31E protocol.

Copyright (C) 2018 Christian W. Zuckschwerdt zany@.nosp@m.triq.nosp@m..net based on protocol analysis by James Cuff and Michele Clamp

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_wh31e_callback()

static int ambientweather_wh31e_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

Ambient Weather WH31E protocol.

915 MHz FSK PCM Thermo-Hygrometer Sensor (bundled as Ambient Weather WS-3000-X5).

56 us bit length with a warm-up of 1336 us mark(pulse), 1996 us space(gap), a preamble of 48 bit flips (0xaaaaaaaaaaaa) and a 0x2dd4 sync-word.

Data layout:

YY II CT TT HH XX ?? ?? ?? ?? ??
  • Y is a fixed Type Code of 0x30
  • I is a device ID
  • C is the Channel number (only the lower 3 bits)
  • T is 12bits Temperature in C, scaled by 10, offset 400
  • H is Humidity
  • X is CRC-8, poly 0x31, init 0x00

Example packets:

{177} aa aa aa aa aa aa  2d d4  30 c3 8 20a 5e  df   bc 07 56 a7 ae  00 00 00 00
{178} aa aa aa aa aa aa  2d d4  30 44 9 21a 39  5a   b3 07 45 04 5f  00 00 00 00

Some payloads:

30 c3 81 d5 5c 2a cf 08 35 44 2c
30 35 c2 2f 3c 0f a1 07 52 29 9f
30 35 c2 2e 3c fb 8c 07 52 29 9f
30 c9 a2 1e 40 0c 05 07 34 c6 b1
30 2b b2 14 3d 94 f2 08 53 78 e6
30 c9 a2 1f 40 f8 f2 07 34 c6 b1
30 44 92 13 3e 0e 65 07 45 04 5f
30 44 92 15 3d 07 5f 07 45 04 5f
30 c3 81 d6 5b 90 35 08 35 44 2c

References bitbuffer_extract_bytes(), bitbuffer_search(), bitbuffer::bits_per_row, crc8(), DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, decoder_output_data(), bitbuffer::num_rows, preamble, and r_device::verbose.

Variable Documentation

◆ ambientweather_wh31e

r_device ambientweather_wh31e
Initial value:
= {
.name = "Ambient Weather WH31E Thermo-Hygrometer Sensor",
.modulation = FSK_PULSE_PCM,
.short_width = 56,
.long_width = 56,
.reset_limit = 1500,
.gap_limit = 1800,
.disabled = 0,
.fields = output_fields,
}
FSK, Pulse Code Modulation.
Definition: r_device.h:19
static int ambientweather_wh31e_callback(r_device *decoder, bitbuffer_t *bitbuffer)
Ambient Weather WH31E protocol.
Definition: ambientweather_wh31e.c:51
static char * output_fields[]
Definition: ambientweather_wh31e.c:120

◆ output_fields

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