NEWS
Solaredge Adapter (Photovoltaikanlage)
-
Naja, an dieser Stelle löse ich erst mal mein Problem mit dem M_AC_Power ± Werten...
Fehler gefunden. Minimal Wert der Variable war mit 0 definiert anstelle von -20000.
Nun gehen die negativen Werte
Ich mach mich dann nochmals an die Hausaufgaben zur Leistungsmessung und Darstellung...@pvonroof sagte
Der größte Witz ist aber, dass der WR bei leerer Batterie nicht in den Standby geht, sondern fröhlich weiterhin 60 W verbrät.
Kann ich so noch nicht bestätigen. Da die Anlage erst seit Juni läuft, ist die Batterie noch nie unter 48% gefallen.
Wenn dem so ist, müsste man wohl die Batterie abstellen, wenn sie leer ist.@Glasfaser sagte
Modbus Factor for 40083 I_AC_Leistung: x * Math.pow(10, sf['40084']
Wenn das geht ist ja prima! Ich selbst habe es nicht versucht und mich auch an Skripten aus den Foren gehalten. Wenn man so Skripte sparen kann um so besser.
Geht es denn bei dir? Ich hab's noch nicht getestet um mir die geloggten Daten nicht zu zerschiessen.@Glasfaser : Bitte für die Modbus Vorlage. Habe auch lange danach gesucht und keine vollständige gefunden. Anhand des Sprachenmix und der unterschiedlichen Kennzeichnung ist zu sehen, dass dies aus diversen Forenbeiträgen ist und teils von mir aus Datenblättern übersetzt wurde. Ist also nicht perfekt, aber funktioniert.
-
@al-bundy sagte in Solaredge Adapter (Photovoltaikanlage):
Geht es denn bei dir? Ich hab's noch nicht getestet um mir die geloggten Daten nicht zu zerschiessen.
Ja , es geht und ich finde der Wert ist realer der anzeigten Werte per App / Online.
Habe dazu gestern die Anlage mal kurz in Betrieb genommen und der Wert per Skript zum vergleich Modbus per Formula hatte ein unterschied von ~1,2 KW und das fand ich schon happig .
Also Online bei der Bewölkung gestern schwanke die App / Online bei 6,2 KW , bei Nutzung des Skript war ich bei ~5 KW und mit Modbus Formula passte der Wert zu 6,2 KW.
Ich kann mich auch täuschen und lasse mich eines besseren belehren ... bin noch am Anfang mit der PV
-
@glasfaser said in Solaredge Adapter (Photovoltaikanlage):
Hallo ihr zwei , ich bin auch gerade dabei meine neue SolarEdge Anlage mit dem Modus einzurichten , Anlage ist noch nicht in Betrieb der Zweirichtungszähler fehlt noch
und mir ist aufgefallen , das der Wert mit der Modbusangabe im Formula eher entspricht , als das Script selber .Hallo @Glasfaser,
Formula hatte ich bislang noch nicht gehört. Das ist dann direkt im Modbus Adapter bei den Holding Registern.
Beim Ausdruck sf['40084'] hänge ich etwas, kommt das "sf" von der Einheit "SF", die du bei 40084 definiert hast?
Werde ich auf jeden Fall einmal probieren.Fehler gefunden. Minimal Wert der Variable war mit 0 definiert anstelle von -20000.
Na also, super! Dann stimmt mein Weltbild auch wieder
Kann ich so noch nicht bestätigen. Da die Anlage erst seit Juni läuft, ist die Batterie noch nie unter 48% gefallen.
Wenn dem so ist, müsste man wohl die Batterie abstellen, wenn sie leer ist.Das geht nicht so einfach, weil dadurch der Schutz vor Tiefentladung entfällt. In dem genannten Thread aus dem PVForum hatte da auch schon jemand deutlich zu tief entladen, wodurch die Batterie beschädigt werden kann.
Den "Fehler" fiel zunächst dadurch auf, dass der Energiezähler bei leerer Batterie rückwärts läuft. Den tatsächlichen Wert kann man auch mit der SetApp bei vorhandenem Installateursaccount direkt ablesen. SolarEdge hatte dazu zunächst Besserung und Softwareupdate in Q2/2021 versprochen, aber es passiert nichts.
Jetzt soll angeblich zeitnah eine neue Generation von Hybridwechselrichtern auf den Markt kommen. -
@pvonroof sagte in Solaredge Adapter (Photovoltaikanlage):
Formula hatte ich bislang noch nicht gehört. Das ist dann direkt im Modbus Adapter bei den Holding Registern.
Ich habe auch oben das ModbusRegister als Screenshot und als Vorlage beigefügt was zu machen ist .
kommt das "sf" von der Einheit "SF", die du bei 40084 definiert hast?
richtig , deshalb kommt im Register 40084 der Haken rein
-
@glasfaser
Habe seit gestern auch auf Formeln umgestellt und testhalber mit dem Javascript verglichen (in Javascript Math.pow auf Basis 1 anstelle 10 umgestellt).
Bei mir kommt genau das selbe raus, wenn ich z.B. den Tagesverlauf von M_AC-Javascript und M_AC-Modubus-Formel vergleiche (Subtraktion gibt immer 0)
Danke für den Tipp. Super Sache. Skripte gespart und man sieht auch direkt in den Modbus Objekten die richtigen Zahlen
Kleine Anmerkung zu deinem Post: Da fehlt am Schluss noch die Klammer, darum hat es bei mir zu Beginn nicht funktioniert.
Ich habe mal diese 4 Modbus Adressen umgestellt und stelle die Javascripts zur Umrechnung ab (Bild der Holding Registers in der Adapter Version 3.4.9):
Auch kann es so keine Fehler mehr geben, des nicht zeitgleichen Auslesens, wie dies schon oft andere User berichtet haben.
Da ich auch erst Beginne, meine Grafana Panels zu erstellen, ist es mir egal, die alten Datenwerte zu verlieren. -
@al-bundy sagte in Solaredge Adapter (Photovoltaikanlage):
Kleine Anmerkung zu deinem Post: Da fehlt am Schluss noch die Klammer, darum hat es bei mir zu Beginn nicht funktioniert.
Stimmt ... habe es editiert , ist mir beim testen nicht aufgefallen .
Das Problem ist , ich bin auch noch am testen . bzw. die Anlage wurde nach der Errichtung wieder ausgeschaltet , da der Zweirichtungszähler von den Stadtwerken noch fehlt
Daher alles Offline ......
-
Die Leistungsdaten habe ich nun zusammen.
Hier verglichen mit der mySolarEdge App. Links Grafana Auswertung und rechts die App:
Die Grafiken stimmen recht gut überein (wenn auch nicht perfekt).Die Leistungswerte habe ich wie folgt ausgerechnet:
1. Produktion PV (PV-Erzeugung):
40083_I_AC_Leistung + 57716_Battery_1 Instantaneous Power
Bemerkung: Variabelbereich von 0 - 20'000W, damit es in der Nacht keine negativen Werte gibt (DC-DC-Verluste)
2. Verbrauch (Hausverbrauchs-Leistung):
40083_I_AC_Leistung - 40206_M_AC_Power
3. Eingenverbrauch-Leistung:
40083_I_AC_Leistung - (positive Werte von: 40206_M_AC_Power)
Herleitung:
Verbrauch - Leistung aus dem Netz
= 40083_I_AC_Leistung - 40206_M_AC_Power - (negative Werte von: 40206_M_AC_Power)
= 40083_I_AC_Leistung - [(positiven Werte von: 40206_M_AC_Power)+(negativen Werte von: 40206_M_AC_Power)] - (negative Werte von: 40206_M_AC_Power)
= 40083_I_AC_Leistung - [(positiven Werte von: 40206_M_AC_Power)+(negativen Werte von: 40206_M_AC_Power)] - (negative Werte von: 40206_M_AC_Power)
= 40083_I_AC_Leistung - (positiven Werte von: 40206_M_AC_Power)
4. Von der Batterie (Batterie Entlade-Leistung):
negative Werte von: 57716_Battery_1 Instantaneous Power
in der Nacht ist nun die angezeigte Energie aus der Batterie höher, als der Verbrauch (DC-DC-Verlust von etwa 90 Watt), dies stimmt mit der App noch nicht überein. Dort wird in der Nacht die Batterieleistung nie höher als der Verbrauch angezeigt.
5. Batterie Lade-Leistung (taucht in der App nicht einzeln auf):
positive Werte von: 57716_Battery_1 Instantaneous Power
6. Leistung aus dem Netz (taucht in der App nicht einzeln auf, Imported Power):
negative Werte von: 40206_M_AC_Power
7. Einspeisung (Leistung ins Netz, Exported Power)
positive Werte von: 40206_M_AC_PowerLeistungen habe ich somit beisammen. Teils werden die Werte der Batterie noch nicht regelmässig aktualisiert / geloggt, ansonsten kann ich nun gut unterschiedliche Grafiken zusammenstellen.
Rechnet ihr die Werte auch so aus?
Nächster Schritt ist die Berechnung / Visualisierung aller 7 Energie-Werte und ein Vergleich zum Hauszähler... -
Nun habe ich auch die Energieverbräuche zusammen.
Bis auf die Batterie ist es hier nicht ganz so schwierig und die Werte stimmen exakt mit dem Portal überein:
Die Tabellen wurden direkt in Grafana erstellt, ohne Skripte oder ähnliches zu erstellen und zwar wie folgt:
1. PV Produktion:
Entspricht 40093_I_AC_Energie.
In Grafana habe ich eine Tabelle entsprechend gruppiert, um die Tageswerte zu erhalten:
SELECT max("value") -min("value") FROM "modbus.0.holdingRegisters.40093_I_AC_Energie_WH" WHERE $timeFilter GROUP BY time(1d) fill(none) tz('Europe/Berlin')
2. Einspeisung:
Entspricht 40226_M_Exported
3. Bezug:
Entspricht 40234_M_Imported
4. Verbrauch:
40093_I_AC_Energie - 40226_M_Exported + 40234_M_Imported
Kann über die Transform Operation ebenfalls direkt berechnet werden
5. Eigenverbrauch:
40093_I_AC_Energie - 40226_M_ExportedBei der Batterie wird es schwieriger (siehe @cybtrash vom 09.06.2021 22:09)
Habe hier mal die Daten der von Batterie entladen Leistung genommen und den kommulierten Zählerwert der Energie (berechnet vom SourceAnalytix Adapter) benutzt. Die Werte stimmen aber nicht mit dem Portal überein.
Hier hat vielleicht jemand eine bessere Lösung (z.B. API des Portales abrufen, oder die Prozente auswerten.) -
Den Vergleich zu den Zählerwerten habe ich auch gemacht.
Ich habe einen neuen Hauszähler installiert bekommen. Einen Elster AS3000.
Da lese ich nun die OBIS Daten aus (also die effektiven Zählerwerte, mit vzlogger).
Habe das nun 3 mal geprüft, aber ich bekomme echt erschreckende Abweichungen, insbesondere beim Strombezug.
Hier mal der direkte Vergleich. Einmal von den Juli Daten und dann noch von den Tagesverbräuchen im August.
Hat sonst noch jemand mit Batterie einen solchen Vergleich gemacht? Liegt hier doch noch ein Messproblem vor? -
@al-bundy sagte in Solaredge Adapter (Photovoltaikanlage):
@glasfaser
Habe seit gestern auch auf Formeln umgestellt und testhalber mit dem Javascript verglichen (in Javascript Math.pow auf Basis 1 anstelle 10 umgestellt).
Bei mir kommt genau das selbe raus, wenn ich z.B. den Tagesverlauf von M_AC-Javascript und M_AC-Modubus-Formel vergleiche (Subtraktion gibt immer 0)
Danke für den Tipp. Super Sache. Skripte gespart und man sieht auch direkt in den Modbus Objekten die richtigen Zahlen
Kleine Anmerkung zu deinem Post: Da fehlt am Schluss noch die Klammer, darum hat es bei mir zu Beginn nicht funktioniert.
Ich habe mal diese 4 Modbus Adressen umgestellt und stelle die Javascripts zur Umrechnung ab (Bild der Holding Registers in der Adapter Version 3.4.9):
Auch kann es so keine Fehler mehr geben, des nicht zeitgleichen Auslesens, wie dies schon oft andere User berichtet haben.
Da ich auch erst Beginne, meine Grafana Panels zu erstellen, ist es mir egal, die alten Datenwerte zu verlieren.hi, bei mir funktioniert das irgendwie nicht. habe die Formel wie im Screenshot eingetragen und SF angehakt. bei mir sieht das so aus:
Meine Adressen sind um eines verschoben aber die stimmen.
-
@soeni sagte in Solaredge Adapter (Photovoltaikanlage):
Meine Adressen sind um eines verschoben aber die stimmen.
Das heißt ohne die Formula sind Werte da ( Standard ) und wenn du die Formula einträgst inkl. den Haken bei "SF" fehlen die Werte?
-
@soeni Hast du bei 40085 I_AC_Power_SF ganz rechts bei Spalte "SF-Skalierungsfaktor" den Haken gesetzt? Ist in deinem Screenshot nicht zu sehen.
Ansonsten hier meine Zeilen, wo ich die Formel anwende zum Vergleichen:_address name description unit type len factor offset formula role room poll wp cw isScale 40083 I_AC_Leistung AC-Leistungswert W uint16be 1 1 0 x * Math.pow(10, sf['40084']) value true false false 40084 I_AC_Leistung_SF AC-Leistung Skalierungsfaktor SF int16be 1 1 0 value true false true 40100 I_DC_Leistung DC-Leistungswert W uint16be 1 1 0 x * Math.pow(10, sf['40101']) value true false false 40101 I_DC_Leistung_SF DC-Leistung Skalierungsfaktor SF int16be 1 1 0 value true false true 40103 I_Temp_Kühler Kühlkörpertemperatur °C uint16be 1 1 0 x * Math.pow(10, sf['40106']) value true false false 40106 I_Temp_SF Kühlkörpertemperatur Skalierungsfaktor SF int16be 1 1 0 value true false true 40206 M_AC_Power Total Real Power (sum of active phases) W int16be 1 1 0 x * Math.pow(10, sf['40210']) value true false false 40210 M_AC_Power_SF AC Real Power Scale Factor SF int16be 1 1 0 value true false true
-
Hi, vieln Dank für die Hilfe. SF Haken ist gesetzt. anbei der Auszug:
40085 I_AC_Power_SF I_AC_Power_SF SF int16be 1 1 0 value true false false true 40084 I_AC_Power I_AC_Power W uint16be 1 1 0 x * Math.pow(10, sf['40085']) value true false false
Das Ergebnis ist, dass vorher (Ohne Formel sonst alles gleich) der AC Wert im Objekt stand (Natürlich ohne SF korrektur) und hinter herr ein 'null' also nicht definierter Wert.
-
Erselle eine weitere Modbus Instanz ( bestehende Instanz ausschalten ) und teste mal nur hiermit:
Deine Adresse habe ich schon angepasst :
40084 I_AC_Leistung AC-Leistungswert W uint16be 1 1 0 x * Math.pow(10, sf['40085']) value true false false false 40085 I_AC_Leistung_SF AC-Leistung Skalierungsfaktor SF int16be 1 1 0 value true false false true
-
Frage hat sich erledigt....es funktioniert wieder - warum auch immer.
-
@glasfaser Sorry dass das so lange gedauert hat, bin jetzt erst dazu gekommen.
Auch mit neuer Instanz und direktem Kopieren komme ich zum gleichen Effekt. Ich habe den Modbusadapter 3.4.11. muss ich noch was anderes beachten? Updates werden mir keine angezeigt, habe auch das neuste Node JS drauf. -
@soeni sagte in Solaredge Adapter (Photovoltaikanlage):
Ich habe den Modbusadapter 3.4.11. muss ich noch was anderes beachten?
Alles gut .
Da gibt es nichts zu beachten , ich habe keine schimmer warum er dann bei dir (null) anzeigen sollte !Ich weiß nicht ob man das mit der Logstufe DEBUG herrausfinden kann , teste es mal was kommt dann im Log ( nur die Instanz mit den zwei Werten nutzen )
-
@soeni sagte in Solaredge Adapter (Photovoltaikanlage):
Ich habe den Modbusadapter 3.4.11.
STOP !!!
Habe gerade etwas festgestellt , bzw. ausprobiert .
Ändere ich in meiner vorhandenen Instanz den SF Wert Eintrag , ist das Ergebniss so wie es sein sollte .
Aber , wenn ich eine neue Instanz anlege und dort die SF Werte , ändere oder als gesamt einfüge , wie die Vorlage z.B von @Al-Bundy wie die Registerreihenfolge auch bei mir ist ,
dann erscheind alles in (null).
Der SF-Skalierungsfaktor wird nicht genommen , ist wohl ein Bug .
-
@glasfaser Das heist dann für mich, dass ich das aktuell bei mir nicht nutzen kann. oder wie kann ich es machen, dass es bei mir funktioniert? Ich habe ja sowohl die alte instanz als auch eine neue Instanz genutzt. Beide zeigen ja null.
-
@soeni sagte in Solaredge Adapter (Photovoltaikanlage):
oder wie kann ich es machen, dass es bei mir funktioniert?
Du kannst eine Version erstmal runter gehen ,damit versuchen und ich weiß nicht ab welcher Version der Bug dort reinkahm.
Expertenmodus , dann auf bestimmte Version installieren .
.