diy solar

diy solar

Renogy Devices and Raspberry Pi - bluetooth/WiFi

I'm running this on a Renogy Rover Elite 40a MPPT. If anyone needs any tests performed, I'm willing to contribute anything I can
 
Hi, I'm trying to run this on a Rover 40a MPPT using a super low power sbc. Its working but I'm getting some errors and then it just spits out the error that it has disconnected from the bluetooth BT1. I think it has somehting to do with running influxdb and grafana on the same sbc and its just not powerful enough to keep up with communication.

Anyway, can someone provide clarity as to the actual data reported and the values they represent? Particularly these?

voltage?
current?
power?

vs.

input_voltage?
input_current?
input_power?

vs.

charge_voltage?
charge_power?
charge_current?

Basically, what info is representing the panels, what is representing the battery and what is representing the load?

Also, is there a way to determine the current state of the MPPT? Is that what the "power" parameter is?
 
Does anyone have a working system including solar-monitor, HomeAssistant and showing graphs with Granfana? I'm trying to build it all and it's a kludge trying to tie it all together. Just looking for a howto to see what I'm missing. I got as far as seeing data on MQTT in HomeAssistant but can't seem to make the final connections.

As an old Linux guy, I still have trouble with all the coolio docker stuff and I built it separately so I'm not tied to one persons interpretation and could add things later if needed but when everyone wants to redefine words and expects everyone to just understand is driving me crazy. The old days of Linux were bad when everyone subsituted "foo" for every other word but none of this makes sense
 
Hi,

I'm looking for the ability of my Renogy Bluetooth devices (via BT-1 and BT-2 modules) to connect to a raspberry pi and log the data, and thus have a wifi connection to view my devices when I'm not in Bluetooth range

I found this, which is great, seems to only support the Rover (not batteries or inverters) which is still awesome, but it also requires a wired connection to the Rover so you'll have to use up the port:


Anybody know if something like this exists, bit can take the data off of the existing BT-1/2 module for Renogy smart devices?
Checkout https://github.com/cyrils/renogy-bt1, its simple and reads data from BT-1 type adapters. (Disclaimer: I'm the author of this)
 
Does anyone have a working system including solar-monitor, HomeAssistant and showing graphs with Granfana? I'm trying to build it all and it's a kludge trying to tie it all together. Just looking for a howto to see what I'm missing. I got as far as seeing data on MQTT in HomeAssistant but can't seem to make the final connections.

As an old Linux guy, I still have trouble with all the coolio docker stuff and I built it separately so I'm not tied to one persons interpretation and could add things later if needed but when everyone wants to redefine words and expects everyone to just understand is driving me crazy. The old days of Linux were bad when everyone subsituted "foo" for every other word but none of this makes sense
Yes, I have it running and plotting to Grafana with influxDB.

With HA, you'll have to use mosquitto and set you machine up as a broker (receives the data).

If you have a seperate broker on another machine, you'll have to actived the broker mqtt in the configuation.yaml of HA and it imports the data as entities.
 
Hi, I'm trying to run this on a Rover 40a MPPT using a super low power sbc. Its working but I'm getting some errors and then it just spits out the error that it has disconnected from the bluetooth BT1. I think it has somehting to do with running influxdb and grafana on the same sbc and its just not powerful enough to keep up with communication.

Anyway, can someone provide clarity as to the actual data reported and the values they represent? Particularly these?

voltage?
current?
power?

vs.

input_voltage?
input_current?
input_power?

vs.

charge_voltage?
charge_power?
charge_current?

Basically, what info is representing the panels, what is representing the battery and what is representing the load?

Also, is there a way to determine the current state of the MPPT? Is that what the "power" parameter is?

input_X is solar panels
charge_X is battery
and the third set is load related

as for the connection issues, that just there us a poor connections. I find that sometimes I need to start/stop the script 5 times for it connect and send data. After it connects, it might go 3 to 4 weeks before it disconnects again for whatever reason, and I have to reconnect it manually.

lots of factors can play a role on this (distance, interferemce, and perhaps your Pi/sbc is overloaded as you say?) I'm not too familiar with your sbc, but im using a RPi Zero 2 W soley for this...and it sends the data a Ubuntu Server via mqtt.
 
input_X is solar panels
charge_X is battery
and the third set is load related

as for the connection issues, that just there us a poor connections. I find that sometimes I need to start/stop the script 5 times for it connect and send data. After it connects, it might go 3 to 4 weeks before it disconnects again for whatever reason, and I have to reconnect it manually.

lots of factors can play a role on this (distance, interferemce, and perhaps your Pi/sbc is overloaded as you say?) I'm not too familiar with your sbc, but im using a RPi Zero 2 W soley for this...and it sends the data a Ubuntu Server via mqtt.
Hi thanks for the reply.

I'm using a CHIP by the now defunct Next thing company. Its based off of Allwiner and honestly, its pretty cruddy with only 512mb ram. It runs debian....slowly but has onboard wifi, bluetooth and lipo charging among other things. I have it laying around so I though I'd try it before going to my pi 3b+.
 
input_X is solar panels
charge_X is battery
and the third set is load related

as for the connection issues, that just there us a poor connections. I find that sometimes I need to start/stop the script 5 times for it connect and send data. After it connects, it might go 3 to 4 weeks before it disconnects again for whatever reason, and I have to reconnect it manually.

lots of factors can play a role on this (distance, interferemce, and perhaps your Pi/sbc is overloaded as you say?) I'm not too familiar with your sbc, but im using a RPi Zero 2 W soley for this...and it sends the data a Ubuntu Server via mqtt.

Anyway you could add charging status to your script?
 
Hi thanks for the reply.

I'm using a CHIP by the now defunct Next thing company. Its based off of Allwiner and honestly, its pretty cruddy with only 512mb ram. It runs debian....slowly but has onboard wifi, bluetooth and lipo charging among other things. I have it laying around so I though I'd try it before going to my pi 3b+.
It sounds like your CHIP might be on order of Rasperry Pi Zero....which is ok, if just connects to the BT module and sends the data to a broker on another system. Maybe if you setup you your 3B+ as a broker so you log and analyze the data on your 3b instead? just a thought
 
It sounds like your CHIP might be on order of Rasperry Pi Zero....which is ok, if just connects to the BT module and sends the data to a broker on another system. Maybe if you setup you your 3B+ as a broker so you log and analyze the data on your 3b instead? just a thought

yes I'd say its on par with pi zero w. Its probably just the fact that it can't run everything all at once, influxdb, grafana and the bluetooth script. Its not a big deal like I said, I have a pi 3b+ so.
 
@oedo808

I've been trying to follow what you've been doing and have all of the components installed, but am only having limited success.

I've modified datalogger.py slightly to use the JSON logger to just print the json objects to the console window. Once I get some output, I'll probably write a logger to post to my prometheus instance.

When I run solar-monitor.py, I see the following on the console:
Code:
pi@solarshed-v3:~/solar-monitor $ python3 solar-monitor.py
json logging
console logging
INFO: Adapter status - Powered: True
INFO: Starting discovery...
INFO: Found 32 BLE-devices
INFO: Trying to connect to c4:64:e3:xx:xx:xx...
INFO: Successfully imported SolarLink.
INFO: [regulator] Connecting to c4:64:e3:xx:xx:xx
INFO: Terminate with Ctrl+C
INFO: [c4:64:e3:3c:4b:03] Discovered, alias = BT-TH-E3xxxxxx
INFO: [regulator] Connected to BT-TH-E33C4B03
INFO: [c4:64:e3:3c:4b:03] Discovered, alias = BT-TH-E3xxxxxx
INFO: [regulator] Disconnected

What I'm not seeing are the logging steps where the [regulator] resolves the services and starts monitoring. So, I'm wondering if I still need to configure something here. My device is a Renogy Rover 40A charge controller and my solar-monitor.ini looks like this:

Code:
[monitor]
adapter = hci0
debug = False
temperature = F
# C = Celsius
# K = Kelvin
# F = Farenheit

[regulator]
type = SolarLink
mac = C4:64:E3:XX:XX:XX
reconnect = False

[datalogger]
# this has been recoded to just output json object to console
# it doesn't actually connect to the URL
url = http://server/solar/api/
token = 39129e20be0503937cb72a5f719337cc

Any thoughts on what I might have misconfigured here?
 
@oedo808

I've been trying to follow what you've been doing and have all of the components installed, but am only having limited success.

I've modified datalogger.py slightly to use the JSON logger to just print the json objects to the console window. Once I get some output, I'll probably write a logger to post to my prometheus instance.

When I run solar-monitor.py, I see the following on the console:
Code:
pi@solarshed-v3:~/solar-monitor $ python3 solar-monitor.py
json logging
console logging
INFO: Adapter status - Powered: True
INFO: Starting discovery...
INFO: Found 32 BLE-devices
INFO: Trying to connect to c4:64:e3:xx:xx:xx...
INFO: Successfully imported SolarLink.
INFO: [regulator] Connecting to c4:64:e3:xx:xx:xx
INFO: Terminate with Ctrl+C
INFO: [c4:64:e3:3c:4b:03] Discovered, alias = BT-TH-E3xxxxxx
INFO: [regulator] Connected to BT-TH-E33C4B03
INFO: [c4:64:e3:3c:4b:03] Discovered, alias = BT-TH-E3xxxxxx
INFO: [regulator] Disconnected

What I'm not seeing are the logging steps where the [regulator] resolves the services and starts monitoring. So, I'm wondering if I still need to configure something here. My device is a Renogy Rover 40A charge controller and my solar-monitor.ini looks like this:

Code:
[monitor]
adapter = hci0
debug = False
temperature = F
# C = Celsius
# K = Kelvin
# F = Farenheit

[regulator]
type = SolarLink
mac = C4:64:E3:XX:XX:XX
reconnect = False

[datalogger]
# this has been recoded to just output json object to console
# it doesn't actually connect to the URL
url = http://server/solar/api/
token = 39129e20be0503937cb72a5f719337cc

Any thoughts on what I might have misconfigured here?
this is a connection issue. This happens to me all the time. Sometimes it takes 4 or 5 times to connect. Turn off your DC Home app home bluetooth, confirm you're in good BT range (within 20 feet is good), and just keep trying, stop the script, restart it. It will eventually connect and stay connected (for at least a couple of weeks in my experience).
 
this is a connection issue. This happens to me all the time. Sometimes it takes 4 or 5 times to connect. Turn off your DC Home app home bluetooth, confirm you're in good BT range (within 20 feet is good), and just keep trying, stop the script, restart it. It will eventually connect and stay connected (for at least a couple of weeks in my experience).
Oh SNAP! You weren't kidding. I've been starting it at random intervals all day, but never really several times in a row. Now it's outputting data! I guess I know what I'll be coding later this weekend.

Thanks!
 
this is a connection issue. This happens to me all the time. Sometimes it takes 4 or 5 times to connect. Turn off your DC Home app home bluetooth, confirm you're in good BT range (within 20 feet is good), and just keep trying, stop the script, restart it. It will eventually connect and stay connected (for at least a couple of weeks in my experience).
Oh SNAP! You weren't kidding. I've been starting it at random intervals all day, but never really several times in a row. Now it's outputting data! I guess I know what I'll be coding later this weekend.

Thanks!
oh and just curious, are you running your install as a service? I'm curious how that would work (having to restart a couple times) as a service. I'd rather have it retry a few times, then alert me somehow that the service didn't start on a r-pi reboot.
 
I havent got there yet, as you say, im not sure how to restart it several times. I suspect it would have to be in script itself (and not a service thing)...the service would just start the script, and it would be up to the script to keep it connect to the BT module...I think...right now, im just doing it manually.... I can go 1 to 3 weeks before it disconnects (for some reason) and then manually have to start it up again....its not ideal, for sure.
 
That's all the other software from Olen does. It tries 5 times or so to connect and if it fails it stops.
The service just starts the process when the device boots.
I've also experienced the disconnects every few weeks, so no biggie to restart the Pi Zero. I even set up a rule in openhab that if the MQTT data wasn't received for 4hrs a warning is given and I can remotely restart the PiZero over SSH
 
That's all the other software from Olen does. It tries 5 times or so to connect and if it fails it stops.
The service just starts the process when the device boots.
I've also experienced the disconnects every few weeks, so no biggie to restart the Pi Zero. I even set up a rule in openhab that if the MQTT data wasn't received for 4hrs a warning is given and I can remotely restart the PiZero over SSH
interesting. How long does it wait between retries? Maybe I didn't wait long enough.
 
Back
Top