Solaredge API Modul für FHEM

Begonnen von flipkill, 14 Juni 2016, 14:36:38

Vorheriges Thema - Nächstes Thema

flipkill

Hallo,

gibt es hier in dem Forum noch andere leute die einen Solaredge Wechselrichter besitzen und die ganzen Daten gerne nicht nur in ihrem SOlaredge Portal hätten sondern das ganze auch in FHEM.
Es sollte doch hier möglich sein ein Modul zu schreiben. Das man dann bequem nur noch den API Key benötigt und die Daten dann Bequem in FHEM verwalten kann.
Gibt es so was schon?
Gibt es Leute die sowas machen können / Lust haben?

Gruß Jan

pejonp

Hallo Jan,

ich habe eine SolarEdge SE5K Wechselrichter. Dieser ist über eine RS485 Schnittstelle in FHEM eingebunden. Entweder über USB Digitus DA-70157 Seriell Adapter USB 2.0 (https://www.amazon.de/gp/product/B007VZY4CW/ref=oh_aui_detailpage_o08_s00?ie=UTF8&psc=1)  oder per IP USR-TCP232-24 Converter Module Server RS232 RS485 serial to Ethernet (http://www.ebay.de/itm/271840382550?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT).

Zum Auslesen der RS485 Schnittstelle gibt es auch Software (http://qmodbus.sourceforge.net/ ). Hier sind noch einige Beiträge für die RS485 Anbindung (https://forum.fhem.de/index.php/topic,25315.msg337940.html#msg337940).

Die Definition des SolarEdge WR angebunden über IP:

# RS485 SolarEdge Wechselrichter
define PWP ModbusAttr 3 60 IP:20108 RTU
attr PWP userattr dev-h-combine dev-h-defPoll obj-h100-reading obj-h101-reading obj-h103-expr obj-h103-format obj-h103-reading obj-h107-map obj-h107-reading obj-h68-expr obj-h68-reading obj-h69-expr obj-h69-reading obj-h70-expr obj-h70-reading obj-h71-reading obj-h72-reading obj-h73-reading obj-h74-reading obj-h75-reading obj-h83-reading obj-h84-expr obj-h84-reading obj-h85-expr obj-h85-reading obj-h86-expr obj-h86-reading obj-h87-expr obj-h87-reading obj-h88-expr obj-h88-reading obj-h89-expr obj-h89-reading obj-h90-expr obj-h90-reading obj-h91-expr obj-h91-reading obj-h92-expr obj-h92-reading obj-h93-expr obj-h93-format obj-h93-len obj-h93-reading obj-h93-unpack obj-h95-expr obj-h95-reading obj-h96-expr obj-h96-reading obj-h97-expr obj-h97-reading obj-h98-expr obj-h98-reading obj-h99-expr obj-h99-reading verbose
attr PWP dev-h-combine 50
attr PWP dev-h-defPoll 1
attr PWP obj-h100-reading I_DC_Leistung_W
attr PWP obj-h101-reading I_DC_Leistung_SF
attr PWP obj-h103-expr $val / 100
attr PWP obj-h103-format %.f
attr PWP obj-h103-reading Temp_Kuehler_C
attr PWP obj-h107-map 1:Aus, 2:Nachtmodus, 4:WR_An
attr PWP obj-h107-reading C_Status
attr PWP obj-h68-expr $val
attr PWP obj-h68-reading C_Geraeteadresse
attr PWP obj-h69-expr $val
attr PWP obj-h69-reading C_SunSpec_DID
attr PWP obj-h70-expr $val
attr PWP obj-h70-reading C_SunSpec_Laenge
attr PWP obj-h71-reading I_AC_Strom_A
attr PWP obj-h72-reading I_AC_StromL1_A
attr PWP obj-h73-reading I_AC_StromL2_A
attr PWP obj-h74-reading I_AC_StromL3_A
attr PWP obj-h75-reading I_AC_Strom_SF
attr PWP obj-h83-reading I_AC_Leistung_W
attr PWP obj-h84-expr $val
attr PWP obj-h84-reading I_AC_Leistung_SF
attr PWP obj-h85-expr $val
attr PWP obj-h85-reading I_AC_Frequenz_Hz
attr PWP obj-h86-expr $val
attr PWP obj-h86-reading I_AC_Frequenz_SF
attr PWP obj-h87-expr $val
attr PWP obj-h87-reading I_AC_VA
attr PWP obj-h88-expr $val
attr PWP obj-h88-reading I_AC_VA_SF
attr PWP obj-h89-expr $val
attr PWP obj-h89-reading I_AC_VAR
attr PWP obj-h90-expr $val
attr PWP obj-h90-reading I_AC_VAR_SF
attr PWP obj-h91-expr $val
attr PWP obj-h91-reading I_AC_PF_Prozent
attr PWP obj-h92-expr $val
attr PWP obj-h92-reading I_AC_PF_SF
attr PWP obj-h93-expr $val / 1000
attr PWP obj-h93-format %.2f
attr PWP obj-h93-len 2
attr PWP obj-h93-reading I_AC_Energie_WH_kWh
attr PWP obj-h93-unpack l>
attr PWP obj-h95-expr $val
attr PWP obj-h95-reading I_AC_Energie_WH_SF
attr PWP obj-h96-expr $val
attr PWP obj-h96-reading I_DC_Strom_A
attr PWP obj-h97-expr $val
attr PWP obj-h97-reading I_DC_Strom_SF
attr PWP obj-h98-expr $val
attr PWP obj-h98-reading I_DC_Spannung_V
attr PWP obj-h99-expr $val
attr PWP obj-h99-reading I_DC_Spannung_SF
attr PWP room Solar
attr PWP verbose 1


define FileLog_SolarWR FileLog ./log/SolarWR-%Y-%m.log I_AC_Frequenz_Hz.*|I_DC_Leistung_W.*|I_AC_Leistung_W.*|PWP.*
attr FileLog_SolarWR logtype text
attr FileLog_SolarWR room Solar

define AC_FrequenzWR notify PWP:I_AC_Frequenz_Hz.* {\
use Math::Round qw/nearest/;;;;\
    my $a = ReadingsVal("PWP","I_AC_Frequenz_Hz",0) ;;;; \
    my $b = ReadingsVal("PWP","I_AC_Frequenz_SF",0) ;;;; \
    my $beginn = 65536;;;; \
    my $vv = $beginn - $b;;;;  \
    if ($vv==6){$vv=1000000;;} elsif($vv == 5){$vv=100000;;}elsif($vv == 4){$vv=10000;;}elsif($vv == 3){$vv=1000;;} elsif($vv == 2){$vv=100;;}elsif($vv == 1 ){$vv=10;;}else{$vv=1;;};;;; \
    my $sum1 = nearest(0.001, $a/$vv);;;; \
    my $text = "$sum1" ;;;; \
    fhem ("set I_AC_Frequenz_Hz $text") ;;;; \
    }
attr AC_FrequenzWR room Solar
define I_AC_Frequenz_Hz dummy
attr I_AC_Frequenz_Hz room Solar

define DC_LeistungWR notify PWP:I_DC_Leistung_W.* {\
use Math::Round qw/nearest/;;;;\
    my $a = ReadingsVal("PWP","I_DC_Leistung_W",0) ;;;; \
    my $b = ReadingsVal("PWP","I_DC_Leistung_SF",0) ;;;; \
    my $beginn = 65536;;;; \
    my $vv = $beginn - $b;;;;  \
    if ($vv==6){$vv=1000000;;} elsif($vv == 5){$vv=100000;;}elsif($vv == 4){$vv=10000;;}elsif($vv == 3){$vv=1000;;} elsif($vv == 2){$vv=100;;}elsif($vv == 1 ){$vv=10;;}else{$vv=1;;};;;; \
    my $sum1 = nearest(0.001, $a/$vv);;;; \
    my $text = "$sum1" ;;;; \
    fhem ("set I_DC_Leistung_W $text") ;;;; \
    }
attr DC_LeistungWR room Solar
define I_DC_Leistung_W dummy
attr I_DC_Leistung_W room Solar,Sonnenbatterie

define DC_StromWR notify PWP:I_DC_Strom_A.* {\
use Math::Round qw/nearest/;;;;\
    my $a = ReadingsVal("PWP","I_DC_Strom_A",0) ;;;; \
    my $b = ReadingsVal("PWP","I_DC_Strom_SF",0) ;;;; \
    my $beginn = 65536;;;; \
    my $vv = $beginn - $b;;;;  \
    if ($vv==6){$vv=1000000;;} elsif($vv == 5){$vv=100000;;}elsif($vv == 4){$vv=10000;;}elsif($vv == 3){$vv=1000;;} elsif($vv == 2){$vv=100;;}elsif($vv == 1 ){$vv=10;;}else{$vv=1;;};;;; \
    my $sum1 = nearest(0.001, $a/$vv);;;; \
    my $text = "$sum1" ;;;; \
    fhem ("set I_DC_Strom_A $text") ;;;; \
    }
attr DC_StromWR room Solar
define I_DC_Strom_A dummy
attr I_DC_Strom_A room Solar,Sonnenbatterie

define AC_LeistungWR notify PWP:I_AC_Leistung_W.* {\
use Math::Round qw/nearest/;;;;\
    my $a = ReadingsVal("PWP","I_AC_Leistung_W",0) ;;;; \
    my $b = ReadingsVal("PWP","I_AC_Leistung_SF",0) ;;;; \
    my $beginn = 65536;;;; \
    my $vv = $beginn - $b;;;;  \
    if ($vv==6){$vv=1000000;;} elsif($vv == 5){$vv=100000;;}elsif($vv == 4){$vv=10000;;}elsif($vv == 3){$vv=1000;;} elsif($vv == 2){$vv=100;;}elsif($vv == 1 ){$vv=10;;}else{$vv=1;;};;;; \
    my $sum1 = nearest(0.001, $a/$vv);;;; \
    my $text = "$sum1" ;;;; \
    fhem ("set I_AC_Leistung_W $text") ;;;; \
    }
attr AC_LeistungWR room Solar
define I_AC_Leistung_W dummy
attr I_AC_Leistung_W room Solar,Sonnenbatterie

define AC_StromWR notify PWP:I_AC_Strom_A.* {\
use Math::Round qw/nearest/;;;;\
    my $a = ReadingsVal("PWP","I_AC_Strom_A",0) ;;;; \
    my $a1 = ReadingsVal("PWP","I_AC_StromL1_A",0) ;;;; \
    my $a2 = ReadingsVal("PWP","I_AC_StromL2_A",0) ;;;; \
    my $a3 = ReadingsVal("PWP","I_AC_StromL3_A",0) ;;;; \
    my $b = ReadingsVal("PWP","I_AC_Strom_SF",0) ;;;; \
    my $beginn = 65536;;;; \
    my $vv = $beginn - $b;;;;  \
    if ($vv==6){$vv=1000000;;} elsif($vv == 5){$vv=100000;;}elsif($vv == 4){$vv=10000;;}elsif($vv == 3){$vv=1000;;} elsif($vv == 2){$vv=100;;}elsif($vv == 1 ){$vv=10;;}else{$vv=1;;};;;; \
    my $sum1 = nearest(0.001, $a/$vv);;;; \
    my $text = "$sum1" ;;;; \
    fhem ("set I_AC_Strom_A $text") ;;;; \
    $sum1 = nearest(0.001, $a1/$vv);;;; \
    $text = "$sum1" ;;;; \
    fhem ("set I_AC_StromL1_A $text") ;;;; \
    $sum1 = nearest(0.001, $a2/$vv);;;; \
    $text = "$sum1" ;;;; \
    fhem ("set I_AC_StromL2_A $text") ;;;; \
    $sum1 = nearest(0.001, $a3/$vv);;;; \
    $text = "$sum1" ;;;; \
    fhem ("set I_AC_StromL3_A $text") ;;;; \
    }
attr AC_StromWR room Solar
define I_AC_StromL1_A dummy
attr I_AC_StromL1_A room Solar,Sonnenbatterie
define I_AC_StromL2_A dummy
attr I_AC_StromL2_A room Solar,Sonnenbatterie
define I_AC_StromL3_A dummy
attr I_AC_StromL3_A room Solar,Sonnenbatterie
define I_AC_Strom_A dummy
attr I_AC_Strom_A room Solar,Sonnenbatterie



Es gibt auch eine Anbindung über IP die den Datenstrom zwischen dem WR und dem SolarEdge-Portal mitliest und auswertet.
Das habe ich bei mir aber noch nicht hinbekommen. (https://github.com/jbuehl/solaredge)

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

flipkill

Hallo pejonp,

Das klingt ja ganz cool. Was bekommst du da alles an Werten raus?
Also auch was du selbst verbraucht hast, und was du eingespeist hast und was eingekauft oder wie sehen da so die ganzen Werte aus die du da raus bekommst??

Vielen Dank schonmal
Gruß Jan

pejonp

Hallo,
Der Solaredge WR zeigt mir über die rs485 Schnittstelle nur die Werte der  PV Anlage. Die anderen Werte werden aus den Stromzählern und der Sonnebatterie ausgelesen.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Tom_S

Das ist hier zwar schon etwas her, aber ich habe nichts weiter gefunden, und das war schon mal eine gute Starthilfe.
Ich habe jetzt auch einen SE7K. Ab einer Firmware > 3.xx (meiner hat 3.2018) kann der Modbus über TCP. Das kann man im Menue einstellen unter Kommunikation. Dann braucht man keine zusätzliche Hardware mehr. Ich kann mit ModbusAttr und dem Beispiel von hier die Register auslesen. Danke dafür. Mittlerweile ist mir auch die Zuordnung klar. Es gibt ja ein Datenblatt von Solaredge. Was ich aber noch nicht gefunden habe ist, wie man an die Daten der "Optimierer" DC-DC Wandler der Module kommt. Sind die auch irgendwo in den Registern? Hat sich damit schon mal einer beschäftigt?

LG
Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

pejonp

Hallo Tom_S,

die einzelnen Optimiere auszulesen ist nicht so einfach. Da die Daten per UDP oder so gesendet werden und direkt an den Server bei Solaredge gehen. Schau mal hier (https://github.com/jbuehl/solaredge/issues/8#issuecomment-241285392). Ich hatte dazu einen RaspberryPi mit einem USB-Ethernetadapter genommen und diesen zwischen SolatEdge-WR und Switch gehangen. Auf dem Raspi liefen die Programme von jbuehl und haben die Daten mitgeloggtn  bzw. schon angefangen diese in eine SQL-DB zu schreiben. Habe dann aber leider nicht weiter gemacht.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

BenMarloe

Habe einen Wikieintrag gemacht, wie man Daten aus via ModbusAttr aus dem Solaredge SE10k ziehen kann.
Wenn jemand fragen hat würde ich die auch beantworten.
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

satprofi

Zitat von: BenMarloe am 30 Dezember 2017, 12:53:30
Habe einen Wikieintrag gemacht, wie man Daten aus via ModbusAttr aus dem Solaredge SE10k ziehen kann.
Wenn jemand fragen hat würde ich die auch beantworten.
hallo. wo findet man den wiki?

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

CoolTux

Hier ist sicherlich das FHEM Wiki gemeint. Google hilft Dir da weiter.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

flipkill

Hallo,
ich habe das nun über HTTPMOD mit der Solaredge API realisiert. Da alle Daten ja auch über die API zu bekommen sind. Wenn ich könnte würde ich das ganze als Modul umbauen und einchecken nur kann ich das leider nicht.
Gibt es jemand der sich dafür bereit erklären würde?
zum Testen unterstützen bin ich jederzeit bereit.
Sollte auch nicht so schwer sein ein erstes kleines Modul zu schreiben oder?
Die Werte bekommt man bei Solaredge per API Calls als XML oder Json.

Gruß Jan

CoolTux

Hast Du mal eine Webseite? API Beschreibung oder sowas?



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

pejonp

Hallo,

hier hängt eine Modbusbeschreibung von SolarEdge dran. Mit diesen Daten wird mein WR ausgelesen.

https://forum.fhem.de/index.php/topic,25315.msg488853.html#msg488853

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

danillo

#12
@BenMarloe
Ich hab den Wechselrichter angeschlossen. Die Verbindung zu Solaredge steht auch. TCP-Port ist 502 und freigegeben. Aber ich kann mich über FHEM leider nicht verbinden. Bleibt immer auf disconnect.
Hat sich geklärt: Man hat nur ein kurzes Zeitfenster nach dem Aktivieren, um sich anzumelden. Dann geht's!

BenMarloe

Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Butzel

Die Anbindung meines SE5K HD hat funktioniert. Bisher wird ausgelesen, weiter bin ich derzeit nicht.
Meine Readings (Log entn.) sind allerdings lustig:



2018-05-09 14:38:23 ModbusAttr SolarEdge AC-Energy: 520256
2018-05-09 14:38:23 ModbusAttr SolarEdge DC-Power: 3363
2018-05-09 14:38:23 ModbusAttr SolarEdge AC-Power-Scale: 0
2018-05-09 14:38:23 ModbusAttr SolarEdge DC-Voltage: 3700
2018-05-09 14:38:23 ModbusAttr SolarEdge DC-Current-Scale: -3
2018-05-09 14:38:23 ModbusAttr SolarEdge AC-Volt-A: 6553.5
2018-05-09 14:38:24 ModbusAttr SolarEdge AC-Power: 3311
2018-05-09 14:38:24 ModbusAttr SolarEdge DC-Power-Scale: 0
2018-05-09 14:38:24 ModbusAttr SolarEdge HeatSinkTemp: 5008


Wie bekomme ich die in eine vernüftige Ansicht ?

satprofi

Hallo.
Wie hast du den an FHEM angebunden?

Ich hebe eine registerliste von Solaredge gefunden, um übwer ModBus abzufragen
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

felixm

#17
Moin erstmal,

ich habe mich vor kurzem hingesetzt und aus einem JSON-Modul das ich für andere Zwecke nutze, mir ein Modul gebastelt dass die Daten der SE API abruft.
Bitte kreuzigt mich nicht ich bin kein Programmierer und schon gar keiner für Perl. Aber es funktioniert.
Wichtig anzumerken ist wenn delay keine Zahl größer 120(sec) ist, dann ruft das Modul tagsüber alle 210 sec (3,5min) und nachts alle 15min die Daten ab ( so nutzt man das Limit der 300 Abfragen pro Tag gut aus.)
Ggf. könnte man noch weitere Datesätze abrufen wie die Summe der Erträge am Tage pro 15min etc... Mir eichte erstmal das soweit.

Anmerkungen, Fehler und Kritik immer zu mir ;)


//ChangeHistory:
01.08.18: Fehler "strict subs" behoben.
03.08.18: Alte Version gelöscht, bis eine überarbeitete zur Verfügung steht.

satprofi

wie erfolgt die anbindung an den SE?

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

felixm

Über die API des Monitoringportals. Mit dem API Key und der SiteId. Dann werden die Daten aus dem Portal von SE per JSON abgerufen.Die SiteId kannst du aus der URL auslesen, den API Key muss man in den Admin Einstellungen aktivieren.

satprofi

aha, danke. werd ich testen

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

satprofi

hallo.
was fehlt mir da jetzt genau?

Can't locate Regexp/Common.pm in @INC (you may need to install the Regexp::Common module)
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

satprofi

gerade fw update von solaredge erhalten, mal sehen ob anbindung an fhem klappt

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

speridal

Zitat von: satprofi am 28 Juli 2018, 17:59:05
hallo.
was fehlt mir da jetzt genau?

Can't locate Regexp/Common.pm in @INC (you may need to install the Regexp::Common module)

Dir fehlen die regexp - Libraries für Perl. Mach mal ein

sudo apt-get install libregexp-common-perl

Gruß,
Bernd

felixm

Hallo,
dann ergänze ich das ganze nochmal:

Die Definition lautet: define <name> SolarEdgeAPI <API-Key> <Site-ID> <poll-delay>

Wen poll-delay weggelassen wird wird am Tag 210 und nachts 900 eingesetzt.

API-KEY und Site-ID findet man im Monitoring-Portal, ein Bild wo man die findet gibt's im Anhang.

ggf wird noch das Paket RegExp-Common für Perl (sudo apt-get install libregexp-common-perl) benötigt. (Danke Bernd)

Gruß Felix


speridal

Zitat von: felixm am 31 Juli 2018, 21:58:24

API-KEY und Site-ID findet man im Monitoring-Portal, ein Bild wo man die findet gibt's im Anhang.


Bei mir gibt es den Punkt "Admin" nicht. Ich musste mir von meinem Solaranlagenbauer die API aktivieren und den API-Key geben lassen.

Gruß,
Bernd

satprofi

Danke.
Aber leider klappt dein Modul bei mir nicht.
Beim definieren des SE kommt " cannot load Module SolarEdgeAPI"

wenn ich das modul dann manuel reloade kommt:

Bareword "false" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 180.
Bareword "false" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 181.
Bareword "false" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 182.
Bareword "false" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 183.
Bareword "false" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 184.
Bareword "false" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 185.
Bareword "true" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 189.
Bareword "true" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 190.
Bareword "true" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 191.
Bareword "true" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 192.
Bareword "true" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 193.
Bareword "true" not allowed while "strict subs" in use at /opt/fhem/FHEM/70_SolarEdgeAPI.pm line 194.

Kannst du mir weiterhelfen?

LG
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

CoolTux

Ich habe mir das Modul eben einmal angeschaut. Meine persönliche Empfehlung. Ich rate von einem Einsatz in einem produktiven System ab. Das Modul hat, wie auch vom Verfasser bereits erwähnt, ein Alpha Status. Es fehlt entscheidender FHEM Developer spezifische Programmcode. Es werden unnötige Perlmodule verwendet welche zusätzlich installiert werden müssen. Desweiteren ist das Modul FHEM blockierend.


Wie also bereits vom Verfasser erwähnt ist dieses Modul mit größter Vorsicht zu verwenden!!!
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

felixm

#28
Danke für den Hinweis @CoolTux.

Das mit den Imports werde ich nachher nochmal ändern, das "strict subs" Problem hab ich bereits geändert (ich weiß nicht warum es bei mir keinen Fehler produziert hat).

Kannst du mir einen Tipp geben wie ich das ganze non-blocking und fhem-konform machen kann, wie gesagt ich bin in Perl nicht so fit. Ich habe den Http Teil überwiegend aus dem JSONREADINGS Modul adaptiert (wahrscheinlcih ist das der Fehler gewesen ...)

CoolTux

https://wiki.fhem.de/wiki/DevelopmentModuleIntro
Das wäre der Einstieg für Dich.

https://wiki.fhem.de/wiki/DevelopmentModuleAPI
Das hier ist weiterführend


Wenn ich das alles Recht überblickt habe geht es in erster Linie um eine http Abfrage.
Für FHEM gibt es das Modul HttpUtils
https://wiki.fhem.de/wiki/HttpUtils
mit der Funktion HttpUtils_NonblockingGet

Du könntest Dir das Modul TeslaPowerwall einmal anschauen. Das sollte so ähnlich sein.

Generell empfiehlt es sich, solltest Du das mit dem Modul und dem Support ernst meinen, dich an einen erfahrenen Entwickler als Mentor zu wenden. Dieser gibt Dir Tips wo Du für die unterschiedlichen Anforderungen schauen kannst und wie Dein Modul FHEM konform wird.
Für ein offizielles einchecken zum Beispiel haben sich die Regeln drastisch erhöht was zu einer besseren Qualität führen soll und auch nachweislich führt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

felixm

Danke für die Tipps insbesondere mit den Anwendungsbeispielen was für mich als Perl-Anfänger sehr hiflreich ist. Bis jetzt waren dieses Modul (und weitere die ich mir gemacht habe) eher für den Eigengebrauch geschrieben. Prinzipiell bin ich jedoch auch dem supporten eines solchen Moduls nicht abgeneigt (auch wenn meine Zeit es eigentlich nicht zulässt).

Die hoehn Hürden für das offizielle Einchecken kann ich so nur Unterschreiben, alle sandere würde für großes Chaos sorgen. Wer sioch das Modul hier runterlädt der sollte hoffentlich wissen was er tut, im Gegensatz zu einem offiziellen Modul.

Sollte meine Zeit es zulassen werde ich mich mal damit beschäftigen das Modul entsprechend konform anzupassen.

Danke und nette Grüße
Felix

satprofi

Danke allen für die infos.

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

felixm

#32
Mit der Hilfe von @Cooltux hab ich das Modul jetzt auf der Basis des TeslaModuls neu aufgesetzt und bei der Gelegenheit gleich die kumulativen Werte von Produktion Eigenverbrauch etc. integriert. Nur bei den Intervallen muss man vermutlich noch ein bischen tüfteln um nicht mit den 300 Requests pro Tag ins Gehege zu kommen.


Das Modul ist trotzdem noch BETA und kann euer System stören oder sogar zum Absturz bringen , daher bitte nur integrieren wenn Ihr wisst was Ihr tut![/b

Definition bleibt
define &lt;name&gt; SolarEdgeAPI <API-Key> <SiteId>

Optional noch der Interval Parameter.

API-Key und Site-Id bekommt man im Admin-Teil der Managment-Konsole im Browser (auf dem Handy nicht zu finden!)


Bitte um Rückmeldung, Fehler Verbesseurngsvorschläge. hier oder auf github https://github.com/felixmartens/fhem.

Grüße
Felix

Benni

#33
Hallo Felix,

ich bekomme demnächst auch einen Solaredge Umrichter und habe daher ebenfalls Interesse an deinem Modul, würde mich freuen, wenn du dich dafür entscheiden könntest, das Modul als reguläres Modul einzuchecken und zu supporten.

Zitat von: felixm am 03 August 2018, 15:20:38
Das Modul ist trotzdem noch BETA und kann euer System sprengen, ...

Was genau meinst du damit, nur ein mögliches blockieren von FHEM oder evtl. sogar Datenverlust?

Noch als Tipp/Idee - Vielleicht hängst du während der Entwicklungszeit die aktuellste Version des Moduls immer nur am ersten Post des Threads an. Evtl. gemeinsam einer Erweiterung des Posts um kurze History-Informationen und evtl. auch einer Art Mini-Commandref

Vielleicht eröffnest du dazu am besten auch gleich einen neuen Thread zum Modul in einem passenderen Forenbereich, als der Wunschliste ;)

gb#

felixm

#34
Ich beziehe mich darauf dass ich nicht unbedingt ein Perl Programmierer bin, und ich deshalb Fehler auch schwerwiegende  nicht mehr ausschließen kann. Ich habe das nochmal umformuliert. Im Prinzip ist das Modul lauffähig.
Als Mediziner weiß ich "sag niemals nie", aber grundsätzlich fällt mir kein Grund für einen möglichen Datenverlust ein.
Der Support eines offiziellen Moduls durch ist prinzipiell möglich, aber könnte an mangelnder Zeit und Fachwissen scheitern.

satprofi

neue solaredge können modbus tcp, da gibts modul in fhem

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

speridal

Mein Solaranlagenanbieter sagt, dass das bei deren Anlagen nicht gehen würde. Haben ne SolarEdge SE5K.

Kann das sein oder hat er keine Ahnung?

Gruß,
Bernd

satprofi

ist möglich, mit firmware ab 3.xxxx. SE hängen sowieso am netz wegen überwachung.

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Benni

#38
Zitat von: satprofi am 03 August 2018, 19:41:59
neue solaredge können modbus tcp, da gibts modul in fhem

Danke! Gut zu wissen!  8)

gb#

Übrigens hat Felix zum seinem hier entstandenen Solaredge-API-Modul inzwischen einen eigenen Thread eröffnet:
https://forum.fhem.de/index.php/topic,89939.0.html

pejonp

#39
Zitat von: speridal am 03 August 2018, 20:38:35
Mein Solaranlagenanbieter sagt, dass das bei deren Anlagen nicht gehen würde. Haben ne SolarEdge SE5K.

Kann das sein oder hat er keine Ahnung?

Gruß,
Bernd
Hallo speridal,

ich habe auch einen SolarEdge SE5K und diesen lese ich über Modbus (USR-TCP232-T24) aus, weil die Software noch kein Modbus IP kann. Und stelle das in FHEm dar.
siehe auch mal hier https://forum.fhem.de/index.php/topic,48773.msg415556.html#msg415556 oder https://forum.fhem.de/index.php/topic,25315.msg514542.html#msg514542


defmod PWP ModbusAttr 3 60 192.168.2.7:20108 RTU
attr PWP alignTime 00:00:59
attr PWP dev-h-combine 50
attr PWP dev-h-defPoll 1
attr PWP obj-h100-reading I_DC_Leistung_W
attr PWP obj-h101-reading I_DC_Leistung_SF
attr PWP obj-h103-expr $val / 100
attr PWP obj-h103-format %.f
attr PWP obj-h103-reading Temp_Kuehler_C
attr PWP obj-h107-map 1:Aus, 2:Nachtmodus, 4:WR_An
attr PWP obj-h107-reading C_Status
attr PWP obj-h68-expr $val
attr PWP obj-h68-reading C_Geraeteadresse
attr PWP obj-h69-expr $val
attr PWP obj-h69-reading C_SunSpec_DID
attr PWP obj-h70-expr $val
attr PWP obj-h70-reading C_SunSpec_Laenge
attr PWP obj-h71-reading I_AC_Strom_A
attr PWP obj-h72-reading I_AC_StromL1_A
attr PWP obj-h73-reading I_AC_StromL2_A
attr PWP obj-h74-reading I_AC_StromL3_A
attr PWP obj-h75-reading I_AC_Strom_SF
attr PWP obj-h83-reading I_AC_Leistung_W
attr PWP obj-h84-expr $val
attr PWP obj-h84-reading I_AC_Leistung_SF
attr PWP obj-h85-expr $val
attr PWP obj-h85-reading I_AC_Frequenz_Hz
attr PWP obj-h86-expr $val
attr PWP obj-h86-reading I_AC_Frequenz_SF
attr PWP obj-h87-expr $val
attr PWP obj-h87-reading I_AC_VA
attr PWP obj-h88-expr $val
attr PWP obj-h88-reading I_AC_VA_SF
attr PWP obj-h89-expr $val
attr PWP obj-h89-reading I_AC_VAR
attr PWP obj-h90-expr $val
attr PWP obj-h90-reading I_AC_VAR_SF
attr PWP obj-h91-expr $val
attr PWP obj-h91-reading I_AC_PF_Prozent
attr PWP obj-h92-expr $val
attr PWP obj-h92-reading I_AC_PF_SF
attr PWP obj-h93-expr $val / 1000
attr PWP obj-h93-format %.2f
attr PWP obj-h93-len 2
attr PWP obj-h93-reading I_AC_Energie_WH_kWh
attr PWP obj-h93-unpack l>
attr PWP obj-h95-expr $val
attr PWP obj-h95-reading I_AC_Energie_WH_SF
attr PWP obj-h96-expr $val
attr PWP obj-h96-reading I_DC_Strom_A
attr PWP obj-h97-expr $val
attr PWP obj-h97-reading I_DC_Strom_SF
attr PWP obj-h98-expr $val
attr PWP obj-h98-reading I_DC_Spannung_V
attr PWP obj-h99-expr $val
attr PWP obj-h99-reading I_DC_Spannung_SF
attr PWP room Solar
attr PWP verbose 2




pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

speridal

Hallo pejonp,

vielen Dank für deine Config und das SVG, ich habe mittlerweile meinen Modbus über TCP 502 auslesen können. Ich musste einmal die Sicherung ausschalten und ihn neustarten. Scheinbar wird der Port abgeschaltet, wenn länger nicht mehr darauf zugegriffen wird.
Ich hab jetzt jede Menge Werte, die ich aber nicht wirklich zuordnen kann. Ich habe verstanden, wie ich den aktuell produzierten Strom auslesen kann.
Was mir fehlt und was du in deinem Chart hast, sind Werte wie Einspeisung und Verbrauch. Kann man diese auch beim Modbus auslesen?

Gruß,
Bernd

pejonp

Hallo speridal,

der SolarEdge-WR liefert nur Werte vom Solarkraftwerk (Leistung, Gesamterzeugung, Strom, Spannung, Modulspannung,..). Die anderen Werte die du noch angezeigt haben möchtest, must du die von deinem Stromzähler (2-Tarif Einspeisestromzähler) des Energieversorgers holen.
Ich habe bei mir folgende Koponenten:  SolarEdge SE5K(TCP 24 RS485)+Sonnenbatterie ComfortS(Vera3)+TD3511+DRT710M(RS485)

Der TD3511 ist ein Siemens-Multifunktions-Elektrizitätszähler von den Stadtwerken und wir mit einem Lesekopf von Udo (https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf) ausgelesen. Dazu habe ich ein Perlscript das die Daten in die FHEM DB (MySQL) auf meinem NAS schreibt. Auf diese Daten kann ich dann in den Diagrammen zugreifen. Es gibt auch ein FHEM-Modul (OBIS). Damit und auch noch mit einigen anderen habe ich es mal versucht, aber die Umschaltung vom 300 in den 19200 Modus nicht hinbekommen. Deshalb extra Modul.

DRT710M(RS485) ist ein Zwischenzähler für eine andere Wohnung und wird über Modbus ausgelesen.

Die Sonnenbatterie ComfortS(Vera3)  liefert mir auch noch einige Werte.

So mal alles im groben.

Meine Solarmodule haben noch Leistungsoptimierer von SolarEdge, diese senden Ihre Daten an das SolarEdge-Portal. Diese kann man mit einem Trick auch auslesen, ohne API-Zugang (siehe hier https://github.com/jbuehl/solaredge ). Ich hatte einen Raspi mit 2 Netzwerkkarten als Brigde dazwischen und die Software von jbuehl darauf laufen. Hat gut funktioniert. z.Z. aber nicht mehr im Einsatz, da ich etwas umbauen musste.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

speridal

Hallo pejonp,

vielen Dank für die ausführliche Erklärung. Ich packe das mal auf meine ,,für später" Liste, da ich derzeit andere Prioritäten habe.
Ich behelfe mir erstmal mit dem Auslesen per API von der Solaredge Seite. Die Were sind zwar nicht identisch zur Webseite, kommen aber seh nahe dran.

Seltsamerweise habe ich Probleme mit dem modbus Modul. Sobald ich über TCP 502 die Daten abfrage, werden nicht mehr alle Werte korrekt ans SolarEdge Portal geliefert.

Eigenverbrauchswerte und Eigenproduktion werden mit 0 KWh angezeigt. Sehr seltsam.

Gruß,
Bernd

pejonp

#43
Hallo Bernd,

Hier mal ein Verweis auf das Modbus Forum (https://forum.fhem.de/index.php/topic,25315.msg338055.html#msg338055).
Da stehen einige Hinweise drin. Oder du stellst deine Frage dort noch einmal. Es gibt auch noch einige andere Tools um die Modbus Register auszulesen.

Pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Benni


danillo

Hallo zusammen,

wenn ich den Modbus auslesen kann, dann sollte das doch die erste Wahl sein, oder?