{
  "spec_version": 1,
  "slug": "alpitronic-hypercharger",
  "manufacturer": "Alpitronic",
  "model": "Hypercharger HYC50 / HYC150 / HYC200 / HYC300 / HYC400 (DC)",
  "category": "DC charger",
  "supplier_url": "https://www.alpitronic.it/en/hypercharger/",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 0,
      "count": 2,
      "name": "Time",
      "data_type": "UInt32",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Unix time."
    },
    {
      "address": 2,
      "count": 1,
      "name": "NumConnectors",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Number of physical connectors: 1-4."
    },
    {
      "address": 3,
      "count": 1,
      "name": "StationState",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = available, 8 = unavailable, 10 = faulted."
    },
    {
      "address": 4,
      "count": 2,
      "name": "TotalPowerDrained",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Total power drained from the grid by all connectors."
    },
    {
      "address": 6,
      "count": 12,
      "name": "SerialNumber",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Charging station serial number, null-terminated 24-character string."
    },
    {
      "address": 18,
      "count": 1,
      "name": "LoadManagementEnabled",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Whether an external load management controller has control over the power drained from the grid."
    },
    {
      "address": 30,
      "count": 16,
      "name": "ChargepointId",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "OCPP ChargepointId, null-terminated 32-character string."
    },
    {
      "address": 46,
      "count": 1,
      "name": "MajorVersion",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "HYC software major version."
    },
    {
      "address": 47,
      "count": 1,
      "name": "MinorVersion",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "HYC software minor version."
    },
    {
      "address": 48,
      "count": 1,
      "name": "PatchVersion",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "HYC software patch version."
    },
    {
      "address": 49,
      "count": 2,
      "name": "Current maximum VAR inductive",
      "data_type": "UInt32",
      "units": "VAR",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Currently possible inductive VAR value in 1 VAR steps, e.g. 15000."
    },
    {
      "address": 51,
      "count": 2,
      "name": "Current maximum VAR capacitive",
      "data_type": "UInt32",
      "units": "VAR",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Currently possible capacitive VAR value in 1 VAR steps, e.g. -15000."
    },
    {
      "address": 100,
      "count": 1,
      "name": "Connector 1 state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = available, 1 = preparing tag ID ready, 2 = preparing EV ready, 3 = charging, 4 = suspended EV, 5 = suspended EVSE, 6 = finishing, 7 = reserved, 8 = unavailable, 9 = unavailable firmware update, 10 = faulted, 11 = unavailable connector object."
    },
    {
      "address": 101,
      "count": 2,
      "name": "Connector 1 charging voltage",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Raw value in centivolts."
    },
    {
      "address": 103,
      "count": 1,
      "name": "Connector 1 charging current",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Raw value in centiamps."
    },
    {
      "address": 104,
      "count": 2,
      "name": "Connector 1 charging power",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 106,
      "count": 1,
      "name": "Connector 1 charge time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Time since the charge started."
    },
    {
      "address": 107,
      "count": 1,
      "name": "Connector 1 charged energy",
      "data_type": "UInt16",
      "units": "kWh",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Energy of the current session; raw value is kWh/100."
    },
    {
      "address": 108,
      "count": 1,
      "name": "Connector 1 state of charge",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Raw value is %/100."
    },
    {
      "address": 109,
      "count": 1,
      "name": "Connector 1 type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = charge point, 1 = CCS DC, 2 = CHAdeMO, 3 = CCS AC, 4 = GB/T."
    },
    {
      "address": 110,
      "count": 2,
      "name": "Connector 1 maximum charging power",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum charging power determined by the EV and the Hypercharger."
    },
    {
      "address": 112,
      "count": 2,
      "name": "Connector 1 minimum charging power",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum charging power determined by the EV and the Hypercharger."
    },
    {
      "address": 118,
      "count": 4,
      "name": "Connector 1 vehicle ID",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "8-byte vehicle ID, e.g. 00:00:AA:BB:CC:DD:EE:FF."
    },
    {
      "address": 122,
      "count": 10,
      "name": "Connector 1 idTag",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "idTag as a 20-character string."
    }
  ],
  "holding_registers": [
    {
      "address": 0,
      "count": 2,
      "name": "Charging station max power",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Active power limit for connector 0, i.e. the whole charging station."
    },
    {
      "address": 2,
      "count": 2,
      "name": "Charging station target reactive power",
      "data_type": "Int32",
      "units": "VAR",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Requested VAR power for connector 0: inductive = +, capacitive = -."
    },
    {
      "address": 100,
      "count": 2,
      "name": "Connector 1 max power",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Active power limit for connector 1."
    },
    {
      "address": 102,
      "count": 2,
      "name": "Connector 1 target reactive power",
      "data_type": "Int32",
      "units": "VAR",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Requested VAR power for connector 1; the manual advises using connector 0 only."
    }
  ],
  "combined_registers": [],
  "notes": "MIRROR-SOURCED. Source: Alpitronic \"Hypercharger - Load management manual\", version 2-3, chapter 3 \"Modbus TCP server\" (Tables 10-13) for the HYC50/150/200/300/400 Hypercharger DC chargers. The vendor's download portal (doc.hypercharger.it) sits behind a partner login, so the manual was read from the copy in the Gekko device library (https://devicelib.my-gekko.com/download_docu.php?id_pk=292&ext=pdf&fname=EN_HYC_XX_MAN_Load+management+manual+Software+version+2.3.x.pdf), which is the file the SHA-256 below belongs to. BayWa r.e.'s SolarShop copy serves the older 'hypercharger - LoadManagement' version 1-17 instead (no connector-0 VAR registers 49/51 or connector-0 SetReactivePower at holding 2, SoC %/10), so it is not the source of these rows. The manual states port 502, big-endian byte order (the lower address holds the most significant byte) and function codes 3, 4 and 16. Input registers 0-51 describe the station; per-connector input registers use the first address digit for the connector (1xx = connector 1, 2xx = connector 2, 3xx = connector 3, 4xx = connector 4) and connector 1 is transcribed here. Holding registers 0 and 100 set the active power limit, 2 and 102 the target reactive power. The manual documents no unit identifier, so unit 1 is a placeholder. Left out: connector registers X14/X16 (deprecated VAR duplicates of registers 49/51) and X32 (INT64 total charged energy, a type the app does not have). Writing holding registers requires the configuration key ModbusLoadManagementEnabled; the server itself is enabled by default. File identity: SHA-256 f81911c3effe34d22d3b89dbdc0ba5b934f77851da749f0d8e0dca3f290b8f3c (PDF, downloaded 2026-11-07). The mirror is used only because the vendor publishes this load-management manual to partners rather than on its public portal; the document itself is Alpitronic's own, titled \"Hypercharger - Load management manual\", version 2-3."
}
