{
  "spec_version": 1,
  "slug": "finder-7m24",
  "manufacturer": "Finder",
  "model": "7M.24",
  "category": "Energy meter",
  "supplier_url": "https://www.findernet.com/en/worldwide/series/7m-series-smart-energy-meters/type/type-7m-24-single-phase-bi-directional-energy-meters-with-backlit-lcd-display/",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 33,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "None",
      "baud_rate": 19200,
      "data_bits": 8,
      "stop_bits": 2
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 2498,
      "count": 2,
      "name": "Frequency",
      "data_type": "Float32",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2500,
      "count": 2,
      "name": "Voltage L1",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2516,
      "count": 2,
      "name": "Current L1",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2530,
      "count": 2,
      "name": "Active power L1",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2536,
      "count": 2,
      "name": "Active power, total",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2538,
      "count": 2,
      "name": "Reactive power L1",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2544,
      "count": 2,
      "name": "Reactive power, total",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2546,
      "count": 2,
      "name": "Apparent power L1",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2552,
      "count": 2,
      "name": "Apparent power, total",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2554,
      "count": 2,
      "name": "Power factor L1",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2560,
      "count": 2,
      "name": "Power factor, total",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2562,
      "count": 2,
      "name": "Power factor L1 (capacitive/inductive)",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2568,
      "count": 2,
      "name": "Power factor, total (capacitive/inductive)",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2570,
      "count": 2,
      "name": "Phase angle between U1 and I1",
      "data_type": "Float32",
      "units": "°",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2576,
      "count": 2,
      "name": "Power angle, total",
      "data_type": "Float32",
      "units": "°",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2588,
      "count": 2,
      "name": "Current THD L1",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2594,
      "count": 2,
      "name": "Voltage THD L1",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2638,
      "count": 2,
      "name": "Energy counter n1 (second copy)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R",
      "description": "Protocol document: energy counter n1 in Wh."
    },
    {
      "address": 2640,
      "count": 2,
      "name": "Energy counter n2 (second copy)",
      "data_type": "Float32",
      "units": "kvarh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R",
      "description": "Protocol document: energy counter n2 in varh."
    },
    {
      "address": 2658,
      "count": 2,
      "name": "Internal temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2750,
      "count": 2,
      "name": "Active tariff",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2752,
      "count": 2,
      "name": "Energy counter n1",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R",
      "description": "Protocol document: energy counter n1 in Wh. Counters n1/n3 are active energy and n2/n4 reactive energy; conventionally n1/n2 import and n3/n4 export."
    },
    {
      "address": 2754,
      "count": 2,
      "name": "Energy counter n2",
      "data_type": "Float32",
      "units": "kvarh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R",
      "description": "Protocol document: energy counter n2 in varh."
    },
    {
      "address": 2756,
      "count": 2,
      "name": "Energy counter n3",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R",
      "description": "Protocol document: energy counter n3 in Wh."
    },
    {
      "address": 2758,
      "count": 2,
      "name": "Energy counter n4",
      "data_type": "Float32",
      "units": "kvarh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R",
      "description": "Protocol document: energy counter n4 in varh."
    }
  ],
  "holding_registers": [
    {
      "address": 30,
      "count": 1,
      "name": "Select active tariff",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 31,
      "count": 1,
      "name": "Reset energy counters",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "Bit 0..7 reset counter 1..8."
    },
    {
      "address": 148,
      "count": 1,
      "name": "Current input range",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW",
      "description": "10000 = 100 %."
    },
    {
      "address": 149,
      "count": 1,
      "name": "Voltage input range",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW",
      "description": "10000 = 100 %."
    },
    {
      "address": 150,
      "count": 1,
      "name": "Nominal frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 192,
      "count": 1,
      "name": "Communication and LCD average interval",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW",
      "description": "10 = 1.0 s."
    },
    {
      "address": 202,
      "count": 1,
      "name": "Modbus device address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1 to 247; factory default 33."
    },
    {
      "address": 203,
      "count": 1,
      "name": "Baud rate",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 1200, 1 = 2400, 2 = 4800, 3 = 9600, 4 = 19200 (default), 5 = 38400, 6 = 57600, 7 = 115200."
    },
    {
      "address": 204,
      "count": 1,
      "name": "Stop bits",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 1 stop bit, 1 = 2 stop bits (default)."
    },
    {
      "address": 205,
      "count": 1,
      "name": "Parity",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = none (default), 1 = odd, 2 = even."
    },
    {
      "address": 206,
      "count": 1,
      "name": "Data bits",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 8 data bits (default)."
    },
    {
      "address": 207,
      "count": 1,
      "name": "Modbus TCP port",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    }
  ],
  "combined_registers": [],
  "notes": "RS-485 device: reach it through a Modbus RTU-to-TCP gateway using the factory serial settings above (address 33, 19200 bps, 8N2). Sources: Finder 'Modbus communication protocol 7M24 - 7M38' v2 (30.06.2021) for the register table and Finder 'Benutzerhandbuch 7M' for the factory defaults. The 'IEEE 754' measurement bank is used, so all values are 32-bit floats read with function code 04; the protocol document's 3xxxxx register numbers map to wire address = number - 30000 and the 4xxxxx settings to number - 40000. Energy counters are transmitted in Wh/varh and scaled to kWh/kvarh here. This is the single-phase 7M.24; the three-phase 7M.38 has its own seed."
}
