I am trying to decode the Bresser Water Leakage sensor, the current state of work can be found in https://github.com/matthias-bs/rtl_433/blob/master/src/devices/bresser_leakage.c

I have also created an issue with some background information for integrating the decoder in the rtl_433 project.

Decoding the payload works fine, but I did not find out how the checksum is calculated. The data layout and samples are provided in bresser_leakage.c.

I have already tried the following:

  1. Digest calculations used in rtl_433 decoders for other Bresser sensors
  • with varying payload lengths)
  • with iterating the key in the range 0...0xFFFF
  1. revdgst (with varying payload lengths)

  2. reveng (with varying payload lengths) - no meaningful result at all

  3. CRC calculators on https://crccalc.com/

  4. Simple checksum algorithms like ADD, XOR, SUB

  • on bytes
  • on nibbles
  • on 16-bit chunks
  1. Parity
  • bits set - byte wise/nibble wise, first/second half of message, ...

None of these attempts were successful.

I would be happy if anyone could help.

Thank you very much in advance!


1 Answer 1


The checksum has been found! It's a CRC16/xmodem covering the 5 bytes following the CRC.

See https://github.com/merbanan/rtl_433/issues/2576#issuecomment-1751134478

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.