NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
@surfer09
inputPower: Invertereingangsleistung aus den PV Modulen
inputPowerWithoutEfficencyLoss: Eingangsleistung verringert durch die Inverterverluste
dailySolarYield: Integral über inputPowerWithoutEfficencyLoss
dailyInputYield: Ist der Versuch den "Heutigen Energieertrag" aus dem FusionSolar Portal nachzubauen.Hier https://github.com/bolliy/ioBroker.sun2000/blob/main/docs/calculation.md wird der Zusammenhang aufgezeigt.
Stephan
-
@surfer09 Das ist vielleicht auch noch interessant:
https://forum.iobroker.net/post/1118425
https://forum.iobroker.net/post/1127961
https://forum.iobroker.net/post/1128936 -
@bolliy
Kurze Frage
Kann es sein, dass bereits bei Input Power die WR-Verluste enthalten sind ?Wenn ich die Werte von String - PV1Current und PV2Current addiere komme ich auf größere Werte, als bei Input Power.
Die Differenz könnte den WR-Verlusten entsprechen, da die Differenz etwa gleich ist (hier im Beispiel 4,717-4,61 = 107Watt und 4,61-4,518=92Watt ?(Meine Vermutung ist, dass die Differenz der Fusionsolar-Ertragswerte und dem Wert für InputPower der Eigenverbrauch der Luna2000-Batterie ist - Thema sinkender PV-Ertrag)
-
Ich würde halt gerne berechnen, was mir die PV-Module + Batterie ins Haus zum Verbrauch gespeist hat. Aber irgendwie steige ich bei den Objekten nicht ganz durch
Zu Berechnung würde ich jetzt den sun2000.0.inverter.0.battery.currentDayDischargeCapacity nehmen, aber wo sehe ich, was die PV Module direkt ins Haus gespeist haben? Geht das überhaupt?Vielleicht gibt es den fertigen Wert auch schon, den ich suche?
Gruß surfer
-
So aktuelle Version getestet, der Inputwert und Hausverbrauch kommt jetzt was aber völlig falsche riesige Werte. Da wird irgendwas nicht richtig geparst. Hier das Log und einmal der Screenshot in der App.
sun2000.0
2024-03-03 10:34:45.596 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":16,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":16,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":16,"getMultipleHoldingRegisters-address_37760-value_1-unidId_1":16,"getMultipleHoldingRegisters-address_47086-value_1-unidId_1":16,"getMultipleHoldingRegisters-address_37113-value_2-unidId_1":16}}sun2000.0
2024-03-03 10:34:31.547 info Interval 16.545 secsun2000.0
2024-03-03 10:33:45.596 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":7,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":7,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":7,"getMultipleHoldingRegisters-address_37760-value_1-unidId_1":7,"getMultipleHoldingRegisters-address_47086-value_1-unidId_1":7,"getMultipleHoldingRegisters-address_37113-value_2-unidId_1":7}} -
@besimo sagte in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
@bolliy
Kurze Frage
Kann es sein, dass bereits bei Input Power die WR-Verluste enthalten sind ?Den Zusammenhang habe ich aus einem anderen Projekt: https://github.com/wlcrs/huawei_solar/wiki/Daily-Solar-Yield
Wenn ich die Werte von String - PV1Current und PV2Current addiere komme ich auf größere Werte, als bei Input Power.
Die Differenz könnte den WR-Verlusten entsprechen, da die Differenz etwa gleich ist (hier im Beispiel 4,717-4,61 = 107Watt und 4,61-4,518=92Watt ?(Meine Vermutung ist, dass die Differenz der Fusionsolar-Ertragswerte und dem Wert für InputPower der Eigenverbrauch der Luna2000-Batterie ist - Thema sinkender PV-Ertrag)
-
@surfer09 sagte in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
Ich würde halt gerne berechnen, was mir die PV-Module + Batterie ins Haus zum Verbrauch gespeist hat. Aber irgendwie steige ich bei den Objekten nicht ganz durch
Zu Berechnung würde ich jetzt den sun2000.0.inverter.0.battery.currentDayDischargeCapacity nehmen, aber wo sehe ich, was die PV Module direkt ins Haus gespeist haben? Geht das überhaupt?Vielleicht gibt es den fertigen Wert auch schon, den ich suche?
Gruß surfer
Leistung aus dem Inverter in Richtung Hausnetz: sun2000.1.collected.activePower
Energie aus dem Inverter in Richtung Hausnetz: sun2000.0.collected.dailyEnergyYieldDen Rest kannst du dir aus Differenzrechnung aus anderen Werten errechnen. Ist hier ganz gut aufgezeigt: https://github.com/bolliy/ioBroker.sun2000/blob/main/docs/calculation.md
-
@lcars Hey, das ist doch richtig toll! Endlich zeigt deine WB etwas an. Die falsche Werte schaue mir nachher mal an...
-
@bolliy Bei dem Batteriewert steht aber noch nichts. Die anderen Werte sind eben wohl ein parse Fehler würde ich mal sagen.
Die aktuelle Version hat wohl einen neuen Bug. Der houseConsumption Wert springt umher. Einmal negativ (was ja nicht sein kann) dann plötzlich viel zu hoch. Das war vorher noch nicht. Habe den Adapter schon einmal neu gestartet aber das ist immer noch so.
Falls du da in der Richtung was geändert hast, da stimmt was nicht. -
@lcars geparst wird da eigentlich nichts.
Ich habe die Werte, die oben abgefragt werden überprüft und keinen Fehler festgestellt. Der erste WR (Master) hat keine Batterie, das ist eher ungewöhnlich. Normalerweise ist am Master der Stromzähler und die erste Batterieeinheit installiert. Der Adapter hat damit eigentlich kein Problem - nur mit der Einschränkung, dass am Master der Stromzähler (Meter) angebunden sein muss.
Andererseits könnte der WB durch unsere ersten Versuche ein falschen Eindruck von deiner Installation bekommen haben. Ggf. wäre die WB ganz neu zu konfigurieren. Denn mir ist aufgefallen, dass die WB später andere Register abfragt als kurz nach der Initialisierung der WB.Ich habe dennoch jetzt verzichtet, alle nicht vorhandenen Werte im Cache einfach mit 0 zu beantworten.
Also bitte gerne nochmal per gitHub updaten und testen... -
@lcars ok schaue ich mir an ...
-
@bolliy Ok bin mal zurück auf die 0.3.1 da sehe ich das negative mal kurz auch aber nicht so ein starkes hin und her wie in der 0.4.0. War mir bisher auch nicht aufgefallen nur weil in der 0.4.0 er plötzlich zwischen > 2KW houseConsumption und negativ gesprungen ist fiel mir das auf.
-
@lcars welchen Interval hast du eingestellt? Und mit welchem Interval liest der Adapter die Daten aus (entweder im Log oder im State sun2000.0.info.modbusUpdateInterval) ?
Der Adapter versucht im Interval high (eingestellten Wert) die real-time Daten (inputPower, activePower, meter.activePower, chargeDischargePower) auszulesen. Die Werte liegen aber auch am SDongle nicht von allen Invertern in der gleichen Qualität an. Die Slaves sind dort benachteiligt, da die Daten erst über das serielle Kabel abgefragt werden müssen. So kommt es zwangsläufigt zu zeitliche Verschiebungen der Datenzeitstempel. Und gerade bei bewölktem Himmel wechseln die Werte ggf. schneller als diese abgefragt werden.
Ich schau mir aber der Prozess aber gerne nochmal an... -
@bolliy Ich konnte es etwas näher analysieren. Ich denke es hat was mit einer Überlastung des Dongles zu tun. In der Grafik siehst du den heutigen Verbrauch aus FusionSolar aus und siehst ab ca. 10 Uhr dass auch dort die Werte auch dort schwanken. Um diese Uhrzeit hatte ich begonnen deine neue Version zu testen. Das hat wohl zur erhöhten Belastung des Dongles geführt und er zeigt auch bei FusionSolar die Schwankungen so an die es aber hier nicht gibt. Momentan den ganzen Tag eigentlich ziemlich gleichmäßig Sonnenschein und Verbrauch sollte auch ziemlich konstant sein.
Intervall war auf 15s eingestellt, bin jetzt auf 0.3.1 zurück und habe 20s eingestellt und Intervall adjust gemacht und Adapter mal 10 Minuten aus gehabt. -
@lcars weil du gerade die SDongle Überlastung ansprichst. Ich habe die Stringdaten ins Interval high genommen. Das überfordert ggf. den Dongle. ich habe die mal ins Interval medium gelegt und eine neue Version gepushed . Vielleicht geht es nun besser - kannst updaten
Hast du eigentlich timeouts im Log? -
@lcars Der SDongle ist alles andere als besonders stabil. Was wir dem SDongle abverlangen ist von den Entwicklern bei Huawei leider nicht berücksichtigt worden. So liefert der SDongle nur alle 5 min. Daten in die Cloud. Wir wollen aber echtzeit Informationen - am liebsten von allen Registern. Das kann der SDongle leider nicht leisten!
Wünschenswert wäre einen deutlich performanteren Microcontroller im SDongle; eine modbus Implementierung, die multi-client fähig ist und eine deutlich bessere integierbarkeit von third-party Devices wie einen Energy Manager und so weiter... -
@bolliy Bin wieder auf der neuesten Version und konnte es nur in den Griff bekommen durch den Neustart der Wechselrichter. Der Dongle hatte sich ja komplett nicht mehr eingekriegt auch wenn der Adapter aus war. Also man darf wohl auf keinen Fall mehr Daten im High Profil abrufen Bis jetzt sieht es so aus, als ob es wieder geht. Hab mal wieder die 15s als Intervall eingestellt.
-
@lcars Von abstürzenden SDongles haben schon Anwender aus anderen Projekten berichtet. Gerade beim Einsatz von mehreren WR scheint das öfter der Fall zu sein. Also werde ich mich zuückhalten weitere Registerabfragen in den Inverval high zu verlegen. Habe mich aber von einem Wunsch verleiten lassen. Aber dafür testen wir das alles hier...
Und was sagt deine Wallbox? -
@bolliy Momentan sieht wieder alles gut aus. Mal sehen wie der Verlauf bei FusionSolar dann aussieht, müsste ich ja auch dann sehen, dass es wieder "glatt" aussieht:
Eigentlich wäre es ggf. am besten wenn man anklicken könnte was man immer geupdatet haben will. Wenn einem anderem User die Stringwerte interessieren dann klickt er die an. Mich interessiert eigentlich nur der Hausverbrauch, activePower und die Batteriewerte. Den Rest könnte langsam updaten. Vielleicht wäre es gut wenn man das einstellen könnte was man will. Aber das ist dann wieder für dich mehr Aufwand.
So könnte es sich jeder optimieren wie er will und ich könnte das Intervall dann auch für mich kleiner machen wenn mgl.Wenn man weiter denkt wäre es auch gut zu sehen, welche Werte durch den ModBus Proxy abgerufen wurden und wie oft z.B. durch eine Wallbox.
D.h. Grundidee wäre, Möglichkeit zu geben, dass man das selbst anpassen kann was schnell geupdatet werden soll und was nicht.
-
@lcars Im Prinzip eine gute Idee! Nur werden die Register im Interval high in kleinen Häppchen gelesen. Also vielleicht 1 bis max. 4 Register an einem Stück. Bei den medium und Low Interval sind die Datenpakete deutlich größer bis zu 116 Register. Deshalb kann man diese nicht einfach durchtauschen. Und warum das ganze? Größe Darenpakete gehen deutlich schneller im Verhältnis zur Datenmenge. Bei großen Paketen ist der Overhead deutlich kleiner. Belastet aber den Dongle mehr.