Kostal Piko MP plus und StecaGrid coolcept -XML Schnitttelle

Anfragen zum Erstellen von Modulen, Fragen zu Modulen
Antworten
RainerW
Beiträge: 104
Registriert: Di Mär 31, 2020 6:46 am

Kostal Piko MP plus und StecaGrid coolcept -XML Schnitttelle

Beitrag von RainerW »

openWB Version: 1.7 Stable
openWB Variante: openWB series2 custom mit Touch-Display und RFID, 11kW

PV Modul / Wechselrichter: LG ESSV1 + Kostal Piko MP plus
EVU Modul: LG ESSV1
Speichermodul: LG ESSV1

Hallo

Ich habe zwei Wechselrichter wobei der einphasige Wechselrichter lediglich das Garagendach bedient.
Die Hauptlast und die Features kommen von der LG_ESS1 Anlage und die lässt sich in OpenWB einbinden (PV, Speicher und GridPower)

Nun habe ich mal versucht mir die Werte vom Kostal Piko anzeigen zu lassen bzw. diesen einzubinden, da es in Zukunft ja mal möglich sein könnte, dass man zwei Wechselrichter gleichzeitig einbinden können soll.
Leider hat das nicht funktioniert und ich musste feststellen, das Kostal Piko MP plus mit einem anderen Interface arbeitet als die vorherigen "Piko"
Es ist sogar so das Kostal keine eigenen einphasigen Wechselrichter mehr herstellt, sondern von Steca bezieht.
Das heißt die einphasigen Wechselrichter Kostal Piko MP plus und StecaGrid coolcept sind von der Schnittstelle her gleich.
Ob auch die Dreiphasigen mit dem unten vorgestellten script funktionieren kann ich nicht sagen.

Ich bin kein Experte in bash/script.
Aber soweit ich das getestet habe kann mit dem unten stehenden den Kostal Piko MP plus auslesen.
Ich hoffe sie werden dieses script als neues Modul implementieren (Piko MP Plus and SrecaGrid coolcept)

Eine Frage hätte ich noch warum werden die "total wattstunden" in einer variable gespeichert die „pvkwh“ heißt aber benötigt werden „wh“, oder hab ich etwas übersehen?

#!/bin/bash
#
# RainerW 8th of April 2020
# Unfortunately Kostal has introduced the third version of interface.
# This time it is XML
# This is for Kostal_Piko_MP_plus and StecaGrid coolcept (single phase inverter)
# In fact Kostal is not developing own single phase inverter anymore but is sourcing them from Steca
# If you have the chance to test this module for three phase inverter from Kostal (Plenticore) or Steca (coocept3 or coolcept XL) let us know if it works

. /var/www/html/openWB/openwb.conf

# Kostal Piko MP is using XML

# call for XML file and parse it with xmlstarlet for current PV power
power_kostal_piko_MP=$(curl --connect-timeout 5 -s $wrkostalpikoip/measurements.xml | xmlstarlet sel -t -v '/Measurements/Measurement[@Type="AC_Power"]/@Value')

# cut the comma and the digit behind the comma
power_kostal_piko_MP=$(echo $power_kostal_piko_MP | sed 's/\..*$//')

# allow only numbers
re='^-?[0-9]+$'
if ! [[ $power_kostal_piko_MP =~ $re ]] ; then
power_kostal_piko_MP="0"
fi

pcs_pv_total_power=$kostal_piko_MP

# call for XML file and parse it for total produced kwh
pvkwh_kostal_piko_MP=$(curl --connect-timeout 5 -s $wrkostalpikoip/yields.xml | xmlstarlet sel -t -v '/root/Device/Yields/Yield/YieldValue/@Value')

pvkwh=$pvkwh_kostal_piko_MP

## Daten in Ramdisk schreiben

echo $pvkwh > /var/www/html/openWB/ramdisk/pvkwh
echo '-'$pcs_pv_total_power > /var/www/html/openWB/ramdisk/pvwatt
echo '-'$pcs_pv_total_power

Ich habe mir übrigens OpenWB auf einen standalone Raspberry getrennt von der Wallbox installiert, kann also unabhängig von der fertigen Wallbox testen und ausprobieren.

BTW: Ich hab "wrkostalpikoip" benutzt welche in dem derzeitigen Kostal_Piko Modul gesetzt wird

Mit freundlichen Grüßen
RainerW
Dateianhänge
Kostal_Piko_MP_ and_StecaGrid_Coolcept.h
Kostal_Piko_MP_ and_StecaGrid_Coolcept.sh
(1.42 KiB) 272-mal heruntergeladen
OpenWB custom mit allem
openWB
Site Admin
Beiträge: 7955
Registriert: So Okt 07, 2018 1:50 pm

Re: Kostal Piko MP plus und StecaGrid coolcept -XML Schnitttelle

Beitrag von openWB »

Nun habe ich mal versucht mir die Werte vom Kostal Piko anzeigen zu lassen bzw. diesen einzubinden, da es in Zukunft ja mal möglich sein könnte, dass man zwei Wechselrichter gleichzeitig einbinden können soll.
in der nightly ist das für PV Kit und SMA zum testen schon der Fall.
Eine Frage hätte ich noch warum werden die "total wattstunden" in einer variable gespeichert die „pvkwh“ heißt aber benötigt werden „wh“, oder hab ich etwas übersehen?
Gewachsene Struktur und nur im Backend relevant. Wh ist aber richtig die geschrieben werden.
Ich hoffe sie werden dieses script als neues Modul implementieren (Piko MP Plus and SrecaGrid coolcept)
Grundsätzlich gerne.
Einzig die Verwendung von xmlstarlet - da nicht Bestandteil einer openWB Installation finde ich unschön.

Wie sieht denn ein RAW curl Output aus?
Supportanfragen bitte NICHT per PN stellen.
Hardwareprobleme bitte über die Funktion Debug Daten senden mitteilen oder per Mail an support@openwb.de
RainerW
Beiträge: 104
Registriert: Di Mär 31, 2020 6:46 am

Re: Kostal Piko MP plus und StecaGrid coolcept -XML Schnitttelle

Beitrag von RainerW »

Untenstehend die XML files
Stimmt wir haben XML starlet installieren müssen.

Der Wert für pvwatt steht in "AC_Power" $wrkostalpikoip/measurements.xml.
Den Wert habe ich fett markiert

<root>
<Device Name="PIKO 3.0-1 MP plus" Type="Inverter" Platform="Net16" HmiPlatform="HMI17" NominalPower="3000" UserPowerLimit="nan" CountryPowerLimit="nan" Serial="763167DL006711690003" OEMSerial="10351314" BusAddress="1" NetBiosName="INV006711690003" WebPortal="PIKO Solar Portal" ManufacturerURL="kostal-solar-electric.com" IpAddress="192.168.179.49" DateTime="2020-04-08T08:49:26" MilliSeconds="047">
<Measurements>
<Measurement Value="235.1" Unit="V" Type="AC_Voltage"/>
<Measurement Value="0.761" Unit="A" Type="AC_Current"/>
<Measurement Value="180.3" Unit="W" Type="AC_Power"/>
<Measurement Value="179.2" Unit="W" Type="AC_Power_fast"/>
<Measurement Value="50.007" Unit="Hz" Type="AC_Frequency"/>
<Measurement Value="409.3" Unit="V" Type="DC_Voltage"/>
<Measurement Value="0.491" Unit="A" Type="DC_Current"/>
<Measurement Value="28.6" Unit="°C" Type="Temp"/>
<Measurement Value="408.9" 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>

Der bisherige Ertrag steht als Wert in der Struktur "Yields" $wrkostalpikoip/yields.xml.
Den Wert habe ich fett markiert.

<root>
<Device Name="PIKO 3.0-1 MP plus" Type="Inverter" Platform="Net16" HmiPlatform="HMI17" NominalPower="3000" UserPowerLimit="nan" CountryPowerLimit="nan" Serial="763167DL006711690003" OEMSerial="10351314" BusAddress="1" NetBiosName="INV006711690003" WebPortal="PIKO Solar Portal" ManufacturerURL="kostal-solar-electric.com" IpAddress="192.168.179.49" DateTime="2020-04-09T15:38:30" MilliSeconds="854">
<Yields>
<Yield Type="Produced" Slot="Total" Unit="Wh">
<YieldValue Value="4324803" TimeStamp="2019-03-22T12:00:00"/>
</Yield>
</Yields>
</Device>
</root>

Leider bin ich kein "sed" Künstler, könnten sie sich der Extrahierung der benötigten Daten annehmen, das wäre sehr nett.
Gerne teste ich das am live system.

Ich hab die obigen Daten nicht aus curl sondern aus dem browser. Ich tue mich sehr schwer mit den script Anwendungen (komme von der Arduino Programmierung). Ich denke aber das der file/Text gleich ist.

Mit freundlichen Grüßen
Rainer Wiesmann
OpenWB custom mit allem
floycion
Beiträge: 8
Registriert: Mo Nov 30, 2020 10:27 am

Re: Kostal Piko MP plus und StecaGrid coolcept -XML Schnitttelle

Beitrag von floycion »

Guten Abend in die Runde,

gestern ist meine Series2 angekommen, derweil teste ich schon auf der Standalone - Hauptaugenmerk zunächst auf dem PV-Modul wr2_kostalsteca.
Nun habe ich einen Solarworld-gelabelten StecaGrid Coolcept3 5503.
Die "measurements.xml" sieht bei mir so aus

<root>
<Device Name="Sunplug eco 5.5 TL3i" Type="Inverter" Serial="754299AH005727330003" BusAddress="1" NetBiosName="INV005727330003" IpAddress="192.168.2.33" DateTime="2021-02-24T17:21:30">
<Measurements>
<Measurement Value="226.363" Unit="V" Type="AC_Voltage1"/>
<Measurement Value="228.630" Unit="V" Type="AC_Voltage2"/>
<Measurement Value="226.187" Unit="V" Type="AC_Voltage3"/>
<Measurement Value="-nan" Unit="A" Type="AC_Current1"/>
<Measurement Value="-nan" Unit="A" Type="AC_Current2"/>
<Measurement Value="-nan" Unit="A" Type="AC_Current3"/>
<Measurement Value="-nan" Unit="W" Type="AC_Power"/>
<Measurement Value="-nan" Unit="W" Type="AC_Power1"/>
<Measurement Value="-nan" Unit="W" Type="AC_Power2"/>
<Measurement Value="-nan" Unit="W" Type="AC_Power3"/>
<Measurement Value="49.982" Unit="Hz" Type="AC_Frequency1"/>
<Measurement Value="49.983" Unit="Hz" Type="AC_Frequency2"/>
<Measurement Value="49.982" Unit="Hz" Type="AC_Frequency3"/>
<Measurement Value="26.100" Unit="V" Type="DC_Voltage"/>
<Measurement Value="-nan" Unit="A" Type="DC_Current"/>
<Measurement Value="-nan" Unit="W" Type="DC_Power"/>
<Measurement Value="29.790" Unit="°C" Type="Temp"/>
<Measurement Value="nan" Unit="W" Type="Consumption PV"/>
<Measurement Value="nan" Unit="W" Type="Consumption Grid"/>
<Measurement Value="nan" Unit="W" Type="GridPower"/>
<Measurement Value="100.0" Unit="%" Type="Dearting"/>
</Measurements>
</Device>
</root>

Wenn ich richtig verstanden habe, extrahiert das Script mit
grep -Po "Value=\'\K[^\']*" alles ab dem ersten Ausdruck "Value",
sed -m 3p pickt sich dann die dritte Zeile raus.
Beim 3phasigen WR steht die PV-Ausgangsleistung jetzt in der siebten Zeile (im Beispiel "-nan", da aktuell ziemlich dunkel draußen9

Alles ein bißchen statisch - ist es nicht möglich, mittels grep gleich gezielt die Zeile mit "AC_Power" aus der measurements.xml zu extrahieren?
Damit wären vermutlich alle Kostal- und Steca-WR älteren Baujahrs u/o mit xml-Schnittstelle erschlagen.
Ich kann leider nur schlaue Vorschläge bringen, und nicht selber programmieren.

Die "yields.xml" ist bei mir übrigens leer, ggf. schafft ein Firmware-update Abhilfe - sofern Steca mir die zur Verfügung stellt.

Schöne Grüße aus'm Allgäu
Florian
Steca Coolcept3 5503 / Hyundai Ioniq vFL / OpenWB series2 Standard+ / SDM630 / evSoc
weltweit
Beiträge: 15
Registriert: Di Apr 06, 2021 9:37 am

Re: Kostal Piko MP plus und StecaGrid coolcept -XML Schnitttelle

Beitrag von weltweit »

Hallo

ich habe seit gestern einen Kostal Piko MP plus 3.6-1 zusätzlich zum meinem Kostal Plenticore 8.5 in Betrieb genommen.
Aber es scheinen die Werte in der OpenWB nicht zu stimmen wenn ich den 2 Wechselrichter in der Konfig dazu nehme.

Ein Beispiel: Der Plenticore WR zeigt folgendes:
Bild

Der "neue" Kostal Piko MP plus zeigt folgendes an:
Bild

Die OpenWB zeigt folgendes an:
Bild

Wie kommt diese Abweichung zustande?

Die Wechselrichter habe ich wie folgt integriert:
Bild
Bild
Antworten