Plugin: Solar Meter, universal Solar Production meter

Hi Rene,

We have a GoodWe GW6000-DT is it possible to read this with your Solar meter App.

Thanks for your reply.

Hi @Wiep1,

Might be possible. I see that there is one for Domotics and I could try to translate that to Vera. Can you try two things in your browser for me without logging in to their portal first. I am making the assumption you are in the EU. For Australia :

This link https://eu.goodwe-power.com/Mobile/GetMyPowerStationByUser?username=XXXXXXX (substitute XXXXXX with your username) provides a usable JSON output. It requires no password so it still should be possible to scrape data from the GoodWe-servers.

Also this link https://eu.goodwe-power.com/Mobile/GetMyPowerStationById?stationID=XXXXXXX (substitute XXXXXX with your stationID) provides a usable JSON output. Also this doesn’t require a password.

Cheers Rene

Dear Rene,

I tried, 1st link I get this:

{“stationId”:“c205d340-d352-4108-a21b-c76cba24c0e8”,“stationName”:“Bissole”,“station_pic”:“/Content/images/pic.JPG”,“currentPower”:“0.000kW”,“capacity”:“5.000kW”,“value_eDayTotal”:“0.0kWh”,“value_eTotal”:“0.0kWh”,“value_dayIncome”:“EUR0.00”,“value_totalIncome”:“EUR0.00”}]

2nd link:

Error Message:

Sorry, the server request timed out, please contact the administrator!

Login Again

I hope this is helpfull.

Our location: NL

@reneboer, Hi Rene. I have been using the solar meter for some time and it worked fine. I’m not sure when it started failing but I noticed the reported data where not updated anymore. I’m running a SolarEdge converter. Checking the Log file it showed that the API key got truncated after 3 characters. After reverting to version 1.15 it worked fine again. Seems there might have been a change that somehow touches the API call parameters.

Hi @ranneman,
After version 1.5 a change was made for the http request that possibly backfired for SolarEdge. Can you unzip the attached and upload to your Vera?

The truncating is a limit length for error messages, so not to worry about that.
L_SolarMeter1.zip (11.8 KB)

PS: do not use this version with Enphase Remote.

Cheers Rene

Hi @reneboer, I have tested the fix. After reinstalling the 1.18 I installed the lua file and it now shows the data correct.
Thanks for your swift response!

1 Like

HI @reneboer,
I now have 2 x Fronius Primo inverters. Is there a way to sum both values into one devices?

PS - Can you fit any other data into the app display - such as grid in/out?

Could it read the site values rather than the two inverter values?

{
“Body” : {
“Data” : {
“Inverters” : {
“1” : {
“DT” : 76,
“E_Day” : 29594,
“E_Total” : 48670000,
“E_Year” : 9757947,
“P” : 665
},
“2” : {
“DT” : 76,
“E_Day” : 32673,
“E_Total” : 387783.03125,
“E_Year” : 387783,
“P” : 824
}
},
“Site” : {
“E_Day” : 62267,
“E_Total” : 49057783.03125,
“E_Year” : 10145730,
“Meter_Location” : “grid”,
“Mode” : “meter”,
“P_Akku” : null,
“P_Grid” : 1769.6700000000001,
“P_Load” : -3258.6700000000001,
“P_PV” : 1489,
“rel_Autonomy” : 45.693488447740947,
“rel_SelfConsumption” : 100
},
“Version” : “12”
}
},
“Head” : {
“RequestArguments” : {},
“Status” : {
“Code” : 0,
“Reason” : “”,
“UserMessage” : “”
},
“Timestamp” : “2020-12-29T16:41:33+10:00”
}
}

Hi @delbz,

The response you are showing is that for the solar_api/v1/GetPowerFlowRealtimeData.fcgi request?

What I could do is use the Site values when you enter zero (0) for the Device ID in the settings.

Cheers Rene

Hi @reneboer,

Correct. Yes, Device 0 = site would be perfect.

Hi @delbz,

Can you give this a try? Just add a third Meter and configure it with device = 0.

This is an updated version: L_SolarMeter1.zip (12.0 KB)

Cheers Rene

Hi @reneboer,

I added the new file and created a new power meter but it wouldn’t update.
Log file error says

luup_log:589: Solar Meter_error: Refresh pcall error [string "--[==[..."]:708: attempt to index field 'DeviceStatus' (a nil value)

Hi @delbz,

Does it give that error for the one with the device set to zero in the Plugin Settings? It should not call the URL solar_api/v1/GetInverterRealtimeData.cgi, only the solar_api/v1/GetPowerFlowRealtimeData.fcgi.

I updated the zip file above with an updated version.

If you still see the error, please set the log level at debug and send me what you see in the log file.

Hi @reneboer,

It still didn’t update.
I may have led you astray with my original post sorry. This is the URL I was using to obtain those figures:
http://192.168.0.196/solar_api/v1/GetPowerFlowRealtimeData.fcgi
not
http://192.168.0.196/solar_api/v1/GetInverterRealtimeData.cgi?Scope=System

Here’s the debug though.

06      01/01/21 5:32:15.101    Device_Variable::m_szValue_set device: 595 service: urn:rboer-com:serviceId:SolarMeter1 variable: AppMemoryUsed was: 458 now: 462 #hooks: 0 upnp: 0 skip: 0 v:0x14f7b68/NONE duplicate:0 <0x7322d520>

50      01/01/21 5:32:15.155    luup_log:595: Solar Meter_debug: Fronius URL http://192.168.0.196/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=0&DataCollection=CommonInverterData <0x7322d520>

50      01/01/21 5:32:16.104    luup_log:595: Solar Meter_debug: Retrieve HTTP Get Complete... <0x7322d520>
50      01/01/21 5:32:16.106    luup_log:595: Solar Meter_debug: {
   "Body" : {
      "Data" : {}
   },
   "Head" : {
      "RequestArguments" : {
         "DataCollection" : "CommonInverterData",
         "DeviceClass" : "Inverter",
         "DeviceId" : "0",
         "Scope" : "Device"
      },
      "Status" : {
         "Code" : 12,
         "Reason" : "No inverter with this index found.",
         "UserMessage" : ""
      },
      "Timestamp" : "2021-01-01T05:32:10+10:00"
   }
}
 <0x7322d520>
01      01/01/21 5:32:16.108    luup_log:595: Solar Meter_error: Refresh pcall error [string "--[==[..."]:708: attempt to index field 'DeviceStatus' (a nil value) <0x7322d520>
50      01/01/21 5:32:16.109    luup_log:595: Solar Meter_debug: It's Daytime or ContinousPoll: use modified Day delay Interval SolarMeter_Refresh --> -1175. <0x7322d520>
50      01/01/21 5:32:16.116    luup_log:595: Solar Meter_debug: Update was late, try again in 30 seconds. <0x7322d520>
50      01/01/21 5:32:16.116    luup_log:595: Solar Meter_debug: Interval to SolarMeter_Refresh --> 30 seconds. <0x7322d520>
50      01/01/21 5:32:16.117    luup_log:595: Solar Meter_debug: Last Refresh was : Fri Jan  1 05:11:41 2021 <0x7322d520>
50      01/01/21 5:32:16.117    luup_log:595: Solar Meter_debug: Next poll is at : Fri Jan  1 05:32:46 2021 <

Hi @delbz,

I have to look why the code even branches to that bit as it should not go there when the deviceID = 0. If I have an update I will send you a PM with the new zip file.

Cheers Rene

Hi,

Version 1.20 is available in the ALTUI App Store and pending approval in the Mios App Market. This version support site level reporting for Fronius if you have more then one Inverter. Thanks to @delbz for his help in testing.

Cheers Rene

Is it maybe possible to add Kostal piko to this plugin?

https://www.kostal-solar-portal.com

Thanks in advance

Just had notification from solarman that the site is being updated from 23nd sept. This will probably break the monitor… I’ll have a look when it comes available and see if it can be scraped.
Octo.

Hi Octo,

I’ve long stopped using my Vera for this and gradually started moving over to home assistant which has a much better UI amongst many other things.
I have found a really good project though for capturing the data in real time using an esp32 and RS485 this works so well and gets you all the data you need. GitHub - cmcgerty/Sofar2mqtt: A smart home interface for Sofar solar and battery inverters.

Thanks Dude, I’m looking into that for a winter project. I may also migrate off Vera; I am getting very frustrated with the lack of response / support from Ezlo for their customers :cry:.
I have got a new Solarman routine should anyone want it, but have not bothered to migrate all the data elements.
Octo

Hi, I would like to ask you to add a new manufacturer of inverters - SOLAX
Below I am sending the documentation and the generated full code with data from my inverter:

https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=202210260220024132028615&sn=SW9PTA5KFJ

thank you in advance, I will be happy to support your efforts