Coder Social home page Coder Social logo

solaredge-exporter's People

Contributors

dave92082 avatar tansangxtt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

solaredge-exporter's Issues

Multiple inverters

My house has two SE inverters -- it doesn't appear there is a way to specify multiple SE inverters to poll in the software, or a way to dynamically configure the app. Do I need two independent binaries in different directories with different config.yml files to accomplish this?

No metrics for SE5000H

Hi! thanks for sharing this project. I tried using it with my SolarEdge inverter but no meter values came back.

Here's the output with debug enabled:

12:38 $ ./SolarEdge-Exporter
12:38PM INF Starting SolarEdge-Exporter
12:38PM INF Configured Inverter Address: 192.168.1.6
12:38PM INF Configured Inverter Port: 1502
12:38PM INF Configured Listen Address:
12:38PM INF Configured Listen Port: 2112
12:38PM INF Inverter Model: SE5000H-AU000BWU4
12:38PM INF Inverter Serial: <redacted>
12:38PM INF Inverter Version: 0004.0011.0030
12:38PM INF Meter Manufacturer:
12:38PM INF Meter Model:
12:38PM INF Meter Serial:
12:38PM INF Meter Version:
12:38PM INF Meter Option:
12:38PM DBG Meter AC Current: 0.000000
12:38PM DBG Meter VoltageLN: 0.000000
12:38PM DBG Meter PF: 0
12:38PM DBG Meter Freq: 0.000000
12:38PM DBG Meter AC Power: 0.000000
12:38PM DBG Meter M_AC_VA: 0.000000
12:38PM DBG Meter M_Exported: 0.000000
12:38PM DBG Meter M_Imported: 0.000000
12:38PM DBG -------------------------------------------

Using https://github.com/nmakel/solaredge_modbus, I get these values:

[ { 'fields': { 'c_deviceaddress': 1.0,
                'c_sunspec_did': 101.0,
                'current': 20.17,
                'current_dc': 11.314,
                'energy_total': 1194932.0,
                'frequency': 50.024,
                'p1_current': 20.17,
                'p1_voltage': 248.1,
                'p1n_voltage': 0.0,
                'p2_current': 0.0,
                'p2_voltage': 0.0,
                'p2n_voltage': 0.0,
                'p3_current': 0.0,
                'p3_voltage': 0.0,
                'p3n_voltage': 0.0,
                'power_ac': 5004.0,
                'power_apparent': 5009.0,
                'power_dc': 5080.0,
                'power_factor': 99.89,
                'power_reactive': 226.48,
                'status': 5.0,
                'temperature': 57.69,
                'vendor_status': 0.0,
                'voltage_dc': 449.0},
    'measurement': 'inverter',
    'tags': { 'c_deviceaddress': 1,
              'c_manufacturer': 'SolarEdge',
              'c_model': 'SE5000H-AU000BWU4',
              'c_serialnumber': '<redacted>',
              'c_sunspec_did': 101,
              'c_version': '0004.0011.0030'},
    'time': '2021-01-09T01:40:22Z'}]

In the readme you mention this was "Tested with SE5000 w. CPU version 3.2221.0". If this is comparable to the c_version above, then I'm running 4.11.30, which is a major version above.

I'd be happy to provide some debugging data to try and get this working with the new version. Please let me know if I can go anything on my side. Thank you.

Issues connecting to Solaredge SE3000 HD Wave

Hello,

When running the provided software I get the following issue:

8:29AM INF Starting SolarEdge-Exporter
8:29AM INF Configured Inverter Address:
8:29AM INF Configured Inverter Address: 0
8:29AM ERR Error connecting to Inverter: dial tcp :0: connect: connection refused
8:29AM INF Inverter Model:
8:29AM INF Inverter Serial:
8:29AM INF Inverter Version:
8:29AM ERR Error reading holding registers: dial tcp :0: connect: connection refused
8:29AM ERR Attempting to reconnect
8:29AM ERR Error reading holding registers: dial tcp :0: connect: connection refused
8:29AM ERR Attempting to reconnect

When I do an nmap scan port 1502 is open and when using 'Simply Modbus TCP Client' on windows I can connect to the provided IP and port. I'm not sure if I'm doing anything wrong?

SolarEdge Inverter metrics SE17K ?

Hi
Thanks for your interesting project.
I guess my inverter have a diffrent layout when polling with modbus tcp.

Seems I get incorrect metrics for my inverter (SE17K three phase).
Is it possible to create the layout for SE17K in your project ?
Or do I miss anything else obvious ?

[Output] I get Inverter model,serial and version, everything else is 0.
~/src/SolarEdge-Exporter$ ./solaredge-exporter
1:36PM INF Starting SolarEdge-Exporter
1:36PM INF Configured Inverter Address: 192.168.1.60
1:36PM INF Configured Inverter Port: 1502
1:36PM INF Configured Listen Address:
1:36PM INF Configured Listen Port: 2112
1:36PM INF Inverter Model: SE17K-RW000BNN4
1:36PM INF Inverter Serial: xxxxxxx
1:36PM INF Inverter Version: 0004.0008.0028
1:36PM INF Meter Manufacturer:
1:36PM INF Meter Model:
1:36PM INF Meter Serial:
1:36PM INF Meter Version:
1:36PM INF Meter Option:
1:36PM INF Meter AC Current: 0.000000
1:36PM INF Meter VoltageLN: 0.000000
1:36PM INF Meter PF: 0
1:36PM INF Meter Freq: 0.000000
1:36PM INF Meter AC Power: 0.000000
1:36PM INF Meter M_AC_VA: 0.000000
1:36PM INF Meter M_Exported: 0.000000
1:36PM INF Meter M_Imported: 0.000000
1:36PM DBG -------------------------------------------
1:36PM DBG Data retrieved from inverter
1:36PM INF Meter AC Current: 0.000000
1:36PM INF Meter VoltageLN: 0.000000
1:36PM INF Meter PF: 0
1:36PM INF Meter Freq: 0.000000
1:36PM INF Meter AC Power: 0.000000
1:36PM INF Meter M_AC_VA: 0.000000
1:36PM INF Meter M_Exported: 0.000000
1:36PM INF Meter M_Imported: 0.000000
1:36PM DBG -------------------------------------------
1:36PM DBG Data retrieved from inverter
1:36PM INF Meter AC Current: 0.000000
1:36PM INF Meter VoltageLN: 0.000000
1:36PM INF Meter PF: 0
1:36PM INF Meter Freq: 0.000000
1:36PM INF Meter AC Power: 0.000000
1:36PM INF Meter M_AC_VA: 0.000000
1:36PM INF Meter M_Exported: 0.000000
1:36PM INF Meter M_Imported: 0.000000
1:36PM DBG -------------------------------------------
1:36PM DBG Data retrieved from inverter
1:36PM INF Meter AC Current: 0.000000
1:36PM INF Meter VoltageLN: 0.000000
1:36PM INF Meter PF: 0
1:36PM INF Meter Freq: 0.000000
1:36PM INF Meter AC Power: 0.000000
1:36PM INF Meter M_AC_VA: 0.000000
1:36PM INF Meter M_Exported: 0.000000
1:36PM INF Meter M_Imported: 0.000000
1:36PM DBG -------------------------------------------
1:36PM DBG Data retrieved from inverter

When polling with "mbget" I get the follwing values on corresponding addresses.
f,ex "40100" correspond to DC_Current
perl ./mbtget -r3 -n 110 -a 40000 192.168.1.60 -p 1502
values:
1 (ad 40000): 21365
2 (ad 40001): 28243
3 (ad 40002): 1
4 (ad 40003): 65
5 (ad 40004): 21359
6 (ad 40005): 27745
7 (ad 40006): 29253
8 (ad 40007): 25703
9 (ad 40008): 25888
10 (ad 40009): 0
11 (ad 40010): 0
12 (ad 40011): 0
13 (ad 40012): 0
14 (ad 40013): 0
15 (ad 40014): 0
16 (ad 40015): 0
17 (ad 40016): 0
18 (ad 40017): 0
19 (ad 40018): 0
20 (ad 40019): 0
21 (ad 40020): 21317
22 (ad 40021): 12599
23 (ad 40022): 19245
24 (ad 40023): 21079
25 (ad 40024): 12336
26 (ad 40025): 12354
27 (ad 40026): 20046
28 (ad 40027): 13312
29 (ad 40028): 0
30 (ad 40029): 0
31 (ad 40030): 0
32 (ad 40031): 0
33 (ad 40032): 0
34 (ad 40033): 0
35 (ad 40034): 0
36 (ad 40035): 0
37 (ad 40036): 0
38 (ad 40037): 0
39 (ad 40038): 0
40 (ad 40039): 0
41 (ad 40040): 0
42 (ad 40041): 0
43 (ad 40042): 0
44 (ad 40043): 0
45 (ad 40044): 12336
46 (ad 40045): 12340
47 (ad 40046): 11824
48 (ad 40047): 12336
49 (ad 40048): 14382
50 (ad 40049): 12336
51 (ad 40050): 12856
52 (ad 40051): 0
53 (ad 40052): 14149
54 (ad 40053): 12599
55 (ad 40054): 12341
56 (ad 40055): 12850
57 (ad 40056): 0
58 (ad 40057): 0
59 (ad 40058): 0
60 (ad 40059): 0
61 (ad 40060): 0
62 (ad 40061): 0
63 (ad 40062): 0
64 (ad 40063): 0
65 (ad 40064): 0
66 (ad 40065): 0
67 (ad 40066): 0
68 (ad 40067): 0
69 (ad 40068): 1
70 (ad 40069): 103
71 (ad 40070): 50
72 (ad 40071): 6000
73 (ad 40072): 2002
74 (ad 40073): 2000
75 (ad 40074): 1997
76 (ad 40075): 65534
77 (ad 40076): 4215
78 (ad 40077): 4204
79 (ad 40078): 4238
80 (ad 40079): 2455
81 (ad 40080): 2435
82 (ad 40081): 2418
83 (ad 40082): 65535
84 (ad 40083): 14630
85 (ad 40084): 0
86 (ad 40085): 5003
87 (ad 40086): 65534
88 (ad 40087): 14642
89 (ad 40088): 0
90 (ad 40089): 59526
91 (ad 40090): 65535
92 (ad 40091): 55545
93 (ad 40092): 65534
94 (ad 40093): 37
95 (ad 40094): 10112
96 (ad 40095): 0
97 (ad 40096): 19829
98 (ad 40097): 65533
99 (ad 40098): 7490
100 (ad 40099): 65535
101 (ad 40100): 14852
102 (ad 40101): 0
103 (ad 40102): 32768
104 (ad 40103): 4986
105 (ad 40104): 32768
106 (ad 40105): 32768
107 (ad 40106): 65534
108 (ad 40107): 4
109 (ad 40108): 0
110 (ad 40109): 65535

Cannot pull the metrics with the presented address

Hi there,

So I've followed your step by step installation process and I can't seem to pull the data from my SolarEdge. Below my variables and the note from prometheus:

INVERTER_ADDRESS=192.168.50.17
INVERTER_PORT=502 (googled more and found somewhere that it was connecting to 22222 and 22221 and tried both, still with no luck, not sure if this might be the issue)
EXPORTER_INTERVAL=5

Prometheus.yml

  • job_name: 'Solar_Edge'

    static_configs:

    • targets: [192.168.50.17:2112]

Error on prometheus:

Get "http://192.168.50.17:2112/metrics": context deadline exceeded

any ideas?

Failing to read holding registers

Hi,
Thanks for making your app available. I have both SolarEdge and SunPower solar panels. I found that I can export the data from the SunPower to Prometheus to make great graphs in Grafana (https://github.com/ginoledesma/sunpower-pvs-exporter). I want to do similar graphs with SolarEdge.
When I run your app on my Raspberry Pi, I get this error:

ozdave:~/solaredge-exporter $ ./solaredge-exporter-arm
8:53AM INF Starting SolarEdge-Exporter
8:53AM INF Configured Inverter Address: 192.168.1.186
8:53AM INF Configured Inverter Port: 502
8:53AM INF Configured Listen Address: 
8:53AM INF Configured Listen Port: 2112
8:53AM INF Inverter Model: SE7600
8:53AM INF Inverter Serial: <redacted>
8:53AM INF Inverter Version: 0003.2724
8:53AM INF Meter Manufacturer: WattNode
8:53AM INF Meter Model: RWND-3D-240-MB
8:53AM INF Meter Serial:  <redacted>
8:53AM INF Meter Version: 25
8:53AM INF Meter Option: Export+Import
8:54AM ERR Error reading holding registers: EOF
8:54AM ERR Attempting to reconnect
8:54AM ERR Error reading holding registers: read tcp 192.168.1.51:52192->192.168.1.186:502: i/o timeout
8:54AM ERR Attempting to reconnect
8:55AM ERR Error reading holding registers: EOF
8:55AM ERR Attempting to reconnect
8:56AM ERR Error reading holding registers: EOF
8:56AM ERR Attempting to reconnect
8:57AM ERR Error reading holding registers: EOF
8:57AM ERR Attempting to reconnect
8:57AM ERR Error reading holding registers: read tcp 192.168.1.51:54092->192.168.1.186:502: i/o timeout
8:57AM ERR Attempting to reconnect
8:58AM ERR Error reading holding registers: EOF
8:58AM ERR Attempting to reconnect
8:59AM ERR Error reading holding registers: EOF
8:59AM ERR Attempting to reconnect
9:00AM ERR Error reading holding registers: EOF
9:00AM ERR Attempting to reconnect
9:01AM ERR Error reading holding registers: EOF
9:01AM ERR Attempting to reconnect
9:02AM ERR Error reading holding registers: EOF
9:02AM ERR Attempting to reconnect

Any idea why it's failing to read the holding registers? It seems that the SunSpec is the same for my SolarEdge unit.

Gauges -> Counters

Some of the gauges you've set up seem better represented as counters (eg. M_Imported M_Exported AC_Energy_WH )Would a PR to change these to counters be accepted? I'm not entirely sure if it would be backwards compatible is all.

While we're at it, what are your thoughts on changing the SunSpec fieldnames to be labels instead of the metric name itself? That would enable easier querying of all the currents for example Current{job="solaredge"} instead of having to do things like {__name__="*.Current.*",job="solaredge"}? This one definitely would be breaking obviously.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.