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?