Seite 5 von 7

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 21.09.2018, 08:28
von blueb6
Guten Morgen

Habe folgendes Problem

Ich schaffe es nicht folgenses XML auszulesen und in Variablen zu schreiben

Code: Alles auswählen

<?xml version="1.0"?>
-<siteCurrentPowerFlow>
<updateRefreshRate>3</updateRefreshRate>
<unit>kW</unit>
-<GRID>
<status>Active</status>
<currentPower>0.16</currentPower>
</GRID>
-<LOAD>
<status>Active</status>
<currentPower>0.21</currentPower>
</LOAD>
-<PV>
<status>Active</status>
<currentPower>0.37</currentPower>
</PV>
-<connections>
-<connection>
<from>LOAD</from>
<to>Grid</to>
</connection>
-<connection>
<from>PV</from>
<to>Load</to>
</connection>
</connections>
</siteCurrentPowerFlow>

so habe ich es probiert um die wichtigsten Sachen auszulesen
ich denke das das Problem ist dass zwischen z.B. GRID zwei Werte zum auslesen sind

bzw wie kann ich die Werte der Connection in eine Variable (Zeichenkette) schreiben, dass dann in der variablen steht z.B. from PV to Load oder from LOAD to Grid?

Code: Alles auswählen

load tclrega.so

    # Daten von SE holen
    # ==================

    set url "https://monitoringapi.solaredge.com/site/xxxxx/currentPowerFlow.xml?api_key=xxxxx"
    exec /usr/bin/wget --no-check-certificate -q -O /usr/local/addons/solaredge/export1.xml $url

    set f [open "/usr/local/addons/solaredge/export1.xml"]
    set input [read $f]
    close $f


    # Werte aus XML Datei auslesen
    # =============================

    regexp "<GRID><currentPower>(.*?)</currentPower></GRID>" $input dummy currentv0  ;
    regexp "<LOAD><currentPower>(.*?)</currentPower></LOAD>" $input dummy currentv1  ;
        regexp "<PV><currentPower>(.*?)</currentPower></PV>" $input dummy currentv3  ;


    # Werte in Variable schreiben
    # =============================

    set rega_cmd ""

    append rega_cmd "var w0 = dom.GetObject('SolarEdge-GRID');"
    append rega_cmd "w0.State('$currentv0');"

    append rega_cmd "var w1 = dom.GetObject('SolarEdge-LOAD');"
    append rega_cmd "w1.State('$currentv1');"

    append rega_cmd "var w2 = dom.GetObject('SolarEdge-PV');"
    append rega_cmd "w2.State('$currentv2');"

    # Daten an die CCU2 übergeben
    # =============================

    rega_script $rega_cmd

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 16.01.2019, 19:09
von blueb6
Guten Abend allerseits

Leider noch keine Antwort auf meinen vorherigen Post.

hat wirklich keiner eine Idee dazu?

Danke

lg Tom

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 28.02.2019, 17:01
von homeoder
Hallo,
so mache ich das.
z.B.

Code: Alles auswählen

	regexp "<GRID><status>.*?</status><currentPower>(.*?)</currentPower></GRID>" $input dummy currentv0 ;
	regexp "<LOAD><status>.*?</status><currentPower>(.*?)</currentPower></LOAD>" $input dummy currentv1 ;
	regexp "<PV><status>.*?</status><currentPower>(.*?)</currentPower></PV>" $input dummy currentv2 ;
Gruß Frank

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 28.02.2019, 19:31
von homeoder
Hallo,
in der API wird die (Strom-)Richtung durch <from> und <to> angegeben. Ich stelle beim Zukauf den Wert in der Variablen negativ dar!

Code: Alles auswählen

	regexp "<connections><connection><from>(.*?)</from><to>(.*?)</to></connection></connections>" $input dummy from to ;
	
	# Zukauf - Vorzeichen drehen
	if {$from == "GRID"} {set  currentv0 [expr $currentv0 * -1]}
Gruß Frank

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 06.05.2019, 22:06
von tgw
Hallo zusammen,
ich bekomme bei manueller Ausführung des Scripts eine Fehlermeldung. Siehe Anhang.

Ich benutze das originale Scrip mit korrektem API und Standort und bekomme folgende Daten, wenn ich im Webbrowser abfrage:

Code: Alles auswählen

<overview><lastUpdateTime>2019-05-06 21:25:49</lastUpdateTime><lifeTimeData><energy>2290677.0</energy><revenue>632.1977</revenue></lifeTimeData><lastYearData><energy>2289969.0</energy></lastYearData><lastMonthData><energy>189456.0</energy></lastMonthData><lastDayData><energy>23282.0</energy></lastDayData><currentPower><power>0.0</power></currentPower><measuredBy>INVERTER</measuredBy></overview>
Ich habe jetzt mal alles Mögliche getestet. Wenn ich statt in currentv5 in currentv4 schreibe, rennt das scrip. Er stößt sich definitiv auch nicht an den zwei Werten in LifeTimeData. Kann es eine andere Wertdefinition sein?

Für einen Tipp bin ich dankbar.

Und da wäre noch was:
Warum muss ich eine Variable LastDayData definieren und eine Variable ThisDayData, bekomme aber eine von den Variablen überhaupt nicht geliefert und auch nicht gefüllt. Irgendwas stimmt doch nicht.

Gibt es eigentlich eine Abfrage für den Akkustand?

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 13.05.2019, 11:30
von tgw
Keine Lösung?

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 11.06.2019, 18:37
von PaulM
Warum muss ich eine Variable LastDayData definieren und eine Variable ThisDayData, bekomme aber eine von den Variablen überhaupt nicht geliefert und auch nicht gefüllt. Irgendwas stimmt doch nicht.
wenn in einem Skript eine Variable angesprochen wird, die es in der CCU nicht gibt (oder nicht in dieser Schreibweise, oder nicht im richtigen Wertetyp), führt es in aller Regel zum Abbruch. Wenn man das Skript mit seinen Abhängigkeiten versteht, kann man natürlich das Skript anpassen.
Gruß
Paul

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 02.07.2019, 11:14
von tgw
Dann wäre es sinnvoll, wenn hier das Beispiel mal korrigiert wird.

Ansonsten Danke für die Hilfe, ich habe meine Anlage jetzt über die API sogar mit Echtzeitwerten perfekt angebunden. Schwachpunkt sind jetzt die häufigen Ausfälle der API. Solaredge möchte mir weißmachen, ich überschreite die maximalen Abfragen. 300 Abfragen pro Tag werden aber bei 10-Minutenintervallen nicht erreicht.

Also falls jemand dahingehend mal Ausfälle hat, den Jungs von Solaredge immer schön entgegentreten. Für die sind Kunden eh nur fehlerhafte Existenzen.

OT:
Ich suche jemandem, mit dem ich abgleichen kann, wenn deren API ausfällt BTW.

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 25.07.2019, 19:41
von DneprM750
Guten Tag,

Ich hätte gern etwas wissen: ist es möglich, außerhalb des Hauses mit SolarEdge Photovoltaikmodulen zu steuern oder ein/ausschalten? Ich hätte gern einen von diesen Häuser in Griechenland kaufen, und einen Heimautomationsystem mit Solarmodulen dort einsetzen. Ich werde natürlich oft da sein, aber ich hätte auch gern die Schlüsseln des Hauses meinen Eltern oder ältesten Sohnen manchmal verleihen. Und im Fall, dass sie einige Problemen mit den Heimautomationsystem haben, hätte ich gern ein Weg, ihm zu helfen, haben.

Re: Integration Photovoltaik-Anlage mit SolarEdge

Verfasst: 15.01.2020, 20:20
von Indi55
Hallo zusammen,
das Auslesen der Werte geht bei neueren WR von Solaredge auch über Modbus TCP.
ggf. muss die Firmware aus den neusten Stand gebracht werden.
Ohne API immer die aktuellen Werte auslesen. Alle Register des SunSpec Protokolls können
ausgelesen werden. Siehe Solaredge https://www.solaredge.com/sites/defaul ... te-de.pdf

Software:
https://homematic-forum.de/forum/viewt ... solaredge

Klappt super.

Gruß