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.