Rtl_433: Bresser 5-in-1 Weather Central

Created on 13 May 2018  Â·  122Comments  Â·  Source: merbanan/rtl_433

I would like to add support for this sensor device and captured several files with 'rtl_433 -a -t -f 868300000 -s 500000'. Some of them could be pulse analysed with rtl_433 and give some reasonable output. I uploaded one of those cu8 file to https://dk-ware.de/nextcloud/index.php/s/5jBoGnTqKJdYo8Y

$ rtl_433 -A -r g055_868.3M_500k.cu8 
Test mode active. Reading samples from file: g055_868.3M_500k.cu8
Input format: uint8
Detected FSK package    @ @0.000000s
Analyzing pulses...
Total count:   61,  width:  7224        (28.9 ms)
Pulse width distribution:
 [ 0] count:    1,  width:     0 [ 0; 0]    (   0 us)
 [ 1] count:   41,  width:    29 [29;31]    ( 116 us)
 [ 2] count:    9,  width:    58 [58;58]    ( 232 us)
 [ 3] count:    5,  width:    87 [87;87]    ( 348 us)
 [ 4] count:    4,  width:   260 [232;289]  (1040 us)
 [ 5] count:    1,  width:   635 [635;635]  (2540 us)
Gap width distribution:
 [ 0] count:    5,  width:   255 [230;288]  (1020 us)
 [ 1] count:   41,  width:    28 [28;29]    ( 112 us)
 [ 2] count:    5,  width:    86 [86;86]    ( 344 us)
 [ 3] count:    9,  width:    57 [57;58]    ( 228 us)
Pulse period distribution:
 [ 0] count:    9,  width:   286 [241;318]  (1144 us)
 [ 1] count:   27,  width:    57 [57;59]    ( 228 us)
 [ 2] count:   12,  width:   115 [115;116]  ( 460 us)
 [ 3] count:   11,  width:    86 [86;87]    ( 344 us)
 [ 4] count:    1,  width:   721 [721;721]  (2884 us)
Level estimates [high, low]:  15867,      5
Frequency offsets [F1, F2]:   11559, -18677 (+44.1 kHz, -71.2 kHz)
Guessing modulation: Pulse Code Modulation (Not Return to Zero)
Attempting demodulation... short_limit: 29, long_limit: 29, reset_limit: 29696, sync_width: 0
pulse_demod_pcm(): Analyzer Device 
bitbuffer:: Number of rows: 1 
[00] {286} 00 aa aa aa aa aa 2d d4 ed 93 7f eb bf ee ef fb fc d6 bf ff ff 12 6c 80 14 40 11 10 04 03 29 40 00 00 00 00 

Test mode file issued 1 packets

Now I thought, I could use the flex decoder to apply similar settings to other capturings, but I failed even on this one:

$ rtl_433 -X bresser:FSK_PCM:29:29:2969 -f 868290000 -s 1024000 -R 0 -r g055_868.3M_500k.cu8 
Registering protocol [1] "General purpose decoder 'bresser'"
Disabling all device decoders.
Registered 1 out of 101 device decoding protocols
Test mode active. Reading samples from file: g055_868.3M_500k.cu8
Input format: uint8
@0.000000s :    bresser     :   1   :   1   :   [   :   640     :   00000000787878787878787878787878787878787878787800787f87ff8787807ff87f87f807807f87fffffffff8787ff87ffffffff87ff87ff87ffffffff87fffffff807f8787f8787fffffffffffff]   :   [{640}00000000787878787878787878787878787878787878787800787f87ff8787807ff87f87f807807f87fffffffff8787ff87ffffffff87ff87ff87ffffffff87fffffff807f8787f8787fffffffffffff]
Test mode file issued 1 packets

The decoded hex string is not the same as with the pulse analyzer. How do I need to configure the flex decoder to get the same result as the pulse analyzer?

My plan was to use the flex decoder and then to play with the weather station to reverse engineer meaning of the hexstring.

Any help is appreciated.

cu,
Daniel

All 122 comments

Note that you did record with (the rather unusual) sample rate of 500k. E.g.

rtl_433 -q -s 500k -A -r g055_868.3M_500k.cu8

and

rtl_433 -q -s 500k -F json -R 0 -X 'bresser:FSK_PCM:58:58:600' -r g055_868.3M_500k.cu8

Will work, i.e. pick the most prominent pulse width in µs (29 samples: 58 µs here) and an upper bound to the longest gap in µs (255 samples, 510 µs, so 600 µs bound here).

for this device i get (7002520000000)
/usr/local/bin/rtl_433 -f 868300000 -s 500k -F json -R 0 -X 'bresser:FSK_PCM:58:58:600'
```` arpu@localhost  ~/Work/githubsources/rtl_433/build   master  sudo /usr/local/bin/rtl_433 -f 868300000 -s 500k -F json -R 0 -X 'bresser:FSK_PCM:58:58:600'  5 ↵  10312  18:53:53
Disabling all device decoders.
Registering protocol [1] "General purpose decoder 'bresser'"
Registered 1 out of 101 device decoding protocols
Found 1 device(s)

trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
Found Rafael Micro R820T tuner
Using device 0: Generic RTL2832U OEM
Invalid sample rate: 500000 Hz
WARNING: Failed to set sample rate.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868300000 Hz.
{"time" : "2018-05-14 18:54:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 186, "data" : "00aaaaaaaaaa2dd4effebfffcbfffdf8ffb6f93ffff1000"}], "codes" : ["{186}00aaaaaaaaaa2dd4effebfffcbfffdf8ffb6f93ffff1000"]}
{"time" : "2018-05-14 18:54:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:54:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:54:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:54:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "00555555555516ea76febfffcbfffdf91fb6f93ffff1202800"}], "codes" : ["{199}00555555555516ea76febfffcbfffdf91fb6f93ffff1202800"]}
{"time" : "2018-05-14 18:54:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:54:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 46, "data" : "81b81241b000"}], "codes" : ["{46}81b81241b000"]}
{"time" : "2018-05-14 18:54:30", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 187, "data" : "00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"}], "codes" : ["{187}00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"]}
{"time" : "2018-05-14 18:54:30", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:54:30", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:54:30", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:54:42", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "00555555555516ea76febfffcbfffdf91fb6f93ffff1202800"}], "codes" : ["{199}00555555555516ea76febfffcbfffdf91fb6f93ffff1202800"]}
{"time" : "2018-05-14 18:54:42", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:54:42", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 46, "data" : "81b81241b000"}], "codes" : ["{46}81b81241b000"]}
{"time" : "2018-05-14 18:54:54", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 187, "data" : "00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"}], "codes" : ["{187}00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"]}
{"time" : "2018-05-14 18:54:54", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:54:54", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:54:54", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:55:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 188, "data" : "00555555555516ea77ff5fffe5fffefc7fcdbe4ffffc400"}], "codes" : ["{188}00555555555516ea77ff5fffe5fffefc7fcdbe4ffffc400"]}
{"time" : "2018-05-14 18:55:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:55:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:55:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:55:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 187, "data" : "00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"}], "codes" : ["{187}00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"]}
{"time" : "2018-05-14 18:55:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:55:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:55:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:55:30", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 188, "data" : "00555555555516ea77ff5fffe5fffefc7fcdbe4ffffc400"}], "codes" : ["{188}00555555555516ea77ff5fffe5fffefc7fcdbe4ffffc400"]}
{"time" : "2018-05-14 18:55:30", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:55:30", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:55:30", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:55:42", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 187, "data" : "00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"}], "codes" : ["{187}00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"]}
{"time" : "2018-05-14 18:55:42", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:55:42", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:55:42", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:55:54", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 187, "data" : "00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"}], "codes" : ["{187}00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"]}
{"time" : "2018-05-14 18:55:54", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:55:54", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:55:54", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:56:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 187, "data" : "00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"}], "codes" : ["{187}00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"]}
{"time" : "2018-05-14 18:56:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:56:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:56:06", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
{"time" : "2018-05-14 18:56:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 187, "data" : "00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"}], "codes" : ["{187}00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800"]}
{"time" : "2018-05-14 18:56:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 13, "data" : "a000"}], "codes" : ["{13}a000"]}
{"time" : "2018-05-14 18:56:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 14, "data" : "d000"}], "codes" : ["{14}d000"]}
{"time" : "2018-05-14 18:56:18", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 47, "data" : "81c00920d800"}], "codes" : ["{47}81c00920d800"]}
````

it looks like the 500k is wrong with -s 48k i get
Detected FSK package @ 2018-05-14 19:23:18 Analyzing pulses... Total count: 53, width: 7775 (162.0 ms) Pulse width distribution: [ 0] count: 1, width: 0 [ 0; 0] ( 0 us) [ 1] count: 36, width: 30 [30;32] ( 625 us) [ 2] count: 5, width: 61 [61;62] (1271 us) [ 3] count: 2, width: 92 [92;92] (1917 us) [ 4] count: 4, width: 137 [123;153] (2854 us) [ 5] count: 2, width: 213 [213;213] (4438 us) [ 6] count: 3, width: 488 [457;519] (10167 us) Gap width distribution: [ 0] count: 3, width: 225 [212;252] (4688 us) [ 1] count: 36, width: 30 [30;30] ( 625 us) [ 2] count: 2, width: 91 [91;91] (1896 us) [ 3] count: 5, width: 60 [60;60] (1250 us) [ 4] count: 2, width: 121 [121;121] (2521 us) [ 5] count: 2, width: 471 [456;487] (9812 us) [ 6] count: 2, width: 152 [152;152] (3167 us) Pulse period distribution: [ 0] count: 6, width: 234 [213;252] (4875 us) [ 1] count: 25, width: 60 [60;62] (1250 us) [ 2] count: 3, width: 132 [122;152] (2750 us) [ 3] count: 8, width: 91 [91;92] (1896 us) [ 4] count: 4, width: 502 [487;518] (10458 us) [ 5] count: 4, width: 175 [153;183] (3646 us) [ 6] count: 1, width: 640 [640;640] (13333 us) [ 7] count: 1, width: 304 [304;304] (6333 us) Level estimates [high, low]: 2493, 7 Frequency offsets [F1, F2]: 16650, -10900 (+12.2 kHz, -8.0 kHz) Guessing modulation: Pulse Code Modulation (Not Return to Zero) Attempting demodulation... short_limit: 30, long_limit: 30, reset_limit: 30720, sync_width: 0 pulse_demod_pcm(): Analyzer Device bitbuffer:: Number of rows: 1 [00] {287} 00 aa aa aa aa aa 2d d4 f1 fd 7f ff af ff ef bd fd b7 c9 ff ff 0e 02 80 00 50 00 10 42 02 48 36 00 00 00 00

I have this device https://www.bresser.de/en/Weather-Time/Weather-Stations/BRESSER-Weather-Center-5-in-1.html . But I think the outdoor sensor from arpu looks the same.

@zuckschwerdt: Thanks for your comment. It helped me a lot. Now I got further. Yesterday, I captured a lot of samples. With your settings of flex decoder, rtl_433 can decode all of those samples. Even those, where the pulse analyzer had no clue.

Now I see another issue: The preamble is sometimes 55 instead of aa. See https://dk-ware.de/nextcloud/index.php/s/P3ZyY5NFRnSwTR8 for example. It seems that the data bits are shifted by one bit. Do I need to solve this in the packet decoder or is this a "bug" in pulse_demod_pcm()?

You should not use -s 500k, let alone 48k. Use the default (of 250k) or 1024k for more resolution/bandwidth if needed.
The misaligned preamble is not a problem and shifts of 1-3 bits are expected. I might add an option to align someday though.
When you figure out the proper decoding the alignment is usually done in the decoder. Flex is just for testing and first results here.

ok i using the default and get this values looks good ?
https://gist.github.com/arpu/60d9497cafd4bd46e14b3ce796e41565

yes, but no matter the sample rate, the flex parameter are always in µs. You should use

rtl_433 -q -F json -R 0 -X 'bresser:FSK_PCM:58:58:600'

(this assumes that the original was indeed at 500k, which translates periods of 29 samples to 58 µs. If you look in the captured samples at default 250k the pulses should be about 14 samples long now.)

A have it running: https://github.com/palstek/rtl_433/tree/feature/bresser_5in1

I have best decoding results with 500k sample rate. If I use 250k, I get the following debug output from my decoder. It seems pulse_demod_pcm() or the baseband processor didn't get/decode the entire packet as a single packet.

bresser_5in1_callback bit_per_row 145 out of range
bresser_5in1_callback bit_per_row 1 out of range

Nevertheless, rtl_433 is a really great project. I'm astonished how fast it is possible to implement a custom decoder without deep knowledge in radio signal demodulation.

@palstek i testing your branch with
sudo /usr/local/bin/rtl_433 -f 868300000 -s 500k -R 102
Registering protocol [1] "Bresser Weather Center 5-in-1"
Registered 1 out of 102 device decoding protocols
Found 1 device(s)

trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
Using device 0: Generic RTL2832U OEM
Invalid sample rate: 500000 Hz
WARNING: Failed to set sample rate.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868300000 Hz.

but i do not get any decodings :/ any idea whats wrong?

@palstek I'm curious what dongle you are using. For me 500k isn't a valid sample rate, it's 250k, 1000k, 1024k,...

It's really interesting, why 500k sample rate is invalid. I have a cheap DVB-T stick with RTL2832U+R820T chipset, bought at end of 2013. rtl_422 says:

trying device  0:  Realtek, RTL2838UHIDIR, SN: 00000001
Found Rafael Micro R820T tuner
Using device 0: Generic RTL2832U OEM
Exact sample rate is: 500000.004967 Hz
Sample rate set to 500000.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868300000 Hz.

Additionally, I use a librtlsdr, which I built and installed at beginning of 2014. rtl-sdr version is v0.5.2-8-gd683b12. Currently, I do some more tests with other sample rates.
Nevertheless, with parameters '-D -D' my decoder outputs some more information why decoding fails.

Fascinating. I have the current 20180501 of rtl-sdr here and some different dongles, R820T and R820T2. Mostly NooElec NESDR Mini look-alikes (in blue and black), also genuine and NooElec NESDR SMArt as well. Never seen 500k work.

@zuckschwerdt: You're right. 500k is really an invalid sample rate. Maybe my old rtl-sdr version just doesn't refuse this invalid sample rate, but makes crazy things. If I use the default 250k sample rate, I need to adjust the short and long limits to 124 µs.

There is now also a preamble option for the flex decoder to help with future endeavors. E.g.

rtl_433 -q -F json -R 0 -X 'bresser:FSK_PCM:124:124:1500,preamble=5554' \
 -y "{187}00555555555516ea77ff5fffe5fffefc7fdb7c9ffff8800 {186}00aaaaaaaaaa2dd4effebfffcbfffdf8ffb6f93ffff1000"

gives
[…]

"codes" : [
 "{137}5ba9dffd7fff97fffbf1ff6df27fffe2000",
 "{137}5ba9dffd7fff97fffbf1ff6df27fffe2000"]}

this is my param:
rtl_433 -f 868272000 -F json -q -R 0 -X 'bresser:FSK_PCM:124:124:2400'
and this is a response from my Bresser
}
{"time" : "2018-05-31 11:32:21", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 282, "data" : "00aaaaaaaaaa2dd4e51a7fe1efdfef8cfd9abbfdff1ae5801e102010730265440200000"}], "codes" : ["{282}00aaaaaaaaaa2dd4e51a7fe1efdfef8cfd9abbfdff1ae5801e102010730265440200000"]}

below an example of decoding:

00 AA AA AA AA AA 2D D4 E7 1A 7F F7 0F FB EF 8B FD 9B BB FD FF 18 E5 80 08 F0 04 10 74 02 64 44 02 00 00 00

00 AA AA AA AA AA preamble
2D D4 station ID
4 0 rain rate but I'm not sure
64 is Humidity really 64%
74 02 is temp 27.4°C (0 maybe is the sign 0=+ ...)
F0 04 is wind dir and wind velocity
F is positional in array
directions = ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"] (thanks Andrea Fabrizi)
'0 04' is velocity in m/s 0*10+0+4/10= 0.4 m/s = 1.4 km/h

I have full decoding for this sensor running. See my git tree in https://github.com/palstek/rtl_433/tree/feature/bresser_5in1. Just run 'rtl_433 -f 868272000 -F json'. I even tested negative temperature values.

BTW, 2DD4 isn't the station ID in my opinion. It is the synchronization word. The real data starts afterwards as inverted values.

@zuckschwerdt: Shall I open a pull-request to have those commits integrated into mainline?

Hey @palstek ,
I'm running your feature branch since weeks, as I want to fetch data from my Bresser weather station - no issues so far.
Would be great to integrate your branch into master :+1:

@palstek can you submit a good set of samples? I want to merge your decoder.

@brainexe or maybe you could submit some sample signals for the test repository?

I added the protocol disabled for now. Samples would be very welcome. Closing issue.

@palstek which antenna did you use?

I tried rtl_433 -f 868272000 -F json but this is the only output I see when using the delivered antenna.

trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
Using device 0: Generic RTL2832U OEM
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868272000 Hz.

You use -f 868.272M, are you sure your device is within 868.15M to 868.39M?

I have this device
https://www.bresser.de/en/Weather-Time/Weather-Stations/BRESSER-Weather-Center-5-in-1.html

Regarding andrea fabrizi it should be in this range (https://github.com/andreafabrizi/BresserWeatherCenter)

Try with -s1000k and -A. You might have issues with locating the signal in the spectrum.

Maybe play with the gain also (-g).

rtl_433 -f 868272000 -F json -s100k -A seems like to work

Detected OOK package @ 2018-12-12 17:55:06
Analyzing pulses...
Total count: 23, width: 2094 ( 2.1 ms)
Pulse width distribution:
[ 0] count: 6, width: 48 [42;57] ( 48 us)
[ 1] count: 6, width: 17 [16;18] ( 17 us)
[ 2] count: 2, width: 29 [29;30] ( 29 us)
[ 3] count: 4, width: 116 [109;123] ( 116 us)
[ 4] count: 4, width: 74 [64;84] ( 74 us)
[ 5] count: 1, width: 227 [227;227] ( 227 us)
Gap width distribution:
[ 0] count: 1, width: 12 [12;12] ( 12 us)
[ 1] count: 8, width: 35 [34;36] ( 35 us)
[ 2] count: 11, width: 22 [22;24] ( 22 us)
[ 3] count: 1, width: 47 [47;47] ( 47 us)
[ 4] count: 1, width: 61 [61;61] ( 61 us)
Pulse period distribution:
[ 0] count: 5, width: 56 [51;66] ( 56 us)
[ 1] count: 4, width: 82 [78;92] ( 82 us)
[ 2] count: 5, width: 39 [39;40] ( 39 us)
[ 3] count: 5, width: 144 [131;159] ( 144 us)
[ 4] count: 2, width: 104 [104;105] ( 104 us)
[ 5] count: 1, width: 288 [288;288] ( 288 us)
Level estimates [high, low]: 1006, 172
Frequency offsets [F1, F2]: -17254, 0 (-263.3 kHz, +0.0 kHz)
Guessing modulation: No clue...

Detected OOK package @ 2018-12-12 17:55:06
Analyzing pulses...
Total count: 1, width: 754 ( 0.8 ms)
Pulse width distribution:
[ 0] count: 1, width: 754 [754;754] ( 754 us)
Gap width distribution:
Pulse period distribution:
Level estimates [high, low]: 1814, 14
Frequency offsets [F1, F2]: -23036, 0 (-351.5 kHz, +0.0 kHz)
Guessing modulation: Single pulse detected. Probably Frequency Shift Keying or just noise...

This looks like noise, try with -g 35-49 also and see if that helps.

Now it prints the following:

Detected OOK package @ 2018-12-12 17:59:21
Analyzing pulses...
Total count: 2, width: 66702 (66.7 ms)
Pulse width distribution:
[ 0] count: 1, width: 37210 [37210;37210] (37210 us)
[ 1] count: 1, width: 27236 [27236;27236] (27236 us)
Gap width distribution:
[ 0] count: 1, width: 2256 [2256;2256] (2256 us)
Pulse period distribution:
[ 0] count: 1, width: 39466 [39466;39466] (39466 us)
Level estimates [high, low]: 15435, 32
Frequency offsets [F1, F2]: 7876, 0 (+120.2 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with fixed gap
Attempting demodulation... short_limit: 32223, long_limit: 2257, reset_limit: 2257, sync_width: 0
pulse_demod_pwm(): Analyzer Device
bitbuffer:: Number of rows: 1
[00] {2} 40 : 01

I meant -g [35-45] what you get is still not good enough signal data.

Thanks for your help!!!

Hope it's ok to print the messages here:

trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
Using device 0: Generic RTL2832U OEM
Exact sample rate is: 1000000.026491 Hz
[R82XX] PLL not locked!
Sample rate set to 1000000.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868272000 Hz.

Detected OOK package @ 2018-12-12 18:02:50
Analyzing pulses...
Total count: 23, width: 2090 ( 2.1 ms)
Pulse width distribution:
[ 0] count: 4, width: 45 [43;51] ( 45 us)
[ 1] count: 6, width: 19 [17;23] ( 19 us)
[ 2] count: 2, width: 33 [33;33] ( 33 us)
[ 3] count: 4, width: 118 [110;125] ( 118 us)
[ 4] count: 3, width: 80 [71;85] ( 80 us)
[ 5] count: 3, width: 60 [59;61] ( 60 us)
[ 6] count: 1, width: 230 [230;230] ( 230 us)
Gap width distribution:
[ 0] count: 1, width: 12 [12;12] ( 12 us)
[ 1] count: 8, width: 33 [32;37] ( 33 us)
[ 2] count: 11, width: 19 [17;21] ( 19 us)
[ 3] count: 1, width: 47 [47;47] ( 47 us)
[ 4] count: 1, width: 59 [59;59] ( 59 us)
Pulse period distribution:
[ 0] count: 5, width: 73 [63;80] ( 73 us)
[ 1] count: 5, width: 38 [37;40] ( 38 us)
[ 2] count: 3, width: 53 [52;54] ( 53 us)
[ 3] count: 5, width: 144 [131;157] ( 144 us)
[ 4] count: 3, width: 100 [92;105] ( 100 us)
[ 5] count: 1, width: 289 [289;289] ( 289 us)
Level estimates [high, low]: 1029, 177
Frequency offsets [F1, F2]: -14084, 0 (-214.9 kHz, +0.0 kHz)
Guessing modulation: No clue...

Detected OOK package @ 2018-12-12 18:02:50
Analyzing pulses...
Total count: 1, width: 755 ( 0.8 ms)
Pulse width distribution:
[ 0] count: 1, width: 755 [755;755] ( 755 us)
Gap width distribution:
Pulse period distribution:
Level estimates [high, low]: 1590, 14
Frequency offsets [F1, F2]: -23434, 0 (-357.6 kHz, +0.0 kHz)
Guessing modulation: Single pulse detected. Probably Frequency Shift Keying or just noise...

Detected OOK package @ 2018-12-12 18:02:52
Analyzing pulses...
Total count: 2, width: 757 ( 0.8 ms)
Pulse width distribution:
[ 0] count: 1, width: 466 [466;466] ( 466 us)
[ 1] count: 1, width: 274 [274;274] ( 274 us)
Gap width distribution:
[ 0] count: 1, width: 17 [17;17] ( 17 us)
Pulse period distribution:
[ 0] count: 1, width: 483 [483;483] ( 483 us)
Level estimates [high, low]: 1048, 19
Frequency offsets [F1, F2]: -24855, 0 (-379.3 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with fixed gap
Attempting demodulation... short_limit: 370, long_limit: 18, reset_limit: 18, sync_width: 0
pulse_demod_pwm(): Analyzer Device
bitbuffer:: Number of rows: 1
[00] {2} 40 : 01

Detected OOK package @ 2018-12-12 18:03:16
Analyzing pulses...
Total count: 2, width: 756 ( 0.8 ms)
Pulse width distribution:
[ 0] count: 1, width: 471 [471;471] ( 471 us)
[ 1] count: 1, width: 272 [272;272] ( 272 us)
Gap width distribution:
[ 0] count: 1, width: 13 [13;13] ( 13 us)
Pulse period distribution:
[ 0] count: 1, width: 484 [484;484] ( 484 us)
Level estimates [high, low]: 1000, 8
Frequency offsets [F1, F2]: -21481, 0 (-327.8 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with fixed gap
Attempting demodulation... short_limit: 371, long_limit: 14, reset_limit: 14, sync_width: 0
pulse_demod_pwm(): Analyzer Device
bitbuffer:: Number of rows: 1
[00] {2} 40 : 01

Detected OOK package @ 2018-12-12 18:03:32
Analyzing pulses...
Total count: 22, width: 2096 ( 2.1 ms)
Pulse width distribution:
[ 0] count: 5, width: 117 [108;127] ( 117 us)
[ 1] count: 6, width: 22 [18;24] ( 22 us)
[ 2] count: 2, width: 35 [34;36] ( 35 us)
[ 3] count: 2, width: 47 [47;47] ( 47 us)
[ 4] count: 3, width: 85 [77;90] ( 85 us)
[ 5] count: 3, width: 62 [59;65] ( 62 us)
[ 6] count: 1, width: 231 [231;231] ( 231 us)
Gap width distribution:
[ 0] count: 8, width: 30 [27;33] ( 30 us)
[ 1] count: 11, width: 17 [14;21] ( 17 us)
[ 2] count: 1, width: 43 [43;43] ( 43 us)
[ 3] count: 1, width: 58 [58;58] ( 58 us)
Pulse period distribution:
[ 0] count: 6, width: 144 [132;157] ( 144 us)
[ 1] count: 5, width: 39 [39;40] ( 39 us)
[ 2] count: 3, width: 52 [51;53] ( 52 us)
[ 3] count: 4, width: 79 [66;91] ( 79 us)
[ 4] count: 2, width: 104 [104;105] ( 104 us)
[ 5] count: 1, width: 289 [289;289] ( 289 us)
Level estimates [high, low]: 1071, 173
Frequency offsets [F1, F2]: -13400, 0 (-204.5 kHz, +0.0 kHz)
Guessing modulation: No clue...

Detected OOK package @ 2018-12-12 18:03:32
Analyzing pulses...
Total count: 1, width: 755 ( 0.8 ms)
Pulse width distribution:
[ 0] count: 1, width: 755 [755;755] ( 755 us)
Gap width distribution:
Pulse period distribution:
Level estimates [high, low]: 1812, 17
Frequency offsets [F1, F2]: -22935, 0 (-350.0 kHz, +0.0 kHz)
Guessing modulation: Single pulse detected. Probably Frequency Shift Keying or just noise...

Detected OOK package @ 2018-12-12 18:03:47
Analyzing pulses...
Total count: 1, width: 757 ( 0.8 ms)
Pulse width distribution:
[ 0] count: 1, width: 757 [757;757] ( 757 us)
Gap width distribution:
Pulse period distribution:
Level estimates [high, low]: 1000, 7
Frequency offsets [F1, F2]: -24081, 0 (-367.5 kHz, +0.0 kHz)
Guessing modulation: Single pulse detected. Probably Frequency Shift Keying or just noise...

Detected FSK package @ 2018-12-12 18:04:00
Analyzing pulses...
Total count: 107, width: 9124 ( 9.1 ms)
Pulse width distribution:
[ 0] count: 1, width: 0 [ 0; 0] ( 0 us)
[ 1] count: 3, width: 50 [49;51] ( 50 us)
[ 2] count: 86, width: 25 [24;27] ( 25 us)
[ 3] count: 5, width: 109 [100;125] ( 109 us)
[ 4] count: 3, width: 74 [74;75] ( 74 us)
[ 5] count: 5, width: 202 [174;234] ( 202 us)
[ 6] count: 1, width: 150 [150;150] ( 150 us)
[ 7] count: 1, width: 275 [275;275] ( 275 us)
[ 8] count: 1, width: 600 [600;600] ( 600 us)
[ 9] count: 1, width: 375 [375;375] ( 375 us)
Gap width distribution:
[ 0] count: 7, width: 76 [73;90] ( 76 us)
[ 1] count: 91, width: 24 [23;27] ( 24 us)
[ 2] count: 2, width: 137 [125;150] ( 137 us)
[ 3] count: 3, width: 50 [50;51] ( 50 us)
[ 4] count: 2, width: 100 [100;100] ( 100 us)
[ 5] count: 1, width: 200 [200;200] ( 200 us)
Pulse period distribution:
[ 0] count: 9, width: 93 [75;100] ( 93 us)
[ 1] count: 80, width: 50 [48;51] ( 50 us)
[ 2] count: 9, width: 180 [150;201] ( 180 us)
[ 3] count: 3, width: 125 [125;126] ( 125 us)
[ 4] count: 3, width: 283 [275;300] ( 283 us)
[ 5] count: 1, width: 800 [800;800] ( 800 us)
[ 6] count: 1, width: 400 [400;400] ( 400 us)
Level estimates [high, low]: 15852, 155
Frequency offsets [F1, F2]: 7163, 4878 (+109.3 kHz, +74.4 kHz)
Guessing modulation: Pulse Code Modulation (Not Return to Zero)
Attempting demodulation... short_limit: 25, long_limit: 25, reset_limit: 25600, sync_width: 0
pulse_demod_pcm(): Analyzer Device
bitbuffer:: Number of rows: 1
[00] {366} 0d 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 50 78 9d 91 08 1f e3 f7 f7 47 f7 ff 7f cc 77 d7 ff ff f8 07 c7 ff f7 bc 2f f8

Detected OOK package @ 2018-12-12 18:04:00
Analyzing pulses...
Total count: 10, width: 190376 (190.4 ms)
Pulse width distribution:
[ 0] count: 8, width: 7491 [6624;9190] (7491 us)
[ 1] count: 1, width: 53819 [53819;53819] (53819 us)
[ 2] count: 1, width: 38813 [38813;38813] (38813 us)
Gap width distribution:
[ 0] count: 2, width: 6783 [6549;7018] (6783 us)
[ 1] count: 6, width: 3739 [3197;4292] (3739 us)
[ 2] count: 1, width: 1811 [1811;1811] (1811 us)
Pulse period distribution:
[ 0] count: 2, width: 15249 [14290;16208] (15249 us)
[ 1] count: 5, width: 10984 [10421;11559] (10984 us)
[ 2] count: 1, width: 8435 [8435;8435] (8435 us)
[ 3] count: 1, width: 57710 [57710;57710] (57710 us)
Level estimates [high, low]: 15919, 152
Frequency offsets [F1, F2]: 7013, 0 (+107.0 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with sync/delimiter
Attempting demodulation... short_limit: 7491, long_limit: 53819, reset_limit: 7019, sync_width: 38813
pulse_demod_pwm_precise(): Analyzer Device
bitbuffer:: Number of rows: 2
[00] {9} f7 80 : 11110111 1
[01] {0} :

Detected OOK package @ 2018-12-12 18:04:11
Analyzing pulses...
Total count: 1, width: 756 ( 0.8 ms)
Pulse width distribution:
[ 0] count: 1, width: 756 [756;756] ( 756 us)
Gap width distribution:
Pulse period distribution:
Level estimates [high, low]: 1000, 8
Frequency offsets [F1, F2]: -24294, 0 (-370.7 kHz, +0.0 kHz)
Guessing modulation: Single pulse detected. Probably Frequency Shift Keying or just noise...

Detected OOK package @ 2018-12-12 18:04:14
Analyzing pulses...
Total count: 22, width: 2098 ( 2.1 ms)
Pulse width distribution:
[ 0] count: 5, width: 117 [108;126] ( 117 us)
[ 1] count: 6, width: 20 [17;24] ( 20 us)
[ 2] count: 3, width: 40 [37;47] ( 40 us)
[ 3] count: 3, width: 83 [76;88] ( 83 us)
[ 4] count: 4, width: 59 [50;66] ( 59 us)
[ 5] count: 1, width: 234 [234;234] ( 234 us)
Gap width distribution:
[ 0] count: 8, width: 31 [29;34] ( 31 us)
[ 1] count: 9, width: 19 [16;21] ( 19 us)
[ 2] count: 2, width: 14 [14;15] ( 14 us)
[ 3] count: 1, width: 43 [43;43] ( 43 us)
[ 4] count: 1, width: 55 [55;55] ( 55 us)
Pulse period distribution:
[ 0] count: 6, width: 143 [131;157] ( 143 us)
[ 1] count: 5, width: 39 [38;40] ( 39 us)
[ 2] count: 3, width: 52 [52;53] ( 52 us)
[ 3] count: 3, width: 74 [66;80] ( 74 us)
[ 4] count: 3, width: 100 [92;105] ( 100 us)
[ 5] count: 1, width: 289 [289;289] ( 289 us)
Level estimates [high, low]: 1036, 171
Frequency offsets [F1, F2]: -12710, 0 (-193.9 kHz, +0.0 kHz)
Guessing modulation: No clue...

Detected OOK package @ 2018-12-12 18:04:14
Analyzing pulses...
Total count: 1, width: 754 ( 0.8 ms)
Pulse width distribution:
[ 0] count: 1, width: 754 [754;754] ( 754 us)
Gap width distribution:
Pulse period distribution:
Level estimates [high, low]: 1679, 16
Frequency offsets [F1, F2]: -22495, 0 (-343.3 kHz, +0.0 kHz)
Guessing modulation: Single pulse detected. Probably Frequency Shift Keying or just noise...

Detected FSK package @ 2018-12-12 18:04:20
Analyzing pulses...
Total count: 105, width: 9001 ( 9.0 ms)
Pulse width distribution:
[ 0] count: 1, width: 0 [ 0; 0] ( 0 us)
[ 1] count: 3, width: 49 [48;50] ( 49 us)
[ 2] count: 1, width: 18 [18;18] ( 18 us)
[ 3] count: 84, width: 25 [24;27] ( 25 us)
[ 4] count: 2, width: 99 [99;100] ( 99 us)
[ 5] count: 3, width: 75 [75;77] ( 75 us)
[ 6] count: 4, width: 200 [175;226] ( 200 us)
[ 7] count: 3, width: 134 [125;151] ( 134 us)
[ 8] count: 3, width: 302 [276;332] ( 302 us)
[ 9] count: 1, width: 600 [600;600] ( 600 us)
Gap width distribution:
[ 0] count: 7, width: 75 [71;81] ( 75 us)
[ 1] count: 88, width: 24 [23;26] ( 24 us)
[ 2] count: 3, width: 108 [100;123] ( 108 us)
[ 3] count: 4, width: 49 [48;51] ( 49 us)
[ 4] count: 1, width: 149 [149;149] ( 149 us)
[ 5] count: 1, width: 199 [199;199] ( 199 us)
Pulse period distribution:
[ 0] count: 3, width: 73 [71;75] ( 73 us)
[ 1] count: 6, width: 133 [124;150] ( 133 us)
[ 2] count: 79, width: 49 [44;51] ( 49 us)
[ 3] count: 6, width: 191 [175;224] ( 191 us)
[ 4] count: 5, width: 100 [100;101] ( 100 us)
[ 5] count: 3, width: 283 [275;300] ( 283 us)
[ 6] count: 1, width: 799 [799;799] ( 799 us)
[ 7] count: 1, width: 401 [401;401] ( 401 us)
Level estimates [high, low]: 15767, 18
Frequency offsets [F1, F2]: 7268, 4545 (+110.9 kHz, +69.4 kHz)
Guessing modulation: No clue...

Detected OOK package @ 2018-12-12 18:04:20
Analyzing pulses...
Total count: 10, width: 190602 (190.6 ms)
Pulse width distribution:
[ 0] count: 8, width: 7442 [6499;8923] (7442 us)
[ 1] count: 1, width: 53861 [53861;53861] (53861 us)
[ 2] count: 1, width: 38821 [38821;38821] (38821 us)
Gap width distribution:
[ 0] count: 2, width: 6850 [6759;6942] (6850 us)
[ 1] count: 6, width: 3804 [3281;4259] (3804 us)
[ 2] count: 1, width: 1857 [1857;1857] (1857 us)
Pulse period distribution:
[ 0] count: 2, width: 15171 [14478;15865] (15171 us)
[ 1] count: 5, width: 11070 [10422;11883] (11070 us)
[ 2] count: 1, width: 8356 [8356;8356] (8356 us)
[ 3] count: 1, width: 57732 [57732;57732] (57732 us)
Level estimates [high, low]: 15868, 13
Frequency offsets [F1, F2]: 7016, 0 (+107.1 kHz, +0.0 kHz)
Guessing modulation: Pulse Width Modulation with sync/delimiter
Attempting demodulation... short_limit: 7442, long_limit: 53861, reset_limit: 6943, sync_width: 38821
pulse_demod_pwm_precise(): Analyzer Device
bitbuffer:: Number of rows: 2
[00] {9} f7 80 : 11110111 1
[01] {0} :

Everything but this looks bogus.

[00] {366} 0d 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 50 78 9d 91 08 1f e3 f7 f7 47 f7 ff 7f cc 77 d7 ff ff f8 07 c7 ff f7 bc 2f f8

This is a real signal. No idea what though.

I still think you have the wrong frequency. Or the device uses an unknown protocol.

I managed to get this once:

Detected FSK package @ 2018-12-12 18:17:49
{"time" : "2018-12-12 18:17:49", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 640, "data" : "1ce1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c38736d8db736398db86e63"}], "codes" : ["{640}1ce1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c3870e1c38736d8db736398db86e63"]}

I tested some of the above settings and it looks better now.

rtl_433 -f 868300000 -s 500k -F json -R 0 -X 'bresser:FSK_PCM:58:58:600'
Disabling all device decoders.
Registering protocol [1] "General purpose decoder 'bresser'"
Registered 1 out of 101 device decoding protocols
Found 1 device(s)

trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
Using device 0: Generic RTL2832U OEM
Invalid sample rate: 500000 Hz
WARNING: Failed to set sample rate.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868300000 Hz.

{"time" : "2018-12-12 18:37:15", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 75, "data" : "1f3672988727069b8ce"}], "codes" : ["{75}1f3672988727069b8ce"]}
{"time" : "2018-12-12 18:37:57", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 76, "data" : "47367573264e07918e3"}], "codes" : ["{76}47367573264e07918e3"]}
{"time" : "2018-12-12 18:37:57", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 27, "data" : "6880a20"}], "codes" : ["{27}6880a20"]}
{"time" : "2018-12-12 18:38:39", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 79, "data" : "07b472b4499b81ac31c6"}], "codes" : ["{79}07b472b4499b81ac31c6"]}
{"time" : "2018-12-12 18:38:39", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 27, "data" : "6109a20"}], "codes" : ["{27}6109a20"]}

I forgot the decoder is disabled by default. Try to enable it.

I managed to get it work!!! Thank you so much.

What I did now is I cloned the repository from @palstek with the bresser branch and build it.

This is the only command which works so far for me:

rtl_433 -f 868300000 -s 1000k -F json

{"time" : "2018-12-12 20:46:12", "model" : "Bresser Weather Center 5-in-1", "id" : 206, "temperature_C" : -0.700, "humidity" : 68, "gust" : 0.000, "speed": 0.000, "direction_deg" : 225.000, "direction_str" : "SW", "rain" : 20.800, "data" : "ec317fff5fffeff8ff97f7ddf713ce8000a00010070068082208"}
{"time" : "2018-12-12 20:46:24", "model" : "Bresser Weather Center 5-in-1", "id" : 206, "temperature_C" : -0.800, "humidity" : 68, "gust" : 0.000, "speed": 0.000, "direction_deg" : 225.000, "direction_str" : "SW", "rain" : 20.800, "data" : "ee317fff5fffeff7ff97f7ddf711ce8000a00010080068082208"}

So upstream rtl_433 -R 119 did not work ? Anyway can you run the branch you got working and collect some samples? If you run the palstek tree run it with rtl_433 -s 1000k -a -t.

Sure please find them here and tell me if you need something else:

https://github.com/iMarkus/CU8

I will delete the repository after you downloaded the files.

You need to add -f 868300000 also, the samples you got are from another frequency.

Oh sorry. Please try again :)

The samples you recorded didn't contain the Bresser data. You can test the files yourself with rtl_433 -r "recorded file" if any file decodes into bresser data that is the files we want.

I used the same command but with -a and -t

rtl_433 -f 868300000 -s 1000k -F json

rtl_433 -f 868300000 -s 1000k -a -t

That is ok, but you never know what you are recording. You need to check that afterwards.

It is recording very slow. Got only 4 files right now

Are you sure that this is working with the current feature/bresser_5in1 branch from @palstek ?

Yes this is an old feature.

This is the only output of rtl_433 -r

Test mode active. Reading samples from file: g005_868.3M_1000k.cu8
Input format: uint8
Test mode file issued 1 packets

and

Test mode file issued 2 packets

I will keep it running and test further files.

The signals should be repeated from the sensor every 12 seconds by the data from you logs. Try running normal and if that works you should be able to time the recording of the signal we want.

I am very sorry, it works like a charm now but when I use -a -t it doesn't.

Any other suggestion?

Maybe add -l 300 ?

Or try mainline rtl_433 with -S all -f 868300000 -s 1000k -F json.

-l 300 produces a lot of files, how can I test them quickly?

rtl_433 -r *.gfile should do it.

no the command does not work, so far i have no valid sample file :( i will try some other things tomorrow

what result should i see when the test mode succeeds?

It should decode the signal to the Bresser output.

I tried now several settings and received some signals but none from bresser :(

Do you need them?

@0.000000s : Efergy e2 CT
Transmitter ID: 128
Current: nan A
Interval: 6s
Battery: LOW
Learning: NO

@1.048576s : TFA-Twin-Plus-30.3049 : 18 : 2
Battery: OK
Temperature: -38.0 C
Humidity: 9 %

Also mainline did not work

Test mode active. Reading samples from file: all
Input format: uint8
Test mode file issued 1637 packets

This is really strange. Can you try the mainline code with -R 199 -f 868300000 -s 1000k -F json and see if you get any signals?

Tried: rtl_433 -S all -R 199 -f 868300000 -s 1000k -F json but no signals from bresser found (Filesize was more than 100MB)

One additional info: When I clone your repo and build it I only get these results

rtl_433 -f 868300000 -s 1000k

2018-12-13 11:41:07 : Ford : TPMS : 00000000 : 000000 : CHECKSUM
2018-12-13 11:41:07 : Renault : TPMS : 000000 : 00 : 0000 0000 : CRC

rtl_433 -f 868300000 -s 1000k -F json -R 119

no output

@zuckschwerdt do you have any bright ideas ?

Only other thing I can think about is to play with gain (-g) and see if the signal grabber works better. Try with 35 to 49 or so.

There seem to be too many problems at once here.

First use CubicSDR or Gqrx to reliably spot your transmissions. Note the center frequency, how often the signal appears, if it is strong (bright in the waterfall) and if there is much noise or other signals.

rtl_433 -S all -R 199 -f 868300000 -s 1000k -F json but no signals from bresser found (Filesize was more than 100MB)

That's a really bad sign. It means your receiver was way overloaded. Each single grab file (.cu8) should only be some 128k. If the grab never stops there is a continous signal.

Try to get smaller grabs. Also drop the grabs onto http://triq.net/iqs and compare to what you get in CubicSDR/Gqrx waterfall, or other samples from the tests repo.

To be honest I am totally satisfied with @palstek branch. I just wanted to help and generate some sample files. Unfortunately my current setup is only a console without GUI. Maybe @palstek or @brainexe is able to provide the samples

Hmm, maybe we need to add better statistics to the signal grabber, right now is it quite silent. Can you send that 100mbfile though? Might be good enough. I'll really don't want to tell people to use some random fork but without any samples it is hard to debug why upstream rtl_433 isn't working.

@iMarkus you are helping, it's just that we are not certain if there is a good sample that fails or if something in the setup or current rtl_433 is broken ;)
And looking over it, I guess I found a fault in out Bresser 5in1 code (parity check fails on the test sample). I'll push a fix shortly.

alright give me a shot when you pushed the fix, I will then rebuild the stuff and test again

Fixed. Big thanks! I broke it 4 days ago. m(

I'm always the one to talk about integer-promotion rules and then I write stupid stuff like ~some_u8 == some_u8_inverted (note the some_u8 gets promoted to int and negating that gives you 32(or such) inverted bits, not 8). Embarrassing.

which command do you want me to test now?

I guess plain rtl_433 -s 1024k -f 868.3M -R 119 should work. Maybe even without -s 1024k.

No signal found :(

I really do not understand why I find a signal every 12 seconds when I use the @palstek branch.

This is the only way to receive some data:

rtl_433 -f 868300000 -F json -R 119 -X 'bresser:FSK_PCM:124:124:2400'

{"time" : "2018-12-13 14:09:12", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 282, "data" : "00aaaaaaaaaa2dd4e8317ff78ff6efefff88f7ddff17ce8008700910100077082200000"}], "codes" : ["{282}00aaaaaaaaaa2dd4e8317ff78ff6efefff88f7ddff17ce8008700910100077082200000"]}
{"time" : "2018-12-13 14:09:24", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 282, "data" : "00aaaaaaaaaa2dd4e9317ff78ff7efefff88f7ddff16ce8008700810100077082200000"}], "codes" : ["{282}00aaaaaaaaaa2dd4e9317ff78ff7efefff88f7ddff16ce8008700810100077082200000"]}

Ok, I see what's wrong.
When you take that code and run it through rtl_433:

rtl_433 -R 119 -y 00aaaaaaaaaa2dd4e8317ff78ff6efefff88f7ddff17ce8008700910100077082200000

It will work.

The difference between your -X line and the proper decoder is the timing.
You have 124 us half-bit width there. The code we merged from palstek assumes 58 us. Strange. Maybe the test sample we have is wrong.

oops

@merbanan can you merge that :) Also the timings were a mess because the sample file was supposed to be at 500k rate, but that is not a vaild setting with rtl-sdr and it's thus likely at 250k…

wonder what the sample rate actually is, it should be possible to figure out.

I'll adjust the timings later this evening.

Alright now it is working fine.

rtl_433 -f 868.3M -R 119

2018-12-13 14:53:48 : Bresser-5in1 : 206
Temperature: 0.7 C
Humidity: 77
Wind Gust: 0.0 m/s
Wind Speed: 0.2 m/s
Direction: 135.0 °
Rain: 20.8 mm
Raw data: e9317fff9ffdeff8ff88f7ddff16ce8000600210070077082200
Integrity: CHECKSUM
2018-12-13 14:54:00 : Bresser-5in1 : 206
Temperature: 0.7 C
Humidity: 77
Wind Gust: 0.0 m/s
Wind Speed: 0.0 m/s
Direction: 135.0 °
Rain: 20.8 mm
Raw data: ea317fff9fffeff8ff88f7ddff15ce8000600010070077082200
Integrity: CHECKSUM

Hi

I am having the same issue with the Bresser that I received toay...

rtl_433 -f 868300000 -F json -R 119 -X 'bresser:FSK_PCM:124:124:2400'

trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
Using device 0: Generic RTL2832U OEM
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000 S/s.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868.300MHz.
{"time" : "2018-12-15 14:20:40.620237", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 283, "data" : "00aaaaaaaaaa2dd4e8897feb0fedefeefe6efbfeff17768014f01210110191040100000"}], "codes" : ["{283}00aaaaaaaaaa2dd4e8897feb0fedefeefe6efbfeff17768014f01210110191040100000"], "mod" : "FSK", "freq1" : 868.318, "freq2" : 868.209, "rssi" : -0.108, "snr" : 36.015, "noise" : -37.373}
{"time" : "2018-12-15 14:20:40.620237", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 283, "data" : "00aaaaaaaaaa2dd4e8897feb0fedefeefe6efbfeff17768014f01210110191040100000"}], "codes" : ["{283}00aaaaaaaaaa2dd4e8897feb0fedefeefe6efbfeff17768014f01210110191040100000"], "mod" : "FSK", "freq1" : 868.318, "freq2" : 868.209, "rssi" : -0.108, "snr" : 36.015, "noise" : -37.373}

But when I run the next command I get no output at all
rtl_433 -f 868.3M -R 119

Found 1 device(s)

trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
Using device 0: Generic RTL2832U OEM
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000 S/s.
Bit detection level set to 0 (Auto).
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 868.300MHz.

Any ideas?

Yes, the problem is this file:

https://github.com/merbanan/rtl_433/blob/master/src/devices/bresser_5in1.c

You can use my repository until @merbanan fixes the issue and try again:

https://github.com/iMarkus/rtl_433.git

I've now updated the timings. But we still don't have a sample file to check. Could you please record a sample (rtl_433 -S all) and post it here or PR to the tests repo?

Are these what you are looking for?

https://www.dropbox.com/s/4fnwnr5wibffbwm/bresser.zip?dl=0

Also thanks its now working :)

Perfect! We now have regression tests in https://github.com/merbanan/rtl_433_tests/tree/master/tests/bresser_5in1/01 to make sure this device support never breaks :)

Did any of you get this working with weewx-sdr? I am getting annoying errors which are driving me mad

Dec 15 17:06:19 raspberrypi weewx[13906]: sdr: MainThread: parse_json: unknown model Bresser-5in1
Dec 15 17:06:19 raspberrypi weewx[13906]: sdr: MainThread: punt unrecognized line '{"time" : "2018-12-15 17:06:16", "model" : "Bresser-5in1", "id" : 118, "temperature_C" : 6.300, "humidity" : 91, "wind_gust" : 1.400, "wind_speed" : 1.500, "wind_dir_deg" : 337.500, "rain_mm" : 10.800, "data" : "e6897feb0feaef9cff6ef7feff19768014f01510630091080100", "mic" : "CHECKSUM"}#012'

I guess weewx-sdr needs to add a definition for Bresser-5in1. Something in here https://github.com/matthewwall/weewx-sdr/blob/master/bin/user/sdr.py

I have a similar problem with a very similar device. This is a Fine Offset WH1050, but with FSK modulation. The data format is close to the WH1080 doc'd here https://www.sevenwatt.com/main/wh1080-protocol-v2-fsk/. My problem is that I only get 1 message out of 20 or so with the full 0xAA, 0xAA, 0xAA preamble with the 0x2d 0xd4 sync word, when the data seems to be correct, the rest of the time the last AA has slipped to 0xA8. I assume that is because my current settings of long 56, short 56 and reset of 57344 (as suggested by -A) are just a bit wrong.
fo1050.zip
Sample attached. Should I raise a separate issue, or is this close enough to follow here?

In your example the code is:

rtl_433 -X 'fo1050:FSK_PCM:56:56:2400' g004_433.92M_250k.cu8

{765}0002aaaaa8b751710324f0000006196c0015555545ba8b88192780000030cb6000aaaaaa2d
d45c40c93c000001865b00055555516ea2e20649e000000c32d8002aaaaa8b751710324f000000
6196c0015555545ba8b88192780000030cb60000

which starts with aa aa aa 2d d4 as expected (shift by 2 bits).
The reset seems excessive. the longest run I see here is 30 0s. Thus somewhat larger than 30*56 =1680 should be enough.
If you don't want a run of 30 bits to be read as 29 or 31 then the deviation needs to be less than 56/2/30, i.e. the error in the width needs to be less than 1 µs.

I just used the suggestion from -A (in my innocence), I did suspect it seemed long.

I tried various long and short periods ie: 55, 56, 57 ad nauseum, so I guess the beastie just has flaky timing.

In end, I monkey patched the code from the preamble option of the flex decoder and that fixed the timing issue pretty solidly. I now have all the information working, except... rainfall, I just can't find that in the data even though everything else is fine. The base station shows rain, but I can't seem to spot the value.

This is the version of the device that was marketed in the UK by Maplin and apparently was switched to FSK sometime around 2012. If anyone is interested, I'll try to clean up my nasty code somewhat and submit a pull request.

Do you mean something like the bitbuffer_search in https://github.com/merbanan/rtl_433/blob/master/src/devices/bresser_5in1.c#L65 ? Maybe drop the first pattern byte, the preamble could be missing the first few bits. Do you have a sample signal that shows that problem with the preamble?

Yes, the sample I uploaded in my first post shows the issue, which is that the last nibble of the preamble is 8 instead of A, ie: A8 vs AA.

This could be a misunderstanding: the bits are not inherently aligned. The decoding 0002aaaaa8b751710324... here is in fact aa aa aa 2d d4 if you align it. I.e. there is no A8 but 1010 1000, if you then look at the pattern …a 2… (10100010) this matches.

I just used the suggestion from -A (in my innocence), I did suspect it seemed long.

I tried various long and short periods ie: 55, 56, 57 ad nauseum, so I guess the beastie just has flaky timing.

In end, I monkey patched the code from the preamble option of the flex decoder and that fixed the timing issue pretty solidly. I now have all the information working, except... rainfall, I just can't find that in the data even though everything else is fine. The base station shows rain, but I can't seem to spot the value.

This is the version of the device that was marketed in the UK by Maplin and apparently was switched to FSK sometime around 2012. If anyone is interested, I'll try to clean up my nasty code somewhat and submit a pull request.

Hi everybody!
I have the same issue on rain values as @mkarliner !
My Bresser 5-in-1 (model 70-02510) works well (apart from RAIN) with this rtl_433 command:
/-----/
rtl_433 -f 868.3M -R 119 -F mqtt://localhost:1883,retain=0,devices=sensors/rtl_433/P[protocol:119]/C[channel:0] -M newmodel -M protocol -M time:iso
/-----/

Base station shows these values:
weekly 7.6mm
monthly 8.0mm
(live) 1.6mm
daily 2.0mm

but rain value (read from my MQTT broker [Openhab mqtt embedded broker] with
MQTTfx [sensors/rtl_433/P119/C0/rain_mm]) is 19.6mm..
It's not the current value.. It'a an aggregate value..

Thanks for any kind of help ,
Alex

Yes, it's an aggregated value. You need to derive for the time frame you are interested in.
I.e. subtract values 24h apart and you get the "daily" value.

Yes, it's an aggregated value. You need to derive for the time frame you are interested in.
I.e. subtract values 24h apart and you get the "daily" value.

Did you mean that external sensor does collect rain data and trasmit a total value (since last reset)?

Yes!

Hi, I'm trying to get some readings from the 5 in 1 sensor. I have the sensor version 7002550CM3000.
When I try:

rtl_433 -f 868.3M -R 119 -M newmodel
rtl_433 version 19.08-113-g2b6d5fd branch master at 201912162234 inputs file rtl_tcp RTL-SDR
Use -h for usage help and see https://triq.org/ for documentation.
Trying conf file at "rtl_433.conf"...
Trying conf file at "/home/pi/.config/rtl_433/rtl_433.conf"...
Trying conf file at "/usr/local/etc/rtl_433/rtl_433.conf"...
Trying conf file at "/etc/rtl_433/rtl_433.conf"...
Registered 1 out of 141 device decoding protocols [ 119 ]
Found Fitipower FC0012 tuner
Exact sample rate is: 1000000.026491 Hz
Sample rate set to 1000000 S/s.
Tuner gain set to Auto.
Tuned to 868.300MHz.
Allocating 15 zero-copy buffers
pulse_FSK_detect(): Maximum number of pulses reached!

What am I doing wrong?
Here what i get from the readings:
cu8.zip

Thanks for the help.

Hi. I have this weather station:
https://www.bresser.de/Wetter-Zeit/Wetterstationen/National-Geographic-Color-Display-Funk-Wetter-Center-5in1.html?listtype=search&searchparam=national%20geographic%20weather%20station
It is a different model to all those referred to in this forum, it is 9080500, and I don't get results in searches.
With the order rtl_433 -f 868300000 -X n = bresser, m = FSK_PCM, s = 124, l = 124, r = 2500
I get these values:
time : 2019-12-31 09:50:52
model : bresser count : 1 num_rows : 1 rows :
len : 221 data : 555555555516ea637e0c600d700c7ec4fe822c038943fff853800000
codes : {221}555555555516ea637e0c600d700c7ec4fe822c038943fff853800000
When the environmental conditions marked by the screen are:
Temperature 7.1 ° C
Humidity 87%
Wind 7.2km / h
Precipitation = 0
Can you help me? Thank you.

i have same weather station. coding is diffrent. here is output after preamble 5554

rtl_433 -q -F json -R 119 -X 'bresser:FSK_PCM:122:122:5000,preamble=5554' -f 868300000
rtl_433 version 19.08-115-g195ec6e branch master at 202001031234 inputs file rtl_tcp RTL-SDR
Use -h for usage help and see https://triq.org/ for documentation.
Trying conf file at "rtl_433.conf"...
Trying conf file at "/root/.config/rtl_433/rtl_433.conf"...
Trying conf file at "/usr/local/etc/rtl_433/rtl_433.conf"...
Trying conf file at "/etc/rtl_433/rtl_433.conf"...
quiet option (-q) is default and deprecated. See -v to increase verbosity

You are using the deprecated positional flex spec, please read "-X help" and change your spec!

    Consider using "-M newmodel" to transition to new model keys. This will become the default someday.
    A table of changes and discussion is at https://github.com/merbanan/rtl_433/pull/986.

Registered 2 out of 141 device decoding protocols [ 119 ]
Detached kernel driver
Found Rafael Micro R820T tuner
Exact sample rate is: 1000000.026491 Hz
[R82XX] PLL not locked!
Sample rate set to 1000000 S/s.
Tuner gain set to Auto.
Tuned to 868.300MHz.
Allocating 15 zero-copy buffers
{"time" : "2020-01-04 19:24:02", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "5ba820c631801e2031fbbbfa26b12e5527ffe0d60000000000"}], "codes" : ["{199}5ba820c631801e2031fbbbfa26b12e5527ffe0d60000000000"]}
{"time" : "2020-01-04 19:24:14", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "5ba9a49031801e2031fbbbfa26b1fff6dbfe028e0000000000"}], "codes" : ["{199}5ba9a49031801e2031fbbbfa26b1fff6dbfe028e0000000000"]}
{"time" : "2020-01-04 19:24:26", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "5ba9bd6631801e2031fdcdfe26b12e5527ffe0be0000000000"}], "codes" : ["{199}5ba9bd6631801e2031fdcdfe26b12e5527ffe0be0000000000"]}

{"time" : "2020-01-04 19:24:38", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 198, "data" : "5ba9bbe031801e2031ff11fe2251fff6dbfe03940000000000"}], "codes" : ["{198}5ba9bbe031801e2031ff11fe2251fff6dbfe03940000000000"]}
{"time" : "2020-01-04 19:24:50", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 198, "data" : "5ba83fb631801e2031ff11fe22512e5527ffe1dc0000000000"}], "codes" : ["{198}5ba83fb631801e2031ff11fe22512e5527ffe1dc0000000000"]}
{"time" : "2020-01-04 19:25:02", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "5ba9b04431801e2031fd17fc2251fff6dbfe03920000000000"}], "codes" : ["{199}5ba9b04431801e2031fd17fc2251fff6dbfe03920000000000"]}
{"time" : "2020-01-04 19:25:14", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "5ba98d3a31801e2031ff77fe22512e5527ffe1760000000000"}], "codes" : ["{199}5ba98d3a31801e2031ff77fe22512e5527ffe1760000000000"]}
{"time" : "2020-01-04 19:25:26", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 216, "data" : "5ba8ca5a31801e2031ff33fe2251fff6dbfe037200000000000000"}], "codes" : ["{216}5ba8ca5a31801e2031ff33fe2251fff6dbfe037200000000000000"]}
{"time" : "2020-01-04 19:25:38", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "5ba94e0c31801e2031ff33fe22512e5527ffe1ba0000000000"}], "codes" : ["{199}5ba94e0c31801e2031ff33fe22512e5527ffe1ba0000000000"]}
{"time" : "2020-01-04 19:25:50", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 198, "data" : "5ba9bbe031801e2031ff11fe2251fff6dbfe03940000000000"}], "codes" : ["{198}5ba9bbe031801e2031ff11fe2251fff6dbfe03940000000000"]}
{"time" : "2020-01-04 19:26:02", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 196, "data" : "5ba97aec31801e2031ffddfe22512e5527ffe110000000000"}], "codes" : ["{196}5ba97aec31801e2031ffddfe22512e5527ffe110000000000"]}
{"time" : "2020-01-04 19:26:14", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 199, "data" : "5ba8096c31801e2031ff77fe2251fff6dbfe032e0000000000"}],

The data format for s118 and rege245 are like bresser 6in1 shown at https://github.com/merbanan/rtl_433/issues/1214 check your data fits this format at bitbech
Regards

i try modified bresser 5in1 for bresser 6in1, which use same protocol. there is mistake in .reset_limit = 25000,, which should be 2500, not 25000
https://github.com/merbanan/rtl_433/blob/ba09426e808786e215346007ab6f10a0815bcdc6/src/devices/bresser_5in1.c

now i am able to decode TEMP and HUM

bresser_6in1_callback: {160} 1b 40 31 80 1e 20 31 ff ff fe 52 51 ff f6 db fe 02 76 00 00
bresser_6in1_callback: {160} b8 5c 18 c0 0f 10 18 ff ff ff 29 28 00 12 87 ff f0 1a 00 00


time : 2020-01-05 07:32:31
model : Bresser-6in1 Temperature: 0.1 C Humidity : 87 Integrity : CHECKSUM
bresser_6in1_callback: {159} 9d 41 18 c0 0f 10 18 ff ff ff 33 88 00 12 87 ff f0 b0 00 00


time : 2020-01-05 07:32:55
model : Bresser-6in1 Temperature: 0.1 C Humidity : 87 Integrity : CHECKSUM

add calculation of wind speed and direction after humidity and change data_make content and let me know, protocol is more complex that seems to be, what we sopose as bad temperature data "FF" I think is the string data with rain information, there is no space in the normal string of data to include rain info. I think that for further comment is better 6in1 thread becuase this stations are not normal 5in1.

````
float wind_direction_deg = ((msg[10] & 0xf0) >> 4) * 100 + (msg[10] & 0x0f) 10 + ((msg[11] &0xf0) >> 4 ) ;
int gust_raw = (0xff-(msg[7]))
10 +(0x0f-((msg[8] &0xf0) >> 4));
float wind_gust = gust_raw * 0.1f;

int wind_raw = (0xff-(msg[9]))10 +0x0f-(msg[8] & 0x0f);
float wind_avg = wind_raw * 0.1f;
//TO DO
int rain_raw = (0xff-(msg[7]))
100;
float rain = rain_raw * 0.1f;

data = data_make(
"model", "", DATA_STRING, "Bresser-5in1",
"id", "", DATA_INT, sensor_id,
"temperature_C", "Temperature", DATA_FORMAT, "%.1f C", DATA_DOUBLE, temperature,
"humidity", "Humidity", DATA_INT, humidity,
_X("wind_max_m_s","wind_gust"), "Wind Gust", DATA_FORMAT, "%.1f m/s",DATA_DOUBLE, wind_gust,
_X("wind_avg_m_s","wind_speed"), "Wind Speed", DATA_FORMAT, "%.1f m/s",DATA_DOUBLE, wind_avg,
"wind_dir_deg", "Direction", DATA_FORMAT, "%.1f °",DATA_DOUBLE, wind_direction_deg,
"rain_mm", "Rain", DATA_FORMAT, "%.1f mm",DATA_DOUBLE, rain,
"mic", "Integrity", DATA_STRING, "CHECKSUM",
NULL);
````

ok. thanks.my last post here. some data are decode fine, but some are ignored...

time : 2020-01-05 12:05:09
model : bresser count : 1 num_rows : 1 rows :
len : 220 data : 555555555516ea648b0c6007880c7fddff93847ffdb6ff80d080000
codes : {220}555555555516ea648b0c6007880c7fddff93847ffdb6ff80d080000
bresser_6in1_callback: {158} 40 ac 18 c0 0f 10 18 ff bb ff 27 08 01 62 76 ff f0 40 00 00


time : 2020-01-05 12:05:21
model : Bresser-5in1 Temperature: 1.6 C Humidity : 76 Wind Gust : 0.4 m/s Wind Speed: 0.4 m/s
Direction : 270.0 ° Rain : 0.0 mm Integrity : CHECKSUM


time : 2020-01-05 12:05:21
model : bresser count : 1 num_rows : 1 rows :
len : 214 data : 555555555516ea20560c6007880c7fddff938400b13b7ff8200000
codes : {214}555555555516ea20560c6007880c7fddff938400b13b7ff8200000
bresser_6in1_callback: {160} a3 a9 18 c0 0f 10 18 fe 8c fe 29 28 ff fb 6d ff 01 b0 00 00


time : 2020-01-05 12:05:33
model : bresser count : 1 num_rows : 1 rows :
len : 216 data : 555555555516ea51d48c6007880c7f467f14947ffdb6ff80d80000
codes : {216}555555555516ea51d48c6007880c7f467f14947ffdb6ff80d80000


time : 2020-01-05 12:05:45
model : bresser count : 1 num_rows : 1 rows :
len : 220 data : 555555555516ea59b50c6007880c7f6fff18ac00b13afff86280000
codes : {220}555555555516ea59b50c6007880c7f6fff18ac00b13afff86280000


time : 2020-01-05 12:05:57
model : bresser count : 1 num_rows : 1 rows :
len : 220 data : 555555555516ea78388c6007880c7dd47e19c47ffdb6ff809780000
codes : {220}555555555516ea78388c6007880c7dd47e19c47ffdb6ff809780000


Hi!
I have a Bresser 5in1 WiFi weather station. I can't receive any data from it. When I run

rtl_433 -f 868M -g 49 -s 1000k -vv

I get this data

Fineoffset_WH51: short package. Header index: 434
bitbuffer:: Number of rows: 1 
[00] {410} 19 99 99 99 99 99 99 99 99 99 81 9e 7e 66 00 33 0f cc f0 3c 30 f0 00 06 60 00 fc 07 80 ff ff ff ff ff ff c0 00 00 0c 00 19 f8 78 61 9e 1f ff ff fc 01 fe 00

It always starts with 19 99 99 99 99 99 99 99 99 99 81 9e 7e 66, if it is useful. Any ideas to make it work?

Thanks

just got a newer 5 in 1 model 7002580
https://www.bresser.de/en/Weather-Time/Weather-Center/BRESSER-WIFI-color-weather-center-with-5in1-profi-sensor.html

does not seem to not work on current 5 in 1 and 6 in 1 decoders

basic code seem to be similar to 6 in 1, but long pre amble and massive postamble of 0s makes bits per row count over 270
applied the changes for wind, rain etc,
msg[6] seems to be part of station Id, as I get the odd record with a different one and very different data , but could have been corruption
not convinced msg[7] is rain data, as it changing, in a non consistent manor

I will post my data captures etc later

look here: https://github.com/merbanan/rtl_433/issues/1172

I have been working with the code in branch from Add Bresser 6-in-1 support pull #1225

the code in 1172 example seem to expect < 248 bit length , where I am seeing > 270, due to many 00 post amble

could do with a plenty of data from multiple installation of all 3 models, to work out a common framework

with pre amble and sync word removed I get

bbfd1970036518ffbbff2028067284fff00a0000000000
8ccd1970036518ffbbff2028067285fff00900000000000
2f6c1970036518ffaaff2708067284fff0340000000000
f7a11970036518fedffe2028067284fff0e80000000000
42551970036518ff88ff2488067284fff0d900000000000
da661970036518ff99ff2028067284fff02c0000000000

change this in the end of code : .reset_limit = 2500, to .reset_limit = 2200, or lower

change this in the end of code : .reset_limit = 2500, to .reset_limit = 2200, or lower

sorted,
there are a few variants around, took some of the code from the end of 1172, to deal with rain and checking BYTE 16 help cope with corrupted data
still had to extend the bit length filter

will leave it running for a few days,, tidy up and submit it back via 1172

Thanks for the help

Hi,

after a few weeks of inactivity. I'm still at the same point.

by executing the following command for a 6in1 bresser:

rtl_433 -q -F json -R 119 -X 'bresser:FSK_PCM:122:122:5000,preamble=5554' -f 868300000

I can't get the information.

{"time" : "2020-02-26 19:16:55", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 164, "data" : "5ba938663100058631f99ff84e100908efffe14c0"}], "codes" : ["{164}5ba938663100058631f99ff84e100908efffe14c0"]}
{"time" : "2020-02-26 19:17:19", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 175, "data" : "00000000000000000000000000000000000000000000"}], "codes" : ["{175}00000000000000000000000000000000000000000000"]}
{"time" : "2020-02-26 19:17:55", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 165, "data" : "045b00000000000000000000000000000000000000"}], "codes" : ["{165}045b00000000000000000000000000000000000000"]}
{"time" : "2020-02-26 19:18:07", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 165, "data" : "5ba965383100058631f99ff84e500928efffe0ec00"}], "codes" : ["{165}5ba965383100058631f99ff84e500928efffe0ec00"]}
{"time" : "2020-02-26 19:18:19", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 165, "data" : "5ba8c9623100058631f99ff84e31fffffffe030ff0"}], "codes" : ["{165}5ba8c9623100058631f99ff84e31fffffffe030ff0"]}
{"time" : "2020-02-26 19:18:31", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 162, "data" : "5ba80e7c3100058631f9effa4e300928efffe0bbc"}], "codes" : ["{162}5ba80e7c3100058631f9effa4e300928efffe0bbc"]}
{"time" : "2020-02-26 19:18:43", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 165, "data" : "5ba8d4383100058631fb33fa4e91fffffffe0317f0"}], "codes" : ["{165}5ba8d4383100058631fb33fa4e91fffffffe0317f0"]}
{"time" : "2020-02-26 19:18:55", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 165, "data" : "5ba852aa3100058631fbb5fc4e900928efffe09000"}], "codes" : ["{165}5ba852aa3100058631fbb5fc4e900928efffe09000"]}
{"time" : "2020-02-26 19:19:07", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 165, "data" : "5ba877ae3100058631fbb7fc4e91fffffffe029000"}], "codes" : ["{165}5ba877ae3100058631fbb7fc4e91fffffffe029000"]}
{"time" : "2020-02-26 19:19:19", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 164, "data" : "5ba9deac3100058631fdbffc4e900928efffe0840"}], "codes" : ["{164}5ba9deac3100058631fdbffc4e900928efffe0840"]}
{"time" : "2020-02-26 19:19:31", "model" : "bresser", "count" : 1, "num_rows" : 1, "rows" : [{"len" : 165, "data" : "5ba9981a3100058631fd77fc4f11fffffffe024ff0"}], "codes" : ["{165}5ba9981a3100058631fd77fc4f11fffffffe024ff0"]}

how to display temperatures .....

Thanks

Sebastien

please use #1214 for Bresser 6in1

Hello guys do you get atmosferic pressure as well?

The Bresser 5-in-1 sensor has no field for atmospheric pressure. If you see a reading it's likely from the (indoor) head unit -- there is no need to measure it outdoors anyway.

just got a newer 5 in 1 model 7002580
https://www.bresser.de/en/Weather-Time/Weather-Center/BRESSER-WIFI-color-weather-center-with-5in1-profi-sensor.html

does not seem to not work on current 5 in 1 and 6 in 1 decoders

basic code seem to be similar to 6 in 1, but long pre amble and massive postamble of 0s makes bits per row count over 270
applied the changes for wind, rain etc,
msg[6] seems to be part of station Id, as I get the odd record with a different one and very different data , but could have been corruption
not convinced msg[7] is rain data, as it changing, in a non consistent manor

I will post my data captures etc later

Hi,

i also have this model: 7002580. Did you suceeded with decoding?

Purely FYI, it seems the Lacrosse WSTX1650 (from the WS1650 weather station) is the exact same device. I was running ./rtl_433 -f 868.24e6 -a 4 and to my surprise after a little while I got:

time      : 2020-12-26 22:10:14
model     : Bresser-5in1 id        : 192
Battery   : 1            Temperature: 6.7 C        Humidity  : 91            Wind Gust : 8.8 m/s       Wind Speed: 4.4 m/s       Direction : 202.5         Rain      : 42.8 mm
Integrity : CHECKSUM
Was this page helpful?
0 / 5 - 0 ratings

Related issues

gcormier picture gcormier  Â·  7Comments

OZ1SEJ picture OZ1SEJ  Â·  15Comments

gcormier picture gcormier  Â·  15Comments

dagbdagb picture dagbdagb  Â·  14Comments

gdt picture gdt  Â·  15Comments