GEN24 EVU Bug 1.9.7-0
Verfasst: Sa Okt 24, 2020 11:58 am
An alle die einen GEN24 mit Fronius Modbus Smartmeter haben und somit in der Softwareversion 1.9.7-0 vom EVU Bug betroffen sind:
In der GEN24 Softwareversion 1.9.7-0 gibts ja den Bug, dass das json Datenformat falsch ist und die Smartmeterdaten nicht in openWB übernommen werden.
Ein schneller temporärer Bugfix dafür ist folgender Code:
Dieser muss in die Datei "/var/www/html/openWB/modules/bezug_fronius_sm/main.sh" rein (vollständig ersetzen).
Als EVU Strombezugsmessmodul "Fronius Energy Meter" auswählen.
Die Einstellungen "Meter mit ID 1 statt 0" und "Kompatibilitätsmodus für die Primo Reihe" haben keine Auswirkungen.
Dann funktionierts fürs erste wieder.
Kann sein, dass das in der nächsten GEN24 Softwareversion behoben ist. Kann aber auch sein, dass es so bleibt. Und wer weiß wann die nächste Version kommt...
Ich werde für den temporären Bugfix keinen pullrequest im github machen - wär sinnlos, weil man ja nicht weiß obs in der nächsten Softwareversion vom GEN24 nicht wieder anders ist.
In der GEN24 Softwareversion 1.9.7-0 gibts ja den Bug, dass das json Datenformat falsch ist und die Smartmeterdaten nicht in openWB übernommen werden.
Ein schneller temporärer Bugfix dafür ist folgender Code:
Code: Alles auswählen
#!/bin/bash
# GEN24
response_sm=$(curl --connect-timeout 5 -s "$wrfroniusip/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System")
wattbezug=$(echo "scale=0; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_POWERACTIVE_MEAN_SUM_F64')/1" | bc)
evuv1=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_VOLTAGE_01_F64')/1" | bc)
evuv2=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_VOLTAGE_02_F64')/1" | bc)
evuv3=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_VOLTAGE_03_F64')/1" | bc)
bezugw1=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_POWERACTIVE_MEAN_01_F64')/1" | bc)
bezugw2=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_POWERACTIVE_MEAN_02_F64')/1" | bc)
bezugw3=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_POWERACTIVE_MEAN_03_F64')/1" | bc)
# Berechne den Strom und lese ihn nicht direkt (der eigentlich zu lesende direkte Wert
# "Current_AC_Phase_1" wäre der Absolutwert und man würde das Vorzeichen verlieren).
bezuga1=$(echo "scale=2; $bezugw1 / $evuv1" | bc)
bezuga2=$(echo "scale=2; $bezugw2 / $evuv2" | bc)
bezuga3=$(echo "scale=2; $bezugw3 / $evuv3" | bc)
evuhz=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].GRID_FREQUENCY_MEAN_F32')/1" | bc)
evupf1=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_FACTOR_POWER_01_F64')/1" | bc)
evupf2=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_FACTOR_POWER_02_F64')/1" | bc)
evupf3=$(echo "scale=2; $(echo $response_sm | jq '.Body.Data[].SMARTMETER_FACTOR_POWER_03_F64')/1" | bc)
ikwh=$(echo $response_sm | jq '.Body.Data[].SMARTMETER_ENERGYACTIVE_CONSUMED_SUM_F64')
ekwh=$(echo $response_sm | jq '.Body.Data[].SMARTMETER_ENERGYACTIVE_PRODUCED_SUM_F64')
# Gib den wichtigsten Wert direkt zurück (auch sinnvoll beim Debuggen).
echo $wattbezug
# Schreibe alle Werte in die Ramdisk.
echo $wattbezug > /var/www/html/openWB/ramdisk/wattbezug
echo $evuv1 > /var/www/html/openWB/ramdisk/evuv1
echo $evuv2 > /var/www/html/openWB/ramdisk/evuv2
echo $evuv3 > /var/www/html/openWB/ramdisk/evuv3
echo $bezugw1 > /var/www/html/openWB/ramdisk/bezugw1
echo $bezugw2 > /var/www/html/openWB/ramdisk/bezugw2
echo $bezugw3 > /var/www/html/openWB/ramdisk/bezugw3
echo $bezuga1 > /var/www/html/openWB/ramdisk/bezuga1
echo $bezuga2 > /var/www/html/openWB/ramdisk/bezuga2
echo $bezuga3 > /var/www/html/openWB/ramdisk/bezuga3
echo $evuhz > /var/www/html/openWB/ramdisk/evuhz
echo $evupf1 > /var/www/html/openWB/ramdisk/evupf1
echo $evupf2 > /var/www/html/openWB/ramdisk/evupf2
echo $evupf3 > /var/www/html/openWB/ramdisk/evupf3
echo $ikwh > /var/www/html/openWB/ramdisk/bezugkwh
echo $ekwh > /var/www/html/openWB/ramdisk/einspeisungkwh
Als EVU Strombezugsmessmodul "Fronius Energy Meter" auswählen.
Die Einstellungen "Meter mit ID 1 statt 0" und "Kompatibilitätsmodus für die Primo Reihe" haben keine Auswirkungen.
Dann funktionierts fürs erste wieder.
Kann sein, dass das in der nächsten GEN24 Softwareversion behoben ist. Kann aber auch sein, dass es so bleibt. Und wer weiß wann die nächste Version kommt...
Ich werde für den temporären Bugfix keinen pullrequest im github machen - wär sinnlos, weil man ja nicht weiß obs in der nächsten Softwareversion vom GEN24 nicht wieder anders ist.