Skip to main content

Supported BMS

Currently supported

• ANT BMS

Disabled by default since driver version v1.0.0 as it causes other issues. More informations can be found in Add other use case (grid meter) or ignore devices - ANT BMS check missing and if it was fixed. See How to enable a disabled BMS to enable the BMS.

• Daly Smart BMS

Including:

- Sinowealth based Daly BMS

Disabled by default since driver version v0.14.0 as it causes other issues. See How to enable a disabled BMS to enable the BMS.

Daly app

• ECS GreenMeter with LiPro

• HeltecModbus SmartBMS (YanYang BMS)

Communication to the Heltec SmartBMS (which is a rebranded YYBMS) via Modbus/RS485.

• HLPdataBMS4S

JKBMS / Heltec BMS

Bluetooth connection supported

• Life/Tian Power

Including:

- Revov

• MNB spi BMS

Disabled by default as it requires additional manual steps to install.

• Renogy BMS

• Seplos

So far only tested on version 16E.

• Seplos v3

Working on the Seplos v3 BMS which uses different (modbus) protocol than the earlier Seplos models.

• Smart BMS

Bluetooth connection supported

Including:

- LLT Power

- Jiabaida JDB BMS

- Overkill Solar

- Other BMS that use the Xiaoxiang phone app

AndroidiOS
Xiaoxian appXiaoxian app

Planned support

You can view the current BMS requests to see which BMS support is requested and vote for the BMS you want to be supported.

Add/Request new BMS

There are two possibilities to add a new BMS.

Add by opening a pull request

Fork the repository and use the battery_template.py as template to add a new battery. As soon as the BMS works you can open a pull request (PR) to merge it.

Here is a short checklist that should help you:

  • Add your battery class and battery class import in alphabetical order in the etc/dbus-serialbattery/dbus-serialbattery.py
  • Add your BMS to the BMS feature comparison page by editing docs/docs/general/features.md
  • Add your BMS to the Supported BMS page by editing docs/docs/general/supported-bms.md
  • Do not import wildcards *
  • If available populate self.max_battery_charge_current and self.max_battery_discharge_current with values read from the BMS
  • If available populate self.unique_identifier with a unique value to distinguish the BMS in a multiple battery setup
  • If your BMS don't run with the default settings add installation notes to the How to install, update, disable, enable and uninstall docs/docs/general/install.md
  • If your BMS needs custom settings that the user should be able to change, add it below the ; --------- BMS specific settings --------- section in the etc/dbus-serialbattery/config.default.ini
  • Make sure the GitHub Actions run fine in your repository. In order to make the GitHub Actions run please select in your repository settings under Actions -> General -> Actions permissions the option Allow all actions and reusable workflows. Check also in your repository settings under Actions -> General -> Workflow permissions if Read and write permissions are selected. After this changes you have to make a new commit, if you don't see any Actions run. This will check your code for Flake8 and Black Lint errors. Here is a short instruction on how to set up Flake8 and Black Lint checks in VS Code. This will save you a lot of time.

Request by opening a discussion

Start a new discussion in the New BMS request category. Please add also the protocol documentation which you can request from the manufacturer/seller. The more upvotes the BMS request has, the higher is the priority.

If you would like to donate hardware or would like to help testing a specific BMS please get in contact over the discussions section.

Which BMS are you using?

Please let us know, which BMS you are using with the driver by upvoting your BMS: Which BMS are you using?