Help To Decode - Mini LCD Display Weather Station XC0400

1,119 views
Skip to first unread message

Daryl Williams

unread,
Aug 3, 2016, 7:22:18 PM8/3/16
to rtl_433
Need help decoding this Weather Station: http://www.jaycar.com.au/mini-lcd-display-weather-station/p/XC0400
which I think is a Fine Offset: http://www.foshk.com/Weather_Professional/WH5301.htm

Can you provide python subprocess code to grab rtl_433 decoded data. Just to get the data with python. I can do the rest myself.

here is the output from ./rtl_433 -f 433889906 -a

===========================================================
rtl_433 decode [01] {87} output - manually set sensor measurements

sensors column TEMP(Temperatur) RN(Rain)  D(Wind Direction)  H(Humidity)  SP(Wind Speed)
===========================================================
                   TEMP RN  D  H  SP
00 be dc 09 4f eb e5 fe 41 ee 74 - 10.8 1.5 s  88 10.1
00 be dc 09 4f e7 db fe 41 f2 36 - 13.0 1.5 se 88 10.1
00 be dc 09 4f f1 ed fe 41 ef 8c -  7.6 1.5 s  88 10.1
00 be dc 05 4d e9 e3 fe 41 ee 6c - 11.9 1.5 s  89 10.9
00 be dc 05 4d e9 e3 fe 41 ee 6c - 11.9 1.5 sw 89 10.9
00 be dc 05 4f eb db fe 3f f3 58 - 10.8 0.0 se 88 10.9
00 be dc 05 4d eb e3 fe 3f ef 9c - 10.8 0.0 s  89 10.9
00 be dc 05 4d dd d3 fe 3f f3 e6 - 18.4 0.0 se 89 10.9

===========================================================

daryl@daryl-ub16main:~/rtl_433/build/src$ ./rtl_433 -f 433889906 -a
Registering protocol "Silvercrest Remote Control"
Registering protocol "Rubicson Temperature Sensor"
Registering protocol "Prologue Temperature Sensor"
Registering protocol "Waveman Switch Transmitter"
Registering protocol "Steffen Switch Transmitter"
Registering protocol "ELV EM 1000"
Registering protocol "ELV WS 2000"
Registering protocol "LaCrosse TX Temperature / Humidity Sensor"
Registering protocol "Acurite 5n1 Weather Station"
Registering protocol "Acurite Temperature and Humidity Sensor"
Registering protocol "Oregon Scientific Weather Sensor"
Registering protocol "Mebus 433"
Registering protocol "Intertechno 433"
Registering protocol "KlikAanKlikUit Wireless Switch"
Registering protocol "AlectoV1 Weather Sensor (Alecto WS3500 WS4500 Ventus W155/W044 Oregon)"
Registering protocol "Cardin S466-TX2"
Registering protocol "Fine Offset Electronics, WH-2 Sensor"
Registering protocol "Nexus Temperature & Humidity Sensor"
Registering protocol "Ambient Weather Temperature Sensor"
Registering protocol "Calibeur RF-104 Sensor"
Registering protocol "X10 RF"
Registering protocol "DSC Security Contact"
Registering protocol "Brennstuhl RCS 2044"
Registering protocol "GT-WT-02 Sensor"
Registering protocol "Danfoss CFR Thermostat"
Registering protocol "Energy Count 3000 (868.3 MHz)"
Registering protocol "Valeo Car Key"
Registering protocol "Chuango Security Technology"
Registering protocol "Generic Remote SC226x EV1527"
Registering protocol "TFA-Twin-Plus-30.3049 and Ea2 BL999"
Registering protocol "Fine Offset WH1080 Weather Station"
Registering protocol "WT450"
Registering protocol "LaCrosse WS-2310 Weather Station"
Registering protocol "Esperanza EWS"
Registering protocol "Efergy e2 classic"
Registering protocol "Inovalley kw9015b rain and Temperature weather station"
Registering protocol "Generic temperature sensor 1"
Registering protocol "Acurite 592TXR Temperature/Humidity Sensor and 5n1 Weather Station"
Registering protocol "Acurite 986 Refrigerator / Freezer Thermometer"
Registering protocol "HIDEKI TS04 Temperature and Humidity Sensor"
Registering protocol "Watchman Sonic / Apollo Ultrasonic / Beckett Rocket oil tank monitor"
Registering protocol "CurrentCost Current Sensor"
Registering protocol "emonTx OpenEnergyMonitor"
Registering protocol "HT680 Remote control"
Registering protocol "S3318P Temperature & Humidity Sensor"
Registering protocol "Akhan 100F14 remote keyless entry"
Registering protocol "Quhwa"
Registering protocol "OSv1 Temperature Sensor"
Registering protocol "Proove"
Registering protocol "Bresser Thermo-/Hygro-Sensor 3CH"
Registering protocol "Springfield Temperature and Soil Moisture"
Registering protocol "Oregon Scientific SL109H Remote Thermal Hygro Sensor"
Registering protocol "Acurite 606TX Temperature Sensor"
Registering protocol "TFA pool temperature sensor"
Registering protocol "Kedsum Temperature & Humidity Sensor"
Registering protocol "blyss DC5-UK-WH (433.92 MHz)"
Registering protocol "Steelmate TPMS"
Registering protocol "Schraeder TPMS"
Registering protocol "LightwaveRF"
Registering protocol "Elro DB286A Doorbell"
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000.
Bit detection level set to 8000.
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 433889906 Hz.
*** signal_start = 225395, signal_end = 340805
signal_len = 115410,  pulses = 174
Iteration 1. t: 247    min: 125 (74)    max: 369 (100)    delta 25
Iteration 2. t: 247    min: 125 (74)    max: 369 (100)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 241, packet distance: 7751

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 07 4f e1 db fe 41 ef 7a
[01] {87} 00 be dc 07 4f e1 db fe 41 ef 7a
*** signal_start = 1855734, signal_end = 1875779
signal_len = 20045,  pulses = 1
Distance coding: Pulse length 44

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 44
bitbuffer:: Number of rows: 0
*** signal_start = 8044697, signal_end = 8064760
signal_len = 20063,  pulses = 2
Iteration 1. t: 30    min: 7 (1)    max: 53 (1)    delta 0
Pulse coding: Short pulse length 7 - Long pulse length 53

Short distance: 2, long distance: 0, packet distance: 2

p_limit: 30
bitbuffer:: Number of rows: 2
[00] {1} 00 : 0
[01] {1} 80 : 1
*** signal_start = 12225757, signal_end = 12288610
signal_len = 62853,  pulses = 87
Iteration 1. t: 247    min: 125 (41)    max: 369 (46)    delta 13
Iteration 2. t: 247    min: 125 (41)    max: 369 (46)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 238, packet distance: 240

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {4} 00 : 0000
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 80 : 1
[06] {1} 00 : 0
[07] {1} 80 : 1
[08] {1} 80 : 1
[09] {1} 80 : 1
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 00 : 0
[13] {1} 80 : 1
[14] {1} 80 : 1
[15] {1} 00 : 0
[16] {1} 80 : 1
[17] {1} 80 : 1
[18] {1} 80 : 1
[19] {1} 00 : 0
[20] {1} 00 : 0
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {60} 4a 7f 0e bf f2 0f 95 60
*** signal_start = 24140226, signal_end = 24160271
signal_len = 20045,  pulses = 1
Distance coding: Pulse length 44

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 44
bitbuffer:: Number of rows: 0
*** signal_start = 24227144, signal_end = 24341576
signal_len = 114432,  pulses = 174
Iteration 1. t: 247    min: 125 (78)    max: 369 (96)    delta 25
Iteration 2. t: 247    min: 125 (78)    max: 369 (96)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 237, long distance: 240, packet distance: 7748

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 09 4f eb e5 fe 41 ee 74
[01] {87} 00 be dc 09 4f eb e5 fe 41 ee 74
*** signal_start = 36227790, signal_end = 36291132
signal_len = 63342,  pulses = 87
Iteration 1. t: 247    min: 125 (39)    max: 369 (48)    delta 13
Iteration 2. t: 247    min: 125 (39)    max: 369 (48)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 237, long distance: 238, packet distance: 242

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 00 : 0
[08] {1} 80 : 1
[09] {2} 40 : 01
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {2} c0 : 11
[13] {1} 00 : 0
[14] {1} 80 : 1
[15] {2} 80 : 10
[16] {1} 80 : 1
[17] {2} c0 : 11
[18] {1} 00 : 0
[19] {1} 00 : 0
[20] {3} 00 : 000
[21] {1} 00 : 0
[22] {3} 80 : 100
[23] {1} 80 : 1
[24] {55} 4f eb e5 fe 41 ee 74
*** signal_start = 48228978, signal_end = 48343410
signal_len = 114432,  pulses = 174
Iteration 1. t: 247    min: 125 (78)    max: 369 (96)    delta 25
Iteration 2. t: 247    min: 125 (78)    max: 369 (96)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 237, long distance: 241, packet distance: 7748

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 09 4f e7 db fe 41 f2 36
[01] {87} 00 be dc 09 4f e7 db fe 41 f2 36
*** signal_start = 60229686, signal_end = 60293506
signal_len = 63820,  pulses = 87
Iteration 1. t: 247    min: 125 (37)    max: 369 (50)    delta 109
Iteration 2. t: 247    min: 125 (37)    max: 369 (50)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 238, packet distance: 240

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 00 : 0
[08] {1} 80 : 1
[09] {1} 00 : 0
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 80 : 1
[14] {1} 80 : 1
[15] {1} 00 : 0
[16] {1} 80 : 1
[17] {1} 80 : 1
[18] {2} 40 : 01
[19] {1} 80 : 1
[20] {1} 80 : 1
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {62} 12 9f db d3 fc 83 dd dc
*** signal_start = 72230310, signal_end = 72344741
signal_len = 114431,  pulses = 174
Iteration 1. t: 247    min: 125 (78)    max: 369 (96)    delta 153
Iteration 2. t: 247    min: 125 (78)    max: 369 (96)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 237, long distance: 240, packet distance: 7749

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 09 4f f1 ed fe 41 ef 8c
[01] {87} 00 be dc 09 4f f1 ed fe 41 ef 8c
*** signal_start = 84231184, signal_end = 84293547
signal_len = 62363,  pulses = 87
Iteration 1. t: 247    min: 125 (43)    max: 369 (44)    delta 13
Iteration 2. t: 247    min: 125 (43)    max: 369 (44)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 237, long distance: 238, packet distance: 242

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {2} 00 : 00
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {2} 40 : 01
[07] {2} 40 : 01
[08] {2} c0 : 11
[09] {2} c0 : 11
[10] {1} 00 : 0
[11] {2} c0 : 11
[12] {2} 40 : 01
[13] {2} c0 : 11
[14] {1} 00 : 0
[15] {1} 00 : 0
[16] {2} 00 : 00
[17] {2} 00 : 00
[18] {2} 80 : 10
[19] {1} 00 : 0
[20] {1} 80 : 1
[21] {1} 00 : 0
[22] {1} 80 : 1
[23] {1} 00 : 0
[24] {52} 6f 4f 1f f2 0f 72 20
*** signal_start = 89074076, signal_end = 89094127
signal_len = 20051,  pulses = 1
Distance coding: Pulse length 50

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 50
bitbuffer:: Number of rows: 0
*** signal_start = 90612208, signal_end = 90632258
signal_len = 20050,  pulses = 1
Distance coding: Pulse length 49

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 49
bitbuffer:: Number of rows: 0
*** signal_start = 96232239, signal_end = 96346668
signal_len = 114429,  pulses = 174
Iteration 1. t: 247    min: 125 (78)    max: 369 (96)    delta 13
Iteration 2. t: 247    min: 125 (78)    max: 369 (96)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 241, packet distance: 7747

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 09 4d eb e3 fe 41 ef e2
[01] {87} 00 be dc 09 4d eb e3 fe 41 ef e2
*** signal_start = 99456885, signal_end = 99477006
signal_len = 20121,  pulses = 2
Iteration 1. t: 45    min: 42 (1)    max: 49 (1)    delta 0
Distance coding: Pulse length 45

Short distance: 29, long distance: 0, packet distance: 29

p_limit: 45
bitbuffer:: Number of rows: 2
[00] {0} :
[01] {0} :
*** signal_start = 102531334, signal_end = 102551377
signal_len = 20043,  pulses = 1
Distance coding: Pulse length 42

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 42
bitbuffer:: Number of rows: 0
*** signal_start = 108233473, signal_end = 108296331
signal_len = 62858,  pulses = 87
Iteration 1. t: 247    min: 125 (41)    max: 369 (46)    delta 20
Iteration 2. t: 247    min: 125 (41)    max: 369 (46)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 238, packet distance: 240

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {2} 00 : 00
[06] {1} 00 : 0
[07] {1} 80 : 1
[08] {1} 00 : 0
[09] {1} 80 : 1
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 80 : 1
[14] {1} 00 : 0
[15] {1} 80 : 1
[16] {1} 80 : 1
[17] {1} 00 : 0
[18] {1} 80 : 1
[19] {1} 80 : 1
[20] {1} 80 : 1
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {62} 0e 9b c7 b7 fc 83 e4 98
*** signal_start = 118276489, signal_end = 118296538
signal_len = 20049,  pulses = 1
Distance coding: Pulse length 48

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 48
bitbuffer:: Number of rows: 0
*** signal_start = 119744727, signal_end = 119764776
signal_len = 20049,  pulses = 1
Distance coding: Pulse length 48

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 48
bitbuffer:: Number of rows: 0
*** signal_start = 120234403, signal_end = 120348349
signal_len = 113946,  pulses = 174
Iteration 1. t: 247    min: 125 (82)    max: 369 (92)    delta 25
Iteration 2. t: 247    min: 125 (82)    max: 369 (92)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 241, packet distance: 8236

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 05 4d e9 e3 fe 41 ee 6c
[01] {87} 00 be dc 05 4d e9 e3 fe 41 ee 6c
*** signal_start = 121336286, signal_end = 121356336
signal_len = 20050,  pulses = 1
Distance coding: Pulse length 49

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 49
bitbuffer:: Number of rows: 0
*** signal_start = 122421081, signal_end = 122441132
signal_len = 20051,  pulses = 1
Distance coding: Pulse length 50

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 50
bitbuffer:: Number of rows: 0
*** signal_start = 125985141, signal_end = 126005190
signal_len = 20049,  pulses = 1
Distance coding: Pulse length 48

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 48
bitbuffer:: Number of rows: 0
*** signal_start = 129059617, signal_end = 129079666
signal_len = 20049,  pulses = 1
Distance coding: Pulse length 48

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 48
bitbuffer:: Number of rows: 0
*** signal_start = 132185433, signal_end = 132297392
signal_len = 111959,  pulses = 89
Iteration 1. t: 245    min: 121 (45)    max: 369 (44)    delta 6404
Iteration 2. t: 245    min: 121 (45)    max: 369 (44)    delta 0
Pulse coding: Short pulse length 121 - Long pulse length 369

Short distance: 30, long distance: 240, packet distance: 49477

p_limit: 245
bitbuffer:: Number of rows: 2
[00] {2} 00 : 00
[01] {87} 00 be dc 05 4d e9 e3 fe 41 ea a8
*** signal_start = 144235955, signal_end = 144350875
signal_len = 114920,  pulses = 174
Iteration 1. t: 247    min: 125 (78)    max: 369 (96)    delta 18
Iteration 2. t: 247    min: 125 (78)    max: 369 (96)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 237, long distance: 241, packet distance: 8238

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 05 4d e5 db fe 3f f3 40
[01] {87} 00 be dc 05 4d e5 db fe 3f f3 40
*** signal_start = 150805138, signal_end = 150825265
signal_len = 20127,  pulses = 2
Iteration 1. t: 48    min: 47 (1)    max: 49 (1)    delta 0
Distance coding: Pulse length 48

Short distance: 30, long distance: 0, packet distance: 30

p_limit: 48
bitbuffer:: Number of rows: 2
[00] {0} :
[01] {0} :
*** signal_start = 153754240, signal_end = 153774367
signal_len = 20127,  pulses = 2
Iteration 1. t: 48    min: 42 (1)    max: 55 (1)    delta 0
Distance coding: Pulse length 48

Short distance: 29, long distance: 0, packet distance: 29

p_limit: 48
bitbuffer:: Number of rows: 2
[00] {0} :
[01] {0} :
*** signal_start = 156112912, signal_end = 156132961
signal_len = 20049,  pulses = 1
Distance coding: Pulse length 48

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 48
bitbuffer:: Number of rows: 0
*** signal_start = 156236821, signal_end = 156301139
signal_len = 64318,  pulses = 87
Iteration 1. t: 246    min: 124 (35)    max: 369 (52)    delta 13
Iteration 2. t: 246    min: 124 (35)    max: 369 (52)    delta 0
Pulse coding: Short pulse length 124 - Long pulse length 369

Short distance: 238, long distance: 238, packet distance: 242

p_limit: 246
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {2} 00 : 00
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {3} 00 : 000
[05] {1} 80 : 1
[06] {1} 00 : 0
[07] {1} 80 : 1
[08] {1} 80 : 1
[09] {1} 80 : 1
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 00 : 0
[13] {1} 80 : 1
[14] {1} 80 : 1
[15] {1} 00 : 0
[16] {1} 80 : 1
[17] {1} 80 : 1
[18] {1} 80 : 1
[19] {3} 00 : 000
[20] {1} 00 : 0
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {58} a9 bd fd 3f c7 fe 74 c0
*** signal_start = 164288360, signal_end = 164308408
signal_len = 20048,  pulses = 1
Distance coding: Pulse length 47

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 47
bitbuffer:: Number of rows: 0
*** signal_start = 167833287, signal_end = 167853329
signal_len = 20042,  pulses = 1
Distance coding: Pulse length 41

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 41
bitbuffer:: Number of rows: 0
*** signal_start = 168237989, signal_end = 168354375
signal_len = 116386,  pulses = 174
Iteration 1. t: 247    min: 125 (70)    max: 369 (104)    delta 32
Iteration 2. t: 247    min: 125 (70)    max: 369 (104)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 241, packet distance: 7747

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 05 4f e3 db fe 3f f3 66
[01] {87} 00 be dc 05 4f e3 db fe 3f f3 66
*** signal_start = 180238669, signal_end = 180302990
signal_len = 64321,  pulses = 87
Iteration 1. t: 247    min: 125 (35)    max: 369 (52)    delta 32
Iteration 2. t: 247    min: 125 (35)    max: 369 (52)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 238, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 00 : 0
[08] {1} 80 : 1
[09] {1} 00 : 0
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 80 : 1
[14] {1} 80 : 1
[15] {1} 00 : 0
[16] {1} 80 : 1
[17] {1} 80 : 1
[18] {1} 00 : 0
[19] {1} 80 : 1
[20] {1} 80 : 1
[21] {1} 80 : 1
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {63} 05 4f eb db fe 3f f3 58
*** signal_start = 185821063, signal_end = 185841112
signal_len = 20049,  pulses = 1
Distance coding: Pulse length 48

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 48
bitbuffer:: Number of rows: 0
*** signal_start = 188010473, signal_end = 188030508
signal_len = 20035,  pulses = 1
Distance coding: Pulse length 34

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 34
bitbuffer:: Number of rows: 0
*** signal_start = 188481620, signal_end = 188501660
signal_len = 20040,  pulses = 1
Distance coding: Pulse length 39

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 39
bitbuffer:: Number of rows: 0
*** signal_start = 192239409, signal_end = 192355796
signal_len = 116387,  pulses = 174
Iteration 1. t: 247    min: 125 (70)    max: 369 (104)    delta 32
Iteration 2. t: 247    min: 125 (70)    max: 369 (104)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 241, packet distance: 7746

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 05 4f eb db fe 3f f3 58
[01] {87} 00 be dc 05 4f eb db fe 3f f3 58
*** signal_start = 204239723, signal_end = 204303553
signal_len = 63830,  pulses = 87
Iteration 1. t: 247    min: 125 (37)    max: 369 (50)    delta 32
Iteration 2. t: 247    min: 125 (37)    max: 369 (50)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 238, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 00 : 0
[08] {1} 80 : 1
[09] {1} 00 : 0
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 80 : 1
[14] {1} 80 : 1
[15] {2} 40 : 01
[16] {1} 80 : 1
[17] {1} 00 : 0
[18] {1} 80 : 1
[19] {1} 80 : 1
[20] {1} 80 : 1
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {62} 0a 9b e7 db fc 7f e5 88
*** signal_start = 206854838, signal_end = 206874888
signal_len = 20050,  pulses = 1
Distance coding: Pulse length 49

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 49
bitbuffer:: Number of rows: 0
*** signal_start = 216240645, signal_end = 216357033
signal_len = 116388,  pulses = 174
Iteration 1. t: 247    min: 125 (70)    max: 369 (104)    delta 32
Iteration 2. t: 247    min: 125 (70)    max: 369 (104)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 240, packet distance: 7749

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 05 4d eb e3 fe 3f ef 9c
[01] {87} 00 be dc 05 4d eb e3 fe 3f ef 9c
*** signal_start = 216638911, signal_end = 216658952
signal_len = 20041,  pulses = 1
Distance coding: Pulse length 40

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 40
bitbuffer:: Number of rows: 0
*** signal_start = 223822766, signal_end = 223842814
signal_len = 20048,  pulses = 1
Distance coding: Pulse length 47

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 47
bitbuffer:: Number of rows: 0
*** signal_start = 228242055, signal_end = 228306374
signal_len = 64319,  pulses = 87
Iteration 1. t: 247    min: 125 (35)    max: 369 (52)    delta 25
Iteration 2. t: 247    min: 125 (35)    max: 369 (52)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 239, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {2} 00 : 00
[01] {1} 00 : 0
[02] {2} 00 : 00
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 80 : 1
[07] {1} 00 : 0
[08] {1} 80 : 1
[09] {1} 80 : 1
[10] {2} c0 : 11
[11] {1} 80 : 1
[12] {1} 00 : 0
[13] {1} 80 : 1
[14] {1} 80 : 1
[15] {1} 00 : 0
[16] {1} 80 : 1
[17] {1} 80 : 1
[18] {1} 80 : 1
[19] {1} 00 : 0
[20] {1} 00 : 0
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {60} 2a 6f 4e df f1 ff 73 70
*** signal_start = 240242976, signal_end = 240359362
signal_len = 116386,  pulses = 174
Iteration 1. t: 247    min: 125 (70)    max: 369 (104)    delta 25
Iteration 2. t: 247    min: 125 (70)    max: 369 (104)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 240, packet distance: 7752

p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be dc 05 4d dd d3 fe 3f f3 e6
[01] {87} 00 be dc 05 4d dd d3 fe 3f f3 e6
*** signal_start = 250839481, signal_end = 250859523
signal_len = 20042,  pulses = 1
Distance coding: Pulse length 41

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 41
bitbuffer:: Number of rows: 0
*** signal_start = 252243408, signal_end = 252307729
signal_len = 64321,  pulses = 87
Iteration 1. t: 247    min: 125 (35)    max: 369 (52)    delta 18
Iteration 2. t: 247    min: 125 (35)    max: 369 (52)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 239, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {2} 00 : 00
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 80 : 1
[08] {1} 00 : 0
[09] {1} 80 : 1
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 80 : 1
[14] {1} 00 : 0
[15] {1} 80 : 1
[16] {1} 80 : 1
[17] {1} 00 : 0
[18] {1} 80 : 1
[19] {1} 80 : 1
[20] {1} 80 : 1
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {62} 0a 9b d3 b7 fc 7f dc dc

Benjamin Larsson

unread,
Aug 3, 2016, 8:08:20 PM8/3/16
to rtl...@googlegroups.com
On 08/04/2016 01:22 AM, Daryl Williams wrote:
> Need help decoding this Weather Station:
> http://www.jaycar.com.au/mini-lcd-display-weather-station/p/XC0400
> which I think is a Fine Offset:
> http://www.foshk.com/Weather_Professional/WH5301.htm
>
> Can you provide python subprocess code to grab rtl_433 decoded data.
> Just to get the data with python. I can do the rest myself.

http://stackoverflow.com/questions/2804543/read-subprocess-stdout-line-by-line#2813530

Anyway the output is hard to understand because several parameters
change at the same time. I suggest you put it in the freezer and get 5
samples where only the temperature changes. And then keep doing it for
all the other fields.

MvH
Benjamin Larsson

Daryl Williams

unread,
Aug 4, 2016, 5:46:55 PM8/4/16
to rtl_433
Thank you for your reply Benjamin

I waited to see if you would take some time to look at my post and check the data output I provided.

This morning I woke up early thinking, why can't Benjamin see what I can see. It's right there in the data.

Then I started thinking, how can I explain my findings visually so that not only you can see it, but others will also see it and say oooh aaah.

This is going to take me a while to explain my findings. I will have to write a paper just on this.


>On Thursday, 4 August 2016 10:08:20 UTC+10, Benjamin Larsson wrote:
On 08/04/2016 01:22 AM, Daryl Williams wrote:
> Need help decoding this Weather Station:
> http://www.jaycar.com.au/mini-lcd-display-weather-station/p/XC0400
> which I think is a Fine Offset:
> http://www.foshk.com/Weather_Professional/WH5301.htm
>
> Can you provide python subprocess code to grab rtl_433 decoded data.
> Just to get the data with python. I can do the rest myself.

http://stackoverflow.com/questions/2804543/read-subprocess-stdout-line-by-line#2813530

 This link is a wonderful suggestion. Although I do know how to use python subprocess. the issue is how do I run ./rtl_433/build/src/rtl_433 in subprocess so I can grab the stdout and stderr output.

When I access rtl_433 in the Ubuntu terminal I use the following command:

I go to the rtl_433 directory

$ cd ./rtl_433/build/src

Then I invoke or start rtl_433 with the following command:

./rtl_433 -f 433889906 -a

How do I run rtl_433 in subprocess when the command "./rtl_433 -f 433889906 -a"  gets an error no such file or directory?
How do I run rtl_433 in subprocess when the command "cd ./rtl_433/build/src", "./rtl_433 -f 433889906 -a" gets an error no such file or directory?

When I am finally able to get rtl_433 to run in subprocess, I can then extract the output data and develop algorithms that will give me all the data I require.
 
Anyway the output is hard to understand because several parameters
change at the same time.

I know several parameters change at the same time. I know what data relates to what senor before I posted my data output on this post. I just allowed you time to suggest what you could see so I could confirm my findings.
 
I suggest you put it in the freezer and get 5
samples where only the temperature changes. And then keep doing it for
all the other fields.

First of all. Not that I feel comfortable in saying this. I'm not exactly young. It took me 2 weeks to work out how I can put the weather station up on my roof.
I finally got it up on my roof and I'm not prepared to climb up on the roof, pull it down and then spend another 2 weeks working out how I can put this quite large weather station in the fridge
with out my wife noticing. All hell will break loose if she sees it in the fridge.

In any case, why should I pull the weather station down and put it in the fridge when I already know what data relates to what measure senor. It's quite obvious to see it in the output data.

All I want to know is how do I invoke rtl_433 in python subprocess so I can start decoding the sensor data programmatically. Instead of doing it manually using copy and paste which is prone to errors.

As noted with the youtube videos I have produced so far. I am very happy to explain to everyone how I use rtl_433. This would be a great service for what you and everyone else who are supporting the development of this wonderful decoding tool would like to achieve.


>MvH
>Benjamin Larsson

So what do I hope to achieve when I finally get to decode the weather station data? My step son does kite surfing on a lake that my wife and I live next to. 2 years ago I said to him, I would like to put a weather station up on my roof so I can get the weather readings and put them on a web page so that he can access them on his mobile phone. Then he can see if the wind is just right for a fantastic day for kite surfing. I won't explain why it took me 2 years to get a weather station up on my roof. That is another story for others to tell.

Hope you can help me with this conundrum Benjamin.

Daryl Williams

unread,
Aug 4, 2016, 11:01:37 PM8/4/16
to rtl_433
Okay after more researching. It turns out rtl_433 was installed incorrectly in Ubuntu 16.04.

I uninstalled and reinstalled rtl_433 and now finally I can use python subprocess and can access the output data.

YAY!!!! This is very exciting. Stay tuned to this channel...

Benjamin Larsson

unread,
Aug 5, 2016, 7:17:54 AM8/5/16
to rtl...@googlegroups.com
Hi.

On 08/04/2016 11:46 PM, Daryl Williams wrote:
> Thank you for your reply Benjamin
>
> I waited to see if you would take some time to look at my post and check
> the data output I provided.
>
> This morning I woke up early thinking, why can't Benjamin see what I can
> see. It's right there in the data.

Well I tried to see if I could find some patterns in the data. But as I
couldn't see any obvious things I was stuck. And you said you wanted to
figure it out on your own so I didn't spend any more time on it. I also
don't have any signal dumps and matching parameter values to work from
which makes everything quite complex.


>
> Then I started thinking, how can I explain my findings visually so that
> not only you can see it, but others will also see it and say oooh aaah.
>
> This is going to take me a while to explain my findings. I will have to
> write a paper just on this.


Do that, take your time it is always good with some written instructions
on how to figure out things.

>
> Anyway the output is hard to understand because several parameters
> change at the same time.
>
>
> I know several parameters change at the same time. I know what data
> relates to what senor before I posted my data output on this post. I
> just allowed you time to suggest what you could see so I could confirm
> my findings.
>
>
> I suggest you put it in the freezer and get 5
> samples where only the temperature changes. And then keep doing it for
> all the other fields.
>
>
> First of all. Not that I feel comfortable in saying this. I'm not
> exactly young. It took me 2 weeks to work out how I can put the weather
> station up on my roof.
> I finally got it up on my roof and I'm not prepared to climb up on the
> roof, pull it down and then spend another 2 weeks working out how I can
> put this quite large weather station in the fridge
> with out my wife noticing. All hell will break loose if she sees it in
> the fridge.

:) Ok what also works is to get lots of samples and when only 1
parameter changes then keep track of those matching pairs. I once had an
idea that I would trigger a webcam that was pointed to the receiver and
take a picture of it after every signal. Then afterwards I could just
look at the pictures to see when I got suitable sensor output and the
matching signal output.

>
> In any case, why should I pull the weather station down and put it in
> the fridge when I already know what data relates to what measure senor.
> It's quite obvious to see it in the output data.

Well not obvious to me.

>
> All I want to know is how do I invoke rtl_433 in python subprocess so I
> can start decoding the sensor data programmatically. Instead of doing it
> manually using copy and paste which is prone to errors.
>
> As noted with the youtube videos I have produced so far. I am very happy
> to explain to everyone how I use rtl_433. This would be a great service
> for what you and everyone else who are supporting the development of
> this wonderful decoding tool would like to achieve.
>
>
> >MvH
> >Benjamin Larsson
>
>
> So what do I hope to achieve when I finally get to decode the weather
> station data? My step son does kite surfing on a lake that my wife and I
> live next to. 2 years ago I said to him, I would like to put a weather
> station up on my roof so I can get the weather readings and put them on
> a web page so that he can access them on his mobile phone. Then he can
> see if the wind is just right for a fantastic day for kite surfing. I
> won't explain why it took me 2 years to get a weather station up on my
> roof. That is another story for others to tell.
>
> Hope you can help me with this conundrum Benjamin.

I try my best with the time I have.

MvH
Benjamin Larsson

Daryl Williams

unread,
Aug 6, 2016, 3:08:50 AM8/6/16
to rtl_433
It's All Okay Benjamin

I've done it. After a lot of programming and testing algorithms I got it working.

So I'm running rtl_433 on a USB TV Dongle RTL820T2. Using Ubuntu 16.04. The program is inserting data into a sqlite3 database as I speak.

Eventually I will use a Raspberry Pi to gather the data and send it to a MySQL server on the network. Raspberry Pi will also have a web server that can be accessed on my network so we can see the latest weather measurements.

What helped me decode the data was this link: http://www.susa.net/wordpress/2012/08/raspberry-pi-reading-wh1081-weather-sensors-using-an-rfm01-and-rfm12b/

The problem I had was when I added the weather station console measurements manually to compare it to the data. I found I had made mistakes entering some of the console measurements.

What I enjoyed most of all was working out the cryptic data messages and what measurements they matched up to. It was an Enigma. Then developing the algorithms that would give me the correct measurements.

After a lot of google searching, I came across this python script: rtl_433_wrapper.py

I removed the create sqlite3 table because I have my own programming method of creating and communicating with the database. I then added the algorithms for:
  • wind speed
  • wind direction
  • humidity
  • temperature
Yesterday I started writing a tutorial on how I installed rtl_433 so I can run it in the terminal as rtl_433. Once I got this working correctly, I was then able to run Python Subprocess.

It will take some time to write how I determined the various weather measurements in the rtl_433 output data compared to the weather station console. So I will keep you posted.




Benjamin Larsson

unread,
Aug 6, 2016, 4:26:01 AM8/6/16
to rtl...@googlegroups.com
On 08/06/2016 09:08 AM, Daryl Williams wrote:
> It's All Okay Benjamin
>
> I've done it. After a lot of programming and testing algorithms I got it
> working.
>
> So I'm running rtl_433 on a USB TV Dongle RTL820T2. Using Ubuntu 16.04.
> The program is inserting data into a sqlite3 database as I speak.
>
> Eventually I will use a Raspberry Pi to gather the data and send it to a
> MySQL server on the network. Raspberry Pi will also have a web server
> that can be accessed on my network so we can see the latest weather
> measurements.
>
> What helped me decode the data was this link:
> http://www.susa.net/wordpress/2012/08/raspberry-pi-reading-wh1081-weather-sensors-using-an-rfm01-and-rfm12b/
>
> The problem I had was when I added the weather station console
> measurements manually to compare it to the data. I found I had made
> mistakes entering some of the console measurements.
>
> What I enjoyed most of all was working out the cryptic data messages and
> what measurements they matched up to. It was an Enigma. Then developing
> the algorithms that would give me the correct measurements.
>
> After a lot of google searching, I came across this python script:
> rtl_433_wrapper.py
> <https://www.google.com.au/#q=rtl_433+wrapper.py&start=10>
>
> I removed the create sqlite3 table because I have my own programming
> method of creating and communicating with the database. I then added the
> algorithms for:
>
> * wind speed
> * wind direction
> * humidity
> * temperature
>
> Yesterday I started writing a tutorial on how I installed rtl_433 so I
> can run it in the terminal as rtl_433. Once I got this working
> correctly, I was then able to run Python Subprocess.
>
> It will take some time to write how I determined the various weather
> measurements in the rtl_433 output data compared to the weather station
> console. So I will keep you posted.
>

Can you send some recorded signals ? Run rtl_433 -a -t and send some
samples of the produced files. Preferably both type of signals.

MvH
Benjamin Larsson

Daryl Williams

unread,
Aug 20, 2016, 9:48:23 PM8/20/16
to rtl_433
Hi Benjamin. I installed the latest rtl_433 and not my decoding doesn't work for wind speed.  I have done as you asked, run rtl_433 -a -t

I will attach the files generated.

Here is the terminal output
============================== TERMINAL OUTPUT ==============================
:~$ rtl_433 -a -t
Registering protocol "Efergy Optical"
Registering protocol "Honda Car Key"

Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000.
Bit detection level set to 8000.
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 433920000 Hz.
*** signal_start = 5475282, signal_end = 5539600

signal_len = 64318,  pulses = 87
Iteration 1. t: 247    min: 125 (35)    max: 369 (52)    delta 13

Iteration 2. t: 247    min: 125 (35)    max: 369 (52)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 239, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 00 : 0
[08] {1} 80 : 1
[09] {1} 00 : 0
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {2} c0 : 11
[14] {1} 00 : 0
[15] {1} 80 : 1
[16] {1} 80 : 1
[17] {1} 00 : 0
[18] {1} 80 : 1
[19] {1} 80 : 1
[20] {1} 00 : 0
[21] {1} 80 : 1
[22] {2} c0 : 11
[23] {1} 00 : 0
[24] {61} 76 87 5f 47 f7 df ab 80
signal_bszie = 131072  -      sg_index = 1835008
start_pos    = 1510942  -   buffer_size = 3145728
*** Saving signal to file gfile001.data
*** Writing data from 1510942, len 131072
*** signal_start = 17476220, signal_end = 17595535
signal_len = 119315,  pulses = 174
Iteration 1. t: 247    min: 125 (58)    max: 369 (116)    delta 13
Iteration 2. t: 247    min: 125 (58)    max: 369 (116)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 241, packet distance: 7749


p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be db 9d 9f d9 d5 fd f7 eb ce
[01] {87} 00 be db 9d 9f d9 d5 fd f7 eb ce
signal_bszie = 262144  -      sg_index = 786432
start_pos    = 325916  -   buffer_size = 3145728
*** Saving signal to file gfile002.data
*** Writing data from 325916, len 262144
*** signal_start = 29477820, signal_end = 29542626
signal_len = 64806,  pulses = 87
Iteration 1. t: 247    min: 125 (33)    max: 369 (54)    delta 13
Iteration 2. t: 247    min: 125 (33)    max: 369 (54)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 239, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {2} 00 : 00
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 80 : 1
[08] {1} 00 : 0
[09] {2} c0 : 11

[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 00 : 0
[14] {1} 80 : 1
[15] {1} 80 : 1
[16] {2} 40 : 01

[17] {1} 80 : 1
[18] {2} 40 : 01
[19] {1} 80 : 1
[20] {1} 80 : 1
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 80 : 1
[24] {59} fa 1d 5c ff df 7e b8 80
signal_bszie = 131072  -      sg_index = 2621440
start_pos    = 2331074  -   buffer_size = 3145728
*** Saving signal to file gfile003.data
*** Writing data from 2331074, len 131072
*** signal_start = 41477830, signal_end = 41596168
signal_len = 118338,  pulses = 174
Iteration 1. t: 247    min: 125 (62)    max: 369 (112)    delta 13
Iteration 2. t: 247    min: 125 (62)    max: 369 (112)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 240, packet distance: 7750


p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be db 9b a1 d7 cf fd f7 eb e8
[01] {87} 00 be db 9b a1 d7 cf fd f7 eb e8
signal_bszie = 262144  -      sg_index = 1572864
start_pos    = 1141262  -   buffer_size = 3145728
*** Saving signal to file gfile004.data
*** Writing data from 1141262, len 262144
*** signal_start = 53478386, signal_end = 53542705

signal_len = 64319,  pulses = 87
Iteration 1. t: 247    min: 125 (35)    max: 369 (52)    delta 13

Iteration 2. t: 247    min: 125 (35)    max: 369 (52)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 239, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {2} 00 : 00
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 80 : 1
[08] {1} 00 : 0
[09] {2} c0 : 11

[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 00 : 0
[14] {1} 80 : 1
[15] {1} 80 : 1
[16] {1} 00 : 0

[17] {1} 80 : 1
[18] {1} 80 : 1
[19] {3} 60 : 011

[20] {1} 80 : 1
[21] {1} 00 : 0
[22] {1} 00 : 0
[23] {1} 80 : 1
[24] {59} da 1d 9d 3f df 7e b6 00
signal_bszie = 131072  -      sg_index = 262144
start_pos    = -416  -   buffer_size = 3145728
restart_pos = 3145312
*** Saving signal to file gfile005.data
*** Writing data from 3145312, len 416
*** Writing data from 0, len 130656
*** signal_start = 65479489, signal_end = 65597826
signal_len = 118337,  pulses = 174
Iteration 1. t: 247    min: 125 (62)    max: 369 (112)    delta 8
Iteration 2. t: 247    min: 125 (62)    max: 369 (112)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 240, packet distance: 7748


p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be db 9d 9d d9 d1 fd f7 eb 6e
[01] {87} 00 be db 9d 9d d9 d1 fd f7 eb 6e
signal_bszie = 262144  -      sg_index = 2359296
start_pos    = 1958658  -   buffer_size = 3145728
*** Saving signal to file gfile006.data
*** Writing data from 1958658, len 262144
*** signal_start = 77480530, signal_end = 77546312
signal_len = 65782,  pulses = 87
Iteration 1. t: 247    min: 125 (29)    max: 369 (58)    delta 13
Iteration 2. t: 247    min: 125 (29)    max: 369 (58)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 238, long distance: 238, packet distance: 240

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 00 : 0
[08] {1} 80 : 1
[09] {1} 00 : 0
[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 80 : 1
[14] {1} 80 : 1
[15] {1} 00 : 0
[16] {1} 80 : 1
[17] {1} 80 : 1
[18] {1} 00 : 0
[19] {1} 80 : 1
[20] {1} 80 : 1
[21] {1} 00 : 0
[22] {1} 80 : 1
[23] {1} 80 : 1
[24] {63} 9d 9d d9 cf fd f7 ee b6
signal_bszie = 262144  -      sg_index = 1048576
start_pos    = 689806  -   buffer_size = 3145728
*** Saving signal to file gfile007.data
*** Writing data from 689806, len 262144
*** signal_start = 89481385, signal_end = 89598748
signal_len = 117363,  pulses = 174
Iteration 1. t: 247    min: 125 (66)    max: 369 (108)    delta 13
Iteration 2. t: 247    min: 125 (66)    max: 369 (108)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 224, long distance: 240, packet distance: 7749


p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be db a1 9d c7 bf fd f7 ea 98
[01] {87} 00 be db a1 9d c7 bf fd f7 ea 98
signal_bszie = 262144  -      sg_index = 0
start_pos    = 2774582  -   buffer_size = 3145728
*** Saving signal to file gfile008.data
*** Writing data from 2774582, len 262144
*** signal_start = 101481570, signal_end = 101546377
signal_len = 64807,  pulses = 87
Iteration 1. t: 247    min: 125 (33)    max: 369 (54)    delta 5
Iteration 2. t: 247    min: 125 (33)    max: 369 (54)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 239, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {1} 00 : 0
[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {2} 00 : 00
[06] {1} 00 : 0
[07] {1} 80 : 1
[08] {1} 00 : 0
[09] {2} c0 : 11

[10] {1} 80 : 1
[11] {1} 80 : 1
[12] {1} 80 : 1
[13] {1} 00 : 0
[14] {1} 80 : 1
[15] {1} 80 : 1
[16] {1} 00 : 0

[17] {1} 80 : 1
[18] {1} 80 : 1
[19] {2} 40 : 01

[20] {1} 80 : 1
[21] {1} 80 : 1
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {60} fc ee 3e 0f ef bf 52 70
signal_bszie = 131072  -      sg_index = 2097152
start_pos    = 1635088  -   buffer_size = 3145728
*** Saving signal to file gfile009.data
*** Writing data from 1635088, len 131072
^CSignal caught, exiting!


gfile001.data
gfile002.data
gfile003.data
gfile004.data
gfile005.data
gfile006.data
gfile007.data
gfile008.data

Benjamin Larsson

unread,
Aug 27, 2016, 6:20:40 AM8/27/16
to rtl...@googlegroups.com
On 08/21/2016 03:48 AM, Daryl Williams wrote:
> Hi Benjamin. I installed the latest rtl_433 and not my decoding doesn't
> work for wind speed. I have done as you asked, run rtl_433 -a -t
>
> I will attach the files generated.
>

Hi, these samples are good, the signal is clear for a few samples I tested:

gfile002.data -> [00] {87} ff 41 24 62 60 26 2a 02 08 14 30
gfile001.data -> [00] {87} ff 41 24 62 5e 28 2e 02 08 15 1e

Where you able to figure out the meaning of the bitstream ?


MvH
Benjamin Larsson

Benjamin Larsson

unread,
Aug 27, 2016, 9:44:26 AM8/27/16
to rtl...@googlegroups.com, dooga...@gmail.com
On 08/21/2016 03:48 AM, Daryl Williams wrote:
> Hi Benjamin. I installed the latest rtl_433 and not my decoding doesn't
> work for wind speed. I have done as you asked, run rtl_433 -a -t
>
> I will attach the files generated.

Ok, thanks to your files and some tinkering I figured out that the
preamble was only 7 bits. When I added the extra bit and signal
parameters suitable for demodulating the signals, the existing decoder
started decoding the data with something that looks sane.

rtl_433 -l 0 -r ../gfile001.data

@0.000000s : Fine Offset WH1080 weather station
Msg type: 0
StationID: 0009
Temperature: 16.1 C
Humidity: 47 %
Wind string: SW
Wind degrees: 225
Wind avg speed: 24.48
Wind gust: 28.15
Total rainfall: 78.0
Battery: OK


MvH
Benjamin Larsson

Daryl Williams

unread,
Sep 1, 2016, 5:28:36 AM9/1/16
to rtl_433, dooga...@gmail.com
Hi Benjamin
Note sure what you meant by the preamble has 7 bits and when you add 1 and extra bit = 8 bits. In my video below, you can see there is 8 bits in the preamble
https://www.youtube.com/watch?v=VarH42bc6o8

Are you saying I can now use: [32] Fine Offset WH1080 Weather Station to decode the signal?

Benjamin Larsson

unread,
Sep 1, 2016, 5:35:09 AM9/1/16
to rtl...@googlegroups.com
On 2016-09-01 11:28, Daryl Williams wrote:
> Hi Benjamin
> Note sure what you meant by the preamble has 7 bits and when you add 1
> and extra bit = 8 bits. In my video below, you can see there is 8 bits
> in the preamble
> https://www.youtube.com/watch?v=VarH42bc6o8

Well lets say that rtl_433 drops one bit for some reason. I added it
back and everything was fine and dandy.


>
> Are you saying I can now use: /*[32] Fine Offset WH1080 Weather
> Station*/ to decode the signal?
>


Yes, pull the updates and compare against your receiver. As I don't have
anything to compare against I just assume everything is working fine.

MvH
Benjamin Larsson

Daryl Williams

unread,
Sep 1, 2016, 7:43:31 AM9/1/16
to rtl_433
The receiver I'm using is: Blue DVB-T+FM+DAB 820T2 & SDR USB2.0

Hope that helps.

P.S. You are good Benjamin

Benjamin Larsson

unread,
Sep 1, 2016, 8:00:59 AM9/1/16
to rtl...@googlegroups.com
On 2016-09-01 13:43, Daryl Williams wrote:
> The receiver I'm using is: Blue DVB-T+FM+DAB 820T2 & SDR USB2.0
>
> Hope that helps.
>

Well you need to pull the changes from the repository and compile a new
version and then test and see if the changes help. But as you did supply
some test signals that decoded fine I assume that your reception will be
fine again.

MvH
Benjamin Larsson

Daryl Williams

unread,
Sep 2, 2016, 9:13:51 AM9/2/16
to rtl_433

Compiled new version and I get correct temperature, humidity, wind speed and wind direction. But can't work out how you get rain and battery OK.

Will run it over night and test generating graphs.

Thank you Benjamin for you help.


Benjamin Larsson

unread,
Sep 4, 2016, 2:07:51 PM9/4/16
to rtl...@googlegroups.com
On 09/02/2016 03:13 PM, Daryl Williams wrote:
>
>
> On Thursday, 1 September 2016 22:00:59 UTC+10, Benjamin Larsson wrote:
>
> On 2016-09-01 13:43, Daryl Williams wrote:
> > The receiver I'm using is: Blue DVB-T+FM+DAB 820T2 & SDR USB2.0
> >
> > Hope that helps.
> >
>
> Well you need to pull the changes from the repository and compile
> a new
> version and then test and see if the changes help. But as you did
> supply
> some test signals that decoded fine I assume that your reception
> will be
> fine again.
>
> MvH
> Benjamin Larsson
>
>
> Compiled new version and I get correct temperature, humidity, wind
> speed and wind direction. But can't work out how you get rain and
> battery OK.

Well send the output and a sample and we'll see if there is anything we
can do about that.

MvH
Benjamin Larsson

Daryl Williams

unread,
Sep 5, 2016, 3:48:56 AM9/5/16
to rtl_433
Hey Benjamin

On Saturday 3rd September 2016 here over lake Illawarra, NSW Australia, we had wind speeds between 36 kmh to 43 kmh. I thought I sorted the temperature, humidity, wind  speed and wind direction. But I was getting low wind speed calculations..

This makes me think I'm using the fineoffset_wh1080 (-R 32) incorrectly. Can you explain how I can get the weather data from the generated code?

Daryl Williams

unread,
Sep 5, 2016, 4:20:43 AM9/5/16
to rtl_433
Did another recording. Here are the results.

                                                              Speed Rain Dir Hum Temp
[00] {87} 00 be db 95 77 fb f9 fc 37 ff 0c  - 2.0      0.0   N   68    16.5
[01] {87} 00 be db 95 77 fb f9 fc 37 ff 0c
[24] {63} 95 77 ff ff fc 37 ff 1a                 - 0.0      0.0   N   68    16.5
[00] {87} 00 be db 97 77 fd fb fc 37 fb a4 - 1.1      0.0   NE 68    16.4
[01] {87} 00 be db 97 77 fd fb fc 37 fb a4
[24] {60} bb bf df cf e1 bf f6 f0                - 2.2      0.0   N   68    16.4
[24] {63} 97 77 fb f9 fc 37 fe de              - 2.2      0.0   N   68    16.4
[00] {87} 00 be db 97 75 fd fb fc 37 ff ce - 1.1      0.0   N   69    16.4
[01] {87} 00 be db 97 75 fd fb fc 37 ff ce

------------------------------------------------------------------------------------------------------------------------


:~$ rtl_433 -a -t
Registering protocol "Silvercrest Remote Control"
Registering protocol "Rubicson Temperature Sensor"
Registering protocol "Prologue Temperature Sensor"
Registering protocol "Waveman Switch Transmitter"
Registering protocol "Steffen Switch Transmitter"
Registering protocol "ELV EM 1000"
Registering protocol "ELV WS 2000"
Registering protocol "LaCrosse TX Temperature / Humidity Sensor"
Registering protocol "Acurite 5n1 Weather Station"
Registering protocol "Acurite 609TXC Temperature and Humidity Sensor"
Registering protocol "Fine Offset Electronics, XC0400"

Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000.
Bit detection level set to 8000.
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 433920000 Hz.
*** signal_start = 4100755, signal_end = 4219095
signal_len = 118340,  pulses = 174
Iteration 1. t: 247    min: 125 (62)    max: 369 (112)    delta 10

Iteration 2. t: 247    min: 125 (62)    max: 369 (112)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 240, packet distance: 7747


p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be db 95 77 fb f9 fc 37 ff 0c
[01] {87} 00 be db 95 77 fb f9 fc 37 ff 0c
signal_bszie = 262144  -      sg_index = 2359296
start_pos    = 1884588  -   buffer_size = 3145728

*** Saving signal to file gfile001.data
*** Writing data from 1884588, len 262144
*** signal_start = 6358660, signal_end = 6378707
signal_len = 20047,  pulses = 1
Distance coding: Pulse length 46


Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 46

bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 262144
start_pos    = 43428  -   buffer_size = 3145728

*** Saving signal to file gfile002.data
*** Writing data from 43428, len 131072
*** signal_start = 16102191, signal_end = 16168464
signal_len = 66273,  pulses = 87
Iteration 1. t: 247    min: 125 (27)    max: 369 (60)    delta 10
Iteration 2. t: 247    min: 125 (27)    max: 369 (60)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 0, packet distance: 240
[24] {63} 95 77 ff ff fc 37 ff 1a
signal_bszie = 262144  -      sg_index = 1048576
start_pos    = 617502  -   buffer_size = 3145728

*** Saving signal to file gfile003.data
*** Writing data from 617502, len 262144
*** signal_start = 18561033, signal_end = 18581084

signal_len = 20051,  pulses = 1
Distance coding: Pulse length 50

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 50
bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 2883584
start_pos    = 2428086  -   buffer_size = 3145728

*** Saving signal to file gfile004.data
*** Writing data from 2428086, len 131072
*** signal_start = 28102565, signal_end = 28221882
signal_len = 119317,  pulses = 174
Iteration 1. t: 247    min: 125 (58)    max: 369 (116)    delta 10

Iteration 2. t: 247    min: 125 (58)    max: 369 (116)    delta 0
Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 240, packet distance: 7750


p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be db 97 77 fd fb fc 37 fb a4
[01] {87} 00 be db 97 77 fd fb fc 37 fb a4
signal_bszie = 262144  -      sg_index = 0
start_pos    = 2704242  -   buffer_size = 3145728

*** Saving signal to file gfile005.data
*** Writing data from 2704242, len 262144
*** signal_start = 31860417, signal_end = 31880537
signal_len = 20120,  pulses = 2
Iteration 1. t: 49    min: 43 (1)    max: 55 (1)    delta 0
Distance coding: Pulse length 49

Short distance: 21, long distance: 0, packet distance: 21

p_limit: 49

bitbuffer:: Number of rows: 2
[00] {0} :
[01] {0} :
signal_bszie = 131072  -      sg_index = 1048576
start_pos    = 715440  -   buffer_size = 3145728

*** Saving signal to file gfile006.data
*** Writing data from 715440, len 131072
*** signal_start = 32532282, signal_end = 32552327

signal_len = 20045,  pulses = 1
Distance coding: Pulse length 44

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 44
bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 2359296
start_pos    = 2059020  -   buffer_size = 3145728

*** Saving signal to file gfile007.data
*** Writing data from 2059020, len 131072
*** signal_start = 35505560, signal_end = 35525609

signal_len = 20049,  pulses = 1
Distance coding: Pulse length 48

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 48
bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 2097152
start_pos    = 1714128  -   buffer_size = 3145728

*** Saving signal to file gfile008.data
*** Writing data from 1714128, len 131072
*** signal_start = 40103849, signal_end = 40170122
signal_len = 66273,  pulses = 87
Iteration 1. t: 247    min: 125 (27)    max: 369 (60)    delta 10
Iteration 2. t: 247    min: 125 (27)    max: 369 (60)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 239, packet distance: 241

p_limit: 247
bitbuffer:: Number of rows: 25
[00] {1} 00 : 0
[01] {1} 00 : 0
[02] {2} 00 : 00

[03] {1} 00 : 0
[04] {1} 00 : 0
[05] {1} 00 : 0
[06] {1} 00 : 0
[07] {1} 80 : 1
[08] {1} 00 : 0
[09] {1} 80 : 1
[10] {3} e0 : 111
[11] {1} 80 : 1
[12] {1} 00 : 0

[13] {1} 80 : 1
[14] {1} 80 : 1
[15] {1} 00 : 0
[16] {1} 80 : 1
[17] {1} 80 : 1
[18] {1} 00 : 0
[19] {1} 80 : 1
[20] {1} 80 : 1
[21] {1} 80 : 1
[22] {1} 00 : 0
[23] {1} 00 : 0
[24] {60} bb bf df cf e1 bf f6 f0
signal_bszie = 262144  -      sg_index = 1835008
start_pos    = 1434898  -   buffer_size = 3145728

*** Saving signal to file gfile009.data
*** Writing data from 1434898, len 262144
*** signal_start = 46364277, signal_end = 46384328

signal_len = 20051,  pulses = 1
Distance coding: Pulse length 50

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 50
bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 1835008
start_pos    = 1411470  -   buffer_size = 3145728
*** Saving signal to file gfile010.data
*** Writing data from 1411470, len 131072
*** signal_start = 52104936, signal_end = 52225229
signal_len = 120293,  pulses = 174
Iteration 1. t: 247    min: 125 (54)    max: 369 (120)    delta 10
Iteration 2. t: 247    min: 125 (54)    max: 369 (120)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 240, packet distance: 7748


p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be db 97 77 fb f9 fc 37 fe de
[01] {87} 00 be db 97 77 fb f9 fc 37 fe de
signal_bszie = 262144  -      sg_index = 786432
start_pos    = 379288  -   buffer_size = 3145728
*** Saving signal to file gfile011.data
*** Writing data from 379288, len 262144
*** signal_start = 64105343, signal_end = 64171616
signal_len = 66273,  pulses = 87
Iteration 1. t: 247    min: 125 (27)    max: 369 (60)    delta 10
Iteration 2. t: 247    min: 125 (27)    max: 369 (60)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 0, packet distance: 240
[24] {63} 97 77 fb f9 fc 37 fe de
signal_bszie = 262144  -      sg_index = 2621440
start_pos    = 2251966  -   buffer_size = 3145728
*** Saving signal to file gfile012.data
*** Writing data from 2251966, len 262144
*** signal_start = 67167451, signal_end = 67187497
signal_len = 20046,  pulses = 1
Distance coding: Pulse length 45


Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 45
bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 2359296
start_pos    = 2123344  -   buffer_size = 3145728
*** Saving signal to file gfile013.data
*** Writing data from 2123344, len 131072
*** signal_start = 69651001, signal_end = 69671042

signal_len = 20041,  pulses = 1
Distance coding: Pulse length 40

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 40
bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 1048576
start_pos    = 798978  -   buffer_size = 3145728
*** Saving signal to file gfile014.data
*** Writing data from 798978, len 131072
*** signal_start = 70849424, signal_end = 70869471
signal_len = 20047,  pulses = 1
Distance coding: Pulse length 46


Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 46

bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 262144
start_pos    = 50108  -   buffer_size = 3145728
*** Saving signal to file gfile015.data
*** Writing data from 50108, len 131072
*** signal_start = 72501967, signal_end = 72522007

signal_len = 20040,  pulses = 1
Distance coding: Pulse length 39

Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 39
bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 524288
start_pos    = 209452  -   buffer_size = 3145728
*** Saving signal to file gfile016.data
*** Writing data from 209452, len 131072
*** signal_start = 76106231, signal_end = 76226524
signal_len = 120293,  pulses = 174
Iteration 1. t: 247    min: 125 (54)    max: 369 (120)    delta 10
Iteration 2. t: 247    min: 125 (54)    max: 369 (120)    delta 0

Pulse coding: Short pulse length 125 - Long pulse length 369

Short distance: 239, long distance: 240, packet distance: 7749


p_limit: 247
bitbuffer:: Number of rows: 2
[00] {87} 00 be db 97 75 fd fb fc 37 ff ce
[01] {87} 00 be db 97 75 fd fb fc 37 ff ce
signal_bszie = 262144  -      sg_index = 1572864
start_pos    = 1195958  -   buffer_size = 3145728
*** Saving signal to file gfile017.data
*** Writing data from 1195958, len 262144
*** signal_start = 76786673, signal_end = 76806719
signal_len = 20046,  pulses = 1
Distance coding: Pulse length 45


Short distance: 1000000, long distance: 0, packet distance: 0

p_limit: 45
bitbuffer:: Number of rows: 0
signal_bszie = 131072  -      sg_index = 2883584
start_pos    = 2487420  -   buffer_size = 3145728
*** Saving signal to file gfile018.data
*** Writing data from 2487420, len 131072
*** signal_start = 84308869, signal_end = 84328979
signal_len = 20110,  pulses = 2
Iteration 1. t: 39    min: 38 (1)    max: 40 (1)    delta 0
Distance coding: Pulse length 39

Short distance: 31, long distance: 0, packet distance: 31

p_limit: 39

bitbuffer:: Number of rows: 2
[00] {0} :
[01] {0} :
signal_bszie = 131072  -      sg_index = 2097152
start_pos    = 1803300  -   buffer_size = 3145728
*** Saving signal to file gfile019.data
*** Writing data from 1803300, len 131072
^CSignal caught, exiting!
gfile001.data
gfile010.data
gfile011.data
gfile012.data
gfile013.data
gfile014.data
gfile015.data
gfile016.data
gfile017.data
gfile018.data
gfile019.data
gfile002.data
gfile003.data
gfile004.data
gfile005.data
gfile006.data
gfile007.data
gfile008.data
gfile009.data

Benjamin Larsson

unread,
Sep 5, 2016, 6:32:34 AM9/5/16
to rtl...@googlegroups.com
On 09/05/2016 10:20 AM, Daryl Williams wrote:
> Did another recording. Here are the results.
>
> Speed Rain Dir Hum Temp
> [00] {87} 00 be db 95 77 fb f9 fc 37 ff 0c - 2.0 0.0 N 68 16.5
> [01] {87} 00 be db 95 77 fb f9 fc 37 ff 0c
> [24] {63} 95 77 ff ff fc 37 ff 1a - 0.0 0.0 N
> 68 16.5
> [00] {87} 00 be db 97 77 fd fb fc 37 fb a4 - 1.1 0.0 NE 68 16.4
> [01] {87} 00 be db 97 77 fd fb fc 37 fb a4
> [24] {60} bb bf df cf e1 bf f6 f0 - 2.2 0.0 N 68
> 16.4
> [24] {63} 97 77 fb f9 fc 37 fe de - 2.2 0.0 N
> 68 16.4
> [00] {87} 00 be db 97 75 fd fb fc 37 ff ce - 1.1 0.0 N 69 16.4
> [01] {87} 00 be db 97 75 fd fb fc 37 ff ce

If some values are not correct you have to look in the code to see how
they are calculated now and try to figure out the correct
representation. The values you posted needs to be inverted and bit
shifted. It is much easier to change the decoder code and output the
correct looking bit stream from there. I did that (git pull) and if you
now run this following command you can see the proper bitstream that the
decoder uses to decode:

src/rtl_433 -l 0 -D -R 32 -r ../gfile001_f.data

Registering protocol [1] "Fine Offset WH1080 Weather Station"
Test mode active. Reading samples from file: ../gfile001_f.data
Input format: uint8

ff a0 92 35 44 02 03 01 e4 00 79

@0.524288s : Fine Offset WH1080 weather station
Msg type: 0
StationID: 0009
Temperature: 16.5 C
Humidity: 68 %
Wind string: N
Wind degrees: 0
Wind avg speed: 2.45
Wind gust: 3.67
Total rainfall: 145.2
Battery: OK

In the output you see a line starting with "ff". If you look into
src/devices/fineoffset_wh1080.c you will see how the bits are decoded.
So if things don't match up with what is on your receiver screen then
try to figure out the changes needed. Then we can think of adding a
profile for you device.

MvH
Benjamin Larsson
Reply all
Reply to author
Forward
0 new messages