Integration Photovoltaik-Anlage mit SolarEdge

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

blueb6
Beiträge: 97
Registriert: 08.01.2015, 20:22
Wohnort: Neufeld/Leitha

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von blueb6 » 21.09.2018, 08:28

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
LG Tom
________________________________________________________
1 Zentrale CCU3 (Raspberrymatic), 1 Lan Gateway, 6 Funk-Heizkörperthermostat, 11 Funk-Tür-/Fensterkontakt optisch, 1 RGBW Controller, 1 Funk-Schaltaktor 4-fach, Hutschienenmontage, 3 Funk-Schaltaktor 1-fach, Hutschienenmontage 1 Funk-Temperatur-/ Feuchtesensor außen, 5 Funk-Wandthermostat, 5 Funk-Schaltaktor 1-fach, Unterputzmontage, 1 Funk Bewegungsmelder Außen, 1 Funk-Temperaturdifferenz-Sensor, 1 Funk-Fernbedienung mit Display, 1 Funk-Schaltaktor 1-fach, Platine Batterie, 1 Funk-Sender für Energiezähler-Sensor, 2 Funk-Wandtaster 2-fach im 55er Rahmen
1 Homematic IP Schalt-Mess-Steckdose, 1 IP Schaltsteckdose, 1 Sirenensteuerung, 1 Innensirene,
und Zwei weitere Häuser mit Yahm, 7 LAN Gateways, 5 Energiemesser, 48 Heizkörperthermostate und 48 Fensterkontakte

blueb6
Beiträge: 97
Registriert: 08.01.2015, 20:22
Wohnort: Neufeld/Leitha

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von blueb6 » 16.01.2019, 19:09

Guten Abend allerseits

Leider noch keine Antwort auf meinen vorherigen Post.

hat wirklich keiner eine Idee dazu?

Danke

lg Tom
LG Tom
________________________________________________________
1 Zentrale CCU3 (Raspberrymatic), 1 Lan Gateway, 6 Funk-Heizkörperthermostat, 11 Funk-Tür-/Fensterkontakt optisch, 1 RGBW Controller, 1 Funk-Schaltaktor 4-fach, Hutschienenmontage, 3 Funk-Schaltaktor 1-fach, Hutschienenmontage 1 Funk-Temperatur-/ Feuchtesensor außen, 5 Funk-Wandthermostat, 5 Funk-Schaltaktor 1-fach, Unterputzmontage, 1 Funk Bewegungsmelder Außen, 1 Funk-Temperaturdifferenz-Sensor, 1 Funk-Fernbedienung mit Display, 1 Funk-Schaltaktor 1-fach, Platine Batterie, 1 Funk-Sender für Energiezähler-Sensor, 2 Funk-Wandtaster 2-fach im 55er Rahmen
1 Homematic IP Schalt-Mess-Steckdose, 1 IP Schaltsteckdose, 1 Sirenensteuerung, 1 Innensirene,
und Zwei weitere Häuser mit Yahm, 7 LAN Gateways, 5 Energiemesser, 48 Heizkörperthermostate und 48 Fensterkontakte

homeoder
Beiträge: 2
Registriert: 28.02.2019, 16:56

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von homeoder » 28.02.2019, 17:01

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

homeoder
Beiträge: 2
Registriert: 28.02.2019, 16:56

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von homeoder » 28.02.2019, 19:31

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

Benutzeravatar
tgw
Beiträge: 203
Registriert: 10.10.2013, 22:35
Wohnort: Recklinghausen

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von tgw » 06.05.2019, 22:06

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?
Dateianhänge
2019-05-06 22_02_18-192.168.3.114 - PuTTY.png
2019-05-06 22_02_18-192.168.3.114 - PuTTY.png (8.72 KiB) 190 mal betrachtet
Viele Grüße aus Recklinghausen im Ruhrpott

Euer TGW

Ja, ich habe schon ein paar Komponenten, aber noch lange nicht genug, um hier anstinken zu können! :-) Also reihe ich mich erstmal hinten an.
Ich bin Jahrgang 1959, bitte helft mir nicht über die Straße, aber etwas bei Homematic! :-)

Benutzeravatar
tgw
Beiträge: 203
Registriert: 10.10.2013, 22:35
Wohnort: Recklinghausen

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von tgw » 13.05.2019, 11:30

Keine Lösung?
Viele Grüße aus Recklinghausen im Ruhrpott

Euer TGW

Ja, ich habe schon ein paar Komponenten, aber noch lange nicht genug, um hier anstinken zu können! :-) Also reihe ich mich erstmal hinten an.
Ich bin Jahrgang 1959, bitte helft mir nicht über die Straße, aber etwas bei Homematic! :-)

PaulM
Beiträge: 69
Registriert: 16.02.2015, 17:05

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von PaulM » 11.06.2019, 18:37

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
Mit Mut und Entschlossenheit gegen Intoleranz

Antworten

Zurück zu „Projektvorstellungen“