merbanan / rtl_433

Program to decode radio transmissions from devices on the ISM bands (and other frequencies)
GNU General Public License v2.0
6.13k stars 1.32k forks source link

Digoo DG-R8B not read humidity #1056

Closed Fredy72 closed 5 years ago

Fredy72 commented 5 years ago

I have sensors Digoo DG-R8B (Nexus-T) and Digoo DG-R8H (Nexus-TH). Digoo DG-R8B not read humidity. Digoo DG-R8H work fine.

Using another way https://github.com/aquaticus/nexus433 they are both reading.

Detected OOK package 2019-05-09 20:48:24.905939 {"time" : "2019-05-09 20:48:24.905939", "protocol" : 19, "model" : "Nexus-TH", "id" : 133, "channel" : 1, "battery_ok" : 1, "temperature_C" : 24.600, "humidity" : 56, "mod" : "ASK", "freq" : 433.898, "rssi" : -0.113, "snr" : 24.628, "noise" : -24.741} Analyzing pulses... Total count: 445, width: 874.36 ms (218589 S) Pulse width distribution: [ 0] count: 445, width: 500 us [480;504] ( 125 S) Gap width distribution: [ 0] count: 12, width: 3872 us [3872;3876] ( 968 S) [ 1] count: 204, width: 1920 us [1916;1928] ( 480 S) [ 2] count: 228, width: 932 us [928;952] ( 233 S) Pulse period distribution: [ 0] count: 12, width: 4372 us [4352;4380] (1093 S) [ 1] count: 204, width: 2420 us [2420;2432] ( 605 S) [ 2] count: 228, width: 1432 us [1432;1456] ( 358 S) Level estimates [high, low]: 15963, 54 RSSI: -0.1 dB SNR: 24.6 dB Noise: -24.7 dB Frequency offsets [F1, F2]: -5827, 0 (-22.2 kHz, +0.0 kHz) Guessing modulation: Pulse Position Modulation with fixed pulse width Attempting demodulation... short_width: 932, long_width: 1920, reset_limit: 3880, sync_width: 0 Use a flex decoder with -X 'n=name,m=OOK_PPM,s=932,l=1920,g=1932,r=3880' pulse_demod_ppm(): Analyzer Device bitbuffer:: Number of rows: 13 [00] { 0} : [01] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [02] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [03] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [04] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [05] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [06] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [07] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [08] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [09] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [10] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [11] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000 [12] {36} 85 80 f6 f3 80 : 10000101 10000000 11110110 11110011 1000

Detected OOK package 2019-05-09 20:48:29.740477 {"time" : "2019-05-09 20:48:29.740477", "protocol" : 19, "model" : "Nexus-T", "id" : 144, "channel" : 1, "battery_ok" : 1, "temperature_C" : 13.300, "mod" : "ASK", "freq" : 434.000, "rssi" : -2.909, "snr" : 21.832, "noise" : -24.741} Analyzing pulses... Total count: 448, width: 814.51 ms (203628 S) Pulse width distribution: [ 0] count: 437, width: 424 us [320;440] ( 106 S) [ 1] count: 11, width: 320 us [308;332] ( 80 S) Gap width distribution: [ 0] count: 2, width: 548 us [540;556] ( 137 S) [ 1] count: 1, width: 9176 us [9176;9176] (2294 S) [ 2] count: 120, width: 2012 us [2000;2036] ( 503 S) [ 3] count: 312, width: 1036 us [1024;1060] ( 259 S) [ 4] count: 12, width: 4064 us [3996;4080] (1016 S) Pulse period distribution: [ 0] count: 2, width: 924 us [860;992] ( 231 S) [ 1] count: 1, width: 9592 us [9592;9592] (2398 S) [ 2] count: 120, width: 2428 us [2328;2456] ( 607 S) [ 3] count: 312, width: 1464 us [1440;1492] ( 366 S) [ 4] count: 12, width: 4492 us [4416;4508] (1123 S) Level estimates [high, low]: 8386, 54 RSSI: -2.9 dB SNR: 21.8 dB Noise: -24.7 dB Frequency offsets [F1, F2]: 20997, 0 (+80.1 kHz, +0.0 kHz) Guessing modulation: Pulse Width Modulation with multiple packets Attempting demodulation... short_width: 320, long_width: 424, reset_limit: 9180, sync_width: 0 Use a flex decoder with -X 'n=name,m=OOK_PWM,s=320,l=424,r=9180,g=1064,t=40,y=0' pulse_demod_pwm(): Analyzer Device bitbuffer:: Number of rows: 25 [00] { 3} 80 : 100 [01] { 1} 80 : 1 [02] { 3} 00 : 000 [03] { 5} 00 : 00000 [04] { 8} 00 : 00000000 [05] { 5} 00 : 00000 [06] { 2} 00 : 00 [07] { 1} 00 : 0 [08] { 1} 00 : 0 [09] { 1} 00 : 0 [10] { 1} 00 : 0 [11] { 9} 00 00 : 00000000 0 [12] { 1} 80 : 1 [13] { 3} 00 : 000 [14] { 5} 00 : 00000 [15] { 8} 00 : 00000000 [16] { 5} 00 : 00000 [17] { 2} 00 : 00 [18] { 1} 00 : 0 [19] { 1} 00 : 0 [20] { 1} 00 : 0 [21] { 1} 00 : 0 [22] { 9} 00 00 : 00000000 0 [23] { 1} 80 : 1 [24] { 1} 80 : 1 ... Maximum number of rows reached. Message is likely truncated.

merbanan commented 5 years ago

Hi, submit a sample signal from the Digoo DG-R8B sensor that is missing the humidity value. Then we can fix the issue.

Fredy72 commented 5 years ago

Hi, you mean files cu8?

1_433.92M_250k.cu8.txt 2_433.92M_250k.cu8.txt

Fredy72 commented 5 years ago

For example, I tried the git version e603dc5c63a0ef0f60747ecbe90a1b63a20c1acf and it works, temperature and humidity on Digoo DG-R8B and Digoo DG-R8H.

merbanan commented 5 years ago

Can you post example output ?

Fredy72 commented 5 years ago

I have also tried the versions (changes for nexus.c) and the last one is functional d01b128042f017025f83be29e5fbae432b970ad5 , the next 0a940ce0162c17fa844fb4f7cd3635c9187bf207 is not working.

rtl_433_0a940ce0162c17fa844fb4f7cd3635c9187bf207.txt rtl_433_d01b128042f017025f83be29e5fbae432b970ad5.txt

zuckschwerdt commented 5 years ago

Thanks for the bisect. 0a940ce doesn't really change Nexus. And d01b128 is 3 years old. Can you find a more recent still working version? There were only 12 commits touching Nexus, most those wouldn't change anything. I'd say c1537c1 is the only real change. But perhaps it's a general demod problem not specific to the decoder.

Fredy72 commented 5 years ago

I will try another version, it will take a while.

Fredy72 commented 5 years ago

Result: d01b128042f017025f83be29e5fbae432b970ad5 it looks like it works 9e6d99cd6a50a77181ff11722669ba5eae14d1d4 not work (next in nexus.c, but more than year)

rtl_433_9e6d99cd6a50a77181ff11722669ba5eae14d1d4.txt rtl_433_d01b128042f017025f83be29e5fbae432b970ad5.txt

merbanan commented 5 years ago

rtl_433 -vv -r ~/Downloads/2_433.92M_250k.cu8.txt -> [00] {36} 70 80 da f0 00 : 01110000 10000000 11011010 11110000 0000

rtl_433 -vv -r ~/Downloads/1_433.92M_250k.cu8.txt -> [00] {36} 70 80 dc f0 00 : 01110000 10000000 11011100 11110000 0000

As you see here the last 2 nibbles are 0s. That means there are not hygrometer present. When that happens the output doesn't contain the humidity member. So everything works as it should.

Fredy72 commented 5 years ago

But the 2 Digoo DG-R8Bs contain a hygrometer and will be displayed in older versions.

merbanan commented 5 years ago

Well provide a sample signal that triggers not showing the hygrometer value and contains a non zero value for it.

https://github.com/merbanan/rtl_433/blob/master/src/devices/nexus.c#L77 contains the logic. If the value is 0 the hygrometer is counted as not present.

I think you have trouble in sorting out where the signal comes from. Your output is riddled with lots of other sensor. Try removing the antenna and placing the sensor close by, that should get rid of the "noise".

Fredy72 commented 5 years ago

I turned off the Digoo DG-R8H sensors and left only the Digoo DG-R8B and the report is correct. The ones that don't show up are not mine, but probably the neighbors, and they're probably not the Digoo DG-R8B. Sorry for reporting a bug. Thank you and I close. Have a nice weekend.

rtl_433_aktual.txt