// 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'
        }
    }
}