{
  "spec_version": 1,
  "slug": "acrel-adw300",
  "manufacturer": "Acrel",
  "model": "ADW300 (three-phase IoT energy meter, Modbus-RTU version)",
  "category": "Energy meter",
  "supplier_url": "https://www.acrelenergy.com/products/adw300/",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "None",
      "baud_rate": 1200,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 20,
      "count": 1,
      "name": "Voltage A phase",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 21,
      "count": 1,
      "name": "Voltage B phase",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 22,
      "count": 1,
      "name": "Voltage C phase",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 23,
      "count": 1,
      "name": "Voltage A-B",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24,
      "count": 1,
      "name": "Voltage B-C",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 25,
      "count": 1,
      "name": "Voltage C-A",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 26,
      "count": 1,
      "name": "Current A phase",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 27,
      "count": 1,
      "name": "Current B phase",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 28,
      "count": 1,
      "name": "Current C phase",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 29,
      "count": 1,
      "name": "Vector sum of the 3-phase current",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30,
      "count": 2,
      "name": "Active power A phase",
      "data_type": "Int32",
      "units": "kW",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 32,
      "count": 2,
      "name": "Active power B phase",
      "data_type": "Int32",
      "units": "kW",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34,
      "count": 2,
      "name": "Active power C phase",
      "data_type": "Int32",
      "units": "kW",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 36,
      "count": 2,
      "name": "Total active power",
      "data_type": "Int32",
      "units": "kW",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 38,
      "count": 2,
      "name": "Reactive power A phase",
      "data_type": "Int32",
      "units": "kvar",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40,
      "count": 2,
      "name": "Reactive power B phase",
      "data_type": "Int32",
      "units": "kvar",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 42,
      "count": 2,
      "name": "Reactive power C phase",
      "data_type": "Int32",
      "units": "kvar",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 44,
      "count": 2,
      "name": "Total reactive power",
      "data_type": "Int32",
      "units": "kvar",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 46,
      "count": 2,
      "name": "Apparent power A phase",
      "data_type": "UInt32",
      "units": "kVA",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 48,
      "count": 2,
      "name": "Apparent power B phase",
      "data_type": "UInt32",
      "units": "kVA",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 50,
      "count": 2,
      "name": "Apparent power C phase",
      "data_type": "UInt32",
      "units": "kVA",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 52,
      "count": 2,
      "name": "Total apparent power",
      "data_type": "UInt32",
      "units": "kVA",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 54,
      "count": 1,
      "name": "Power factor A phase",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 55,
      "count": 1,
      "name": "Power factor B phase",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 56,
      "count": 1,
      "name": "Power factor C phase",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 57,
      "count": 1,
      "name": "Total power factor",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 58,
      "count": 1,
      "name": "State of the digital inputs",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 = DI1, bit 1 = DI2, bit 2 = DI3, bit 3 = DI4."
    },
    {
      "address": 59,
      "count": 1,
      "name": "Frequency of the power supply",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 60,
      "count": 2,
      "name": "Total energy consumption",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 62,
      "count": 2,
      "name": "Forward active energy consumption",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 64,
      "count": 2,
      "name": "Reversing active energy consumption",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 66,
      "count": 2,
      "name": "Forward reactive energy consumption",
      "data_type": "UInt32",
      "units": "kvarh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 68,
      "count": 2,
      "name": "Reversing reactive energy consumption",
      "data_type": "UInt32",
      "units": "kvarh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 70,
      "count": 2,
      "name": "Total energy consumption on phase A",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 72,
      "count": 2,
      "name": "Forward active energy consumption on phase A",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 74,
      "count": 2,
      "name": "Reversing active energy consumption on phase A",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 76,
      "count": 2,
      "name": "Forward reactive energy consumption on phase A",
      "data_type": "UInt32",
      "units": "kvarh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 78,
      "count": 2,
      "name": "Reversing reactive energy consumption on phase A",
      "data_type": "UInt32",
      "units": "kvarh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 80,
      "count": 2,
      "name": "Total energy consumption on phase B",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 82,
      "count": 2,
      "name": "Forward active energy consumption on phase B",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 84,
      "count": 2,
      "name": "Reversing active energy consumption on phase B",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 86,
      "count": 2,
      "name": "Forward reactive energy consumption on phase B",
      "data_type": "UInt32",
      "units": "kvarh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 88,
      "count": 2,
      "name": "Reversing reactive energy consumption on phase B",
      "data_type": "UInt32",
      "units": "kvarh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 90,
      "count": 2,
      "name": "Total energy consumption on phase C",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 92,
      "count": 2,
      "name": "Forward active energy consumption on phase C",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 94,
      "count": 2,
      "name": "Reversing active energy consumption on phase C",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 96,
      "count": 2,
      "name": "Forward reactive energy consumption on phase C",
      "data_type": "UInt32",
      "units": "kvarh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 98,
      "count": 2,
      "name": "Reversing reactive energy consumption on phase C",
      "data_type": "UInt32",
      "units": "kvarh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 116,
      "count": 1,
      "name": "THD voltage phase A",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 117,
      "count": 1,
      "name": "THD voltage phase B",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 118,
      "count": 1,
      "name": "THD voltage phase C",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 119,
      "count": 1,
      "name": "THD current phase A",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 120,
      "count": 1,
      "name": "THD current phase B",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 121,
      "count": 1,
      "name": "THD current phase C",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    }
  ],
  "holding_registers": [],
  "combined_registers": [],
  "notes": "RS-485 device: reach it through a Modbus RTU-to-TCP gateway using the factory serial settings above. Source: Acrel \"ADW300 wireless network power meter - Installation and operation instruction\", section 6.2 \"MODBUS\" (start-address table), published at https://www.acrelenergy.com/uploads/file/adw300-manual.pdf and cross-checked against the ADW300-EN-Manual v1.6 at https://www.acrel.my/uploads/ADW300-EN-Manual-v1.6.pdf ; both editions carry the identical address list. The hexadecimal start addresses are used as wire addresses (0014h = 20). Lengths of 2 bytes are one 16-bit register and lengths of 4 bytes are two registers; the table's 1- and 2-decimal notes give the scale factors used here (voltages x0.1 V, currents x0.01 A, powers x0.001 kW/kvar/kVA, power factor x0.001, frequency x0.01 Hz, energies x0.01 kWh/kvarh, THD x0.01 %). The 32-bit power and energy rows are declared Int32 / UInt32 there. L1/L2/L3 are labelled A/B/C in the vendor document and are kept that way here. The factory Modbus node address is 1 (register 0000h, range 1...247) and the factory frame is 8N1; the table does not state a factory baud rate but lists 1200, 3400, 4800 and 9600 bps in register 0001h, and evcc's hardware-tested \"acrel-adw300\" template (secondary source) configures 1200 bps, so 1200 is used here - set the meter and the gateway to the same value. Deliberately not listed: the monthly maximum-demand rows 0064h-0073h (the table's unit column gives \"kVar\" for the reversing active-power demand, so the units cannot be attributed without guessing), the harmonic blocks 007Ah-012Dh and the alarm tables (section 6.3). The DI state register is a bit field, not a measurement."
}
