// Copyright (C) 2022-2026 Fredrik Öhrström (gpl-3.0-or-later)
driver {
name = apator172
meter_type = WaterMeter
default_fields = name,id,total_m3,timestamp
// The meter sends 0x11 as media type, replace with water which makes more sense.
force_media_type = water
detect {
mvt = APT,04,11
}
fields {
field {
name = payload_decoder
quantity = Text
info = 'Decode 4-byte counter from mfct specific payload. The counter stores 1/3 of a m3.'
attributes = HIDE
match_entire_payload = true
ixml = "decode = total, byte*.
total = quad, @DV_0416.
-hex = ['A'-'F';'0'-'9'].
-byte = hex, hex.
-quad = byte, byte, byte, byte.
DV_0416>dvk = +'0416'."
}
field {
name = total
quantity = Volume
info = 'The total water consumption recorded by this meter.'
force_scale = 1/3
match {
difvifkey = 0416
}
}
}
tests {
test {
args = 'Vattur apator172 0014a807 NOKEY'
telegram = 1C44148607A814000411A0_1D5400000840030000000005FF05D83D0000
json = '{"_":"telegram","media":"water","meter":"apator172","name":"Vattur","id":"0014a807","total_m3":7177.666667,"timestamp":"1111-11-11T11:11:11Z"}'
fields = 'Vattur;0014a807;7177.666667;1111-11-11 11:11.11'
}
test {
args = 'Vattur apator172 0014a807 NOKEY'
telegram = 1C44148607A814000411A0_215400000840030000000005FF05D83D0000
json = '{"_":"telegram","media":"water","meter":"apator172","name":"Vattur","id":"0014a807","total_m3":7179,"timestamp":"1111-11-11T11:11:11Z"}'
fields = 'Vattur;0014a807;7179;1111-11-11 11:11.11'
}
}
}