McMelloW wrote: ↑Friday 22 May 2020 21:34
Actueel Vermogen SE = directly taken from the Inverter via a LAN connection to my RPi
Any good hints to open up my inverter to my lan?
I have a brand new SE5000H, debug mode disabled, no port 80 or 8080. I have firmware version 4.8.28 which has a security hole, with a bash/python script it possible to open up those ports. But a new firmware is already release which closes this hole (4.9.33). I don't want to shield off the complete inverter from the internet.
No i don't use the official API. I use the API the monitoring website is using. Found a hint somewhere on the internet, from there it's reverse engineering.
I guess we are talking about the same. Go to this page
McMelloW wrote: ↑Friday 22 May 2020 21:34
Actueel Vermogen SE = directly taken from the Inverter via a LAN connection to my RPi
Any good hints to open up my inverter to my lan?
I have a brand new SE5000H, debug mode disabled, no port 80 or 8080. I have firmware version 4.8.28 which has a security hole, with a bash/python script it possible to open up those ports. But a new firmware is already release which closes this hole (4.9.33). I don't want to shield off the complete inverter from the internet.
Then I used perl script sunpsec-monitor https://github.com/tjko/sunspec-monitor to read-out the registers of the inverter. But cannot read the optimizers. The output of this script goes to a .txt file. This file is parsed by a dzVents script and updates the dummy devices.
So it is a kindop 3-stage-rocket But is t works sufficient so far.
I think Freijn made an advanced script in python.
There is also a python sunspec-ardexa option. https://github.com/ardexa/sunspec-inverters However I did not get this working on my RPi
No i don't use the official API. I use the API the monitoring website is using. Found a hint somewhere on the internet, from there it's reverse engineering.
I guess we are talking about the same. Go to this page
At the bottom you see a link Read the API Guide That is the above link to the api guide.
No its not the same API. The document refers to the api for actual customer use. The API I'm using is the API of the website itself, thats why it needs username and password instead of the api key. It request the data from the "normal" website as if it was for the layout webpage.
Dols wrote: ↑Saturday 23 May 2020 17:42
No its not the same API. The document refers to the api for actual customer use. The API I'm using is the API of the website itself, thats why it needs username and password instead of the api key. It request the data from the "normal" website as if it was for the layout webpage.
Where can i find the descriptionof this API?
When you the data from the website, you must be able to get the lifetime total, because it is displayed on the website.
McMelloW wrote: ↑Saturday 23 May 2020 19:32
Where can i find the descriptionof this API?
When you the data from the website, you must be able to get the lifetime total, because it is displayed on the website.
I don't have any documentation of this api. But you can try to find what you looking for:
- In Firefox (or chrome) press [F12] to open the developer tools.
- In top bar of the opened window select "Network"
- Open your monitoring.solaredge.com website.
- In the right pane, select response
- You can browse through the files/request see if you can find you are looking for
The optimizer data is not updated anymore at the solaredge website. Funny thing is the inverter data is updated. Yesterday evening it still worked. I used the setapp to enable modbus over tcp yesterday afternoon.
Don't know if i did something wrong with the setapp or solaredge just cut me off...
The optimizer data is not updated anymore at the solaredge website. Funny thing is the inverter data is updated. Yesterday evening it still worked. I used the setapp to enable modbus over tcp yesterday afternoon.
Don't know if i did something wrong with the setapp or solaredge just cut me off...
Okay, didn't apply to the first rule of problem solving "Did you turn it off and on again?". It looks like it's updating the website with the missing historical data on a very slow rate......
McMelloW wrote: ↑Saturday 23 May 2020 16:42
Then I used perl script sunpsec-monitor https://github.com/tjko/sunspec-monitor to read-out the registers of the inverter. But cannot read the optimizers. The output of this script goes to a .txt file. This file is parsed by a dzVents script and updates the dummy devices.
So it is a kindop 3-stage-rocket But is t works sufficient so far.
McMelloW wrote: ↑Saturday 23 May 2020 16:42
Then I used perl script sunpsec-monitor https://github.com/tjko/sunspec-monitor to read-out the registers of the inverter. But cannot read the optimizers. The output of this script goes to a .txt file. This file is parsed by a dzVents script and updates the dummy devices.
So it is a kind of 3-stage-rocket But it works sufficient so far.
I have it running. Thanks.
Good work, well done.
What do you do with the output of the Perl script.
McMelloW wrote: ↑Sunday 24 May 2020 14:38
Good work, well done.
What do you do with the output of the Perl script.
I do it a little different.
I use a dzVent script. It is triggered by the P1 smart meter (every second).
The dzVent script runs the perl script, gets the output directly from the execution, without a temp file. Parse the CSV line. Since i also have fresh p1 data i can computer the actual energy consumption.
Dols wrote: ↑Sunday 24 May 2020 16:03
I do it a little different.
I use a dzVent script. It is triggered by the P1 smart meter (every second).
The dzVent script runs the perl script, gets the output directly from the execution, without a temp file. Parse the CSV line. Since i also have fresh p1 data i can computer the actual energy consumption.
Interesting, a bit like freijn does.
Can you share the script, I would like to have a look at it.
on = {
timer = { 'every minute between 15 minutes before sunrise and 15 minutes after sunset' }
},
I like your bits on -- Execute perl script and -- Convert CSV result line into array.
This saves a write and read to the SD-card every minute.
Much success with the further developing of this script. I will follow it.
I also send a support request to SolarEdge. How to read the optimizer/panel values via Modbus over TCP. This is somewhere in the inverter, how else can they present it at the monitor website of your installation
return
{
--------------------------------------------------------------------------------
active = true,
--------------------------------------------------------------------------------
on =
{
timer = { 'every minute between 15 minutes before sunrise and 15 minutes after sunset' }
},
--------------------------------------------------------------------------------
data = {},
--------------------------------------------------------------------------------
execute = function(domoticz, triggeredItem)
LogDebug(domoticz, "--==[ Start ]==-----------------------------------")
-- Execute perl script
cmd = string.format("perl %s --numeric --meter=0 --port=%d %s", script, port, ip)
local f = io.popen(cmd, 'r')
local result = f:read('*a')
f:close()
-- Convert CSV result line into array
local fields = {}
for value in result:gmatch('([^,]+)') do
table.insert(fields, tonumber(value))
LogDebug(domoticz, fields)
end
And this is the result. The is something not OK with the read of the inverter I think.
Please do exe from the commandline >python -V
2.7 might still be on your system.
And even in the online doc its not mentioned optimizers over Modbus
Yes, python 2.7 is still on my RPi. But there are no active python2.7 jobs running.
Don't know or it it save to remove python 2.7 and how.
On the other hand, I implemented the way Richard polls the inverter and convert the CSV output in one go. Skip the write / read to a file. The whole dzVents script is running in less than 0.5 sec. So why changing to the sunspec-ardexa solution.