WR1+WR2 falsche Summe SW 1.9.262 debug
WR1+WR2 falsche Summe SW 1.9.262 debug
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) 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
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) 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
Zuletzt geändert von RainerW am Di Apr 05, 2022 2:42 pm, insgesamt 1-mal geändert.
OpenWB custom mit allem
-
- Beiträge: 636
- Registriert: Do Feb 20, 2020 1:16 pm
Re: WR1+WR2 falsche Summe SW 1.9.262 debug
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...
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...
Gruß,
Jürgen
Jürgen
Re: WR1+WR2 falsche Summe SW 1.9.262 debug
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
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
OpenWB custom mit allem
Re: WR1+WR2 falsche Summe SW 1.9.262 debug
@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.
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
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. 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
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. 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
Zuletzt geändert von RainerW am Do Apr 07, 2022 9:00 am, insgesamt 1-mal geändert.
OpenWB custom mit allem
Re: WR1+WR2 falsche Summe SW 1.9.262 debug
Kannst Du dazu bitte mit aktiviertem Debug Mode 2 einen Logauszug posten?
Re: WR1+WR2 falsche Summe SW 1.9.262 debug
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
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
Zuletzt geändert von RainerW am Do Apr 07, 2022 12:19 pm, insgesamt 1-mal geändert.
OpenWB custom mit allem
Re: WR1+WR2 falsche Summe SW 1.9.262 debug
Hallo
Danke, es funktioniert wieder! @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
Danke, es funktioniert wieder! @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
OpenWB custom mit allem