In Case you or others are looking for these answers I will post a few links and a short description regarding the Smart Battery Data Specification v1.1 and System Management Bus (SMBus) v1.1.
Battery Address (Bren Tronics == 0x16) -> LinkMissing || I have seen a sheet with standard addresses for charger, battery, and other devices, but I can't seem to find it. Feel free to comment the link in YOU know where to find this and I will add it to the link above.
Smart Battery Data -> Here || This contains all the values/codes you can read/write to a smart battery that complies with SMBus v1.1. It also contains a small introduction on how you read / write to the battery, SMBus functions like Read Block or Read Word. To save some time, pay attention to the exceptions on how you read data from the Battery. almost all "codes" allows you to read a value from 2 bytes + CRC8 (3 bytes total, if your software will utilize a CRC8 check)
SMBus v1.1 -> Here || Smart battery data will show battery related operations, but it uses SMBus (Very close to I2C, but some important differences!) To implement Smart Battery Functions, you will need to understand SMBus and how I2C works.
I2C -> Here || Have a question about I2C? I strongly recommend this web page.
Bren Tronics Implementing the SMBus -> Here || This contains the most common mistakes when implementing SMBus. pay close attention to the maximum distance from master->slave without repeaters or other more clever ways to provide pull-up Voltage.
If any link is broken or for some reason the specification sheets is taken down from the "WWW". Tag me in the post, I do have the PDF-files stored offline.
If you need to find addresses on I2C, the RaspberryPI 3b+ has I2C GPIO.
As long as you have the correct pull-up resistance, you can do like I have, and find the battery address using RPI.
Another thread on RaspberryPI + i2cDetect("AddressFinder") -> Here