Integration Photovoltaik-Anlage mit SolarEdge

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von alchy » 12.05.2016, 22:37

Zeitfraktur hat geschrieben: So oder so, es funktioniert hier wie vom Threadersteller im ersten Posting beschrieben.
Sag(te) ich doch 8)

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

csfor0101
Beiträge: 8
Registriert: 02.05.2016, 17:15

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von csfor0101 » 13.05.2016, 06:32

Guten Morgen,

Ich glaube ja und gehe davon aus, das das Beispiel wie vom Threadersteller im ersten Posting beschrieben funktioniert.
Ich tippe ja auch auf einen Fehler von mir. Trotzdem hing der Script und die Werte wurden nicht geschrieben.
Nachdem ich diese Power Zeile geändert hatte lief es ja.
Wodurch dieses Verhalten kommt weis ich noch nicht. An der Firmware für den Raspberry sicherlich nicht?
Falls ich durch weiteres Testen meinen Fehler (den Fehler) finden sollte, dann poste ich es hier.

Ich wünsche Euch schöne Pfingsten

csfor0101

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von alchy » 13.05.2016, 15:20

Noch einmal / aber nun letztmalig. Die Umschreibung des Scriptes ist *IMHO* unnötig.
Wenn es NICHT funktioniert, dann das Script von der Kommandozeile aufrufen und die Fehlermeldung posten.
Deine Aussage "Trotzdem hing der Script und die Werte wurden nicht geschrieben." reicht mir nicht als Antwort.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

ChristianF
Beiträge: 395
Registriert: 27.06.2014, 21:50

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von ChristianF » 25.05.2016, 01:12

Moin. Ich habe das Script auf die damals gültige Formatierung der XML für die alte Generation der SE WR gebaut, da ich genau so einen habe. Wie bei der neuen Generation die XML aussieht weiß ich nicht, aber vielleicht ist ja gerade das das Problem?

In der von mir vorn geposteten Fassung läuft das Script übrigens auch heute noch wunderbar bei mir, dank Alchy :-)
370 Kanäle in 119 Geräten und 22 CUxD-Kanäle in 18 CUxD-Geräten, dazu ioBroker und diverse weitere eingebundene Systeme, vom 433MHz Bewegungsmelder bis hin zur Wallbox.

obarni
Beiträge: 34
Registriert: 21.09.2013, 22:08

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von obarni » 29.09.2016, 22:24

Hallo zusammen,

ich interessiere mich auch für das Auslesen von Daten aus dem Solaredge Wechselrichter. API-Key und Standort liegen mir vor.

Ich würde denken, dass der Aufruf von "https://monitoringapi.solaredge.com/sit ... IN_API_KEY" im Browser zu einem sinnvollen Ergebnis führen müsste, oder liege ich da falsch. Das war jedenfalls meine Idee einen ersten Check auf Funktionsfähigkeit zu machen, bevor ich die Arbeit in der Anleitung angehe.

Leider bekomme ich als Antwort "Access to the specified resource () has been forbidden." Habe ich einen Gedankenfehler? Muss hier mein Solateur noch etwas einstellen? Oder wurde die API Schnittstelle inzwischen gegen Aufrufe von außen geschlossen?


Danke für Eure Hilfe

PS: Noch lieber wäre mir natürlich der direkte Zugriff auf die Daten (ohne die Begrenzung alle 15 Minuten!)

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von unlight » 30.09.2016, 07:01

Eigentlich solltest du damit etwas zurück erhalten. Du kannst (zumindest wenn nur 1 Wechselrichter über das Konto läuft) alle 5 minuten einen Aufruf machen, die Daten werden zwar bei solaredge aggregiert aber sind trotzdem in dieser Auflösung abrufbar. Bedenken solltest du nur das maximal 300 Aufrufe am Tag gemacht werden dürfen.
Für direkten Abruf vom WR gibt es noch das Projekt "semonitor"https://github.com/jbuehl/solaredge, damit kann man über rs485 die Daten direkt vom WR holen, ist wohl aber etwas bastelarbeit. Ich habe mich letztendlich für eine zusätzliche Messung mit smappee phasenklemmen entschieden, war einfacher und hat eine 5 Sekunden Auflösung.

Gruß
Unlight

Gesendet von meinem RAINBOW JAM mit Tapatalk
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

obarni
Beiträge: 34
Registriert: 21.09.2013, 22:08

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von obarni » 01.10.2016, 11:02

Hallo nochmal,

danke Unlight für Deine Ausführung.

Ich muss trotzdem nochmal die Frage stellen, ob

https://monitoringapi.solaredge.com/sit ... IN_API_KEY

im Browser aufgerufen nicht zum Abruf und anzeigen von Daten führen müsste. ich bekomme derzeit eine Fehlermeldung ("Access to the specified resource () has been forbidden."). Oder hat sich der Aufruf inzwischen geändert?

Ich würde gerne der Anleitung von Christian folgen und das auf der CCU2 implementieren. Wollte mit dem o.g. Aufruf einen ersten Test machen bevor ich alles umsetzte. und nun hängt es schon :-(


Danke für Eure Rückmeldung!

PS: SMAPPEE scheint mir für den Mehrwert (also für mich das Auslesen der Daten der Solaranlage (Solaredge) zu teuer. Der Rest von SMAPPEE ist für mich unwichtig.

Benutzeravatar
unlight
Beiträge: 484
Registriert: 23.12.2012, 13:03
Wohnort: Ruhrpott

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von unlight » 01.10.2016, 11:22

Ich nehme an das die sitenummer oder der key nicht stimmen, wenn man Phantasiezahlen eingibt kommt die gleiche Fehlermeldung. Mit meinen Daten erhalte ich mit der URL die Übersicht meiner Anlage.

Gesendet von meinem RAINBOW JAM mit Tapatalk
“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”

obarni
Beiträge: 34
Registriert: 21.09.2013, 22:08

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von obarni » 01.10.2016, 11:44

Ok, thx. Dann werde ich wohl nochmal meinen Solateur kontaktieren müssen.

hueni2
Beiträge: 3
Registriert: 22.11.2016, 19:33

Re: Integration Photovoltaik-Anlage mit SolarEdge

Beitrag von hueni2 » 22.11.2016, 20:06

Hallo Christian,
vielen Dank für Deine prima Anleitung. Ich lese nun auch meinen Verbrauch aus und berechne dann die Einspeisung. Wenn die Einspeisung hoch genug ist aktiviere ich einen Verbraucher über die Zwischensteckdose von HomeMatic.
Hier das Skript um den Verbrauch auszulesen:

Code: Alles auswählen

load tclrega.so

# Start und Endzeit ermitteln
# ========================================================
		
set date [clock format [clock seconds] -format {%Y-%m-%d}]
set startHour [clock format [clock seconds] -format {%H}]
set endHour $startHour
set startMinute 0
set endMinute $startMinute

if {[clock format [clock seconds] -format {%M}] == 0} {set startMinute 45}
if {[clock format [clock seconds] -format {%M}] == 0} {set endMinute 0}
if {[clock format [clock seconds] -format {%M}] == 0} {set startHour [expr $startHour - 1]}
if {[clock format [clock seconds] -format {%M}] == 0} {set endHour [expr $startHour + 1]}

if {[clock format [clock seconds] -format {%M}] > 15} {set startMinute 15}
if {[clock format [clock seconds] -format {%M}] > 30} {set startMinute 30}
if {[clock format [clock seconds] -format {%M}] > 45} {set startMinute 45}

if {[clock format [clock seconds] -format {%M}] > 0 && [clock format [clock seconds] -format {%M}] <= 45} {set endMinute [expr $startMinute + 15]}
if {[clock format [clock seconds] -format {%M}] > 45} {set endMinute 0}
if {[clock format [clock seconds] -format {%M}] > 45} {set endHour [expr $startHour + 1]}

if {$startMinute < 10} {set startMinute 0$startMinute}
if {$endMinute < 10} {set endMinute 0$endMinute}

set startTime "$date%20$startHour:$startMinute:00"
set endTime "$date%20$endHour:$endMinute:00"


# SolarEdge API User Daten 
# ========================================================

set site <DEINE SITE-ID>
set apiKey <DEIN API-KEY>

		
# Consumption auslesen
# ========================================================

set url "https://monitoringapi.solaredge.com/site/$site/powerDetails.xml?meters=CONSUMPTION&startTime=$startTime&endTime=$endTime&api_key=$apiKey"
exec /usr/bin/wget --no-check-certificate -q -O /usr/local/addons/solaredge/consumption.xml $url
set f [open "/usr/local/addons/solaredge/consumption.xml"]
set input [read $f]
close $f


# Consumption aus XML Datei auslesen
# ========================================================

regexp "<value>(.*?)</value></meterTelemetry>" $input dummy currentv0;


# Consumption in Variable schreiben
# ========================================================

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


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

rega_script $rega_cmd
[/quote]

Die Einspeisung berechne ich über ein weiteres Programm und speichere den Wert in eine Systemvariable. Dieses Programm wird mit 5 sec. Verzögerung zum Auslesen der SolarEdge Daten gestartet. Hier das Programm Script:

[quote]
real production = dom.GetObject("SolarEdge-Production").Value();
real consumption = dom.GetObject("SolarEdge-Consumption").Value();
real FeedIn = production - consumption;

if (FeedIn < 0) {FeedIn = 0;}

dom.GetObject("SolarEdge-FeedIn").State(FeedIn);
Zuletzt geändert von alchy am 07.06.2017, 17:36, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

Antworten

Zurück zu „Projektvorstellungen“