rtl_433 icon indicating copy to clipboard operation
rtl_433 copied to clipboard

Add support for Vauno EN8822C - working

Open loopy321 opened this issue 3 years ago • 14 comments

Fixed up temperature, humidity, and checksum. Tested and working on my system.

loopy321 avatar Nov 07 '22 19:11 loopy321

Trying to add the battery bits for the device. I have found the battery bit in two places as follows (I think byte 1, bit 1 and byte 4, bit 4):

Frame structure (42 bits):

    Byte:      0        1        2        3        4
    Nibble:    1   2    3   4    5   6    7   8    9   10   11
    Type:      IIIIIIII B?CCTTTT TTTTTTTT HHHHHHHF FFFBXXXX XX

- I: Random device ID
- C: Channel (1-3)
- T: Temperature (Little-endian)
- H: Humidity (Little-endian)
- F: Flags (unknown)
- B: Battery (1=low voltage ~2.5V)
- X: Checksum (6 bit nibble sum)

As shown in the bitbench here.

Any suggestions for how to properly calculate the checksum with the bad battery bit? In bitbench, length of 36, width 4 appears to give good results (vs. prior 32/4), so I guess I need to add the next 4 bits. Obviously the current add_nibbles(b, 4) does not work when bad_bat=1.

loopy321 avatar Nov 09 '22 04:11 loopy321

Add a single nibble like this: add_nibbles(b, 4) + (b[4] >> 4)

zuckschwerdt avatar Nov 09 '22 09:11 zuckschwerdt

Thanks! Fixed and working.

loopy321 avatar Nov 09 '22 12:11 loopy321

Am I OK to close my PR, that doesn't break this one?

gumbald avatar Nov 09 '22 14:11 gumbald

@gumbald yes, I guess @loopy321's changes are preferred now.

zuckschwerdt avatar Nov 09 '22 14:11 zuckschwerdt

I've been testing this for a couple of days, it seemed to work until it got cold last night, and it stopped getting updates once the temperature dropped below 0C.

The receiver that came with it continued to get updates, and the receiver is near my RTL antenna, so I don't think it's a hardware issue. And once the temp got up to 0.1C this morning, it started getting updates again.

image

clinta avatar Nov 14 '22 16:11 clinta

@clinta Thanks for testing! I too see some missed readings due to a bad checksum. Doing a sampling with -S unknown I see the following with correct temperatures (including negative C), but the checksum differs. However, I also see correctly decoded readings around the same time (although much less frequent).

Upon more analysis it looks like the error is in the checksum calculation: See Bitbench corresponding to:

{42} e6 0f 26 8c 0f c0 [good : 11100110 00001111 00100110 10001100 00001111 11]
{42} e6 0f 24 8c 0f 40 [good : 11100110 00001111 00100100 10001100 00001111 01]
{42} e6 0f 29 8c 00 80 [bad  : 11100110 00001111 00101001 10001100 00000000 10]
{42} e6 0f 27 8c 00 00 [bad  : 11100110 00001111 00100111 10001100 00000000 00]
{42} e6 0f 28 8c 00 40 [bad  : 11100110 00001111 00101000 10001100 00000000 01]
ID:230 CH:0 TEMP_C: -218 HUM:070 ?00000 CRC:111111 = 111111 [good : 11100110 00001111 00100110 10001100 00001111 11]
ID:230 CH:0 TEMP_C: -220 HUM:070 ?00000 CRC:111101 = 111101 [good : 11100110 00001111 00100100 10001100 00001111 01]
ID:230 CH:0 TEMP_C: -215 HUM:070 ?00000 CRC:000010 = 1000010 [bad : 11100110 00001111 00101001 10001100 00000000 10]
ID:230 CH:0 TEMP_C: -217 HUM:070 ?00000 CRC:000000 = 1000000 [bad : 11100110 00001111 00100111 10001100 00000000 00]
ID:230 CH:0 TEMP_C: -216 HUM:070 ?00000 CRC:000001 = 1000001 [bad : 11100110 00001111 00101000 10001100 00000000 01]

So, I added & 0x3f in the checksum calculation to clear the extra bit.

See updated code with the fix that is tested and working on my setup with all checksums passing now.

loopy321 avatar Nov 14 '22 18:11 loopy321

Awesome. I'll build this and see if I keep getting readings tonight.

clinta avatar Nov 14 '22 18:11 clinta

Getting every 50 second reading while sampling now. Much better. @clinta Thanks for helping identify the problem! Please let me know if this improves your readings too.

loopy321 avatar Nov 15 '22 02:11 loopy321

Working great now. Temperature is continuing to drop and I'm getting updates at -1.8C now.

clinta avatar Nov 15 '22 04:11 clinta

Git continues to confuse me - has this been merged into rtl433 yet?

gumbald avatar Dec 06 '22 16:12 gumbald

Still open, sorry. I need to find time to merge a few new device PRs.

zuckschwerdt avatar Dec 06 '22 16:12 zuckschwerdt

Oh, no rush - thanks for all the work you do on this!

gumbald avatar Dec 06 '22 16:12 gumbald

Tested on my system, works nice, thank you for a valuable contribution!

blezalex avatar Dec 22 '22 07:12 blezalex