Success. I received a document from the OEM in china via a colleague.
An initial test with 2400 baud, 7E1 eluded a response.
The multi-byte fields are least-significant byte first.
This type of meter requires a preamble to sync with the speed.
The document has 7 examples, and I simply implemented the first one:
FE FE FE FE FE FE 68 (20) (AA AA AA AA AA 11 11) (01) (03) (3F
90 12) (E1) 16
first 6 bytes of 0xFE - synchronization preamble
68 - frame start
20 - command
(1st bracket) - broadcast address, meter type 11 11
0x01 - control code - read (according to a 188 standard protocol)
0x03 - data field length
0x903F - high-precision meter reading data identifier
0x12 - sequence number
0xe1 - checksum (arithmetic sum of all data from the byte after the frame start byte 0x68 until before the checksum byte),
0x16 - frame end
The response I got:
fe fe fe fe fe 68
(25) (25 32 26 24 00 00 00) (81) (3a) (3f 90 03) (72 24) (00
00 00 00) (00 00 00 00 2c) (00 00 00 00 05) (00 00 00)
(03 00) (00 00 00 00) (00 00 00) (00 00 00 00) (00 10) (00
10) (00 10) (00 10) (00 00 00 00 00 00) (44 24) (00) (29 06
24 20) (00 08) (a8) 16
0xfe - synchronization preamble
0x68 - frame start
0x25 - frame length (? - excluding checksum, including length field)
0x25 0x32 0x26 0x24 0x00 0x00 0x00 - the unit serial number in BCD, from the display (24263225)
0x81 - response (?9
0x3a -
0x3f 0x90 0x03 - request frame?
0x72 0x24 - 2472 - inlet temperature 24.72 Celsius
0x00 0x00 0x00 0x00 - number of pulses (?)
00 00 00 00 2c - cumulative flow (?), four bytes bcd the value, last hex byte the unit
00 00 00 00 05 - cumulative energy, four byted BCD for value, last hex for unit
00 00 00 - cumulative alarm time in BCD, hours
03 00 - nominal diameter:
0x0001 DN15
0x0002 DN20
0x0003 DN25
0x0004 DN32
0x0005 DN40
0x0006 DN50
0x0007 DN65
0x0008 DN80
0x0009 DN100
0x000A DN125
0x000B DN150
0x000C DN200
0x000D DN250
0x000E DN300
00 00 00 00 - Zero point offset
00 00 00 - Pulse width
00 00 00 00 - undefined
00 10 - 2.5 flow point, low byte first HEX. the actual value is divided by 4096. 0x1000 / 4096 = 1.
00 10 - 0.75 flow point, low byte first HEX, divided by 4096
00 10 - 0.25 flow point
00 10 - 0.05 flow point
00 00 00 00 00 00 - undefined
44 24 - outlet temperature BDC (24.44 Celsius)
00 - undefined
29 06 24 20 - date code BCD (2024-06-29)
00 08 - meter status (no water here).
a8 - checksum
16 - frame end
[Formatted by Mod] - please use Ctl-E to preformat code etc.