Skip to content

CT002/CT003 protocol #111

@rweijnen

Description

@rweijnen

Hello,

If you are interested in emulating CT002/CT003 I did some discovery on Marstek Venus E and CT002/CT003, see github.

Of special interest might be discovery and query script that are in CT002 folder:
https://github.com/rweijnen/marstek-venus-e-firmware-notes/blob/main/CT002/discover-ct.py
https://github.com/rweijnen/marstek-venus-e-firmware-notes/blob/main/CT002/query-ct-meter.py

To query meter send UDP to port 12345 with the following data:
<SOH><STX>50|HMG-50|acd9XXXXXXXX|HME-3|009bXXXXXXXX|0|0<ETX>3e
where you need to provide meter device mac as shown in Marstek app (which is first 8 of network mac + last 4 of BLE mac), it expects battery MAC which I presume is used to return special data in multi battery scenario.

Meter returns something like:
<SOH><STX>103|HME-3|009bXXXXXXXX|HMG-50|acd9XXXXXXXX|-682|-632|-649|-1963|0|0|0|0|-88|35|0|0|0|0|0|0|0|0|0|0<ETX>1f

Where data is seperated by | character.

By disassembling firmware I was able to map the data like so:

{
  "meter_dev_type": "HME-3",
  "meter_mac_code": "009bXXXXXXXX",
  "hhm_dev_type": "HMG-50",
  "hhm_mac_code": "acd92XXXXXXX",
  "A_phase_power": "-682",
  "B_phase_power": "-632",
  "C_phase_power": "-649",
  "total_power": "-1963",
  "A_chrg_nb": "0",
  "B_chrg_nb": "0",
  "C_chrg_nb": "0",
  "ABC_chrg_nb": "0",
  "wifi_rssi": "-88",
  "info_idx": "35",
  "x_chrg_power": "0",
  "A_chrg_power": "0",
  "B_chrg_power": "0",
  "C_chrg_power": "0",
  "ABC_chrg_power": "0",
  "x_dchrg_power": "0",
  "A_dchrg_power": "0",
  "B_dchrg_power": "0",
  "C_dchrg_power": "0",
  "ABC_dchrg_power": "0"
}

Happy to help/assist if you'd like to take this on...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions