Seite 1 von 2

WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Di Apr 05, 2022 12:30 pm
von RainerW
Hallo

Ich hatte mein Probleme mit WR1 und WR2 schon unter "Rückmeldungen Stable 1.9.262" erläutert.
Ich habe mir jetzt erlaubt ein neues Thema zu erstellen, da ich eventuell einen bug gefunden habe und ich davon ausgehe, dass eventuelle bug fixes diskutiert werden. Dies könnte in "Rückmeldungen Stable 1.9.262" vieleicht etwas unübersichtlich werden.

Nun zum beobachteten Verhalten/bug.
Die Werte für openWB/ramdisk/pv2watt und openWB/ramdisk/pv1watt sind immer gleich und immer vom LG ESS Wechselrichter (WR1)
(Also pv1watt=pv2watt)
2mal der gleiche Wert.JPG
Damit ist der Summenwert /openWB/ramdisk/pvwatt immer gleich 2 mal LG ESS anstatt LG ESS + Kostal Piko MP und der Fehler liegt wohl nicht im Kostal Piko MP oder LG ESS modul. Ich habe schon in den code geschaut aber leider liegt mir Phyton nicht sonderlich und die Variablen pv1watt und pv2watt werden an sehr vielen Stellen genutzt ...

Ich hoffe mit diesem Hinweis ist ein bugfix möglich.

Ciao RainerW

openWB series2 custom (mit allem), SW 1.9.262 (jetzt), 1.9.244 (vorher)
WR1: LG ESS
WR2: Kostal Piko MP/Steca Grid Coolcept

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Di Apr 05, 2022 1:05 pm
von Heavendenied
Ich kann das Problem in der Kombination SMA als PV1 und Kostal Piko MP/Steca Grid als PV2 bestätigen.
In der Kombination SMA/Solarlog hingegen läuft es einwandfrei.
Es scheint also tatsächlich ein Problem mit dem Kostal Piko Mp /Steca Modul zu sein...

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Mi Apr 06, 2022 3:25 pm
von RainerW
Hallo

ich habe mir den code mal angeschaut. Neben einem Phyton script welches die XML Werte extrahiert gibt es auch noch eine main.sh.

source: modules/wr2_kostalsteca/main.sh
#!/bin/bash
OPENWBBASEDIR=$(cd `dirname $0`/../../ && pwd)
RAMDISKDIR="${OPENWBBASEDIR}/ramdisk"
#MODULEDIR=$(cd `dirname $0` && pwd)
#DMOD="PV"
DMOD="MAIN"
Debug=$debug
#For Development only
#Debug=1
if [ $DMOD == "MAIN" ]; then
MYLOGFILE="${RAMDISKDIR}/openWB.log"
else
MYLOGFILE="${RAMDISKDIR}/wr2_kostalsteca.log"
fi
openwbDebugLog ${DMOD} 2 "PV IP: ${pv2ip}"
bash "$OPENWBBASEDIR/packages/legacy_run.sh" "wr2_kostalsteca.kostal_steca" "${pv2ip}" >>$MYLOGFILE 2>&1
ret=$?
openwbDebugLog ${DMOD} 2 "RET: ${ret}"

pvwatt=$(</var/www/html/openWB/ramdisk/pvwatt)
echo $pvwatt

In dieser main.sh taucht zum Schluss eine seltsame Befehlskette auf:
pvwatt=$(</var/www/html/openWB/ramdisk/pvwatt)
echo $pvwatt


Ich hätte hier eigentlich keine Aufrufe mit "pvwatt" erwartet, weil es sich doch eigentlich um WR2 handelt.
Kann es möglich sein, das hier der Wert von pvwatt aus der Ramdisk (mit dem LG ESS wert belegt) mit stdout ausgegeben wird und dann vom folgendem script in pv2watt geschrieben wird (das nachfolgende Script würde ja damit rechnen pv2watt forgesetzt zu bekommen und nicht pvwatt).
Damit wäre der vorher mit Phyton extrahierte Wert für pv2watt wieder mit dem pvwatt Wert überschrieben.
In pvwatt, pv1watt und pv2watt befänden sich jeweils die gleichen Wert und zwar die, der LG ESS Anlage.

Keine Ahnung, ob ich mit meinen Vermutungen richtig liege, aber Fakt ist das die vorletzte Zeile im main.sh für KostalSteca kein pvwatt lesen sollte sondern pv2watt.
pvwatt=$(</var/www/html/openWB/ramdisk/pv2watt)
echo $pvwatt

Könnte das mal jemand testweise ändern, eine nightly machen und ich teste das dann?

Ciao RainerW

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Mi Apr 06, 2022 4:26 pm
von HSC
Hier gab es das Problem auch mal zwischendurch.
viewtopic.php?p=61019#p61019
VG

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Mi Apr 06, 2022 6:28 pm
von LutzB
@Rainerw
Danke fürs Raussuchen! Ich hab mir heute in der loadvars.sh einen Wolf gesucht. Dann gehe ich morgen mal alle main.sh durch...

Nachtrag: PR ist gemerged. Bitte mal die Nightly ausprobieren. Changelog kommt noch.

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Do Apr 07, 2022 6:39 am
von RainerW
Hallo

Der Fehler, dass die Werte der LG ESS doppelt gezählt werden, ist mit der aktuellen Nightly behoben. :-)
Aber leider hat der Fehler "pv1watt bzw. pvwatt überschreibt pv2watt" einen anderen Fehler überdeckt. :-(

Die Routine zum Auslesen von Kostal Piko MP/Steca Grid = pv2watt scheint nicht zu funktionieren bzw. liefert nur "0".
Oder präziser in pv2watt erscheint nur eine "0" (wer weiß, was da die Null reinschreibt.)
Anmerkung: die originale Auslese-Routine wurde von mir in bash erstellt.
Die Variante in Phyton wurde von jemand anderem eingeführt, um die XML files der Kostal flexibler auszulesen, leider beherrsche ich Phyton nicht.
neue Fehler.JPG
Falls es zum debuggen der phyton Routine der Kostal Piko MP hilfreich ist:
Hier der XML file für die power:
<root>
<Device Name="PIKO 3.0-1 MP plus" Type="Inverter" Platform="Net16" HmiPlatform="HMI17" NominalPower="3000" UserPowerLimit="nan" CountryPowerLimit="nan" Serial="xyz" OEMSerial="xyz" BusAddress="1" NetBiosName="INVxyz" WebPortal="PIKO Solar Portal" ManufacturerURL="kostal-solar-electric.com" IpAddress="yyy.xxx.xxx.xx" DateTime="2022-04-07T08:26:12" MilliSeconds="761">
<Measurements>
<Measurement Value="234.2" Unit="V" Type="AC_Voltage"/>
<Measurement Value="0.566" Unit="A" Type="AC_Current"/>
<Measurement Value="132.8" Unit="W" Type="AC_Power"/>
<Measurement Value="131.3" Unit="W" Type="AC_Power_fast"/>
<Measurement Value="50.021" Unit="Hz" Type="AC_Frequency"/>
<Measurement Value="416.2" Unit="V" Type="DC_Voltage"/>
<Measurement Value="0.377" Unit="A" Type="DC_Current"/>
<Measurement Value="27.5" Unit="°C" Type="Temp"/>
<Measurement Value="415.8" Unit="V" Type="LINK_Voltage"/>
<Measurement Unit="W" Type="GridPower"/>
<Measurement Unit="W" Type="GridConsumedPower"/>
<Measurement Unit="W" Type="GridInjectedPower"/>
<Measurement Unit="W" Type="OwnConsumedPower"/>
<Measurement Value="100.0" Unit="%" Type="Derating"/>
</Measurements>
</Device>
</root>

Hier der XML für die wh:
<root>
<Device Name="PIKO 3.0-1 MP plus" Type="Inverter" Platform="Net16" HmiPlatform="HMI17" NominalPower="3000" UserPowerLimit="nan" CountryPowerLimit="nan" Serial="xyz" OEMSerial="xyz" BusAddress="1" NetBiosName="INVxyz" WebPortal="PIKO Solar Portal" ManufacturerURL="kostal-solar-electric.com" IpAddress="yyy.xxx.xxx.xx" DateTime="2022-04-07T08:31:51" MilliSeconds="295">
<Yields>
<Yield Type="Produced" Slot="Total" Unit="Wh">
<YieldValue Value="12306056" TimeStamp="2019-03-22T12:00:00"/>
</Yield>
</Yields>
</Device>
</root>

Ciao Rainer

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Do Apr 07, 2022 7:04 am
von LutzB
Kannst Du dazu bitte mit aktiviertem Debug Mode 2 einen Logauszug posten?

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Do Apr 07, 2022 7:33 am
von RainerW
Hallo

Ich hab den Mode 2 eingestellt:


2022-04-07 09:27:23: PID: 21227: RET: 0 (LV2) at 19 main modules/wr2_kostalsteca/main.sh
AttributeError: 'NoneType' object has no attribute 'get'
power_kostal_piko_MP = ET.fromstring(response).find("Measurement[@Type='AC_Power']").get("Value")
File "/var/www/html/openWB/modules/wr2_kostalsteca/kostal_steca.py", line 29, in update
parser.set_defaults(RUN=lambda args: function(*[getattr(args, argument_name) for argument_name in arg_spec.args]))
File "/var/www/html/openWB/packages/helpermodules/cli/_run_using_positional_cli_args.py", line 19, in <lambda>
args.RUN(args)
File "/var/www/html/openWB/packages/helpermodules/cli/_run_using_positional_cli_args.py", line 34, in run_using_positional_cli_args
run_using_positional_cli_args(update, argv)
File "/var/www/html/openWB/modules/wr2_kostalsteca/kostal_steca.py", line 65, in main
importlib.import_module(parsed[0]).main(parsed[1:])
File "/var/www/html/openWB/packages/legacy_run_server.py", line 109, in handle_message
self.__callback(read_all_bytes(connection))
File "/var/www/html/openWB/packages/legacy_run_server.py", line 87, in handle_connection
yield
File "/var/www/html/openWB/packages/legacy_run_server.py", line 48, in redirect_stdout_stderr_exceptions_to_log
Traceback (most recent call last):
2022-04-07 09:27:23: PID: 23144: legacy run server: Unhandled exception
2022-04-07 09:27:22: PID: 23144: requests.packages.urllib3.connectionpool: http://xyz "GET /measurements.xml HTTP/1.1" 200 None
2022-04-07 09:27:22: PID: 23144: requests.packages.urllib3.connectionpool: Starting new HTTP connection (1): xyz
2022-04-07 09:27:22: PID: 23144: KostalSteca WR: PV Kostal Steca IP:xyz

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Do Apr 07, 2022 11:54 am
von LutzB
In der Nightly sollte es jetzt funktionieren.

Re: WR1+WR2 falsche Summe SW 1.9.262 debug

Verfasst: Do Apr 07, 2022 12:49 pm
von RainerW
Hallo

Danke, es funktioniert wieder!
tuts wieder.JPG
@Heavendenied: Danke dafür den Fehler ( pvwatt= 2*pv1watt / pv1watt=pv2watt) bestätigt zu haben und auf die Modulabhängigkeit hingewiesen zu haben.

@Lutz: Danke für die schnellen Fixes

Ciao Rainer