0

Recently, I got a Kamstrup flowIQ 2200 water meter installed. Since I'm already reading my power meter with an IR head and my gas meter by counting pulses, I'd like to readout my new water meter as well.

This KMP (Kamstrup Meter Protocol) request x80 x3f x10 x01 x00 x44 x4d xc0 x0d works perfectly well for the flowIQ reading (x10) one (x01) register (x00 x44) with the total volume using a USB connected IR head. I get the correct number of m3, which is also shown on the the display of the meter.

As the meter hybernates shortly after a read, a new read must be initiated by placing a magnet at the proper position. I do that with a micro servo ;-) To not drain the battery with many reads, I'd like to use a mass readout from the flowIQ data logger. The meter should allow this with the KMP command GetLogTimePresent.

But, this request x80 x3F xA0 x01 x01 x00 x44 x0C x80 x17 x05 x09 x17 x2D x00 x00 x00 x00 xF1 x0D does not work. It should read using GetLogTimePresent (xA0) from the default data logger 01 (x01) one (x01) variable (x00 x44) with 12 values (x0C) and a max. respond buffer of 128 records (x80) starting at timestamp (just an example) "09.05.2023 23:45:00" (x17 x05 x09 x17 x2D x00) or later.

In opposite to the successful single readout, I do not get a meaningful answer and the meter responds with almost the same bytes as the request x80 x3F xA0 x01 x01 x00 x44 x0C x1B x7F x17 x05 x09 x17 x2D x00 x00 x00 x00 xF1 x0D, which makes no sense.

I'm using a C solution from here on a Raspberry Pi 4. So basic tasks as calculation of the XModem CRC16 values, byte stuffing of the request/respond strings, connection to /dev/ttyUSB0 etc. are already there.

Any idea what's wrong?

mdrmdr
  • 3
  • 4

1 Answers1

0

Just to close this topic. I could, by analyzing the USB communication to/from the IR head using the Kamstrup LogView HCW software and an USB logger, understand almost all of the byte sequences I need for reading the total volume values from the past (up to 100) days from the water meter. Now I have a productive setting, where a servo with a Neodymium magnet activates the meter once a day (simulates attaching the IR head) and my PHP and C software reads the values for further usage analysis. It was quite a work to do all the USB communication analysis. Unfortunately I did not get the protocol descriptions from Kamstrup, the manufacturer of the meter. But in the end everything is working now :-)

mdrmdr
  • 3
  • 4