Acties:
  • +5 Henk 'm!

  • joezzt
  • Registratie: November 2009
  • Niet online
Dag Allemaal, omdat ik niet tevreden was met de monitoring van Solaredge Inverters en ik een probleem had en heb met de installatie, zie hier , heb ik een programmaatje gemaakt om mbv Modbus TCP de realtime power data en nog meer van een Inverter uit te lezen, in mijn geval de SE15K.
De solaredge portal heeft als vervelende eigenschap dat de resolutie in tijd is beperkt tot 5 min of 15 min voor veel dingen. Daarnaast geeft ie de instantaneous power weer, dus een gesampelde power, en energie in 15 min.

PVOutput gebruikt ook de instantaneous power van de solaredge portal, die wel per 5 min beschikbaar is, maar deze is dus gesampled, niet een max, min of avg. De energie wordt zelfs van deze waarde berekend, niet erg betrouwbaar. Als je bij PVOutput aangeeft de Energie van de inverter te willen gebruiken wordt deze maar elke 15 min weergegeven.

Al met al, niet erg nuttig allemaal voor fouten analyse, je wil toch wel op z'n minst een min,max en gemiddelde weten van die 5 min !

Entree, de Sunspec monitor, deze leest via Modbus TCP elke seconde de waardes waarin ik ge-interesseerd ben. Dit gaat parallel aan de normale solaredge monitoring , je hoeft er niks voor te laten, te solderen of aan te sluiten !
Elke 5 min worden verschillende waardes ge-upload naar PVOutput: Totale lifetime AC energy, Max power. Min power, Avg power en efficientie (gemeten van DC power naar AC Power). Die laatste is niet zo interessant, staat bijna continu op 98.5 %.

Zie hier een voorbeeld
Je ziet duidelijk bij een zonnige ochtend de Min power naar 0W gaan , een teken dat er iets niet klopt aan de installatie. En bij een bewolkte ochtend is er niets aan de hand

Het programma staat op Github:
https://github.com/Joozzt/Sunspec-solar-panels-monitor
Het is een QT programmaatje, dus heel makkelijk te porten naar Linux of macOS.
Een Windows Installer heb ik erbij gezet :
https://github.com/Joozzt.../SunspecMonitor_1.3.0.exe

Als bonus leest ie ook de Youless energiemeter uit en upload die naar PVOutput !

Om te gebruiken:
1. Bij Solaredge , Enable Modbus TCP
2. Installeer en start het programmaatje op een computer in je lokale netwerk.
3. Kies menu File/Options , geef bij Inverter IP:port het IP adres en poort nr van stap 1 , bv 192.168.178.10:502
4. Geef eventueel een Youless IP:port in , bv 192.168.178.23:80
5. Geef PVOutput System ID en API key in. Als je de PVOutput System ID leeg laat zal ie niets uploaden.
6. Naast uploaden worden alle gemeten waardes, per seconde, ook in een CSV file gelogd in de "Documents" folder.
7. Press "Start" , dan duurt het 25 seconden voordat er waardes geschreven worden in het venster, dit is de delay om de inverter waardes te synchroniseren met Youless.

Deze software zal ook te gebruiken zijn bij andere types inverters.

Voor mij is deze software nu genoeg, als iemand anders nog wil uitbreiden, ga je gang ! Is open source.

[ Voor 3% gewijzigd door joezzt op 22-10-2020 14:28 ]

Gibson S-1, Godin Multiac ACS SA, Camps Cut 500S, Roland Jazz Chorus-120 , King Tempo II 607, TMS320C10, SAM4L


Acties:
  • 0 Henk 'm!

  • teacher
  • Registratie: September 2001
  • Laatst online: 22:54

teacher

Frontpage Admin / Global Moderator

Dysgaf!

Cool!

Bestaat er een kans dat er nog een keer een Pi versie van komt? :)

Wise enough to play the fool


Acties:
  • +1 Henk 'm!

  • BizzieBis
  • Registratie: Maart 2004
  • Laatst online: 19-06 19:04
Leuk project! Lijkt me vooral leuk om een soort Live Dashboard van te maken. Met een aantal meters die de actuele standen weergeven.

@teacher Voor de PI bestaat een soortgelijk Perl script: sunspec-monitor

Er is ook een aangepaste versie voor Domoticz aanwezig in het volgende topic: https://www.domoticz.com/...cd79d71b&start=40#p173482

[ Voor 19% gewijzigd door BizzieBis op 19-05-2019 17:55 ]


Acties:
  • +2 Henk 'm!

  • jawmoret
  • Registratie: September 2004
  • Laatst online: 28-11-2024
beste Allen,

Omdat ik in mijn zoektocht naar info ook langs dit draadje ben gekomen dacht ik dat het leuk zou zijn om wat info te delen.

Eigenlijk een beetje het zelfde als Joozzt, maar dan grafisch.
Ik heb een scripje gemaakt dat Sunspec uitleest op linux (pySunspec) en daarna in Grafana (influx DB) zet.
Met want hulp van mede tweakers heb ik dit voor elkaar. _/-\o_

zie grafiek hieronder, ik denk dat de metertjes zichzelf wel wijzen..
Als iemand intresse heeft in het script stuur ff berricht.


SolarEdgeSunspec


ps, in principe is dit toepasbaar op alle inverters die sunspec (modubs tcp) ondersteunen.

Do the math: sin adds to your troubles, subtracts from your peace, multiplies your sorrows and divides you from God.


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Ik heb Modbus TCP/IP in Node-red draaien en dan naar Influxdb en in Grafana

Is vergelijkbaar denk ik.
Afbeeldingslocatie: https://tweakers.net/ext/f/zxUSc2MyeidVbdqo60GfMIUN/thumb.jpg

https://snapshot.raintank...nj6sW7iFU6KDPMTIDhkKAy4E2

PVOutput Github - Div ESP TK: MHI - Clack - Ecodan


Acties:
  • 0 Henk 'm!

  • joezzt
  • Registratie: November 2009
  • Niet online
@jawmoret kijk eens even of bij jou ook het ac vermogen precies (+- 0,02%), altijd, 98,5% van het dc vermogen is?
Of eventueel een ander maar constant percentage.
Zou zo maar kunnen dat solaredge het ac vermogen berekent van het dc vermogen en de in het lab bepaalde efficientie, al of niet constant....
Of andersom, dcp=acp/0.985

[ Voor 5% gewijzigd door joezzt op 30-07-2019 08:25 ]

Gibson S-1, Godin Multiac ACS SA, Camps Cut 500S, Roland Jazz Chorus-120 , King Tempo II 607, TMS320C10, SAM4L


Acties:
  • 0 Henk 'm!

  • jawmoret
  • Registratie: September 2004
  • Laatst online: 28-11-2024
@joozzt begrijp ik je goed, denk je dat het AC vermogen een berekende aarde is en geen zuivere meting?

ik heb van vanmorgen een paar punten genomen en de efficientie berekend, is best wel erg nauwkeurig op 98,5%....


DCP / ACP / %
595.8 / 586.9 / 98.50
631.8 / 622.3 / 98.49
733.9 / 722.9 / 98.50

[ Voor 1% gewijzigd door jawmoret op 30-07-2019 08:51 . Reden: typo ]

Do the math: sin adds to your troubles, subtracts from your peace, multiplies your sorrows and divides you from God.


Acties:
  • 0 Henk 'm!

  • joezzt
  • Registratie: November 2009
  • Niet online
@jawmoret Inderdaad... Dit ziet er erg verdacht uit !
Kan toch niet zijn dat de efficientie constant 98.5% is. Zeker niet volgens hun eigen datasheets:
https://www.solaredge.com..._inverters_efficiency.pdf
Of de datasheets geven de gecombineerde optimizer/inverter efficiency ? Dan nog...
Kijk eens in de efficiency van mij vanochtend, extended data:
https://www.pvoutput.org/intraday.jsp?id=69932&sid=62143
Er zijn een paar overgangen, die kunnen corresponderen met afrondings-fouten in hun DSP's (16-bit ?).

Gibson S-1, Godin Multiac ACS SA, Camps Cut 500S, Roland Jazz Chorus-120 , King Tempo II 607, TMS320C10, SAM4L


Acties:
  • 0 Henk 'm!

  • tmaniac
  • Registratie: Oktober 2006
  • Laatst online: 05-06 11:58
AUijtdehaag schreef op maandag 29 juli 2019 @ 21:28:
Ik heb Modbus TCP/IP in Node-red draaien en dan naar Influxdb en in Grafana

Is vergelijkbaar denk ik.
[Afbeelding]

https://snapshot.raintank...nj6sW7iFU6KDPMTIDhkKAy4E2
Ik heb sinds kort ModbusTCP aan staan op mijn SolarEdge Inverter en ik ben bezig om in node-red e.e.a. op te bouwen en een dashboard op te zetten in combinatie met m'n Homey en MQTT.
Aangezien ik nog een enorme beginner ben met Node-red...zou je mij misschien je Node-red configuratie kunnen sturen?

Ik krijg het maar niet voor elkaar leesbare waardes tevoorschijn te toveren.
Ik loop volgens mij een beetje stuk op het omzetten van de register-waardes.

Acties:
  • +2 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@tmaniac Ik gebruik het niet meer via modbus tcp icm sma omvormer, maar maak gebruik van sbfspot en mqtt.
Probleem wat ik vaak heb is dat de modbus tcp/ip verbinding telkens onbereikbaar is, na aanpassingen in node red. Dat is software bug of ik doe iets gigantisch fout.
Wil @Tsurany misschien helpen?

PVOutput Github - Div ESP TK: MHI - Clack - Ecodan


Acties:
  • +1 Henk 'm!

  • DataCopy
  • Registratie: Maart 2001
  • Laatst online: 22:24

DataCopy

Dum vita est spes est

AUijtdehaag schreef op vrijdag 6 maart 2020 @ 16:13:
@tmaniac Ik gebruik het niet meer via modbus tcp icm sma omvormer, maar maak gebruik van sbfspot en mqtt.
Probleem wat ik vaak heb is dat de modbus tcp/ip verbinding telkens onbereikbaar is, na aanpassingen in node red. Dat is software bug of ik doe iets gigantisch fout.
Wil @Tsurany misschien helpen?
Kan het zijn dat je met de connecties naar de omvormer in de knoop komt? Heb een soortgelijk iets gehad en zag (via netstat) dat node-red alle modbus connecties telkens opnieuw opzet. Zeker als je kort na elkaar 'published' zorgt dat voor problemen.

Nu ik daar rekening mee houd, draait het best stabiel hier (SMA SB4.0)

| Exceptio probat regulam in casibus non exceptis |


Acties:
  • 0 Henk 'm!

  • Tsurany
  • Registratie: Juni 2006
  • Niet online

Tsurany

⭐⭐⭐⭐⭐

tmaniac schreef op vrijdag 6 maart 2020 @ 16:04:
[...]


Ik heb sinds kort ModbusTCP aan staan op mijn SolarEdge Inverter en ik ben bezig om in node-red e.e.a. op te bouwen en een dashboard op te zetten in combinatie met m'n Homey en MQTT.
Aangezien ik nog een enorme beginner ben met Node-red...zou je mij misschien je Node-red configuratie kunnen sturen?

Ik krijg het maar niet voor elkaar leesbare waardes tevoorschijn te toveren.
Ik loop volgens mij een beetje stuk op het omzetten van de register-waardes.
Mijn oude flow: Tsurany in "Datalogging: PV systemen"

Tegenwoordig icm slimme meter:
Afbeeldingslocatie: https://tweakers.net/i/9Ud5bZVQzXVmGHIE60_M3coD0GI=/800x/f/image/z3Q7ewQYB8FyDn4n9FHX6sqS.png?f=fotoalbum_large

code:
1
[{"id":"7756da.c2a07928","type":"tab","label":"P1 + SMA Logging","disabled":false,"info":""},{"id":"eec48ef7.1e65a","type":"modbus-getter","z":"7756da.c2a07928","name":"Yield","showStatusActivities":true,"showErrors":true,"logIOActivities":false,"unitid":"3","dataType":"HoldingRegister","adr":"30531","quantity":"2","server":"84430495.b18c58","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":450,"y":220,"wires":[["3adbb600.567eea"],[]]},{"id":"e6de8775.8d10c8","type":"modbus-getter","z":"7756da.c2a07928","name":"DC1 - AC","showStatusActivities":true,"showErrors":true,"logIOActivities":false,"unitid":"","dataType":"HoldingRegister","adr":"30769","quantity":"16","server":"84430495.b18c58","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":467.50000381469727,"y":441.00001335144043,"wires":[["22c97d98.393f42","6301bae2.3f5074"],[]]},{"id":"2667525d.d4587e","type":"modbus-getter","z":"7756da.c2a07928","name":"Temp - DC2 - AC","showStatusActivities":false,"showErrors":false,"logIOActivities":false,"unitid":"","dataType":"HoldingRegister","adr":"30953","quantity":"26","server":"84430495.b18c58","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":490.50000381469727,"y":320.00001335144043,"wires":[["e3742847.b7c648","b7dd203f.2d9fc"],[]]},{"id":"e3742847.b7c648","type":"function","z":"7756da.c2a07928","name":"Extract + Format SMA DC2","func":"let DCCurrent2 =    msg.payload[5] / 1000;      // 30957\nlet DCVoltage2 =    msg.payload[7] / 100;       // 30959\nlet DCPower2 =      msg.payload[9];             // 30961\n\nlet _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        measurement: \"energy\",\n\t\tfields: {\n\t\t\tcurrent: DCCurrent2,\n\t\t\tvoltage: DCVoltage2,\n\t\t\tpower: DCPower2,\n\t\t},\n\t\ttags:{\n\t\t    device: \"SMA 5.0 - MPPT A\",\n\t\t    orientation: \"West\",\n\t\t    type: \"DC\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":744.0000038146973,"y":282.00001335144043,"wires":[["97880c2a.6eb01"]]},{"id":"3adbb600.567eea","type":"function","z":"7756da.c2a07928","name":"Extract + Format SMA Yield","func":"let TotalYield = msg.payload[1] ;    // 30531\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: TotalYield,\n\t\t},\n\t\ttags:{\n\t\t    device: \"SMA 5.0 - System\",\n\t\t    direction: \"Internal Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":740,"y":220,"wires":[["4b398d0a.a3d4b4"]]},{"id":"290b2fe2.20b1d","type":"debug","z":"7756da.c2a07928","name":"Debug","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1848.5001773834229,"y":361.0000972747803,"wires":[]},{"id":"6301bae2.3f5074","type":"function","z":"7756da.c2a07928","name":"Extract + Format SMA DC1","func":"let DCCurrent1    = msg.payload[1] / 1000;       // 30769\nlet DCVoltage1    = msg.payload[3] / 100;        // 30771\nlet DCPower1      = msg.payload[5];              // 30773\n\nlet _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        measurement: \"energy\",\n\t\tfields: {\n\t\t\tcurrent: DCCurrent1,\n\t\t\tvoltage: DCVoltage1,\n\t\t\tpower: DCPower1, \n\t\t},\n\t\ttags:{\n\t\t    device: \"SMA 5.0 - MPPT B\",\n\t\t    orientation: \"East\",\n\t\t    type: \"DC\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":760,"y":480,"wires":[["1e17b172.7275df"]]},{"id":"8a66b781.4da878","type":"join","z":"7756da.c2a07928","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"8","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1717.5000381469727,"y":360.0000343322754,"wires":[["290b2fe2.20b1d","af180fcb.2713"]]},{"id":"22c97d98.393f42","type":"function","z":"7756da.c2a07928","name":"Extract SMA AC","func":"let PowerTot      = msg.payload[7];              // 30775\nlet GridVoltagePhase1 = msg.payload[15] / 100;  // 30783\n\n\nlet _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n\t\t\tsma_ac_power_tot: PowerTot,\n\t\t\tsma_ac_voltage: GridVoltagePhase1,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":760,"y":400,"wires":[["d1e04a8a.16dab8","fc0157c7.890438"]]},{"id":"b7dd203f.2d9fc","type":"function","z":"7756da.c2a07928","name":"Extract SMA AC + Temp","func":"let InternalTemperature = msg.payload[1] /10; // 30953\nlet ACCurrentL1 = msg.payload[25] / 1000;    // 30977\n\nlet _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n\t\t\tsma_temperature: InternalTemperature,\n\t\t\tsma_ac_currentL1: ACCurrentL1,\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":733.0000038146973,"y":344.00001335144043,"wires":[["d1e04a8a.16dab8"]]},{"id":"d1e04a8a.16dab8","type":"join","z":"7756da.c2a07928","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"5","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":954.5000534057617,"y":374.0000057220459,"wires":[["43b4944b.cfe70c","9c7ab38.1cb1e5"]]},{"id":"43b4944b.cfe70c","type":"function","z":"7756da.c2a07928","name":"Format SMA AC","func":"let _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        measurement: \"energy\",\n\t\tfields: {\n\t\t\tcurrent: msg.payload.sma_ac_currentL1,\n\t\t\tvoltage: msg.payload.sma_ac_voltage,\n\t\t\tpower: msg.payload.sma_ac_power_tot,\n\t\t},\n\t\ttags:{\n\t\t    device: \"SMA 5.0 - System\",\n\t\t    type: \"AC\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1140,"y":400,"wires":[["7042bec2.84394"]]},{"id":"9c7ab38.1cb1e5","type":"function","z":"7756da.c2a07928","name":"Format SMA Temp","func":"let _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        measurement: \"temperature\",\n\t\tfields: {\n\t\t\ttemperature: msg.payload.sma_temperature,\n\t\t},\n\t\ttags:{\n\t\t    device: \"SMA 5.0 - System\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1150,"y":340,"wires":[["7f250d9c.d6b234"]]},{"id":"af180fcb.2713","type":"influxdb batch","z":"7756da.c2a07928","influxdb":"27e18148.8340de","precision":"","retentionPolicy":"","name":"InfluxDB","x":1858.4999961853027,"y":302.0000743865967,"wires":[]},{"id":"1e17b172.7275df","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1340,"y":480,"wires":[["8a66b781.4da878"]]},{"id":"7f250d9c.d6b234","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.temperature","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1340,"y":340,"wires":[["8a66b781.4da878"]]},{"id":"7042bec2.84394","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1340,"y":400,"wires":[["8a66b781.4da878"]]},{"id":"97880c2a.6eb01","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1340,"y":280,"wires":[["8a66b781.4da878"]]},{"id":"d6aca862.f625e8","type":"function","z":"7756da.c2a07928","name":"Set totalyield filter value","func":"flow.set('totalyield_sma',msg.payload.fields.totalyield);","outputs":1,"noerr":0,"x":1590,"y":180,"wires":[[]]},{"id":"fa879f77.4baf9","type":"switch","z":"7756da.c2a07928","name":"Limit Repeating","property":"payload.fields.totalyield","propertyType":"msg","rules":[{"t":"neq","v":"totalyield_sma","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":1360,"y":220,"wires":[["d6aca862.f625e8","8a66b781.4da878"]]},{"id":"fb9defaf.71ff3","type":"inject","z":"7756da.c2a07928","name":"Reset totalyield filter","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":171.5,"y":58,"wires":[["3453826b.5f907e"]]},{"id":"3453826b.5f907e","type":"function","z":"7756da.c2a07928","name":"Reset totalyield filter value","func":"flow.set('totalyield',0);\nflow.set('gas',0);","outputs":1,"noerr":0,"x":486,"y":58,"wires":[[]]},{"id":"4b398d0a.a3d4b4","type":"switch","z":"7756da.c2a07928","name":"Filter invalid","property":"payload.fields.totalyield","propertyType":"msg","rules":[{"t":"neq","v":"65535","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":990,"y":220,"wires":[["fa879f77.4baf9"]]},{"id":"cb4f0568.7f1c48","type":"exec","z":"7756da.c2a07928","command":"smeterd","addpay":false,"append":"read-meter --serial-baudrate 115200 --show-output consumed current produced voltage --tsv","useSpawn":"false","timer":"5","oldrc":false,"name":"","x":462.99999237060547,"y":552.0000896453857,"wires":[["a5d9004b.b9b74"],[],[]]},{"id":"a5d9004b.b9b74","type":"function","z":"7756da.c2a07928","name":"Extract smeterd","func":"var payload = msg.payload\nvar clean_payload = msg.payload.trim();\n\nvar output = clean_payload.split('\\t');\n\n\nvar consumed_high = output[0];\nvar consumed_low = output[1];\nvar consumed_gas = output[2];\nvar produced_high = output[3];\nvar produced_low = output[4];\nvar current_consumption = output[5];\nvar current_production = output[6];\nvar current_voltage = output[7];\n\nlet _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        consumed_high: consumed_high,\n        consumed_low: consumed_low,\n        consumed_gas: consumed_gas,\n        produced_high: produced_high,\n        produced_low: produced_low,\n        current_consumption: current_consumption,\n        current_production: current_production,\n        current_voltage: current_voltage,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":780,"y":740,"wires":[["572cb1c4.d6324","a21b3f99.78007","7582d8e5.0c4718","738333a1.49e76c","1bf75599.c1bb0a","fd89fd27.fb04c","322d7b8a.da34b4","87173f8d.eb97b","2775d582.eea69a","cfe0670a.b415e8","f303e6a6.68dd68"]]},{"id":"a21b3f99.78007","type":"function","z":"7756da.c2a07928","name":"Format P1 Consumption Low","func":"let consumed_low = msg.payload.consumed_low / 1000;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: consumed_low,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"Low\",\n\t\t    direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1420,"y":840,"wires":[["8a66b781.4da878"]]},{"id":"7582d8e5.0c4718","type":"function","z":"7756da.c2a07928","name":"Format P1 Consumption High","func":"let consumed_high = msg.payload.consumed_high / 1000;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: consumed_high,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"High\",\n\t\t    direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1430,"y":880,"wires":[["8a66b781.4da878"]]},{"id":"1bf75599.c1bb0a","type":"function","z":"7756da.c2a07928","name":"Format P1 Production Low","func":"let produced_high = msg.payload.produced_high / 1000;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: produced_high,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"Low\",\n\t\t    direction: \"Grid Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1420,"y":980,"wires":[["8a66b781.4da878"]]},{"id":"fd89fd27.fb04c","type":"function","z":"7756da.c2a07928","name":"Format P1 Production High","func":"let produced_low = msg.payload.produced_low / 1000;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: produced_low,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"High\",\n\t\t    direction: \"Grid Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1420,"y":1020,"wires":[["8a66b781.4da878"]]},{"id":"2775d582.eea69a","type":"function","z":"7756da.c2a07928","name":"Extract P1 Power","func":"let current_voltage = msg.payload.current_voltage\nlet current_consumption = msg.payload.current_consumption\nlet current_production = msg.payload.current_production\n\nlet _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n\t\t\tp1_ac_power_usage: Number(current_consumption),\n\t\t\tp1_ac_power_delivery: Number(current_production),\n\t\t\tp1_ac_voltage: Number(current_voltage),\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":778.0002098083496,"y":578.4999980926514,"wires":[["84a802bd.23e6d","c1c79824.373528","89ffe83e.9f1548","fc0157c7.890438"]]},{"id":"84a802bd.23e6d","type":"function","z":"7756da.c2a07928","name":"Format Grid Net Consumption","func":"let _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        measurement: \"energy\",\n\t\tfields: {\n\t\t\tvoltage: msg.payload.p1_ac_voltage,\n\t\t\tpower: msg.payload.p1_ac_power_usage - msg.payload.p1_ac_power_delivery,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    type: \"AC\",\n\t\t    direction: \"Grid Net Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1230,"y":580,"wires":[["8a66b781.4da878"]]},{"id":"738333a1.49e76c","type":"function","z":"7756da.c2a07928","name":"Format P1 Consumption Total","func":"let consumed_high = msg.payload.consumed_high / 1000;\nlet consumed_low = msg.payload.consumed_low / 1000;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: consumed_high + consumed_low,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"Total\",\n\t\t    direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1430,"y":920,"wires":[["8a66b781.4da878"]]},{"id":"322d7b8a.da34b4","type":"function","z":"7756da.c2a07928","name":"Format P1 Production Total","func":"let produced_low = msg.payload.produced_low / 1000;\nlet produced_high = msg.payload.produced_high / 1000;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: produced_low + produced_high,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"Total\",\n\t\t    direction: \"Grid Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1420,"y":1060,"wires":[["8a66b781.4da878"]]},{"id":"87173f8d.eb97b","type":"function","z":"7756da.c2a07928","name":"Format P1 Net Consumption Total","func":"let consumed_low = msg.payload.consumed_low / 1000;\nlet consumed_high = msg.payload.consumed_high / 1000;\nlet produced_low = msg.payload.produced_low / 1000;\nlet produced_high = msg.payload.produced_high / 1000;\n\nlet TotalUsage = consumed_low + consumed_high;\nlet TotalDelivery = produced_low + produced_high;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: TotalUsage - TotalDelivery,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"Total\",\n\t\t    direction: \"Grid Net Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1440,"y":1200,"wires":[["8a66b781.4da878"]]},{"id":"572cb1c4.d6324","type":"function","z":"7756da.c2a07928","name":"Format P1 Gas","func":"let consumed_gas = msg.payload.consumed_gas / 1000;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"gas\",\n\t\tfields: {\n\t\t\ttotalyield: consumed_gas,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1180,"y":740,"wires":[["6cb3edd2.321ea4"]]},{"id":"c1c79824.373528","type":"function","z":"7756da.c2a07928","name":"Format Grid Consumption","func":"let _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        measurement: \"energy\",\n\t\tfields: {\n\t\t\tvoltage: msg.payload.p1_ac_voltage,\n\t\t\tpower: msg.payload.p1_ac_power_usage,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    type: \"AC\",\n\t\t    direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1210,"y":620,"wires":[["d5c9153c.0cb918"]]},{"id":"89ffe83e.9f1548","type":"function","z":"7756da.c2a07928","name":"Format Grid Production","func":"let _msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        measurement: \"energy\",\n\t\tfields: {\n\t\t\tvoltage: msg.payload.p1_ac_voltage,\n\t\t\tpower: msg.payload.p1_ac_power_delivery*-1,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    type: \"AC\",\n\t\t    direction: \"Grid Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1210,"y":660,"wires":[["224570fd.c5023"]]},{"id":"d5c9153c.0cb918","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1440,"y":620,"wires":[["8a66b781.4da878"]]},{"id":"224570fd.c5023","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1440,"y":660,"wires":[["8a66b781.4da878"]]},{"id":"a854d0c0.09489","type":"function","z":"7756da.c2a07928","name":"Format Internal Consumption","func":"grid_consumption = msg.payload.p1_ac_power_usage;\ngrid_production = msg.payload.p1_ac_power_delivery;\n\ninternal_production = msg.payload.sma_ac_power_tot;\nif(internal_production == null)\n{\n    internal_production = 0;\n}\n\nnet_grid = grid_consumption - grid_production;\nnet_internal_consumption = internal_production + net_grid;\n\n\n\n\n_msg = {\n    payload: []\n};\n\n_msg.payload=\n    {\n        measurement: \"energy\",\n\t\tfields: {\n\t\t\tvoltage: msg.payload.p1_ac_voltage,\n\t\t\tpower: net_internal_consumption,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    type: \"AC\",\n\t\t    direction: \"Internal Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1220,"y":540,"wires":[["8a66b781.4da878"]]},{"id":"fc0157c7.890438","type":"join","z":"7756da.c2a07928","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"5","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1010,"y":540,"wires":[["a854d0c0.09489"]]},{"id":"efe46d48.f4459","type":"function","z":"7756da.c2a07928","name":"Create Timestamp","func":"let _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n\t\ttimestamp: new Date(),\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":190,"y":260,"wires":[["43ea38a0.da2d88"]]},{"id":"43ea38a0.da2d88","type":"change","z":"7756da.c2a07928","name":"Set Timestamp","rules":[{"t":"move","p":"payload.timestamp","pt":"msg","to":"timestamp","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":244.28905487060547,"y":320.3437786102295,"wires":[["eec48ef7.1e65a","2667525d.d4587e","e6de8775.8d10c8","cb4f0568.7f1c48"]]},{"id":"6cb3edd2.321ea4","type":"switch","z":"7756da.c2a07928","name":"Limit Repeating","property":"payload.fields.totalyield","propertyType":"msg","rules":[{"t":"neq","v":"gas","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":1420,"y":740,"wires":[["9cb9e059.073ea","8a66b781.4da878"]]},{"id":"9cb9e059.073ea","type":"function","z":"7756da.c2a07928","name":"Set totalyield filter value","func":"flow.set('gas',msg.payload.fields.totalyield);","outputs":1,"noerr":0,"x":1370,"y":780,"wires":[[]]},{"id":"1680367.9ef68ca","type":"interval","z":"7756da.c2a07928","name":"interval","interval":10,"onstart":false,"msg":"ping","showstatus":true,"unit":"seconds","statusformat":"YYYY-MM-D HH:mm:ss","x":90,"y":200,"wires":[["efe46d48.f4459"]]},{"id":"f303e6a6.68dd68","type":"function","z":"7756da.c2a07928","name":"Format P1 Net Consumption Low","func":"let consumed_low = msg.payload.consumed_low / 1000;\nlet produced_low = msg.payload.produced_low / 1000;\n\nlet TotalUsage = consumed_low;\nlet TotalDelivery = produced_low;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: TotalUsage - TotalDelivery,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"Low\",\n\t\t    direction: \"Grid Net Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1440,"y":1120,"wires":[["8a66b781.4da878"]]},{"id":"cfe0670a.b415e8","type":"function","z":"7756da.c2a07928","name":"Format P1 Net Consumption High","func":"let consumed_high = msg.payload.consumed_high / 1000;\nlet produced_high = msg.payload.produced_high / 1000;\n\nlet TotalUsage = consumed_high;\nlet TotalDelivery = produced_high;\nlet _msg = {\n    payload:[]\n};\n\n_msg.payload=\n    {\n        measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: TotalUsage - TotalDelivery,\n\t\t},\n\t\ttags:{\n\t\t    device: \"P1\",\n\t\t    rate: \"High\",\n\t\t    direction: \"Grid Net Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1440,"y":1160,"wires":[["8a66b781.4da878"]]},{"id":"84430495.b18c58","type":"modbus-client","z":"","name":"SMA","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":true,"tcpHost":"10.5.0.70","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"3","commandDelay":"1","clientTimeout":"1500","reconnectTimeout":"2000"},{"id":"27e18148.8340de","type":"influxdb","z":"","hostname":"127.0.0.1","port":"8086","protocol":"http","database":"SMA","name":"","usetls":false,"tls":"b2a3d022.4f648"},{"id":"b2a3d022.4f648","type":"tls-config","z":"","name":"local-tls","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","verifyservercert":false}]

SMA SB5.0 + 16x Jinko 310wp OWO + 10x Jinko 310wp WNW |--|--| Daikin 4MXM68N + 1x FTXA50AW + 3x FTXM20N


Acties:
  • 0 Henk 'm!

  • tmaniac
  • Registratie: Oktober 2006
  • Laatst online: 05-06 11:58
Zo, dat is een flinke flow :)

Ik heb (al dan niet een beetje omslachtig) een manier gevonden om er wat mee te kunnen doen;

Ik heb online een python script gevonden (sunspec-ardexa) die heel eenvoudig de inverter uit kan lezen en de data in een CSV file dumpt.

Hier heb ik een PowerShell script omheen gemaakt die ik vanaf 1 van m'n servers vanuit een scheduled task laat draaien.

Elke 30 seconden worden de waardes uitgelezen en in een CSV file gedumpt, deze wordt ingelezen en gepubliceerd in m'n MQTT broker.

Nu kan ik een dashboard maken in nodered en een device toevoegen in Homey.
Op deze manier heb ik toch nog the best of both worlds :)

(Python kan ik niet, NodeRed ben ik aan het leren maar PowerShell gebruik ik beroepsmatig dus daar ben ik wat meer in thuis, vandaar deze 'omslachtige' oplossing)

Acties:
  • 0 Henk 'm!

  • Pimmetje651
  • Registratie: Oktober 2001
  • Laatst online: 17-06 14:02
Topic bump, ik wil ook modus gaan gebruiken van mijn solaredge inverter. Maar ik kan het niet enable-en ? Iemand idee wat ik moet doen Afbeeldingslocatie: https://tweakers.net/i/in_V9dECOZnskcjiXHzMWjTGnfQ=/800x/filters:strip_icc():strip_exif()/f/image/KEpqfrcnLSmc6iLMXAIayUk7.jpg?f=fotoalbum_large

Its'nice 2be important, but it's more important 2be nice


Acties:
  • 0 Henk 'm!

  • joezzt
  • Registratie: November 2009
  • Niet online
Weet ik niet meer uit mijn hoofd, ik heb nu een omvormer zonder display. Maar knopjes zijn er om op te duwen ;-) Dus probeer wat, bovenin staat een link naar SE manual.

Gibson S-1, Godin Multiac ACS SA, Camps Cut 500S, Roland Jazz Chorus-120 , King Tempo II 607, TMS320C10, SAM4L


Acties:
  • 0 Henk 'm!

  • Pimmetje651
  • Registratie: Oktober 2001
  • Laatst online: 17-06 14:02
joezzt schreef op donderdag 22 oktober 2020 @ 07:49:
Weet ik niet meer uit mijn hoofd, ik heb nu een omvormer zonder display. Maar knopjes zijn er om op te duwen ;-) Dus probeer wat, bovenin staat een link naar SE manual.
Dat doe ik altijd graag, maar krijg het niet voor elkaar . Zie nergens een optie "enable"

Its'nice 2be important, but it's more important 2be nice


Acties:
  • 0 Henk 'm!

  • MaikelK.
  • Registratie: Maart 2013
  • Laatst online: 16-05 13:04
is het jullie al eens gelukt om data naar de omvomer te sturen?
Dit om niet ook nog een extra meter aan te schaffen om de echte import/export waarde te sturen?

Dus hetzelfde doen al wat de Wattnode of Inepro meter doet?
https://www.solaredge.com...-to-solaredge-devices.pdf

SolarEdge SE3500HD met 12x LG320N1K-A5 waarvan 6x ZO en 6x NW


Acties:
  • 0 Henk 'm!

  • Douwe Fokkema
  • Registratie: April 2018
  • Laatst online: 17-04-2023
Ik zou deze monitoer graag gaan gebruiken, maar waar vind ik de API key? Niet te vinden op het display van mijn SE5K inverter. In de MySolarEdge app heb ik wel een system Id (decimaal) gevonden. Ik weet niet of dat de goede is. Op het display van de inverter staat ook een system Id, maar dat is in hex.

Graag een hint voor de API key (encryption key?). Met veel dank.

Acties:
  • +1 Henk 'm!

  • Douwe Fokkema
  • Registratie: April 2018
  • Laatst online: 17-04-2023
Ik heb de API key gevonden. Gewoon inloggen op je SolarEdge account, dan naar Admin, onderaan de pagina kan je een API key genereren.

Acties:
  • 0 Henk 'm!

  • Narc
  • Registratie: November 2003
  • Laatst online: 15-06 13:27
Pimmetje651 schreef op woensdag 21 oktober 2020 @ 19:24:
Topic bump, ik wil ook modus gaan gebruiken van mijn solaredge inverter. Maar ik kan het niet enable-en ? Iemand idee wat ik moet doen [Afbeelding]
Ik kom toevallig deze vraag vijf jaar later tegen. Ik liep tegen hetzelfde aan. Je moet het poortnummer de eerste keer bevestigen door OK ingedrukt te houden. Daarna is Modbus te enablen/disablen.
Pagina: 1