It's been a while, but I've been experimenting a bit. Bought a CANbus and RS485 devices to try and run down confirming how to talk to the Megarevo. Turns out the published doc above is correct.
I was going down the rathole of trying to mimic the RS485 protocol from Pylontech (one of the supported batteries) and all I could see (every 1s) from the Megarevo is listed below. This is the sequence to request manufacturer information from the BMS, but no matter what I responded, the inverter didn't seem to take.
The unit I used to snoop the RS485 bus was:
https://www.robotshop.com/ca/en/waveshare-rs485-to-ethernet-converter-us-plug.html
Pylontech manual:
https://github.com/Frankkkkk/python-pylontech/blob/master/RS485-protocol-pylon-low-voltage-V3.3-20180821.pdf
I then decided to dive into the CANbus world and got a Waveshare unit for my Raspberry Pi:
https://www.waveshare.com/2-ch-can-fd-hat.htm . After a headache inducing amount of driver configuration I was able to capture output from the Megarevo and a battery vendor I have (Canbatt - CL120-48), which happens to broadcast the same BMS protocol the Megarevo needs.
The Megarevo broadcasts an empty message on 0x305 every one second.
The values corresponded to what was displayed on the BMS screen:
I flipped the Megarevo into a Battery-Config of Lithium and it was able to stay live and started to display the proper SOC numbers on the display.
My next steps are to see if I can read my Overkill BMS with home-built 280Ah battery pack and publish the stats onto the CAN bus with the message ids listed above. Based on what I'm seeing, the Megarevo will take the published values.