I have a system using 2x ESM48100B3 bats in parallel. In the past I used them with growatt 5000W inverters, but with now RS485 / modbus connection. The Huawei bats use Modbus RU protocol but it's implemented a little out-side of the Modbus spec so I wouldn't expect any non Huawei equipment to be able to communicate with it. After hours of searching I ran into this support article describing a Huawei maintenance tool that can communicate with the batteries, read internal cell voltages etc. from a PC over a custom rs485 cable.
Sadly access to the tool is quite restricted, and Huawei support just spun me round and round when I asked for it.
Long story short I found someone with the tool, and was able to finally connect from my pc and read out the voltages while doing a serial log/sniff.
As I have an EPEver XTRA charge controller & NP2000 inverter that work with the batteries now, I decided to give a go at creating a little c# app that lets me pull data out of the charge controller and the Huawei Batteries...
The code is available here on Github: https://github.com/TruthData/SimpleModbusCommander
This code is proof of concept only, and I can't vouch for its reliability...
as the original poster said ... I have found no way to set the battery ID's... both of my batts seem to be hardcoded to "214". The batteries don't immediately respond to requests.. It seems you have to poll them a few times over a few seconds. before they start responding....
I use a stock EPEver USB-RS485 cable for communications with their charge controller, and followed the instructions on the support article above for building a custom usb-rs485 cable for the Huawei using a $3.50 USB to RS485 Converter FT232 RS-485 Max485 Adapter FTDI FT232RL
I hope the above is a blessing to folks...