{
  "spec_version": 1,
  "slug": "chint-ech-hybrid",
  "manufacturer": "CHINT",
  "model": "ECH10K-TH-EU hybrid (with CPS ECD500 battery)",
  "category": "Solar inverter",
  "supplier_url": "https://www.chint.com/",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "None",
      "baud_rate": 9600,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 1536,
      "count": 1,
      "name": "Battery voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 1537,
      "count": 1,
      "name": "Battery current",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Signed; positive means charging."
    },
    {
      "address": 1539,
      "count": 1,
      "name": "Battery state of charge",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 1792,
      "count": 2,
      "name": "Total grid power",
      "data_type": "Int32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Signed; positive means import from the grid."
    },
    {
      "address": 1801,
      "count": 1,
      "name": "PV power",
      "data_type": "UInt16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2095,
      "count": 1,
      "name": "Grid current L1",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2096,
      "count": 1,
      "name": "Grid current L2",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2097,
      "count": 1,
      "name": "Grid current L3",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    }
  ],
  "holding_registers": [],
  "combined_registers": [],
  "notes": "Register map from the evcc template https://raw.githubusercontent.com/evcc-io/evcc/master/templates/definition/meter/chint-ech-hybrid.yaml, tested by evcc against a CHINT ECH10K-TH-EU with a CPS ECD500 battery over the EMS RS-485 interface. RS-485 device, 9600 8N1, slave address 1. All entries listed are input registers. Battery power is not a register of its own: it is battery voltage (1536) times battery current (1537), both signed/scaled as shown, so the app can combine the two readings. Battery compatibility: CHINT publishes no compatibility list for the ECH; its own CPS ESSR-05/10/15/20KH1 high-voltage residential battery, built from the CPS ECD500 power control module plus CPS EBM032050LF-H extension modules, is the battery CHINT documents for its hybrid systems - https://en.chintpower.com/upload/img/2025-02/67b827560e410.pdf."
}
