rtl433  UNKNOWN
RTL-433 utility
alecto.c File Reference

Functions

int alecto_checksum (r_device *decoder, bitrow_t *bb)
 
static uint8_t bcd_decode8 (uint8_t x)
 
static int alectov1_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 AlectoV1 Weather Sensor decoder. More...
 

Variables

static char * output_fields []
 
r_device alectov1
 

Function Documentation

◆ alecto_checksum()

int alecto_checksum ( r_device decoder,
bitrow_t bb 
)

◆ alectov1_callback()

int alectov1_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

AlectoV1 Weather Sensor decoder.

Documentation also at http://www.tfd.hu/tfdhu/files/wsprotocol/auriol_protocol_v20.pdf

Also Unitec W186-F (bought from Migros).

PPM with pulse width 500 us, long gap 4000 us, short gap 2000 us, sync gap 9000 us.

Some sensors transmit 8 long pulses (1-bits) as first row. Some sensors transmit 3 lone pulses (sync bits) between packets.

Message Format: (9 nibbles, 36 bits): Please note that bytes need to be reversed before processing!

Format for Temperature Humidity:

IIIICCII BMMP TTTT TTTT TTTT HHHHHHHH CCCC
RC       Type Temperature___ Humidity Checksum
  • I: 8 bit Random Device ID, includes 2 bit channel (X, 1, 2, 3)
  • B: 1 bit Battery status (0 normal, 1 voltage is below ~2.6 V)
  • M: 2 bit Message type, Temp/Humidity if not '11' else wind/rain sensor
  • P: 1 bit a 0 indicates regular transmission, 1 indicates requested by pushbutton
  • T: 12 bit Temperature (two's complement)
  • H: 8 bit Humidity BCD format
  • C: 4 bit Checksum

Format for Rain:

IIIIIIII BMMP 1100 RRRR RRRR RRRR RRRR CCCC
RC       Type      Rain                Checksum
  • I: 8 bit Random Device ID, includes 2 bit channel (X, 1, 2, 3)
  • B: 1 bit Battery status (0 normal, 1 voltage is below ~2.6 V)
  • M: 2 bit Message type, Temp/Humidity if not '11' else wind/rain sensor
  • P: 1 bit a 0 indicates regular transmission, 1 indicates requested by pushbutton
  • R: 16 bit Rain (bitvalue * 0.25 mm)
  • C: 4 bit Checksum

Format for Windspeed:

IIIIIIII BMMP 1000 0000 0000 WWWWWWWW CCCC
RC       Type                Windspd  Checksum
  • I: 8 bit Random Device ID, includes 2 bit channel (X, 1, 2, 3)
  • B: 1 bit Battery status (0 normal, 1 voltage is below ~2.6 V)
  • M: 2 bit Message type, Temp/Humidity if not '11' else wind/rain sensor
  • P: 1 bit a 0 indicates regular transmission, 1 indicates requested by pushbutton
  • W: 8 bit Windspeed (bitvalue * 0.2 m/s, correction for webapp = 3600/1000 * 0.2 * 100 = 72)
  • C: 4 bit Checksum

Format for Winddirection & Windgust:

IIIIIIII BMMP 111D DDDD DDDD GGGGGGGG CCCC
RC       Type      Winddir   Windgust Checksum
  • I: 8 bit Random Device ID, includes 2 bit channel (X, 1, 2, 3)
  • B: 1 bit Battery status (0 normal, 1 voltage is below ~2.6 V)
  • M: 2 bit Message type, Temp/Humidity if not '11' else wind/rain sensor
  • P: 1 bit a 0 indicates regular transmission, 1 indicates requested by pushbutton
  • D: 9 bit Wind direction
  • G: 8 bit Windgust (bitvalue * 0.2 m/s, correction for webapp = 3600/1000 * 0.2 * 100 = 72)
  • C: 4 bit Checksum

References alecto_checksum(), bitbuffer::bb, bcd_decode8(), bitbuffer::bits_per_row, DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, decoder_output_data(), and reverse8().

◆ bcd_decode8()

static uint8_t bcd_decode8 ( uint8_t  x)
static

Referenced by alectov1_callback().

Variable Documentation

◆ alectov1

r_device alectov1
Initial value:
= {
.name = "AlectoV1 Weather Sensor (Alecto WS3500 WS4500 Ventus W155/W044 Oregon)",
.modulation = OOK_PULSE_PPM,
.short_width = 2000,
.long_width = 4000,
.gap_limit = 7000,
.reset_limit = 10000,
.decode_fn = &alectov1_callback,
.disabled = 0,
.fields = output_fields
}
Pulse Position Modulation. Short gap = 0, Long = 1.
Definition: r_device.h:12
static char * output_fields[]
Definition: alecto.c:218
static int alectov1_callback(r_device *decoder, bitbuffer_t *bitbuffer)
AlectoV1 Weather Sensor decoder.
Definition: alecto.c:109

◆ output_fields

char* output_fields[]
static
Initial value:
= {
"model",
"id",
"channel",
"battery",
"temperature_C",
"humidity",
"rain_total",
"rain_mm",
"wind_speed",
"wind_gust",
"wind_direction",
"wind_avg_km_h",
"wind_max_km_h",
"wind_dir_deg",
"mic",
NULL
}