Goodwe to pvoutput

Hi ,
I have a goodwe inverter id like to input the data. Can anyone guide me where to start . I have read a few post that people use python and shell but i cam a complete noob when it comes to coding so any help would be great.

Hi,

There are some GoodWe scripts in the Contributed Software section in Help https://pvoutput.org/help.html#integration. Hopefully one of them proves useful.

The following script reads the data from the Goodwe portal and does the upload.

If you can get it running on your PC it should be able to run on an always on raspberry pi with wifi

I upload my data using a simple script that reads a JSON string.
The URL you have to use is https://www.goodwe-power.com/Mobile/GetMyPowerStationByUser?userName=xxx

xxx is of course your username

Today ( aug 27 2018 ) goodwe opened a new website and replaced the android APP.
So i dont have a clue yet what the new URL will be to get my JSON data :frowning:

Update: there is some activity on the sems site : http://sems.com.cn:82/help
All chinese, no idea how it works yet.

I’ve just jumped on the solar bandwagon with a Goodwe inverter so was coming to ask the same question. SEMS seems to be up and running now so I was wondering if anyone has a confirmed way of making this all work before I just dive in and see what happens :slight_smile:

1 Like

It looks like the SEMS portal has been changing (almost daily) with the data that it spits out. From what I can see today it’s moved to reporting data every minute (instead of every 5), but it doesn’t seem to include the amount of power generated other than a running total (which isn’t particularly useful). It also seems to have stopped recording data a few days ago in it’s dashboard, while I can see some stuff on their portal, it doesn’t come down when you extract the data. Maybe there is some way to translate/calculate based on this data?

My brain kicked it a little and V * A = Watts can be used to calculate the power generated from their output. Divide that by 60,000 to get kWh and it’s all good :slight_smile:

Is there anyway to either monitor the inverter directly or other way to extract the data or am I stuck using their portal?

For reference, here is a sample of what it’s providing today:

Time WorkMode Vpv1(V) Vpv2(V) Ipv1(A) Ipv2(A) Vac1(V) Iac1(A) Fac1(Hz) Pac(W) Temperature(℃) Daily Generation(kWh) Total Generation(kWh) HTotal(Hrs) RSSI(%)
09/24/2018 15:58:03 Normal 365.1 359.2 5.8 6 246.4 17 50.08 4294905900 35.3 6.6 6.6 1 40
09/24/2018 15:59:03 Normal 357.7 358 5.9 6 245.5 16.8 50 4294905870 35.6 6.6 6.6 1 40
09/24/2018 16:00:03 Normal 361.2 354.3 5.8 6 246.1 16.6 49.99 4294905829 35.7 6.7 6.7 1 40
09/24/2018 16:01:03 Normal 368.6 374.2 3.9 3.6 245.2 11.3 49.95 4294904437 35.5 6.7 6.7 1 40
09/24/2018 16:02:04 Normal 358.4 361.3 5.9 6 246.7 17 49.95 4294905909 35.5 6.8 6.8 1 40
09/24/2018 16:03:04 Normal 359.7 359 5.9 6 246.9 16.8 50.02 4294905907 35.8 6.9 6.9 1 40

Hi. I have a Goodwe DT 3 phase I’d also be very keen to hear if anyone is managing to upload data to PVoutput?

So I’ve been manually downloading data from SEMS and my energy provider, putting them together into a giant spreadsheet which calculates a bunch of different things for me including a sheet with a pivot table in a format ready to upload to PVOutput. Not automated, but easy enough to maintain and it gives me lots of nice data to look at.

Since then I’ve gotten onto GW2PVO and after much screwing about I’ve ended up with something that looks like it will work for me. This little tool can pull data from the sems portal and push it to PVOutput:

So I have run up a VM with Centos and installed gw2pvo. So far I have manually pushed a bunch of live data up and it’s supposed to be able to work with pushing data in real time, but I haven’t quite worked that out yet. I have, however, scripted a cron job to run each morning and push the live data from the day before up to PVOutput, we will see tomorrow if it works like it should.

Interestingly I’ve also discovered that I can still manually upload the daily data from my spreadsheet and PVO is smart enough to keep both the live data and include the additional daily info too.

long story short, needlesly complicated, but working :smiley:

1 Like

So this has been running for a little while now and I’m starting to wonder about some of the data.

Issue #1: GS2PVO upload sending data to wrong day
I couldn’t get live data working but have a cron job set to upload ‘yesterdays data’ (today-1)each morning, the job appears to run and there is data in pvoutput, although it looks like it’s giving me the data for the day before (today-2) but loaded against yesterday…

I’m sure this is something to do with timezones and when the cron job is running, probably something I can fiddle and fix myself with minor tweaking, even if I just set the job to run at 17:00 which should mean that all the different servers are on the same day by that point… so yesterday is the same yesterday :stuck_out_tongue:

Issue #2: Cron job running at wrong time
My CentOS machine that is doing the above is set to the correct local time zone (AEST (which is UTC +10) but my cron jobs are running 6 hours early (3am in the logs instead of 9am). This makes no sense at all, but is something I am looking into. It might also be the issue with Issue #1 if the SEMS portal and PVOutput are seeing UTC rather than the local time. As above, I’ll try just running this at 17:00 and see what happens.

Issue #3: SEMS portal data - time wrong
The SEMS portal gives me the wrong time data when I export to excel. On screen it’s showing me approximately 7am to 5pm worth of data (and when it’s uploaded (to the wrong day) in PVOutput it’s correct) but when I download that it shows 10am to 9pm. This data is going into my own spreadsheet that tracks everything and is screwing with my numbers. No clue why this is happening either as it doesn’t seem realted to anything else. I can tweak my spreadsheet to offset by some hours, but that’s another forumla in an otherwise stupidly complicated sheet I don’t need.

It seems that my VM running this crashed a couple of weeks ago, that happens from time to time, but it’s back up and running now… except I end in an error. I’ll try again later in the hopes that this is a Goodwe server issue, but is anyone aware of underlying issues with the API?

DEBUG    Starting new HTTPS connection (1): globalapi.sems.com.cn:443
DEBUG    https://globalapi.sems.com.cn:443 "POST /api/v1/Common/CrossLogin HTTP/1.1" 200 474
ERROR    Failed to call GoodWe API
Traceback (most recent call last):
  File "/usr/bin/gw2pvo", line 11, in <module>
    load_entry_point('gw2pvo==1.2.1', 'console_scripts', 'gw2pvo')()
  File "/usr/lib/python3.6/site-packages/gw2pvo/__main__.py", line 116, in run
    copy(args)
  File "/usr/lib/python3.6/site-packages/gw2pvo/__main__.py", line 74, in copy
    data = gw.getDayReadings(date)
  File "/usr/lib/python3.6/site-packages/gw2pvo/gw_api.py", line 75, in getDayReadings
    eday_kwh = data[0]['p']
KeyError: 0

Update 07 August 2019:

To answer my own question, it seems there is a post on github which talks about an error, this seems to have resolved my issue. Nice.