wildmountainfarms / solarthing

Monitors an Outback MATE, Renogy Rover - MPPT Charge Controller and EPEver Tracer. Integrates with Grafana, PVOutput and more!
https://solarthing.readthedocs.io
MIT License
130 stars 28 forks source link

Renogy 30A Dual-Input DC-to-DC MPPT On-Board Battery Charger #18

Closed gecko951 closed 3 years ago

gecko951 commented 3 years ago

Hi, I'm interested in trying solarthing with my Renogy 30A Dual-Input DC-to-DC MPPT On-Board Battery Charger. The device uses an RS485 port and I was curious if solarthing has been tested to work in this configuration? Sounds like the other monitoring option is the Renogy BT-2 but many reviews seem to be disappointed in the quality of the app. I was going to purchase the Renogy rs485-to-usb-serial-cable but their site says its only for updating the FW on their Lithium batteries so I'm also checking with their support.

retrodaredevil commented 3 years ago

When the vehicle is off the "chargingCurrent" seems to show 0 and when the vehicle is running (alternator charging) the value looks like "chargingCurrent" : 15.16, so I created a panel with this query....

Does this happen when the solar is also charging? As far as I know chargingPower should be the sum of pvWattage and generatorPower (or until I update SolarThing loadPower).

gecko951 commented 3 years ago

I checked the debug log and found an example of ON ALTERNATOR and ON SOLAR. Tomorrow I will check for output that includes both types of charging at the same time.

ON ALTERNATOR "packetType" : "RENOGY_ROVER_STATUS", "maxVoltage" : 12, "ratedChargingCurrent" : 30, "ratedDischargingCurrent" : 0, "productType" : 0, "productModelEncoded" : "ICBSQkMzMEQxUy1HMSAgIA==", "softwareVersion" : 256, "hardwareVersionString" : "V00.01.00", "productSerialNumber" : 1, "controllerDeviceAddress" : 1, "batteryCapacitySOC" : 100, "batteryVoltage" : 14.8, "chargingCurrent" : 25.3, "controllerTemperatureRaw" : 23, "batteryTemperatureRaw" : 15, "loadVoltage" : 13.1, "loadCurrent" : 30.14, "loadPower" : 395, "inputVoltage" : 0.0, "pvCurrent" : 0.0, "chargingPower" : 374,

ON SOLAR "packetType" : "RENOGY_ROVER_STATUS", "maxVoltage" : 12, "ratedChargingCurrent" : 30, "ratedDischargingCurrent" : 0, "productType" : 0, "productModelEncoded" : "ICBSQkMzMEQxUy1HMSAgIA==", "softwareVersion" : 256, "hardwareVersionString" : "V00.01.00", "productSerialNumber" : 1, "controllerDeviceAddress" : 1, "batteryCapacitySOC" : 49, "batteryVoltage" : 12.1, "chargingCurrent" : 0.59, "controllerTemperatureRaw" : 21, "batteryTemperatureRaw" : 16, "loadVoltage" : 12.2, "loadCurrent" : 0.0, "loadPower" : 0, "inputVoltage" : 17.3, "pvCurrent" : 0.41, "chargingPower" : 7,

retrodaredevil commented 3 years ago

Yup, that looks correct to me. In the JSON data, load or alternator current/voltage/power will be represented by load***. However, with the new SolarThing update (I released < 5 minutes ago), in GraphQL you can query generatorPower and should get your desired result.

Now if you want charging power (pv + alternator), use chargingPower. If you just want pv, use pvWattage. If you just want alternator, use generatorPower. Also, if you query for isDcdc, it should give you true. If it doesn't, then I need to fix something.

Note that chargingPower isn't going to be exactly pvWattage + generatorPower. There's going to be some inefficiencies in there.

gecko951 commented 3 years ago

Sorry if this an obvious question but to update solarthing in-place do I just need to...

curl https://raw.githubusercontent.com/wildmountainfarms/solarthing/master/other/linux/clone_install.sh | sudo bash

retrodaredevil commented 3 years ago

You can look at updating.

You'll also have to update GraphQL separately (or only update GraphQL as that's what has the changes you want).

cd /opt/solarthingl
git pull
program/graphql_download_solarthing.sh

Do not try to rerun the install script. If you do, it will fail when it tries to reclone solarthing.

gecko951 commented 3 years ago

Also here is another debug log which has some solar and some alternator charging at the end of the day.

nanoiot_log_debug.zip log_debug_2021.02.15-1.log.gz

retrodaredevil commented 3 years ago

Also here is another debug log

Looks like that's from today UTC, so that only has 17 minutes worth of log info. If you want me to look at Feb 15's logs (UTC), you can give me /opt/solarthing/program/rover/logs/log_debug_2021.02.15.log. Or it might be /opt/solarthing/program/rover/logs/log_debug_2021.02.15-1.log.gz

gecko951 commented 3 years ago

Looks like it pulled in updates for everything and I have restarted the solarthing-rover service.

nanoiot:/opt/solarthing$ git pull remote: Enumerating objects: 463, done. remote: Counting objects: 100% (463/463), done. remote: Compressing objects: 100% (145/145), done. remote: Total 349 (delta 210), reused 288 (delta 152), pack-reused 0 Receiving objects: 100% (349/349), 183.33 KiB | 972.00 KiB/s, done. Resolving deltas: 100% (210/210), completed with 88 local objects. From https://github.com/wildmountainfarms/solarthing ef744a1..760bb2c master -> origin/master

retrodaredevil commented 3 years ago

Did you also run the commands to update the GraphQL program? I think that's where the changes you want are. You'll end up restarting solarthing-graphql. You can leave the rover program running how it is if you'd like.

The debug logs will still report alternator/generator stuff as load***. But in GraphQL there will be new fields you can query for. I try not to change much in the main SolarThing program to keep everything compatible. (SolarThing updates have been backwards compatible ever since the middle of 2019).

gecko951 commented 3 years ago

OK, yes graphql is updated and I'm going to shutdown and move the nanoiot back to my vehicle. :)

nanoiot:/opt/solarthing$ cd program/ gecko951@nanoiot:/opt/solarthing/program$ ./graphql_download_solarthing.sh Going to download version: 2021.2.0 GraphQL --2021-02-16 00:55:15-- https://github.com/wildmountainfarms/solarthing/releases/download/v2021.2.0/solarthing-graphql-2021.2.0.jar Resolving github.com (github.com)... 140.82.112.4 Connecting to github.com (github.com)|140.82.112.4|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://github-releases.githubusercontent.com/195026020/78f47500-6efd-11eb-9b75-94997c6b598b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210216%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210216T005515Z&X-Amz-Expires=300&X-Amz-Signature=703f06530c745d9c798e65f9338dea1974e97b0973a3ae9a163d2bad9fe22290&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=195026020&response-content-disposition=attachment%3B%20filename%3Dsolarthing-graphql-2021.2.0.jar&response-content-type=application%2Foctet-stream [following] --2021-02-16 00:55:15-- https://github-releases.githubusercontent.com/195026020/78f47500-6efd-11eb-9b75-94997c6b598b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210216%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210216T005515Z&X-Amz-Expires=300&X-Amz-Signature=703f06530c745d9c798e65f9338dea1974e97b0973a3ae9a163d2bad9fe22290&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=195026020&response-content-disposition=attachment%3B%20filename%3Dsolarthing-graphql-2021.2.0.jar&response-content-type=application%2Foctet-stream Resolving github-releases.githubusercontent.com (github-releases.githubusercontent.com)... 185.199.108.154, 185.199.109.154, 185.199.110.154, ... Connecting to github-releases.githubusercontent.com (github-releases.githubusercontent.com)|185.199.108.154|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 22870237 (22M) [application/octet-stream] Saving to: ‘solarthing-graphql-2021.2.0.jar’

solarthing-graphql-2021. 100%[================================>] 21.81M 7.11MB/s in 3.1s

2021-02-16 00:55:19 (7.11 MB/s) - ‘solarthing-graphql-2021.2.0.jar’ saved [22870237/22870237]

Using SolarThing GraphQL Version: 2021.2.0

gecko951 commented 3 years ago

I was able to remove the half a dozen red error messages appearing each time the page refreshed in grafana:

Validation error of type FieldUndefined: Field 'submissions' in type 'Query' is undefined @ 'submissions'

Solarthing Dashboard => Settings => Annotations

Removed the query: Query: query { data:submissions(user:"$user"){ Time:submitTime idle running completed } }

Data Path: data

retrodaredevil commented 3 years ago

That's good to hear. Yeah that dashboard was never meant to be copy-pasted. It's also pretty outdated. Some day I will update it.