5

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?

6
  • Don't expect to get ASCII characters.
    – Samuel
    Commented Nov 17, 2015 at 23:05
  • Wildly cast group of 4 bytes in different byte orders to floats and see if one is a possible measurement value.
    – Arsenal
    Commented Nov 17, 2015 at 23:07
  • Do you have a link to the datasheet? Or to a firmware file of the hygrometer? Or a windows program that talks to the hygrometer? Commented Nov 18, 2015 at 8:15
  • 3
    Your datasheet leads to www.hydrometer.com, which leads to the german company Diehl, which has a product download link that leads to this pdf which describes, in detail, the communication of a (different) Hydrometer. The introduction says "The M-Bus (Meter Bus) is an European standard for remote reading of meters. It can be used for all types of consumption meters and for various sensors and actuators. ", so there's a good chance your meter uses the same. Commented Nov 18, 2015 at 9:14
  • 2
    @GuntramBlohm Reading the PDF (page 4) I've sent the following (in hex): 68 04 04 68 73 FF 50 00 20 16. What I got was the following: \0x16\0x18\0x07\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x07\0x00. Reading the appendix 1 and 2 I can't make any meaning out of this response. I know that when using the android app I get the following information: current: 500 m3, stored 500 m3, date: 19/11/15/15 12:09, name: C10SA202842.
    – Rui Lima
    Commented Nov 19, 2015 at 12:14

0

Your Answer

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