{
  "spec_version": 1,
  "slug": "schneider-acti9-powertag-energy",
  "manufacturer": "Schneider Electric",
  "model": "Acti9 PowerTag Energy (PTE / PTEnergy, via Panel Server, Smartlink or PowerTag Link)",
  "category": "Energy meter",
  "supplier_url": "https://www.se.com/ww/en/download/document/DOCA0241EN/",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 3000,
      "count": 2,
      "name": "RMS current on phase A",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3002,
      "count": 2,
      "name": "RMS current on phase B",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3004,
      "count": 2,
      "name": "RMS current on phase C",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3006,
      "count": 2,
      "name": "RMS current on Neutral",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3020,
      "count": 2,
      "name": "RMS phase-to-phase voltage A-B",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3022,
      "count": 2,
      "name": "RMS phase-to-phase voltage B-C",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3024,
      "count": 2,
      "name": "RMS phase-to-phase voltage C-A",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3028,
      "count": 2,
      "name": "RMS phase-to-neutral voltage A-N",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3030,
      "count": 2,
      "name": "RMS phase-to-neutral voltage B-N",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3032,
      "count": 2,
      "name": "RMS phase-to-neutral voltage C-N",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3054,
      "count": 2,
      "name": "Active power on phase A",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3056,
      "count": 2,
      "name": "Active power on phase B",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3058,
      "count": 2,
      "name": "Active power on phase C",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3060,
      "count": 2,
      "name": "Total active power",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3062,
      "count": 2,
      "name": "Reactive power on phase A",
      "data_type": "Float32",
      "units": "VAR",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3064,
      "count": 2,
      "name": "Reactive power on phase B",
      "data_type": "Float32",
      "units": "VAR",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3066,
      "count": 2,
      "name": "Reactive power on phase C",
      "data_type": "Float32",
      "units": "VAR",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3068,
      "count": 2,
      "name": "Total reactive power",
      "data_type": "Float32",
      "units": "VAR",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3070,
      "count": 2,
      "name": "Apparent power on phase A",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3072,
      "count": 2,
      "name": "Apparent power on phase B",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3074,
      "count": 2,
      "name": "Apparent power on phase C",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3076,
      "count": 2,
      "name": "Total apparent power (arithmetic)",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3078,
      "count": 2,
      "name": "Power factor on phase A",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3080,
      "count": 2,
      "name": "Power factor on phase B",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3082,
      "count": 2,
      "name": "Power factor on phase C",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3084,
      "count": 2,
      "name": "Total power factor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3086,
      "count": 1,
      "name": "Power factor sign convention",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3110,
      "count": 2,
      "name": "AC frequency",
      "data_type": "Float32",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3132,
      "count": 2,
      "name": "Device internal temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3302,
      "count": 2,
      "name": "Last RMS current measured on phase B when voltage loss occurred",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3304,
      "count": 2,
      "name": "Last RMS current measured on phase A when voltage loss occurred",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3306,
      "count": 2,
      "name": "Last RMS current measured on phase C when voltage loss occurred",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3310,
      "count": 2,
      "name": "Active power threshold for load operating time counter. Counter starts above the threshold value.",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3766,
      "count": 2,
      "name": "Demand total active power",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3770,
      "count": 2,
      "name": "Peak demand total active power",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30501,
      "count": 1,
      "name": "Product ID of the Panel Server",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30502,
      "count": 16,
      "name": "Commercial reference of the Panel Server",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30518,
      "count": 6,
      "name": "Firmware version of the Panel Server Example - xxx.yyy.zzz",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30524,
      "count": 10,
      "name": "Serial number of the Panel Server",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30534,
      "count": 8,
      "name": "Product model of the Panel Server",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31001,
      "count": 10,
      "name": "Device name of the wireless device. The user can enter maximum 20 characters.",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31011,
      "count": 3,
      "name": "Label of the wireless device. The user can enter maximum five characters.",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31014,
      "count": 1,
      "name": "Indicates the usage of the wireless device with:",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31015,
      "count": 1,
      "name": "Phase sequence with:",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31016,
      "count": 1,
      "name": "Mounting position",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31018,
      "count": 1,
      "name": "Rated current of the protective device to the wireless device",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31019,
      "count": 1,
      "name": "Electrical network system type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31020,
      "count": 2,
      "name": "Rated voltage:",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31022,
      "count": 1,
      "name": "Indicates the commodity of the wireless device 1. Electricity 2. Gas 3. Fuel oil 4. Air 5. Steam 6. Water 7. Environment 8. Other 9. Custom (Free text to enter): User can enter 10",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31023,
      "count": 1,
      "name": "Reset the Peak Active Power Demand for this wireless device, Any value writen will reset Peak Active Power Demand to 0",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 31024,
      "count": 1,
      "name": "Power supply type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31026,
      "count": 1,
      "name": "Virtual Modbus server address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31032,
      "count": 1,
      "name": "Wireless product identifier : 16131 - LV933071W, LV933072W, LV933073W 16132 - LV947600W, LV947602W, LV947603W 17200 - A9MEM1520 17201 - A9MEM1521 17202 - A9MEM1522 17203 - A9MEM1540",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31045,
      "count": 16,
      "name": "Vendor name",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31061,
      "count": 16,
      "name": "Commercial reference",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31077,
      "count": 6,
      "name": "Firmware revision",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31083,
      "count": 6,
      "name": "Hardware revision",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31089,
      "count": 10,
      "name": "Serial number",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31099,
      "count": 8,
      "name": "Product range",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31107,
      "count": 8,
      "name": "Product model",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31115,
      "count": 8,
      "name": "Product family",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31145,
      "count": 1,
      "name": "Validity of the RF communication between the device and Panel Server status.",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31146,
      "count": 1,
      "name": "Communication status between Panel Server and wireless devices.",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31147,
      "count": 2,
      "name": "Packet Error Rate (PER) of the device, received by Panel Server",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31149,
      "count": 2,
      "name": "RSSI of the device, received by Panel Server",
      "data_type": "Float32",
      "units": "dBm",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31151,
      "count": 1,
      "name": "Link Quality Indicator (LQI) of the device, received by Panel Server",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31152,
      "count": 2,
      "name": "PER of gateway, calculated inside the Panel Server",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31154,
      "count": 2,
      "name": "Radio Signal Strength Indicator (RSSI) calculated inside the Panel Server",
      "data_type": "Float32",
      "units": "dBm",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31156,
      "count": 1,
      "name": "LQI, calculated inside the Panel Server",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31157,
      "count": 2,
      "name": "PER – Maximum value between device and Panel Server",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31159,
      "count": 2,
      "name": "RSSI – Minimal value between device and Panel Server",
      "data_type": "Float32",
      "units": "dBm",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31161,
      "count": 1,
      "name": "LQI – Minimal value between device and Panel Server",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    }
  ],
  "combined_registers": [],
  "notes": "Addresses are the decimal 'Register (dec)' column of Schneider's EcoStruxure Panel Server Modbus file DOCA0241EN (tabs PTE63-PoTag QO, PTEnergy250_630-PoTag Efram and PTE Rope-PoTag Rope). A PowerTag is a wireless sensor: it is not reachable directly, but the EcoStruxure Panel Server (PAS400/PAS600/PAS800) publishes each paired PowerTag on its Modbus TCP server (port 502) at the unit ID that matches the device's virtual Modbus address - the Panel Server lists that address and the sensor's RFID in its 'List of wireless devices' block (registers 501-700, see the Panel Server map). The same map is served by Acti9 Smartlink and PowerTag Link gateways on their RS-485 bus. Values are read-only, IEEE 754 single precision from register 3000. Every energy counter of a PowerTag is a 64-bit integer in Wh, which this format cannot express, so only the load-side measurements, demand and alarm values are listed. Not every reference provides every register: reactive power and frequency exist on the PTEnergy250/630 and Rope sensors, the single-phase references omit the B and C phases."
}
