APSystems EZ-1

Begonnen von rubberduck67, 15 August 2023, 11:40:39

Vorheriges Thema - Nächstes Thema

huri-kane

Hi curt,

sorry für die verspätete Antwort. Scheinbar schickt das Forum keine Info-Mail wenn am selben Tag eine Antwort eintrudelt ¯\_(ツ)_/¯

ZitatMir selbst ist im Moment trotzdem unklar, was in meiner Situation sinnvoller ist.
Ich habe es eben nochmal nachgesehen und meine Erinnerung hat sich bestätigt: Der EZ1-M hat an den MPPT-Eingängen einen Spannungsbereich von 28 bis 45V (https://emea.apsystems.com/document/ez1-m-ez1-h-series-datasheet-de/). Laut Deiner Produktbeschreibung liegen die 200W Panels bei einer Maximalspannung von 19,8V. Ergo bleibt nur die Reihenschaltung von zwei gleich ausgerichteten Panels, da der WR sonst gar nix produziert. Damit scheint mir deine geplante Installation mit der Ost/West-Ausrichtung von jeweils einem Panel nicht zu funktionieren, da du so weder morgens/vormittags noch abends/nachmittags die Mindestspannung an dem Eingang erreichst. Denn in dem Fall ist immer ein Panel quasi "inaktiv" und liefert keine belastbare Spannung wodurch der MPPT Regelkreis unter seine Mindestspannung fallen wird.
Als Alternative wäre eine Ausrichtung von jeweils zwei Modulen Richtung Südost und Südwest überlegenswert - vielleicht sogar komplett Ost/West.

Spook112

#46
Zitat von: huri-kane am 10 Januar 2024, 07:51:50Na da kann ich vielleicht ein wenig helfen. Ich hab eher zufällig vor wenigen Wochen mitbekommen, dass APSystems diese Funktion quasi "stillschweigend" eingebaut hat und war sehr erfreut, dass man den Wechselrichter damit nun von der Cloud abkoppeln kann. Die Template-Variante wäre natürlich ein Extraschleifchen. Aber einmal eingerichtet tut es auch so seinen Dienst.

Ich hab mir das Ganze als ein Device mit dem HttpMod-Modul eingerichtet.
define EZ1_inverter HTTPMOD http://apsystems:8050/getOutputData 60
attr EZ1_inverter get1JSON data_maxPower
attr EZ1_inverter get1Name MaxPower
attr EZ1_inverter get1Poll 1
attr EZ1_inverter get1URL http://apsystems:8050/getMaxPower
attr EZ1_inverter get2Name OutputData
attr EZ1_inverter get2Poll 1
attr EZ1_inverter get2URL http://apsystems:8050/getOutputData
attr EZ1_inverter get3Name Alarm
attr EZ1_inverter get3Poll 1
attr EZ1_inverter get3URL http://apsystems:8050/getAlarm
attr EZ1_inverter get4Name Disabled
attr EZ1_inverter get4Poll 1
attr EZ1_inverter get4URL http://apsystems:8050/getOnOff
attr EZ1_inverter get5Name DeviceInfo
attr EZ1_inverter get5Poll 1
attr EZ1_inverter get5PollDelay 3600
attr EZ1_inverter get5URL http://apsystems:8050/getDeviceInfo
attr EZ1_inverter icon measure_photovoltaic_inst
attr EZ1_inverter reading101JSON data_maxPower
attr EZ1_inverter reading101Name MaxPower
attr EZ1_inverter reading201JSON data_e1
attr EZ1_inverter reading201Name e1
attr EZ1_inverter reading202JSON data_e2
attr EZ1_inverter reading202Name e2
attr EZ1_inverter reading203JSON data_te1
attr EZ1_inverter reading203Name te1
attr EZ1_inverter reading204JSON data_te2
attr EZ1_inverter reading204Name te2
attr EZ1_inverter reading205JSON data_p1
attr EZ1_inverter reading205Name p1
attr EZ1_inverter reading206JSON data_p2
attr EZ1_inverter reading206Name p2
attr EZ1_inverter reading301JSON data_og
attr EZ1_inverter reading301Name alarm_off_grid
attr EZ1_inverter reading302JSON data_oe
attr EZ1_inverter reading302Name alarm_output_fault
attr EZ1_inverter reading303JSON data_isce1
attr EZ1_inverter reading303Name alarm_dc1_short
attr EZ1_inverter reading304JSON data_isce2
attr EZ1_inverter reading304Name alarm_dc2_short
attr EZ1_inverter reading401JSON data_status
attr EZ1_inverter reading401Name disabled
attr EZ1_inverter reading501JSON data_deviceId
attr EZ1_inverter reading501Name deviceId
attr EZ1_inverter reading502JSON data_devVer
attr EZ1_inverter reading502Name deviceVersion
attr EZ1_inverter reading503JSON data_ssid
attr EZ1_inverter reading503Name SSID
attr EZ1_inverter set1Hint slider,30,10,800
attr EZ1_inverter set1JSON data_maxPower
attr EZ1_inverter set1Name MaxPower
attr EZ1_inverter set1ParseResponse 1
attr EZ1_inverter set1URL http://apsystems:8050/setMaxPower?p=$val
attr EZ1_inverter set4Hint 0,1
attr EZ1_inverter set4Name Disabled
attr EZ1_inverter set4ParseResponse 1
attr EZ1_inverter set4URL http://apsystems:8050/setOnOff?status=$val
attr EZ1_inverter stateFormat {\
  sprintf("%.2fkWh / %.2fkWh / %.0fW",\
          ReadingsVal($name, "total_energy", 0),\
          ReadingsVal($name, "total_energy_today", 0),\
          ReadingsVal($name, "total_power", 0));;\
}
attr EZ1_inverter userReadings total_power:p.* { ReadingsVal($name, "p1", 0) + ReadingsVal($name, "p2", 0) },\
total_energy_today:e.* { ReadingsVal($name, "e1", 0) + ReadingsVal($name, "e2", 0) },\
total_energy:te.* { ReadingsVal($name, "te1", 0) + ReadingsVal($name, "te2", 0) },\
energy_today:e.* monotonic { ReadingsVal($name, "e1", 0) + ReadingsVal($name, "e2", 0) },\
energy_month:te.* monotonic { ReadingsVal($name, "te1", 0) + ReadingsVal($name, "te2", 0) }

Über die einzelnen get*Poll- bzw. get*PollDelay-Attribute lässt sich für die individuelle URI das Polling mitsamt Intervall anpassen - schließlich müssen nicht alle Informationen mit der gleichen Granularität abgefragt werden.

Die zusätzlichen UserReadings 'energy_today' und 'energy_month' summieren einfach die erzeugte Energie auf und werden einmal am Tag/Monat durch ein zusätzliches 'at' Device verarbeitet, welches dann noch "Hilfs-Readings" setzt. Ich habe bisher noch keinen Monat Laufzeit durch, daher können sich durchaus noch Fehler drin sein:
define EZ1_inverter_tag at *00:00:00 {\
  my $NAME = "EZ1_inverter";;\
  my $total_energy = ReadingsVal($NAME, "total_energy", 0);;\
  my $energy_today = ReadingsVal($NAME, "energy_today", 0);;\
  fhem("setreading $NAME energy_today 0");;\
  fhem("setreading $NAME energy_yesterday $energy_today");;\
  fhem("setreading $NAME total_energy_yesterday $total_energy");;\
  if ( (strftime("%d", localtime(time()) ) ) eq "01")  # 1. des Monats\
  {\
    my $energy_month = ReadingsVal($NAME, "energy_month", 0);;\
    fhem("setreading $NAME energy_month 0");;\
    fhem("setreading $NAME energy_lastmonth $energy_month");;\
    fhem("setreading $NAME total_energy_lastmonth $total_energy");;\
  }\
}

Die Readings "total_power", "energy_yesterday" und "energy_lastmonth" lasse ich loggen um damit den Leistungsverlauf am Tag sowie die Energieproduktion pro Tag bzw. pro Monat zu visualisieren (siehe Anhänge). Für ersteres muss man für sich entscheiden, ob einem eine "Messung" pro Minute reicht (über das define vom HTTPMOD): Das wäre dann ein Abwägen zwischen Genauigkeit und Speicherbedarf des Logs bzw. Rendering-Zeit des Graphen (bei mit ein Raspi3).

Hoffe das hilft ein wenig.

Grüße
André

Hi und danke für diese super Lösung, um einen Apsystems EZ1 in FHEM zu integrieren.
Hat bei mir auf Anhieb geklappt - nachdem ich den Wechselrichter in den "local mode" geschaltet habe.
Seltsamerweise ging das aber nur bei einem von meinen beiden Wechselrichtern, aber das ist ein anderes Thema.
(hat sich inzwischen geklärt - alte Firmware EZ1 1.2.0_b musste upgedatet werden auf aktuelle Version EZ1 2.0.1_b)
 
Ich habe trotzdem noch eine Frage zu dem von Dir eingeführten userreading "energy_month".
Bei mir wird da nicht die kummulierte erzeugte Energie des laufenden Monats sondern die insgesamt bisher während der Lifetime des Wechselrichters erzeugte Energie angezeigt.
Ist das noch ein "Fehler" in diesem Beispiel oder habe ich da einen Denkfehler ?

Danke im Voraus für eine ANtwort. 
Raspberry PI / RaZberry ZWAVE Modul / RFXTRX433E / 13 Fibaro FGS-222-EN-A-v1.00 / 17 VISION ZD2102-5 / 10 Somfy RTS / 4 Greenwave GWRENS310-F / Gardena Sileno City / 3 Gardena Gartensteckdosen / 2 devolo Home Control Funkschalter / 8 FIBARO System FGSD002 Smoke Sensoren

curt

Zitat von: huri-kane am 02 Dezember 2024, 08:25:24Hi curt,
sorry für die verspätete Antwort.

<lacht> Ganz meinerseits!
Ich melde mich, weil ich danken möchte.

Zitat von: huri-kane am 02 Dezember 2024, 08:25:24
ZitatMir selbst ist im Moment trotzdem unklar, was in meiner Situation sinnvoller ist.
Ich habe es eben nochmal nachgesehen und meine Erinnerung hat sich bestätigt: Der EZ1-M hat an den MPPT-Eingängen einen Spannungsbereich von 28 bis 45V (https://emea.apsystems.com/document/ez1-m-ez1-h-series-datasheet-de/). Laut Deiner Produktbeschreibung liegen die 200W Panels bei einer Maximalspannung von 19,8V. Ergo bleibt nur die Reihenschaltung von zwei gleich ausgerichteten Panels, da der WR sonst gar nix produziert.

Ich konnte mit Beginn der Sonnenstrahlen Ende Februar das Ganze in Betrieb nehmen, je zwei Panele in Reihe geschaltet.

Zitat von: huri-kane am 02 Dezember 2024, 08:25:24Damit scheint mir deine geplante Installation mit der Ost/West-Ausrichtung von jeweils einem Panel nicht zu funktionieren, da du so weder morgens/vormittags noch abends/nachmittags die Mindestspannung an dem Eingang erreichst.

Wobei das eine noch offene Frage ist: Denn da kommen laut Inverter auch schon mal 10 Watt an Eingang rein.

Zitat von: Spook112 am 09 Februar 2025, 13:31:02Ich habe trotzdem noch eine Frage zu dem von Dir eingeführten userreading "energy_month".
Bei mir wird da nicht die kummulierte erzeugte Energie des laufenden Monats sondern die insgesamt bisher während der Lifetime des Wechselrichters erzeugte Energie angezeigt.

Also das funktioniert offensichtlich, jedenfalls hier.
Falls hier Wünsch-Dir-was ist: Ich hätte gern noch energy_year und energy_lastyear.
RPI 4 - Jeelink HomeMatic Z-Wave