{
  "spec_version": 1,
  "slug": "fox-ess-h3",
  "manufacturer": "FoxESS",
  "model": "H3 series hybrid",
  "category": "Solar inverter",
  "supplier_url": "https://www.foxess.com/",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 247,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 31002,
      "count": 1,
      "name": "PV1 power",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31005,
      "count": 1,
      "name": "PV2 power",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31026,
      "count": 1,
      "name": "Meter power R",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Signed; positive means export."
    },
    {
      "address": 31027,
      "count": 1,
      "name": "Meter power S",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Signed; positive means export."
    },
    {
      "address": 31028,
      "count": 1,
      "name": "Meter power T",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Signed; positive means export."
    },
    {
      "address": 31036,
      "count": 1,
      "name": "Battery charge/discharge power",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Signed; positive means discharging."
    },
    {
      "address": 31038,
      "count": 1,
      "name": "Battery state of charge",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 32012,
      "count": 2,
      "name": "Grid consumption total",
      "data_type": "UInt32",
      "units": "kWh",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 41000,
      "count": 1,
      "name": "Work mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = self use, 1 = feed-in first, 2 = backup."
    },
    {
      "address": 41009,
      "count": 1,
      "name": "Minimum state of charge",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 41010,
      "count": 1,
      "name": "Maximum state of charge",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 44000,
      "count": 1,
      "name": "Remote control enable",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled, 1 = enabled."
    },
    {
      "address": 44001,
      "count": 1,
      "name": "Remote control timeout",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Seconds after the last write before the inverter reverts to the work mode."
    },
    {
      "address": 44002,
      "count": 2,
      "name": "Remote active power setpoint",
      "data_type": "Int32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Signed; negative values charge the battery."
    }
  ],
  "combined_registers": [],
  "notes": "Register map from the evcc template https://raw.githubusercontent.com/evcc-io/evcc/master/templates/definition/meter/fox-ess-h3.yaml, cross-checked against nathanmarlor/foxess_modbus (inverter profiles for the H3 series). Reached through the FoxESS LAN/WiFi dongle as Modbus TCP on port 502 with unit ID 247; the same map is served over RS-485 on the inverter's RS-485 port. All entries are holding registers. Meter power is signed per phase, positive = export. Remote control (0xABE0-0xABE2) requires the remote-control enable register; the inverter falls back to the work mode when the remote timeout expires. Battery compatibility: Fox ESS pairs its hybrid inverters with its own high-voltage battery range - the HV2600 module stack (https://en.fox-ess.com/hv-batteries/) and the EP packs (https://www.fox-ess.com/products/battery) - though the cited pages do not state the pairing for this model explicitly. Mind the name: Fox ESS also sells a battery line called H3, so 'H3' on their site can mean the battery, while this seed is the H3 hybrid inverter."
}
