Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arad Master Meter water utility meter decoder #2984

Merged
merged 14 commits into from
Jun 28, 2024

Conversation

avicarmeli
Copy link
Contributor

This decoder decodes the Arad/Master Meter Dialog3G water utility meter.
Decoder returns meter's Serial number and water reading.
Large portion of the payload still to be decoded.

Test results:

~/rtl_433/rtl_433_tests$ make test
python3 bin/run_test.py -I time --first-line
WARNING: Ignoring 'tests/inkbird/IBS-P01R/g026_433.92M_250k.cu8'
WARNING: Ignoring 'tests/inkbird/IBS-P01R/g071_433.92M_250k.cu8'
WARNING: Ignoring 'tests/inkbird/IBS-P01R/g001_433.92M_250k.cu8'
WARNING: Ignoring 'tests/inkbird/inkbird_ith20r/g002_433.92M_250k.cu8'
WARNING: Ignoring 'tests/inkbird/inkbird_ith20r/g001_433.92M_250k.cu8'
WARNING: Ignoring 'tests/inkbird/inkbird_ith20r/g003_433.92M_250k.cu8'
WARNING: Ignoring 'tests/scmplus/01/g005_912.6M_2359.3k.cu8'
WARNING: Ignoring 'tests/scmplus/01/g002_912.6M_2359.3k.cu8'
WARNING: Ignoring 'tests/scmplus/01/g003_912.6M_2359.3k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g004_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g009_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g001_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g010_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g007_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g008_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g003_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g005_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g002_867.95M_250k.cu8'
WARNING: Ignoring 'tests/IKEA_Sparsnas/01/g006_867.95M_250k.cu8'
WARNING: Ignoring 'tests/wec_1502/01/gfile002.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g010_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g003_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g005_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g006_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g009_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g008_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g007_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g002_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g001_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/2Gig-DW10/g004_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/RE208/g013_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/RE208/g015_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/RE208/g012_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/RE208/g014_344.975M_250k.cu8'
WARNING: Ignoring 'tests/honeywell/RE208/g011_344.975M_250k.cu8'
WARNING: Ignoring 'tests/adlm_fprf/01/g011_433.92M_250k.cu8'
WARNING: Ignoring 'tests/adlm_fprf/01/g007_433.92M_250k.cu8'
WARNING: Ignoring 'tests/adlm_fprf/01/g005_433.92M_250k.cu8'
WARNING: Ignoring 'tests/adlm_fprf/01/g009_433.92M_250k.cu8'
WARNING: Ignoring 'tests/adlm_fprf/01/g014_433.92M_250k.cu8'
WARNING: Ignoring 'tests/adlm_fprf/01/g013_433.92M_250k.cu8'
WARNING: Ignoring 'tests/adlm_fprf/01/g003_433.92M_250k.cu8'
WARNING: Missing 'tests/idm/IDM/g001_912.6M_2359.3k.cu8'
WARNING: Ignoring 'tests/idm/NetIDM/g012_912.6M_2359.3k.cu8'
WARNING: Ignoring 'tests/idm/NetIDM/g011_912.6M_2359.3k.cu8'
WARNING: Ignoring 'tests/idm/NetIDM/g010_912.6M_2359.3k.cu8'
WARNING: FS20 generated 4 false positive(s) in other decoders: {'Thermopro-TP12'}
WARNING: Proove-Security generated 67 false positive(s) in other decoders: {'Nexa-Security', 'KlikAanKlikUit-Switch'}
WARNING: Nexa-Security generated 125 false positive(s) in other decoders: {'Proove-Security', 'KlikAanKlikUit-Switch'}
WARNING: Abarth-124Spider generated 1 false positive(s) in other decoders: {'Renault'}
WARNING: LaCrosse-R3 generated 4 false positive(s) in other decoders: {'LaCrosse-BreezePro'}
WARNING: LaCrosse-R1 generated 2 false positive(s) in other decoders: {'LaCrosse-TH3'}
WARNING: KlikAanKlikUit-Switch generated 154 false positive(s) in other decoders: {'Proove-Security', 'Nexa-Security'}
WARNING: Acurite-609TXC generated 6 false positive(s) in other decoders: {'Oregon-SL109H'}
WARNING: LaCrosse-TX35DTHIT generated 1 false positive(s) in other decoders: {'LaCrosse-TX29IT'}
WARNING: NETIDM generated 1 false positive(s) in other decoders: {'IDM'}
WARNING: Fineoffset-WH0530 generated 1 false positive(s) in other decoders: {'GT-WT02'}
WARNING: Rubicson-Temperature generated 5 false positive(s) in other decoders: {'Solight-TE44'}
1822 records tested, 0 have failed

Running the decoder yields for example:

rtl_433 -f 916.2M -R260
rtl_433 version -128-NOTFOUND branch master at 202406241751 inputs file rtl_tcp RTL-SDR

New defaults active, use "-Y classic -s 250k" if you need the old defaults

Detached kernel driver
Found Rafael Micro R820T tuner
[SDR] Using device 0: Realtek, RTL2838UHIDIR, SN: 00000001, "Generic RTL2832U OEM"
Exact sample rate is: 1000000.026491 Hz
[R82XX] PLL not locked!
Allocating 15 zero-copy buffers
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2024-06-26 11:25:37
model     : ARAD-MS-Meter Serial No : 14589391R
Water Reading: 65225.7 M^3                         Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2024-06-26 11:25:44
model     : ARAD-MS-Meter Serial No : 09225790S
Water Reading: 791.5 M^3 Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2024-06-26 11:25:47
model     : ARAD-MS-Meter Serial No : 14895702�
Water Reading: 181.4 M^3 Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2024-06-26 11:25:50
model     : ARAD-MS-Meter Serial No : 09444602S
Water Reading: 757.7 M^3 Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2024-06-26 11:25:54
model     : ARAD-MS-Meter Serial No : 00633398�
Water Reading: 232.3 M^3 Integrity : CHECKSUM

I am not sure why the decoder is disabled by default and should I change it?

@zuckschwerdt
Copy link
Collaborator

zuckschwerdt commented Jun 26, 2024

I am not sure why the decoder is disabled by default and should I change it?

Only when the checksum is found and working well :) I'll take a peek at the posted codes.

@zuckschwerdt
Copy link
Collaborator

zuckschwerdt commented Jun 26, 2024

The presumed checksum is only one byte as seen in this BitBench.
I.e. 00000000FFFFFFFFFFFFFFSSSSSSSSXXCCCCCCXXXF?????????XFF is actually 00000000FFFFFFFFFFFFFFSSSSSSSSXXCCCCCCXXXFKKXF -- can you verify that?

edit: I assumed wrong. the length indicators were just short…

@zuckschwerdt
Copy link
Collaborator

Is it possible to record codes from the same serial over a longer time? Ideally we would get codes with only the count field slowly increasing. Then we could infer what kind of checksum is used.

@avicarmeli
Copy link
Contributor Author

Since the resolution of the water meter is only 100 litter it changes very slow.
At my house we consume about 600 litter per day.
here are some meter flipping readings:

000000003e690aec7ac84bdab18c73006a0e000005aac3d942d8fc
000000003e690aec7ac84bdab18c73006b0e000005cb7b46f478f8

000000003e690aec7ac84bfa1c907300ba060000059e9a639380fc
000000003e690aec7ac84bfa1c907300bb06000005ff22fc2520f8

000000003e690aec7ac84b3320940000de0e00000518adbb8048fe
000000003e690aec7ac84b3320940000df0e00000579152436e8f8

I will try to record some more.

@avicarmeli
Copy link
Contributor Author

It is my first pull request, so please tell me if I need to de anything other then I did.

@zuckschwerdt
Copy link
Collaborator

Thanks! Basically looks good. I don't think we are going to find the checksum/digest/MAC anytime soon, so this can go in as-is.

There are some code style issues to fix. Use 4 spaces to indent (e.g. clang-format / data_make doesn't look right). Also remove all trailing spaces (as the checker mentions).

The addition of "Credits to all users of mentioned forum below!" is unusual but ok. It should be stand-alone though. E.g. "Additional credits to participants of THE-THREAD"

@avicarmeli
Copy link
Contributor Author

Sorry for not reading thoroughly the contribute.md.

@avicarmeli
Copy link
Contributor Author

Am I done here, or there is some more to do?

@zuckschwerdt zuckschwerdt merged commit 5d35ca4 into merbanan:master Jun 28, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants