matthias-bs / BresserWeatherSensorReceiver

Bresser 5-in-1/6-in-1/7-in-1 868 MHz Weather Sensor Radio Receiver for Arduino based on CC1101, SX1276/RFM95W or SX1262
MIT License
113 stars 21 forks source link

Help with setting up Waldbeck Huygens weather station #146

Closed jdukat closed 6 months ago

jdukat commented 6 months ago

Hi, I'm trying to make sense from this: https://github.com/matthias-bs/BresserWeatherSensorReceiver/issues/41 and from this: https://github.com/matthias-bs/BresserWeatherSensorReceiver/issues/44

The latter I really don't understand :) I'm using an USB SDR stick like this one: https://www.aliexpress.com/item/1005001815260665.html

The weather station seem to be a variant of Sainlogic WS3500 or other Ecowitt device, but I'm completely new to rtl_433 and after hours of staring at various parameters, I can't figure out what to do next.

Here's what I've found:

rtl_433 -f 868.3M -vvv returns:

trying device 0: Realtek, RTL2838UHIDIR, SN: 00000001 Detached kernel driver Found Fitipower FC0012 tuner Using device 0: Generic RTL2832U OEM Exact sample rate is: 1000000.026491 Hz Sample rate set to 1000000 S/s. Bit detection level set to 0.0 (Auto). Tuner gain set to Auto. Reading samples in async mode... Tuned to 868.300MHz. Allocating 15 zero-copy buffers Fineoffset_WH24: Raw: 12 04 b2 c1 37 1c 80 00 00 18 00 00 00 07 40 17 a3 @ bit_offset [59] M-Bus: CRC error: Calculated 0xFFFF, Read: 0x0 ambientweather_whx_decode: WH31E/WH40 detected, buffer is 198 bits length ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68) bresser_5in1_decode: bit_per_row 52 out of range directv: incorrect number of bits in bitbuffer: 1 (expected between 44 and 99). WARNING: Undeclared field "msg" in [130] "IKEA Sparsnas Energy Meter Monitor" WARNING: Undeclared field "num_rows" in [130] "IKEA Sparsnas Energy Meter Monitor" WARNING: Undeclared field "codes" in [130] "IKEA Sparsnas Energy Meter Monitor"


time : 2024-03-21 23:32:54 msg : ikea_sparsnas_decode: num_rows : 1 codes : {402}cccccccd99b3333333333033cfe66030c0061bc33c01879f81f860000000000003fff000000000000001ffcc0000cfcc01890 ikea_sparsnas_decode: Too short or too long packet received. Expected 160, received 402 Fineoffset_WH51: Msg family unknown: 12 Fine Offset WH1080 data {80} ff 12 04 b2 c1 37 1c 80 00 00 insteon_callback: new buffer 1 rows lacrosse_breezepro_decode: Wrong packet length: 99 lacrosse_wr1_decode: Packet too short: 101 bits lacrosse_th_decode: Packet too short: 101 bits bresser_6in1_decode: bit_per_row 52 out of range bresser_7in1_decode: to few bits (52) ecodhome_decode: to few bits (12) lacrosse_r1_decode: Packet too short: 101 bits Pulse data: 245 pulses [ 0] Pulse: 0, Gap: 2, Period: 2 [ 1] Pulse: 3, Gap: 2, Period: 5 [ 2] Pulse: 15, Gap: 1, Period: 16 [ 3] Pulse: 4, Gap: 1, Period: 5 [ 4] Pulse: 11, Gap: 1, Period: 12 [ 5] Pulse: 15, Gap: 1, Period: 16 [ 6] Pulse: 10, Gap: 59, Period: 69 [ 7] Pulse: 59, Gap: 50, Period: 109 [ 8] Pulse: 3, Gap: 2, Period: 5 [ 9] Pulse: 61, Gap: 5, Period: 66 [ 10] Pulse: 2, Gap: 29, Period: 31 [ 11] Pulse: 3, Gap: 18, Period: 21 [ 12] Pulse: 58, Gap: 30, Period: 88 [ 13] Pulse: 1, Gap: 3, Period: 4 [ 14] Pulse: 1, Gap: 23, Period: 24 [ 15] Pulse: 29, Gap: 1, Period: 30 [ 16] Pulse: 28, Gap: 56, Period: 84 [ 17] Pulse: 62, Gap: 33, Period: 95 [ 18] Pulse: 1, Gap: 22, Period: 23 [ 19] Pulse: 57, Gap: 25, Period: 82 [ 20] Pulse: 2, Gap: 32, Period: 34 [ 21] Pulse: 26, Gap: 1, Period: 27 [ 22] Pulse: 32, Gap: 10, Period: 42 [ 23] Pulse: 1, Gap: 34, Period: 35 [ 24] Pulse: 2, Gap: 10, Period: 12 [ 25] Pulse: 60, Gap: 33, Period: 93 [ 26] Pulse: 2, Gap: 23, Period: 25 [ 27] Pulse: 58, Gap: 17, Period: 75 [ 28] Pulse: 1, Gap: 33, Period: 34 [ 29] Pulse: 1, Gap: 3, Period: 4 [ 30] Pulse: 61, Gap: 9, Period: 70 [ 31] Pulse: 2, Gap: 29, Period: 31 [ 32] Pulse: 3, Gap: 13, Period: 16 [ 33] Pulse: 44, Gap: 1, Period: 45 [ 34] Pulse: 7, Gap: 1, Period: 8 [ 35] Pulse: 7, Gap: 32, Period: 39 [ 36] Pulse: 2, Gap: 23, Period: 25 [ 37] Pulse: 57, Gap: 17, Period: 74 [ 38] Pulse: 2, Gap: 39, Period: 41 [ 39] Pulse: 59, Gap: 3, Period: 62 [ 40] Pulse: 2, Gap: 33, Period: 35 [ 41] Pulse: 2, Gap: 18, Period: 20 [ 42] Pulse: 56, Gap: 60, Period: 116 [ 43] Pulse: 2, Gap: 1, Period: 3 [ 44] Pulse: 55, Gap: 44, Period: 99 [ 45] Pulse: 2, Gap: 11, Period: 13 [ 46] Pulse: 60, Gap: 58, Period: 118 [ 47] Pulse: 57, Gap: 22, Period: 79 [ 48] Pulse: 2, Gap: 33, Period: 35 [ 49] Pulse: 62, Gap: 55, Period: 117 [ 50] Pulse: 61, Gap: 33, Period: 94 [ 51] Pulse: 1, Gap: 22, Period: 23 [ 52] Pulse: 58, Gap: 57, Period: 115 [ 53] Pulse: 60, Gap: 5, Period: 65 [ 54] Pulse: 1, Gap: 31, Period: 32 [ 55] Pulse: 1, Gap: 134, Period: 135 [ 56] Pulse: 61, Gap: 55, Period: 116 [ 57] Pulse: 119, Gap: 55, Period: 174 [ 58] Pulse: 177, Gap: 57, Period: 234 [ 59] Pulse: 57, Gap: 58, Period: 115 [ 60] Pulse: 60, Gap: 90, Period: 150 [ 61] Pulse: 2, Gap: 65, Period: 67 [ 62] Pulse: 2, Gap: 33, Period: 35 [ 63] Pulse: 1, Gap: 37, Period: 38 [ 64] Pulse: 60, Gap: 115, Period: 175 [ 65] Pulse: 62, Gap: 3, Period: 65 [ 66] Pulse: 2, Gap: 29, Period: 31 [ 67] Pulse: 2, Gap: 133, Period: 135 [ 68] Pulse: 1, Gap: 67, Period: 68 [ 69] Pulse: 1, Gap: 66, Period: 67 [ 70] Pulse: 2, Gap: 37, Period: 39 [ 71] Pulse: 61, Gap: 105, Period: 166 [ 72] Pulse: 3, Gap: 2, Period: 5 [ 73] Pulse: 1, Gap: 3, Period: 4 [ 74] Pulse: 61, Gap: 4, Period: 65 [ 75] Pulse: 1, Gap: 2, Period: 3 [ 76] Pulse: 1, Gap: 35, Period: 36 [ 77] Pulse: 1, Gap: 11, Period: 12 [ 78] Pulse: 118, Gap: 17, Period: 135 [ 79] Pulse: 1, Gap: 5, Period: 6 [ 80] Pulse: 2, Gap: 89, Period: 91 [ 81] Pulse: 46, Gap: 1, Period: 47 [ 82] Pulse: 12, Gap: 58, Period: 70 [ 83] Pulse: 1, Gap: 1, Period: 2 [ 84] Pulse: 114, Gap: 24, Period: 138 [ 85] Pulse: 1, Gap: 40, Period: 41 [ 86] Pulse: 1, Gap: 27, Period: 28 [ 87] Pulse: 2, Gap: 31, Period: 33 [ 88] Pulse: 2, Gap: 32, Period: 34 [ 89] Pulse: 2, Gap: 66, Period: 68 [ 90] Pulse: 2, Gap: 31, Period: 33 [ 91] Pulse: 2, Gap: 2, Period: 4 [ 92] Pulse: 1, Gap: 24, Period: 25 [ 93] Pulse: 1, Gap: 1, Period: 2 [ 94] Pulse: 57, Gap: 86, Period: 143 [ 95] Pulse: 1, Gap: 30, Period: 31 [ 96] Pulse: 117, Gap: 31, Period: 148 [ 97] Pulse: 2, Gap: 24, Period: 26 [ 98] Pulse: 174, Gap: 51, Period: 225 [ 99] Pulse: 2, Gap: 2, Period: 4 [100] Pulse: 2, Gap: 117, Period: 119 [101] Pulse: 174, Gap: 16, Period: 190 [102] Pulse: 2, Gap: 35, Period: 37 [103] Pulse: 2, Gap: 32, Period: 34 [104] Pulse: 2, Gap: 26, Period: 28 [105] Pulse: 60, Gap: 15, Period: 75 [106] Pulse: 1, Gap: 71, Period: 72 [107] Pulse: 2, Gap: 87, Period: 89 [108] Pulse: 2, Gap: 38, Period: 40 [109] Pulse: 1, Gap: 101, Period: 102 [110] Pulse: 2, Gap: 34, Period: 36 [111] Pulse: 2, Gap: 132, Period: 134 [112] Pulse: 1, Gap: 30, Period: 31 [113] Pulse: 2, Gap: 2, Period: 4 [114] Pulse: 1, Gap: 31, Period: 32 [115] Pulse: 2, Gap: 32, Period: 34 [116] Pulse: 2, Gap: 67, Period: 69 [117] Pulse: 1, Gap: 30, Period: 31 [118] Pulse: 2, Gap: 74, Period: 76 [119] Pulse: 2, Gap: 21, Period: 23 [120] Pulse: 2, Gap: 3, Period: 5 [121] Pulse: 2, Gap: 266, Period: 268 [122] Pulse: 2, Gap: 167, Period: 169 [123] Pulse: 4, Gap: 32, Period: 36 [124] Pulse: 1, Gap: 68, Period: 69 [125] Pulse: 1, Gap: 75, Period: 76 [126] Pulse: 24, Gap: 6, Period: 30 [127] Pulse: 2, Gap: 4, Period: 6 [128] Pulse: 20, Gap: 7, Period: 27 [129] Pulse: 27, Gap: 3, Period: 30 [130] Pulse: 3, Gap: 6, Period: 9 [131] Pulse: 21, Gap: 2, Period: 23 [132] Pulse: 2, Gap: 1, Period: 3 [133] Pulse: 2, Gap: 5, Period: 7 [134] Pulse: 27, Gap: 5, Period: 32 [135] Pulse: 28, Gap: 4, Period: 32 [136] Pulse: 27, Gap: 1, Period: 28 [137] Pulse: 4, Gap: 6, Period: 10 [138] Pulse: 25, Gap: 4, Period: 29 [139] Pulse: 24, Gap: 1, Period: 25 [140] Pulse: 5, Gap: 4, Period: 9 [141] Pulse: 2, Gap: 7, Period: 9 [142] Pulse: 18, Gap: 2, Period: 20 [143] Pulse: 118, Gap: 22, Period: 140 [144] Pulse: 3, Gap: 37, Period: 40 [145] Pulse: 2, Gap: 25, Period: 27 [146] Pulse: 1, Gap: 138, Period: 139 [147] Pulse: 3, Gap: 99, Period: 102 [148] Pulse: 2, Gap: 34, Period: 36 [149] Pulse: 2, Gap: 29, Period: 31 [150] Pulse: 2, Gap: 25, Period: 27 [151] Pulse: 4, Gap: 3, Period: 7 [152] Pulse: 1, Gap: 135, Period: 136 [153] Pulse: 2, Gap: 29, Period: 31 [154] Pulse: 3, Gap: 66, Period: 69 [155] Pulse: 3, Gap: 36, Period: 39 [156] Pulse: 2, Gap: 58, Period: 60 [157] Pulse: 3, Gap: 36, Period: 39 [158] Pulse: 1, Gap: 62, Period: 63 [159] Pulse: 5, Gap: 102, Period: 107 [160] Pulse: 2, Gap: 96, Period: 98 [161] Pulse: 4, Gap: 335, Period: 339 [162] Pulse: 2, Gap: 33, Period: 35 [163] Pulse: 2, Gap: 37, Period: 39 [164] Pulse: 2, Gap: 31, Period: 33 [165] Pulse: 1, Gap: 97, Period: 98 [166] Pulse: 3, Gap: 29, Period: 32 [167] Pulse: 4, Gap: 43, Period: 47 [168] Pulse: 26, Gap: 7, Period: 33 [169] Pulse: 25, Gap: 6, Period: 31 [170] Pulse: 27, Gap: 6, Period: 33 [171] Pulse: 31, Gap: 5, Period: 36 [172] Pulse: 23, Gap: 5, Period: 28 [173] Pulse: 32, Gap: 3, Period: 35 [174] Pulse: 2, Gap: 4, Period: 6 [175] Pulse: 24, Gap: 4, Period: 28 [176] Pulse: 3, Gap: 2, Period: 5 [177] Pulse: 27, Gap: 4, Period: 31 [178] Pulse: 69, Gap: 59, Period: 128 [179] Pulse: 58, Gap: 17, Period: 75 [180] Pulse: 1, Gap: 100, Period: 101 [181] Pulse: 2, Gap: 66, Period: 68 [182] Pulse: 3, Gap: 32, Period: 35 [183] Pulse: 2, Gap: 31, Period: 33 [184] Pulse: 2, Gap: 64, Period: 66 [185] Pulse: 1, Gap: 39, Period: 40 [186] Pulse: 1, Gap: 26, Period: 27 [187] Pulse: 1, Gap: 2, Period: 3 [188] Pulse: 2, Gap: 99, Period: 101 [189] Pulse: 3, Gap: 27, Period: 30 [190] Pulse: 60, Gap: 56, Period: 116 [191] Pulse: 108, Gap: 1, Period: 109 [192] Pulse: 31, Gap: 1, Period: 32 [193] Pulse: 34, Gap: 3, Period: 37 [194] Pulse: 1, Gap: 53, Period: 54 [195] Pulse: 1, Gap: 1, Period: 2 [196] Pulse: 58, Gap: 20, Period: 78 [197] Pulse: 1, Gap: 171, Period: 172 [198] Pulse: 2, Gap: 16, Period: 18 [199] Pulse: 10, Gap: 2, Period: 12 [200] Pulse: 2, Gap: 5, Period: 7 [201] Pulse: 1, Gap: 24, Period: 25 [202] Pulse: 8, Gap: 3, Period: 11 [203] Pulse: 1, Gap: 4, Period: 5 [204] Pulse: 2, Gap: 4, Period: 6 [205] Pulse: 2, Gap: 6, Period: 8 [206] Pulse: 57, Gap: 10, Period: 67 [207] Pulse: 2, Gap: 2, Period: 4 [208] Pulse: 2, Gap: 9, Period: 11 [209] Pulse: 1, Gap: 4, Period: 5 [210] Pulse: 1, Gap: 4, Period: 5 [211] Pulse: 2, Gap: 3, Period: 5 [212] Pulse: 1, Gap: 3, Period: 4 [213] Pulse: 2, Gap: 4, Period: 6 [214] Pulse: 2, Gap: 3, Period: 5 [215] Pulse: 2, Gap: 8, Period: 10 [216] Pulse: 2, Gap: 3, Period: 5 [217] Pulse: 1, Gap: 4, Period: 5 [218] Pulse: 1, Gap: 3, Period: 4 [219] Pulse: 2, Gap: 24, Period: 26 [220] Pulse: 1, Gap: 2, Period: 3 [221] Pulse: 3, Gap: 3, Period: 6 [222] Pulse: 2, Gap: 18, Period: 20 [223] Pulse: 3, Gap: 2, Period: 5 [224] Pulse: 1, Gap: 4, Period: 5 [225] Pulse: 2, Gap: 3, Period: 5 [226] Pulse: 2, Gap: 22, Period: 24 [227] Pulse: 2, Gap: 6, Period: 8 [228] Pulse: 9, Gap: 6, Period: 15 [229] Pulse: 2, Gap: 10, Period: 12 [230] Pulse: 19, Gap: 4, Period: 23 [231] Pulse: 1, Gap: 2, Period: 3 [232] Pulse: 8, Gap: 21, Period: 29 [233] Pulse: 1, Gap: 3, Period: 4 [234] Pulse: 1, Gap: 10, Period: 11 [235] Pulse: 2, Gap: 10, Period: 12 [236] Pulse: 2, Gap: 11, Period: 13 [237] Pulse: 2, Gap: 17, Period: 19 [238] Pulse: 10, Gap: 8, Period: 18 [239] Pulse: 31, Gap: 5, Period: 36 [240] Pulse: 8, Gap: 14, Period: 22 [241] Pulse: 1, Gap: 6, Period: 7 [242] Pulse: 1, Gap: 27, Period: 28 [243] Pulse: 1, Gap: 5, Period: 6 [244] Pulse: 2, Gap: 1, Period: 3 calibeur_rf104_callback: DECODE_FAIL_SANITY data all 0x00 or 0xFF acurite_txr_decode: bitbuffer:: Number of rows: 1 [00] { 1} 00 : 0 acurite_txr_decode: row 0 bits 1, bytes 1 radiohead_ask_extract: preamble not found acurite_00275rm_decode: bitbuffer:: Number of rows: 1 [00] { 1} 00 : 0 philips_aj3650_decode: wrong number of bits (1) radiohead_ask_extract: preamble not found Short preamble: 1 bits (expected 17) philips_aj7010_decode: wrong number of bits (0) secplus_v2_callback: DECODE_FAIL_SANITY

and this continues...

rtl_433 -f 868.3M -A catches this:

Detected FSK package 2024-03-21 23:37:42 Analyzing pulses... Total count: 264, width: 12.08 ms (12077 S) Pulse width distribution: [ 0] count: 1, width: 0 us [0;0] ( 0 S) [ 1] count: 4, width: 6 us [6;6] ( 6 S) [ 2] count: 22, width: 3 us [3;3] ( 3 S) [ 3] count: 96, width: 2 us [2;2] ( 2 S) [ 4] count: 63, width: 1 us [1;1] ( 1 S) [ 5] count: 31, width: 59 us [56;62] ( 59 S) [ 6] count: 12, width: 24 us [19;29] ( 24 S) [ 7] count: 13, width: 33 us [29;40] ( 33 S) [ 8] count: 6, width: 119 us [118;124] ( 119 S) [ 9] count: 3, width: 174 us [173;177] ( 174 S) [10] count: 6, width: 4 us [4;4] ( 4 S) [11] count: 1, width: 77 us [77;77] ( 77 S) [12] count: 4, width: 8 us [8;9] ( 8 S) [13] count: 1, width: 17 us [17;17] ( 17 S) [14] count: 1, width: 11 us [11;11] ( 11 S) Gap width distribution: [ 0] count: 22, width: 2 us [2;2] ( 2 S) [ 1] count: 28, width: 1 us [1;1] ( 1 S) [ 2] count: 22, width: 20 us [17;24] ( 20 S) [ 3] count: 51, width: 32 us [25;39] ( 32 S) [ 4] count: 20, width: 4 us [4;4] ( 4 S) [ 5] count: 16, width: 13 us [11;16] ( 13 S) [ 6] count: 11, width: 43 us [40;49] ( 43 S) [ 7] count: 12, width: 5 us [5;7] ( 5 S) [ 8] count: 32, width: 66 us [54;86] ( 66 S) [ 9] count: 3, width: 9 us [8;10] ( 9 S) [10] count: 26, width: 3 us [3;3] ( 3 S) [11] count: 12, width: 111 us [100;136] ( 111 S) [12] count: 3, width: 191 us [180;211] ( 191 S) [13] count: 4, width: 144 us [141;146] ( 144 S) Pulse period distribution: [ 0] count: 5, width: 2 us [2;2] ( 2 S) [ 1] count: 37, width: 5 us [5;8] ( 5 S) [ 2] count: 20, width: 4 us [4;4] ( 4 S) [ 3] count: 31, width: 23 us [19;29] ( 23 S) [ 4] count: 58, width: 35 us [29;42] ( 35 S) [ 5] count: 35, width: 73 us [60;90] ( 73 S) [ 6] count: 9, width: 48 us [43;57] ( 48 S) [ 7] count: 26, width: 109 us [93;136] ( 109 S) [ 8] count: 12, width: 3 us [3;3] ( 3 S) [ 9] count: 14, width: 159 us [138;191] ( 159 S) [10] count: 7, width: 14 us [12;16] ( 14 S) [11] count: 2, width: 272 us [244;300] ( 272 S) [12] count: 1, width: 215 us [215;215] ( 215 S) [13] count: 3, width: 10 us [10;10] ( 10 S) Pulse timing distribution: [ 0] count: 1, width: 0 us [0;0] ( 0 S) [ 1] count: 16, width: 5 us [5;7] ( 5 S) [ 2] count: 48, width: 3 us [3;3] ( 3 S) [ 3] count: 118, width: 2 us [2;2] ( 2 S) [ 4] count: 91, width: 1 us [1;1] ( 1 S) [ 5] count: 61, width: 61 us [49;75] ( 61 S) [ 6] count: 32, width: 23 us [19;29] ( 23 S) [ 7] count: 64, width: 33 us [28;41] ( 33 S) [ 8] count: 19, width: 115 us [100;141] ( 115 S) [ 9] count: 6, width: 182 us [173;211] ( 182 S) [10] count: 26, width: 4 us [4;4] ( 4 S) [11] count: 4, width: 81 us [77;86] ( 81 S) [12] count: 6, width: 8 us [8;9] ( 8 S) [13] count: 17, width: 16 us [14;18] ( 16 S) [14] count: 10, width: 11 us [10;13] ( 11 S) Level estimates [high, low]: 11834, 489 RSSI: -1.4 dB SNR: 13.8 dB Noise: -15.3 dB Frequency offsets [F1, F2]: -43, 2232 (-0.7 kHz, +34.1 kHz) Guessing modulation: Pulse Code Modulation (Not Return to Zero) Attempting demodulation... short_width: 1, long_width: 1, reset_limit: 1024, sync_width: 0 Use a flex decoder with -X 'n=name,m=FSK_PCM,s=1,l=1,r=1024' pulse_demod_pcm(): Analyzer Device bitbuffer:: Number of rows: 1 [00] {2048} 3f 73 f7 77 33 bb bf 30 00 00 c0 00 00 00 21 ff ff ff ff ff ff ff f0 00 60 00 00 00 00 0f ff ff ef ff ff ff ff 01 80 00 00 00 00 00 ff ff ff ff ff ff ff f0 e4 00 00 00 00 00 0f ff ff ff ff ff ff ff c0 00 00 00 03 00 00 7f ff ff ff ff ff ff c0 00 00 03 00 00 00 03 ff ff ff ff ff ff fe 00 00 00 c0 00 00 00 7f ff ff ff ff ff ff f0 00 00 00 00 00 00 0f ff ff ff ff ff ff ff 00 06 00 00 00 00 00 7f ff ff ff ff ff ff fc 0c 00 00 00 00 00 07 ff ff ff ff fb ff ff 80 00 00 00 10 00 00 3f ff ff fb ff ff ff e8 00 00 00 01 c0 00 01 ff ff ff ff bf ff fe 40 00 00 60 60 00 00 1f ff ff ff ff ff ff e0 00 00 00 00 00 00 07 ff ff ff ff ff ff ff 80 02 00 00 00 00 01 bf ff ff ff ff ff ff fe 00 00 00 00 00 00 07 ff ff ff ff ff ff ff e0 00 00 00 00 00 00 1f ff ff ff ff ff ff fe 00

From here, I'm lost on what to try next... Any hints?

jdukat commented 6 months ago

One more maybe useful output that I grabbed based on #1750

rtl_433 -f 868.3M -R 0 -X 'n=name,m=FSK_PCM,s=1,l=1,r=1024'

Returns such packets every 16 seconds, so it is likely the weather station output, but does a proper decoder exist for it?

time : 2024-03-22 00:09:10 model : name count : 1 num_rows : 1 rows : len : 2048 data : 1ffffffffffffdfe00f00000000001ffffffffffffffc000000000000007ffffffffffffff80000000000000bfffffffffffffd80000000198000ffffffffffffffc000010000000001fffffffffffff8000000000600007fffffffffffffe000400000000005fffffffffffffe000000000006007ffffffffffffff000018000000001ffffffffffffff80000000000c80fffffffffffffff800063000000001ffffffffffffffc0300000000000fffffffffffffff000000003000003ffffffffffffffc00000000006007ffffffffffffff000000300000001ffffffffffffffe0c000000000007ffffffffffffff800000000000001fffffffffffffff00 codes : {2048}1ffffffffffffdfe00f00000000001ffffffffffffffc000000000000007ffffffffffffff80000000000000bfffffffffffffd80000000198000ffffffffffffffc000010000000001fffffffffffff8000000000600007fffffffffffffe000400000000005fffffffffffffe000000000006007ffffffffffffff000018000000001ffffffffffffff80000000000c80fffffffffffffff800063000000001ffffffffffffffc0300000000000fffffffffffffff000000003000003ffffffffffffffc00000000006007ffffffffffffff000000300000001ffffffffffffffe0c000000000007ffffffffffffff800000000000001fffffffffffffff00


time : 2024-03-22 00:09:26 model : name count : 1 num_rows : 1 rows : len : 2048 data : 3ff777ee66eeee7d0000000001c0000fffffffffffffff00008000000001ffffffffffffff8e0000000000001ffffffffffffffc000000400000007ffffffffffffff00000000000001ffffffffffffffc000000000000007ffffffffffffff00400000000000ffffffffffffffe0000000c0000007ffffffffffffff000000000000007ffffffffffffff00000000000000fffffffffffffff000000000000007ffffffffffffffc00000000000067fffffffffffffe000000000000001ffffffffffffffc0000000000018fffffffffffffff000000000000001ffffffffffffffc00000000000007fffffffffffffe000000000800001ffffffffffffffc0 codes : {2048}3ff777ee66eeee7d0000000001c0000fffffffffffffff00008000000001ffffffffffffff8e0000000000001ffffffffffffffc000000400000007ffffffffffffff00000000000001ffffffffffffffc000000000000007ffffffffffffff00400000000000ffffffffffffffe0000000c0000007ffffffffffffff000000000000007ffffffffffffff00000000000000fffffffffffffff000000000000007ffffffffffffffc00000000000067fffffffffffffe000000000000001ffffffffffffffc0000000000018fffffffffffffff000000000000001ffffffffffffffc00000000000007fffffffffffffe000000000800001ffffffffffffffc0

jdukat commented 6 months ago

One more datapoint - I read the ecowitt data uploaded over http, it reports: freq=868M model=WS2900_V2.02.01

And the ecowitt app shows the device as EasyWeatherPro v5.1.5

matthias-bs commented 6 months ago

Hi,

in your first log, you have

ambientweather_whx_decode: WH31E/WH40 detected, buffer is 198 bits length
ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68)

That means the preample was already matching.

You could try to modify https://github.com/merbanan/rtl_433/blob/master/src/devices/ambientweather_wh31e.c (e.g. by adding your message type) and see if can decode any data fields.

This is issue should better be placed in the rtl_433 project, though.

If you get it working in rtl_433, it might be possible to port the decoder to BresserWeatherSensorReceiver. This depends on the required radio parameters.

matthias-bs commented 6 months ago

How about this:

Fineoffset_WH24: Raw: 12 04 b2 c1 37 1c 80 00 00 18 00 00 00 07 40 17 a3 @ bit_offset [59]

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

jdukat commented 6 months ago

Ah, honestly I intended to submit this for rtl_433. Not sure when I changed the project, probably while searching for other sources where I could find anything about this device :)

Looked into ambientweather_wh31e.c, but this seems to be an accidental match of the preamble, or the protocol has diverged very significantly. When looking for logs from this decoder only, the message type changes and the buffer size changes (and is longer than max 18 bytes decoded for the longest recognized message).

rtl_433 -f 868.3M -vv -R 113 outputs: ambientweather_whx_decode: WH31E/WH40 detected, buffer is 207 bits length ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 216 bits length ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 211 bits length ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 216 bits length ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 212 bits length ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 212 bits length ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 209 bits length ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 210 bits length ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 216 bits length ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 210 bits length ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 210 bits length ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 213 bits length ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 215 bits length ambientweather_whx_decode: unknown message type 11 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 211 bits length ambientweather_whx_decode: unknown message type 22 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 215 bits length ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 210 bits length ambientweather_whx_decode: unknown message type 12 (expected 0x30/0x40/0x68) ambientweather_whx_decode: WH31E/WH40 detected, buffer is 209 bits length ambientweather_whx_decode: unknown message type 24 (expected 0x30/0x40/0x68)

jdukat commented 6 months ago

How about this:

Fineoffset_WH24: Raw: 12 04 b2 c1 37 1c 80 00 00 18 00 00 00 07 40 17 a3 @ bit_offset [59]

This seems more probable, as wh24 - device [78] is also referenced in https://github.com/matthias-bs/BresserWeatherSensorReceiver/issues/41, and when I was buying this weather station, I got some clues that it is another brand of Sainlogic WS3500, which was expected to work seamlessly (as mentioned on Home assistant forums).

But scanning with -R 78 shows all kind of problems:

rtl_433 -f 868.3M -vv -R 78 Fineoffset_WH24: Raw: 12 04 b3 c0 8e 07 20 00 00 00 0c 00 00 00 01 90 46 @ bit_offset [56] Fineoffset_WH24: short package. Header index: 225 bitbuffer:: Number of rows: 1 [00] {201} aa aa ab 55 55 4b 75 04 80 4e 78 27 01 d0 00 00 00 18 00 00 00 01 90 8d 67 00 Fineoffset_WH24: short package. Header index: 223 bitbuffer:: Number of rows: 1 [00] {199} 55 55 55 55 55 45 b9 09 02 59 a0 9c 0e 40 00 00 01 f0 00 00 00 72 0d 4b cc Fineoffset_WH24: Raw: 24 09 67 82 70 32 00 00 00 03 00 00 00 00 72 04 56 @ bit_offset [59] Fineoffset_WH24: Checksum error: fd 31

jdukat commented 6 months ago

Looking into the comment in fineoffset.c:

The sensor sends a package each ~16 s with a width of ~11 ms. The bits are PCM modulated with Frequency Shift Keying.

Example:

         [00] {196} d5 55 55 55 55 16 ea 12 5f 85 71 03 27 04 01 00 25 00 00 80 00 00 47 83 9
      aligned {199} 1aa aa aa aa aa 2d d4 24 bf 0a e2 06 4e 08 02 00 4a 00 01 00 00 00 8f 07 2
    Payload:                              FF II DD VT TT HH WW GG RR RR UU UU LL LL LL CC BB
    Reading: id: 191, temp: 11.8 C, humidity: 78 %, wind_dir 266 deg, wind_speed: 1.12 m/s, gust_speed 2.24 m/s, rainfall: 22.2 mm

This seems to make sense, as my device also sends packets every ~16 sec and if you look at the next byte after the preamble, it's 12 or 24, and in the log above the 12 and 24 are the most frequent msg unrecognized by wh31e decoder.

jdukat commented 6 months ago

Can it be that my radio is receiving a lot of noise? The packets looks like they should make sense:

Fineoffset_WH24: Raw: 24 09 67 82 70 32 00 00 00 03 00 00 00 00 72 04 56 @ bit_offset [59]
Fineoffset_WH24: Checksum error: fd 31

24 is expected, but sometimes it is 12, sometimes 22 - look like single bit errors - bits shifted by 1 position Next byte 09 - on my station there is a sticker saying 'sensor id 09' so it makes perfect sense, but sometimes it reads 04 instead

matthias-bs commented 6 months ago

Could be noise or overloading the receiver if it is too close to the transmitter.

jdukat commented 6 months ago

Moving things around doesn't help, same problem. I give up. I hoped to connect this weather station directly to Home Assistant and not using the head unit at all (use rtl_433 and send packets to mqtt) but I switched to Ecowitt integration and it works out of the box over local wifi. Feel free to close this issue, I will not debug it further.