{
 "manufacturer": "Carlo Gavazzi",
 "manufacturer_slug": "carlo-gavazzi",
 "model": "EM24-DIN (PFA, PFB and X models)",
 "model_slug": "em24-din",
 "short_model": "EM24-DIN",
 "aliases": [
  "EM24",
  "EM24DIN",
  "EM24DINAV93XISPFA",
  "EM24DINAV93XISPFB",
  "EM24DINAV93XISX",
  "EM24DINAV53XISX",
  "EM24DINAV23XISX",
  "EM24 DIN AV9",
  "EM24 DIN AV5"
 ],
 "equipment_type": "Energy meter (energy analyzer)",
 "applies_to": "EM24-DIN three-phase energy analyzers, PFA/PFB (MID) and X models with the RS485 Modbus RTU port (IS option), protocol version 4 revision 0.",
 "summary": "The EM24-DIN is Carlo Gavazzi's three-phase DIN-rail energy analyzer. Models with the IS (RS485) port speak Modbus RTU; measurements are 32-bit integers sent low word first with fixed weights (V x10, A x1000, W x10). This map covers voltages, currents, powers, demand, power factor, frequency, total/partial/phase/tariff energy, hour meter, input and tariff status, identification and the setup, serial and reset registers.",
 "transport": [
  "RTU"
 ],
 "defaults": {
  "unit_id": null,
  "baud": null,
  "parity": "None",
  "data_bits": null,
  "stop_bits": 1,
  "tcp_port": null
 },
 "addressing": {
  "convention": "Modicon",
  "note": "Each register is printed twice: a 6-digit Modicon number for function 04 (3xxxxx; the same data is readable with function 03 by changing the leading 3 to 4) and the hex 'physical address' that goes in the frame. Wire address = physical address, e.g. 300001 / 0000h is address 0. Configuration rows are also printed as 3xxxxx but are written with function 06, so they are listed here as holding registers."
 },
 "default_word_order": "CDAB",
 "firmware": null,
 "source": {
  "title": "EM24-DIN PFA, PFB & X models Communication Protocol",
  "doc_number": "Version 4 Revision 0",
  "revision_date": "2012-12-03",
  "url": "https://www.gavazziautomation.com/fileadmin/images/PIM/OTHERSTUFF/COMPRO/EM24_IS_CP.pdf",
  "pages": "Tables pp. 8-13 (data format p. 7)"
 },
 "notes": [
  "Word order: the protocol states that within a word bytes are MSB first and that INT32/UINT32/UINT64 values are sent LSW first, so all 32-bit values here are CDAB.",
  "Functions 03 and 04 return the same data; only 11 registers can be read per request.",
  "A register's 'value weight' means raw = value x weight, so V*10 becomes scale 0.1, A*1000 becomes 0.001.",
  "Left out: counters 1-3 (0062h-0066h), whose weight depends on the digital-input format setting (x10, x100 or x1000); display page selectors, user ID codes, input prescaler/format, M-Bus secondary address and the ASCII serial-number letters (1300h-1306h).",
  "The identification code is printed at 300012 / 000Bh, which is also the second word of V L3-L1 (000Ah-000Bh). Read it as a single register; it is listed exactly as the protocol prints it.",
  "Application types: A, B, C, G exist on PFA only; E, F, H on PFB only; all on X models. PFA/PFB support only the 3Pn measuring system.",
  "Reset 3001h clears the total meters (kWh/kvarh import and export totals, phase kWh and all tariff registers); 3002h clears the partial kWh/kvarh.",
  "SFA/SFB 'IS' models documented separately (EM24-IS SFA/SFB protocol) expose a reduced map; see the em24-is-sfa-sfb file."
 ],
 "integration": {
  "summary": "Poll input registers (function 04, or 03) in blocks of at most 11 registers; decode INT32 values low word first and apply the fixed weights. Energy is kWh x10 in 2 registers.",
  "minimum_registers": [
   {
    "table": "input_register",
    "address": 0,
    "why": "V L1-N"
   },
   {
    "table": "input_register",
    "address": 12,
    "why": "A L1"
   },
   {
    "table": "input_register",
    "address": 40,
    "why": "W system"
   },
   {
    "table": "input_register",
    "address": 53,
    "why": "PF system"
   },
   {
    "table": "input_register",
    "address": 55,
    "why": "Frequency"
   },
   {
    "table": "input_register",
    "address": 62,
    "why": "kWh(+) total"
   },
   {
    "table": "input_register",
    "address": 92,
    "why": "kWh(-) total"
   }
  ],
  "enable": "Modbus RTU is on the IS (RS485) versions. Set the address and baud rate in the serial port menu or via registers 110Ah/110Bh.",
  "watchdog": null,
  "quirks": [
   "INT32 values are low word first (CDAB).",
   "Max 11 registers per read request.",
   "Parity is fixed to none and stop bits to 1.",
   "Writes use function 06 only (single register); broadcast write to address 0 is allowed."
  ],
  "setup": [
   "Address 1-247, baud 4800 or 9600.",
   "Terminate both bus ends with 120 ohm; above 1000 m or 160 devices use a repeater.",
   "Typical answer time 40 ms, maximum 500 ms; repeat a query 2-3 times before declaring the meter offline."
  ],
  "gotchas": [
   "The display shows EEEE when the value's top word is 7FFFh (overrange).",
   "PFA/PFB models accept only the 3Pn measuring system."
  ]
 },
 "registers": [
  {
   "table": "input_register",
   "address": 0,
   "documented": "300001 / 0000h",
   "name": "V L1-N",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 2,
   "documented": "300003 / 0002h",
   "name": "V L2-N",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 4,
   "documented": "300005 / 0004h",
   "name": "V L3-N",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 6,
   "documented": "300007 / 0006h",
   "name": "V L1-L2",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 8,
   "documented": "300009 / 0008h",
   "name": "V L2-L3",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 10,
   "documented": "300011 / 000Ah",
   "name": "V L3-L1",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 11,
   "documented": "300012 / 000Bh",
   "name": "Carlo Gavazzi identification code",
   "description": "Shares 000Bh with the high word of V L3-L1; read it alone.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "71": "EM24-DIN AV9 or AV2 input",
    "72": "EM24-DIN AV5 input",
    "73": "EM24-DIN AV6 input"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 12,
   "documented": "300013 / 000Ch",
   "name": "A L1",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.001,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 14,
   "documented": "300015 / 000Eh",
   "name": "A L2",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.001,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 16,
   "documented": "300017 / 0010h",
   "name": "A L3",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.001,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 18,
   "documented": "300019 / 0012h",
   "name": "W L1",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 20,
   "documented": "300021 / 0014h",
   "name": "W L2",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 22,
   "documented": "300023 / 0016h",
   "name": "W L3",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 24,
   "documented": "300025 / 0018h",
   "name": "VA L1",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 26,
   "documented": "300027 / 001Ah",
   "name": "VA L2",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 28,
   "documented": "300029 / 001Ch",
   "name": "VA L3",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 30,
   "documented": "300031 / 001Eh",
   "name": "var L1",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 32,
   "documented": "300033 / 0020h",
   "name": "var L2",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 34,
   "documented": "300035 / 0022h",
   "name": "var L3",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 36,
   "documented": "300037 / 0024h",
   "name": "V L-N system",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 38,
   "documented": "300039 / 0026h",
   "name": "V L-L system",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 40,
   "documented": "300041 / 0028h",
   "name": "W system",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 42,
   "documented": "300043 / 002Ah",
   "name": "VA system",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 44,
   "documented": "300045 / 002Ch",
   "name": "var system",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 46,
   "documented": "300047 / 002Eh",
   "name": "DMD W system",
   "description": "Demand (average) active power.",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 48,
   "documented": "300049 / 0030h",
   "name": "DMD VA system",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 50,
   "documented": "300051 / 0032h",
   "name": "PF L1",
   "description": "Negative = capacitive (lead), positive = inductive (lag).",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 0.001,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 51,
   "documented": "300052 / 0033h",
   "name": "PF L2",
   "description": "Negative = capacitive (lead), positive = inductive (lag).",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 0.001,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 52,
   "documented": "300053 / 0034h",
   "name": "PF L3",
   "description": "Negative = capacitive (lead), positive = inductive (lag).",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 0.001,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 53,
   "documented": "300054 / 0035h",
   "name": "PF system",
   "description": "Negative = capacitive (lead), positive = inductive (lag).",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 0.001,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 54,
   "documented": "300055 / 0036h",
   "name": "Phase sequence",
   "description": "Meaningful on 3-phase systems only.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "-1": "L1-L3-L2",
    "0": "L1-L2-L3"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 55,
   "documented": "300056 / 0037h",
   "name": "Frequency",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "units": "Hz",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 56,
   "documented": "300057 / 0038h",
   "name": "DMD W max",
   "description": "Peak demand active power.",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 58,
   "documented": "300059 / 003Ah",
   "name": "DMD VA max",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 60,
   "documented": "300061 / 003Ch",
   "name": "DMD A max",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.001,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 62,
   "documented": "300063 / 003Eh",
   "name": "kWh(+) total",
   "description": "Imported active energy.",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 64,
   "documented": "300065 / 0040h",
   "name": "kvarh(+) total",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kvarh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 66,
   "documented": "300067 / 0042h",
   "name": "kWh(+) partial",
   "description": "Resettable partial counter.",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 68,
   "documented": "300069 / 0044h",
   "name": "kvarh(+) partial",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kvarh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 70,
   "documented": "300071 / 0046h",
   "name": "kWh(+) L1",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 72,
   "documented": "300073 / 0048h",
   "name": "kWh(+) L2",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 74,
   "documented": "300075 / 004Ah",
   "name": "kWh(+) L3",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 76,
   "documented": "300077 / 004Ch",
   "name": "kWh(+) tariff 1",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 78,
   "documented": "300079 / 004Eh",
   "name": "kWh(+) tariff 2",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 80,
   "documented": "300081 / 0050h",
   "name": "kWh(+) tariff 3",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 82,
   "documented": "300083 / 0052h",
   "name": "kWh(+) tariff 4",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 84,
   "documented": "300085 / 0054h",
   "name": "kvarh(+) tariff 1",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kvarh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 86,
   "documented": "300087 / 0056h",
   "name": "kvarh(+) tariff 2",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kvarh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 88,
   "documented": "300089 / 0058h",
   "name": "kvarh(+) tariff 3",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kvarh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 90,
   "documented": "300091 / 005Ah",
   "name": "kvarh(+) tariff 4",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kvarh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 92,
   "documented": "300093 / 005Ch",
   "name": "kWh(-) total",
   "description": "Exported active energy.",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 94,
   "documented": "300095 / 005Eh",
   "name": "kvarh(-) total",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "kvarh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 96,
   "documented": "300097 / 0060h",
   "name": "Hour meter",
   "description": "",
   "data_type": "INT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.01,
   "units": "h",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 768,
   "documented": "300769 / 0300h",
   "name": "Digital input status",
   "description": "Bit = 0 input closed, 1 input open.",
   "data_type": "BITMAP16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": {
    "0": "Input 1 open",
    "1": "Input 2 open",
    "2": "Input 3 open"
   },
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 769,
   "documented": "300770 / 0301h",
   "name": "Current tariff",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Tariff 1",
    "1": "Tariff 2",
    "2": "Tariff 3",
    "3": "Tariff 4"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 770,
   "documented": "300771 / 0302h",
   "name": "Version code",
   "description": "Model code; PFB adds 128 and X adds 64 to the PFA value.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "EM24DINAV93XO2PFA",
    "2": "EM24DINAV93XISPFA",
    "3": "EM24DINAV93XXXPFA",
    "4": "EM24DINAV23XO2PFA",
    "5": "EM24DINAV23XISPFA",
    "6": "EM24DINAV23XXXPFA",
    "7": "EM24DINAV53xO2PFA",
    "9": "EM24DINAV53xISPFA",
    "10": "EM24DINAV53xXXPFA",
    "75": "EM24DINAV63xO2X",
    "76": "EM24DINAV63xR2X",
    "77": "EM24DINAV63xISX",
    "78": "EM24DINAV63xXXX"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 771,
   "documented": "300772 / 0303h",
   "name": "Revision code",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 772,
   "documented": "300773 / 0304h",
   "name": "Front selector status",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Keypad unlocked",
    "1": "Keypad unlocked",
    "2": "Keypad unlocked",
    "3": "Keypad locked"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4352,
   "documented": "304353 / 1100h",
   "name": "Password",
   "description": "0-9999; out-of-range values are treated as 0.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4353,
   "documented": "304354 / 1101h",
   "name": "Type of application",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Application A",
    "1": "Application B",
    "2": "Application C",
    "3": "Application D",
    "4": "Application E",
    "5": "Application F",
    "6": "Application G",
    "7": "Application H"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4354,
   "documented": "304355 / 1102h",
   "name": "Measuring system",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "3Pn",
    "1": "3P1",
    "2": "2P",
    "3": "1P",
    "4": "3P"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4355,
   "documented": "304356 / 1103h",
   "name": "DMD integration interval",
   "description": "1-30 (unit not stated in the protocol).",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4360,
   "documented": "304361 / 1108h",
   "name": "Filter span parameter",
   "description": "0-100.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4361,
   "documented": "304362 / 1109h",
   "name": "Filter coefficient",
   "description": "1-32.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4362,
   "documented": "304363 / 110Ah",
   "name": "RS485 instrument address",
   "description": "1-247.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4363,
   "documented": "304364 / 110Bh",
   "name": "RS485 baud rate",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "4800",
    "1": "9600"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4385,
   "documented": "304386 / 1121h",
   "name": "Digital input 1 type",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Sync",
    "1": "Tariff",
    "2": "Gas counter",
    "3": "H2O cold counter",
    "4": "H2O hot counter",
    "5": "H2O hot kWh counter",
    "6": "External counter",
    "7": "Remote (REM)"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4386,
   "documented": "304387 / 1122h",
   "name": "Digital input 2 type",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Sync",
    "1": "Tariff",
    "2": "Gas counter",
    "3": "H2O cold counter",
    "4": "H2O hot counter",
    "5": "H2O hot kWh counter",
    "6": "External counter",
    "7": "Remote (REM)"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4387,
   "documented": "304388 / 1123h",
   "name": "Digital input 3 type",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Gas counter",
    "1": "H2O cold counter",
    "2": "H2O hot counter",
    "3": "H2O hot kWh counter",
    "4": "External counter",
    "5": "Remote (REM)"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4391,
   "documented": "304392 / 1127h",
   "name": "Tariff via serial",
   "description": "Write low byte 5Ah, high byte tariff 0-3; only if inputs aren't set to tariff.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4396,
   "documented": "304397 / 112Ch",
   "name": "CT ratio",
   "description": "Raw 10-600000 = CT 1.0-60000.0.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4398,
   "documented": "304399 / 112Eh",
   "name": "VT ratio",
   "description": "Raw 10-60000 = VT 1.0-6000.0.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "CDAB",
   "scale": 0.1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 12288,
   "documented": "312289 / 3000h",
   "name": "Reset all meters (except hour meter)",
   "description": "Write 1 to execute.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 12289,
   "documented": "312290 / 3001h",
   "name": "Reset total meters",
   "description": "Write 1 to execute.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 12290,
   "documented": "312291 / 3002h",
   "name": "Reset partial meters",
   "description": "Write 1 to execute.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 12291,
   "documented": "312292 / 3003h",
   "name": "Reset hour meter",
   "description": "Write 1 to execute.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 12292,
   "documented": "312293 / 3004h",
   "name": "Reset counters 1, 2 and 3",
   "description": "Write 1 to execute.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 12293,
   "documented": "312294 / 3005h",
   "name": "Reset DMD max",
   "description": "Write 1 to execute.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null,
   "offset": 0
  }
 ],
 "page": "https://easymodbus.com/modbus-register-maps/carlo-gavazzi/em24-din",
 "address_note": "address = 0-based Modbus wire (PDU) address; documented = as printed in the source.",
 "note": "Re-typed from the manufacturer's public documentation (see source) and verified against it. Registers vary by firmware and options; verify against the live device before writing."
}
