Renogy BT-2 and Communication Hub

Wondering if anyone can assist with my predicament. Renogy only created a phone app to monitor their devices. Whereas this is handy, it is not conducive to integrating into HA.

I have 2 solar installations.

  • A small one using a Renogy Wanderer 10A utiliing @Olen BT-1 set up (works great)

  • A larger one with a Renogy 48V 3500W Inverter Charger with a communications hub and BT-2 and unable to monitor with HA

My attempts to decode the communications of the BT-2 has thus far failed and I cannot seem to wrap my head around the process so wondering if anyone else has any ideas or solutions.

What I have tried is:

  • Trying Olenā€™s BT-1 solution (did not work)
  • Trying a few other similar
  • Using the Renogy RS485 to USB cable on a pi

What I am wondering is if I setup a dedicated tablet/phone running the Renogy app, is there a way to scrap or otherwise extract the data from the device and send to HA?

My ultimate goal is to be able to monitor:

  • PV wattage, volt, and current
  • AC input wattage
  • AC (load) output wattage, volts, amps
  • DC/battery charging watts, amps
  • DC/battery volts, current, temp

What options are there? I am happy with the device itself but regret the purchase due to not understanding the limitations of monitoring.

1 Like

That was actually how my project started out. I set up an android tablet with the vendor app running. Then I ran an automatic screenshot every 10 minutes or so. The image was then automatically sent by email to a dedicated address, where the attachment was processed and sent through an ocr-scan, and the resulting text was then interpreted and whatever info I was able to retrieve was then added to HA.

As you can imagine this was not very reliable in the long runā€¦

I think your best bet is to continue the effort of reverse engineering either the official app, or the protocol directly. Unfortunatly, without access to the equipment, that is quite hard to do.

I still have had 0 luck getting anything to work. Would you mind sharing how you captured a screen shot and emailed it and then ran it through an ocr to get usable data?

I have plenty of hardware available to dedicate to accomplishing this.

I donā€™t remember the details, but I believe I used the app ā€œTaskerā€ on a simple Android tablet to start the monitoring app, wait for a few seconds, and then take a screenshot, and send the screenshot either using a HTTP POST or by email (canā€™t remember exactly) to a server and then go back to sleep again.

When the image was received, I pushed it through some OCR application to extract the text, and then a python script parsed the resulting text and pushed data to HA with MQTT.

But his whole process was highly unreliable, and quite often the OCR would give unexpected results which gave me the wrong values in HA. Other times, tasker was not able to start the vendor application, or it did not wait long enough to take the screenshot if the bluetooth connection failed for some reason and the app took longer time to start up.
And sometimes the whole process would stop, and there was no way to restart it without travelling up there and restart the tablet.

And ALSO, a tablet is using much more power than you would think when running 24/7 like that. So after a few days without much sun, the solar charged batteries would be empty, and the whole project caused more problems than it solved.

Thank you. Iā€™m just making myself sick trying to figure something out to be able to monitor this unit. I canā€™t seem to wrap my head around a solution - or get through some of the alternatives. I emailed Renogy last night again begging and offering to pay to get something in place to allow recording from the controller.

I still think your best bet is to reverse engineer the protocol - or the vendor app.

Dump the traffic between the vendor app and the device to a file using e.g. wireshark while you note down the timestamps and what you do in the app and the values you can see in the app.
Study the traffic in the dump-file, and try to understand how requests and responses are encoded and what they mean. Usually, it is pretty easy to get the basic stuff, like reading power values etc.

For example. You might see a packet from the device with the value like FE80003E8 and you see in your notes that this was sent just when the app updated the SOC value to 100%.
Then, later you see that you get a packet with FE80003E3 and the app showed 99.5%, and then you find a packet with FE80003DE and the app showed 99%.
Ok, now you can be pretty sure that packets starting with FE80 will contain the SOC-value, and that it is returned in 1/10 of a percent. (3E8 = 1000, 3E3 = 995 and 3DE = 990).

Then you have to see if there are any other packets with FE80, but with values that are clearly NOT the SOC. How do you interpret them? How do you seperate them from the SOC values?
Do you need to send anything to the device to get the SOC, or is is sent unsolicited every time it changes?

Try to send the same things to the device that you see the app is sending from a computer with a bluetooth dongle.
Try to understand the responses you get back again.
Try to remove requests you do not understand, and see if they are superfluous.
Sometimes there are ā€œsecretā€ handshakes that are not aesy to understand, but that can just be sent ā€œrawā€ and you donā€™t really need to understand what they are for. Just live with that.

After a while, you will be able to make a connection, send requests and interpret responses from the device using a computer, just like the app is doing on your phone.
THEN you can start documenting the parts of the protocol you have decoded so far and can start scripting the process.

1 Like

Thanks again. Iā€™ll try again and spend more time with it.

I wasnā€™t able to get wireshark for android but used a dump file and then reviewed on a pc. I wonder if I could use an android emulator to run the app from the pc (bluetooth needed) to get a better real-time view.

The only manual interaction with the app (after opening) is to select either the charge controller or the battery to get detailed status. The cover page loads the devices with almost no data reflected until you select the device.

Not for the equipment you have specifically, but for the modbus port directly and renogy equipment.

The above guys seem to be from the T6 Forum so possibly worth poking around there too, you might not get the specific answers you need, but starting points help!

Renogy just released a new device, the Renogy One M1, that allows better monitoring, historical data logs, and supposedly an API on the horizon. I guess Iā€™ll order it and see how it goes.

Though it has the magic words ā€œSubscriptionā€ in it.
Only 2.4Ghz wifi.
30 days local storage.

Interestingly it does have zigbee, so it beats most off the shelf IoT stuff.

It looks like an interesting device, but I think Iā€™ll wait for the reviews before thinking about buying one :wink:

I suspect that Iā€™m not itā€™s target market anyway!

Agreed on your points but Iā€™m just so frustrated with this. I email then back and forth every couple of days letting them know how disappointed I am that after shelling out so much $$ to their brand, I cannot simply record my systemā€™s usage. Iā€™m actually not a zigbee fan and have been reducing that type of device in my home but may rethink thatā€¦ time will tell.

For ZigBee, Iā€™m heading towards using more zigbee stuff when I can, as most IoT devices like phoning home for no reason, needing apps to log into a server somewhere just to provision stuff. Completely unnecessary imho.

For my own solar project, Iā€™m writing some python to talk to my DCDC50S and 100Ah ā€˜smartā€™ battery via modbus, but Iā€™m struggling how to figure out how to integrate with HAā€™s energy subsystem. ā€œJust use these integrationsā€ just isnā€™t helpful! (this is via modbus and a USB cable)

Iā€™m guessing that Iā€™ll need a MQTT lashup and write my own yaml template sensors :wink:

Greetings Gentlemen,

Below is a link to a copy I have of the Renogy Modbus Protocol specification in my Google Drive. I was looking at using a Raspberry Pi to build a solar charge monitoring system. Iā€™ve had little time to work on the project so I would appreciate it if you can post any efforts as they evolve.

https://drive.google.com/drive/folders/1ef5swSX0gj6rPqwKzsz8pRXqUR3yi8IS?usp=sharing

Hopefully this will assist in answering some questions assisting in your efforts.

Jim

1 Like

Jim,

Documentation is always welcomed! Many Thanks!

-S

1 Like

Helping a client look for the same. I work for a company that makes an IOT gateway which has bluetooth and other radios on it.
I found this after searching every month for something new out there and thought Iā€™d share with the crowd. Iā€™m hoping I can get a dev to help me make this work on our gateway as it is being used out at a remote site over LTE connection.
As another path, I considered if an ESP32 with ESPhome can handle this for you all as I have a few of those with an RS485->TTL transceiver. ESPhome would set up the right sensors for HA.

1 Like

With bluetooth being available now on home assistant, an app in home assistant that could communicate directly with the BT2 would be fantastic. Anyone?

I am using the modbus integration in home assistant with the Renogy usb rj45 cable. Iā€™m collecting data from a Renogy Rover Elite 40a Charger/Controller and a Renogy 100ah battery. Works great so far. I have everything I would want directly in home assistant. No more stupid Bluetooth app.

Hi All

Renogy will be releasing a new product on June 1st, the One Core

What is nice about this is that its a hub for all Renogy Device via BT/Wifi/Zigbee and it also has an RJ-485 port. Wondering if we can tap into the RJ-485 port capture all the data that ONE Core is connected to?

Possible?

It will likely be the same as the Renogy M1 - will upload the data to their cloud but not be reachable otherwise.

Youā€™re right. The M1 also has an RS485 port. OK, too bad.