{
 "manufacturer": "MENNEKES",
 "manufacturer_slug": "mennekes",
 "model": "AMTRON 4You 300 / Compact 2.0s / Start 2.0s (Modbus RTU)",
 "model_slug": "amtron-4you-300-compact-start",
 "short_model": "AMTRON 4You 300",
 "aliases": [
  "AMTRON 4You 300",
  "AMTRON 4You 310",
  "AMTRON Compact 2.0s",
  "AMTRON Start 2.0s"
 ],
 "equipment_type": "EV charger",
 "applies_to": "AMTRON 4You 300, Compact 2.0s and Start 2.0s wallboxes with software 2023.21.11024 or later (Modbus register layout v01.03).",
 "summary": "These MENNEKES home wallboxes become a Modbus RTU slave ('satellite') on RS-485 when DIP switches S1-4 and S1-5 are on, so an energy manager can control them. Data can be read as holding or input registers. This map covers identity, EVSE and CP state, configured current limits, per-phase current, voltage and power, session and lifetime energy, error codes and the control registers: heartbeat, charging release, current limit, phase switching and lock.",
 "transport": [
  "RTU"
 ],
 "defaults": {
  "unit_id": 50,
  "baud": 57600,
  "parity": "None",
  "data_bits": 8,
  "stop_bits": 2,
  "tcp_port": null
 },
 "addressing": {
  "convention": "hex 0-based",
  "note": "Addresses are printed in hex and go on the wire unchanged. The specification gives no example frame, but its table starts at register 0x0000 (Modbus version), which cannot exist in 1-based numbering, so the printed numbers are protocol addresses. So 0x0302 is requested as 770 decimal."
 },
 "default_word_order": "ABCD",
 "firmware": "Software 2023.21.11024 and later (Modbus register layout v01.03)",
 "source": {
  "title": "Modbus RTU Specification - AMTRON 4You 300, AMTRON Compact 2.0s, AMTRON Start 2.0s",
  "doc_number": "v2.5",
  "revision_date": "2025-07-11",
  "url": "https://www.mennekes.de/fileadmin/MEN-Deutschland/emobility/01_documents/04_installer/Modbus_RTU_Specification_AMTRON_4You300_Compact_2.0s_Start_2.0s-v2.5.pdf",
  "pages": "p. 2 (bus settings, byte/word order, notes), pp. 6-7 (register table), p. 8 (EMS charging and phase-switch example)"
 },
 "notes": [
  "The specification states 'Byte and Word Order: Big Endian', so float32 and uint32 values have the high word first (ABCD). Float values are in engineering units with no scaling.",
  "Each register lists the register-layout version that introduced it (v01.00-v01.03); registers added in a later layout may be missing on older firmware (0x0114, 0x0D19 and 0x001B arrived with v01.03).",
  "Charging current energy manager (0x0302): 0 means no limit and the wallbox signals its maximum (16 or 32 A); 0.01-5.99 A pauses charging; 6 A and up is a limit, clipped to the wallbox's own maximum.",
  "Error codes 2300-2305 (over/undervoltage on L1-L3, with voltage detection active) are also listed in the source alongside the codes given under values.",
  "Function codes per the source: read 0x03 or 0x04; write single register 0x06 only for 1-register values, write multiple 0x10 for floats (e.g. 0x0302)."
 ],
 "registers": [
  {
   "table": "holding_register",
   "address": 0,
   "documented": "0x0000",
   "name": "Modbus version",
   "description": "Register layout version, e.g. 0x0103 = v01.03.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1,
   "documented": "0x0001",
   "name": "Firmware version",
   "description": "16 ASCII characters.",
   "data_type": "STRING",
   "length": 8,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 19,
   "documented": "0x0013",
   "name": "Serial number",
   "description": "16 ASCII characters (layout v01.02+).",
   "data_type": "STRING",
   "length": 8,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 27,
   "documented": "0x001B",
   "name": "MENNEKES article number",
   "description": "Article number from the type plate (layout v01.03+).",
   "data_type": "STRING",
   "length": 8,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 256,
   "documented": "0x0100",
   "name": "EVSE state",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Not initialized",
    "1": "Idle (no EV connected)",
    "2": "EV connected (no current signalled)",
    "3": "Preconditions valid, not charging yet",
    "4": "Ready to charge (current signalled)",
    "5": "Charging",
    "6": "Error",
    "7": "Service mode"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 257,
   "documented": "0x0101",
   "name": "Authorization status",
   "description": "RFID / energy-manager release state.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Not used (idle)",
    "1": "Authorized (charging released)",
    "2": "Not authorized"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 258,
   "documented": "0x0102",
   "name": "Downgrade",
   "description": "State of the external downgrade input.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Not relevant (no EV)",
    "1": "Not downgraded",
    "2": "Downgraded"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 259,
   "documented": "0x0103",
   "name": "Phase rotation",
   "description": "Configured phase order, used for load management.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "L1-L2-L3",
    "1": "L2-L3-L1",
    "2": "L3-L1-L2"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 264,
   "documented": "0x0108",
   "name": "CP state",
   "description": "Control-pilot state between wallbox and EV (layout v01.02+).",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Init",
    "10": "A1 (no EV)",
    "11": "B1 (EV connected, not charging / paused)",
    "12": "C1 (EV ready to charge)",
    "13": "D1",
    "14": "E (error)",
    "15": "F (error)",
    "26": "A2 (current >= 6 A offered, EV disconnected)",
    "27": "B2 (ready, current >= 6 A offered)",
    "28": "C2 (charging, current >= 6 A offered)",
    "29": "D2"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 276,
   "documented": "0x0114 - 0x0115",
   "name": "Signaled current",
   "description": "Current offered to the EV on the CP line (layout v01.03+).",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 768,
   "documented": "0x0300 - 0x0301",
   "name": "Downgrade current",
   "description": "Current limit applied while the downgrade input is active.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 770,
   "documented": "0x0302 - 0x0303",
   "name": "Charging current energy manager",
   "description": "EMS current limit: 0 = no limit, 0.01-5.99 = pause, 6+ = limit.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "RW",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 772,
   "documented": "0x0304 - 0x0305",
   "name": "Maximal current house (DIP)",
   "description": "Installation current set on DIP switches 6-8 of bank S2.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 774,
   "documented": "0x0306 - 0x0307",
   "name": "Maximal EVSE current",
   "description": "Maximum wallbox current set at installation.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 778,
   "documented": "0x030A",
   "name": "Phase switching mode",
   "description": "Phase use of the internal solar algorithm.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Solar only 1 phase",
    "1": "Solar only 3 phases",
    "2": "Solar dynamic 1 or 3 phases"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 780,
   "documented": "0x030C",
   "name": "Phase options HW",
   "description": "Whether the hardware can switch between 1 and 3 phases.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Only 1 phase",
    "1": "Only 3 phases",
    "2": "1 or 3 phases (phase switch possible)"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 781,
   "documented": "0x030D",
   "name": "Cable lock setting",
   "description": "Permanent cable lock.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Not enabled or unavailable",
    "1": "Enabled"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 782,
   "documented": "0x030E",
   "name": "Energy manager fallback current",
   "description": "Behaviour if the EMS heartbeat stops during a session; 6-32 = fallback amps.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Fallback disabled, keep last EMS values",
    "1": "Fallback enabled, pause charging"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 783,
   "documented": "0x030F",
   "name": "Grid imbalance",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Disabled",
    "1": "Enabled"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 784,
   "documented": "0x0310",
   "name": "Grid imbalance threshold",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 785,
   "documented": "0x0311",
   "name": "Grid phases connected",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "L1 connected",
    "2": "L1, L2, L3 connected"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 786,
   "documented": "0x0312",
   "name": "Authorization",
   "description": "Whether authorization is required.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Disabled",
    "1": "Enabled"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 787,
   "documented": "0x0313",
   "name": "Sunshine+ minimum current",
   "description": "Minimum current in solar-supported (Sunshine+) mode.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 788,
   "documented": "0x0314",
   "name": "Phase switching pause",
   "description": "Pause between a 1-to-3 or 3-to-1 phase switch.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "s",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1280,
   "documented": "0x0500 - 0x0501",
   "name": "Current L1",
   "description": "RMS output current.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1282,
   "documented": "0x0502 - 0x0503",
   "name": "Current L2",
   "description": "RMS output current.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1284,
   "documented": "0x0504 - 0x0505",
   "name": "Current L3",
   "description": "RMS output current.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1286,
   "documented": "0x0506 - 0x0507",
   "name": "Voltage L1",
   "description": "RMS output voltage.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1288,
   "documented": "0x0508 - 0x0509",
   "name": "Voltage L2",
   "description": "RMS output voltage.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1290,
   "documented": "0x050A - 0x050B",
   "name": "Voltage L3",
   "description": "RMS output voltage.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1292,
   "documented": "0x050C - 0x050D",
   "name": "Power L1",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1294,
   "documented": "0x050E - 0x050F",
   "name": "Power L2",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1296,
   "documented": "0x0510 - 0x0511",
   "name": "Power L3",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1298,
   "documented": "0x0512 - 0x0513",
   "name": "Power overall",
   "description": "Total power on all phases.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 2304,
   "documented": "0x0900 - 0x0901",
   "name": "Temperature",
   "description": "Temperature inside the wallbox.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "°C",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 2816,
   "documented": "0x0B00 - 0x0B01",
   "name": "Max current session",
   "description": "Highest current allowed for this session by static limits (cable, installation).",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 2818,
   "documented": "0x0B02 - 0x0B03",
   "name": "Charged energy session",
   "description": "Energy delivered in the current session.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 2820,
   "documented": "0x0B04 - 0x0B05",
   "name": "Duration session",
   "description": "Length of the current session.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "s",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 2822,
   "documented": "0x0B06",
   "name": "Detected EV phases",
   "description": "Most phases the EV drew during this session.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Not initialized",
    "1": "1 phase",
    "2": "2 phases",
    "3": "3 phases"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3328,
   "documented": "0x0D00",
   "name": "Heartbeat energy manager",
   "description": "EMS must write 0x55AA (21930) at least every 10 s.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3330,
   "documented": "0x0D02",
   "name": "Cable lock status",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Unknown",
    "1": "Cable unlocked",
    "2": "Cable locked",
    "3": "Fixed cable"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3331,
   "documented": "0x0D03",
   "name": "Solar charging mode",
   "description": "Mode shown on the solar LEDs; also changed by the wallbox button.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Solar mode not active",
    "1": "Fast charging (standard)",
    "2": "Solar charging (Sunshine)",
    "3": "Solar supported charging (Sunshine+)"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3332,
   "documented": "0x0D04",
   "name": "Requested phases",
   "description": "Ask for 1-phase charging on phase-switch capable hardware.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Charge on all available phases",
    "1": "Force 1-phase charging"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3333,
   "documented": "0x0D05",
   "name": "Charging release energy manager",
   "description": "EMS release; 0 opens the relays.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Charging not allowed",
    "1": "Charging allowed"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3334,
   "documented": "0x0D06",
   "name": "Lock EVSE",
   "description": "Block charging at the wallbox.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Not locked",
    "1": "Locked"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3353,
   "documented": "0x0D19",
   "name": "System restart",
   "description": "Write 0xBB (187) once, only while idle (layout v01.03+).",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3584,
   "documented": "0x0E00",
   "name": "Active error code",
   "description": "0 = no error.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "No error",
    "200": "Energy manager not available (no heartbeat)",
    "2011": "EV overcurrent",
    "2323": "Connected phases mismatch"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3585,
   "documented": "0x0E01",
   "name": "Master lost fallback state",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Not active",
    "1": "Active (energy manager unavailable)"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3586,
   "documented": "0x0E02",
   "name": "Switched phases",
   "description": "Phases that will be used once the relays close.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "All available phases",
    "1": "1 phase only"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 4096,
   "documented": "0x1000 - 0x1001",
   "name": "Charged energy total",
   "description": "Lifetime energy on the AC port; not for billing.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 4098,
   "documented": "0x1002 - 0x1003",
   "name": "Charging sessions total",
   "description": "",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  }
 ],
 "integration": {
  "summary": "Every 10 s or faster, write 0x55AA to 0x0D00 (heartbeat); write 1 to 0x0D05 (release) and the current limit as a float to 0x0302 with function 16. Read 0x0100 (EVSE state), 0x0E00 (error), 0x0512 (power) and 0x0B02 (session energy).",
  "minimum_registers": [
   {
    "table": "holding_register",
    "address": 3328,
    "why": "Heartbeat from the energy manager"
   },
   {
    "table": "holding_register",
    "address": 3333,
    "why": "Charging release"
   },
   {
    "table": "holding_register",
    "address": 770,
    "why": "Charging current limit"
   },
   {
    "table": "holding_register",
    "address": 256,
    "why": "EVSE state"
   },
   {
    "table": "holding_register",
    "address": 3584,
    "why": "Active error code"
   },
   {
    "table": "holding_register",
    "address": 1298,
    "why": "Total charging power"
   },
   {
    "table": "holding_register",
    "address": 2818,
    "why": "Session energy"
   },
   {
    "table": "holding_register",
    "address": 3332,
    "why": "1- or 3-phase request"
   }
  ],
  "enable": "Set DIP switches S1-4 and S1-5 to ON and reboot; the wallbox then runs as a Modbus satellite at address 50 (10-50 can be set with the MENNEKES configuration tool).",
  "watchdog": "The energy manager must write 0x55AA to 0x0D00 at least every 10 s. What happens when it stops depends on 0x030E: 0 keeps charging with the last values received, 1 pauses charging, 6-32 charges at that fallback current. With no fallback active and no EV connected, the wallbox goes to error state (code 200 = energy manager not available); 0x0E01 shows when the fallback is active.",
  "quirks": [
   "0x0302 = 0 means unlimited, not stop; to pause, write a value between 0.01 and 5.99 A.",
   "Floats and uint32 values need function 16 for writes; function 6 is only for single-register values.",
   "Requested Phases (0x0D04) is ignored unless 0x030C reads 2 (phase-switch capable hardware, 11 kW models)."
  ],
  "setup": [
   "RS-485: Modbus A = +, B = -.",
   "Default 57600 baud, 8 data bits, no parity, 2 stop bits; other rates from 9600 to 57600 baud and 8E1 / 8O1 framing can be chosen with the MENNEKES configuration tool."
  ],
  "gotchas": [
   "After a reboot or communication error the wallbox needs 0x0D00, 0x0D05 and 0x0302 written again before it returns to idle and charges.",
   "MENNEKES recommends changing the current no faster than every 5 s and avoiding frequent pauses; some EVs (e.g. Fiat 500e) need the current set to 0 before a phase change."
  ]
 },
 "page": "https://easymodbus.com/modbus-register-maps/mennekes/amtron-4you-300-compact-start",
 "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."
}
