rtl433  UNKNOWN
RTL-433 utility
holman_ws5029.c File Reference

Decoder for Holman Industries WS5029 weather station. More...

Functions

static int holman_ws5029_decode (r_device *decoder, bitbuffer_t *bitbuffer)
 Decoder for Holman Industries WS5029 weather station, a.k.a. More...
 

Variables

static char * output_fields []
 
r_device holman_ws5029
 

Detailed Description

Decoder for Holman Industries WS5029 weather station.

Copyright (C) 2019 Ryan Mounce ryan@.nosp@m.moun.nosp@m.ce.co.nosp@m.m.au

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

◆ holman_ws5029_decode()

static int holman_ws5029_decode ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

Decoder for Holman Industries WS5029 weather station, a.k.a.

Holman iWeather Station. https://www.holmanindustries.com.au/products/iweather-station/

Appears to be related to the Fine Offset WH1080 and Digitech XC0348.

  • Modulation: FSK PCM
  • Frequency: 917.0 MHz +- 40 kHz
  • 10 kb/s bitrate, 100 us symbol/bit time

A transmission burst is sent every 57 seconds. Each burst consists of 3 repititions of the same 192 bit "package" separated by a 1 ms gap.

Package format:

  • Preamble {48}0xAAAAAAAAAAAA
  • Header {24}0x98F3A5
  • Payload {96} see below
  • Checksum {8} unidentified
  • Trailer/Postamble {16} ???

Payload format:

Byte (dec)  09 10 11 12 13 14 15 16 17 18 19 20
Nibble key  II II CC CH HR RR WW Dx xx xx xx xx
  • IIII station ID (randomised on each battery insertion)
  • CCC degrees C, signed, in multiples of 0.1 C
  • HH humidity %
  • RRR cumulative rain in multiples of 0.79 mm
  • WW wind speed in km/h
  • D wind direction (0 = N, 4 = E, 8 = S, 12 = W)
  • xxxxxxxxx ???, usually zero

To get raw data $ rtl_433 -f 917M -X 'name=WS5029,modulation=FSK_PCM,short=100,long=100,preamble={48}0xAAAAAAAAAAAA,reset=19200'

References bitbuffer_extract_bytes(), bitbuffer_search(), bitbuffer::bits_per_row, DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, DECODE_ABORT_EARLY, DECODE_ABORT_LENGTH, decoder_output_data(), bitbuffer::num_rows, preamble, and wind_dir_degr.

Variable Documentation

◆ holman_ws5029

r_device holman_ws5029
Initial value:
= {
.name = "Holman Industries WS5029 weather station",
.modulation = FSK_PULSE_PCM,
.short_width = 100,
.long_width = 100,
.reset_limit = 19200,
.decode_fn = &holman_ws5029_decode,
.disabled = 0,
.fields = output_fields,
}
static int holman_ws5029_decode(r_device *decoder, bitbuffer_t *bitbuffer)
Decoder for Holman Industries WS5029 weather station, a.k.a.
Definition: holman_ws5029.c:52
FSK, Pulse Code Modulation.
Definition: r_device.h:19
static char * output_fields[]
Definition: holman_ws5029.c:119

◆ output_fields

char* output_fields[]
static
Initial value:
= {
"model",
"id",
"temperature_C",
"humidity",
"rain_mm",
"wind_avg_km_h",
"direction_deg",
NULL,
}