This is a very specific question.
I'm currently working on a project to create an android application capable of reading the values of an hydrometer via Bluetooth. By reading the datasheet, I suspect the hydrometer uses a serial communication.
First I connected my laptop with the help of a Bluetooth manager and tried to communicate with it with a serial terminal. Through trial and error I've managed to receive some information when sending the character "0x44" in hexadecimal. Alas what I receive isn't human readable, here is an example:
\0x11\0x1a\0x19D0L\0xda\0xae\0x9b \0xcc\0x01\0xa2q\0x13\0x00\0x13p:\0xcb(\0x8a\0x0c\0xf6\0xeb`#\0xbdv
I've then used BluetoothSerial a phonegap plugin for serial communication over Bluetooth, and built a small test application for android, and by sending the same character (0x44), I received a string of strange characters:
D0Lڮ� ���A��p���wn��
��� )
With this 2 experiments I'm lead to believe the information could be encoded or encrypted.
Reading the PDF of a different hydrometer of the same company I've sent the following (in hex):
10 7B FD 78 16
And what I got was the following, in hexadecimal:
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 31 13 00 13 70 66 76 0e 26 8b b9 8c 0c 47 b7 3c 09 0b 00 74 0f 00 00 ca 09
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 41 13 00 13 70 03 ba f2 77 6e 82 81 0d 08 ba c8 09 0b 00 7a 1f 00 00 6c 0a
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 51 13 00 13 70 14 95 bb dc 4f 51 58 d6 11 b8 49 0a 03 00 6a 2f 00 00 e5 0a
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 01 13 00 13 70 5f 07 d4 db e9 cd e6 61 6c b0 50 0b 0b 00 57 60 00 00 12 0c
11 1a 19 44 30 4c da ae 9b 20 cc 01 a2 11 13 00 13 70 48 28 9d 70 c8 1e 3f ba 75 b2 b5 09 0a 00 de 71 00 00 0e 0b
Just by reading the appendix 2 of the PDF and the M-BUS PDF I can't make any meaning out of this response. I know that when using an already existing android app for this device I get the following information for the device it finds, example:
- C10SA202842
- current: 500 m3
- stored: 500 m3
- date: 23/11/15/15 20:14
I've also got the following response:
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 31 1c 00 13 9f 8d ba 81 19 d6 e2 a3 ad f0 53 30 0b 0e 00 a2 0c 00 00 ec 0b
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 41 1c 00 13 9f e8 76 7d 48 33 d9 ae ac bf 5e ba 0a 0d 00 55 1d 00 00 39 0b
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 51 1c 00 13 9f ff 59 34 e3 12 0a 77 77 a6 5c 9f 09 0d 00 e2 2c 00 00 ba 0a
11 1a 19 44 30 4c 07 f3 d7 20 98 01 a2 61 1c 00 13 9f c6 28 ee 1e 70 7e 1d 1a 8d 5b 3b 09 10 00 df 3d 00 00 67 0a
For a different water measuring unit it detected. The android app got the following result in readable format at the same date and (more or less) time:
- C14FA152455
- current: 0.027 m3
- stored: 0.027 m3
- date: 23/11/15/15 18:32
How could I find a proper way of decoding that information in readable format, if what I received is indeed what I expected?