Ja, da steht, dass es das Tuning (schon länger) nicht mehr gibt, aber angeblich für Bestandskunden weiter angeboten wird. Ich bin aber erst seit Juli dabei, also nach der Ankündigung von oben und kann sagen, dass bei mir zuerst da stand, dass noch zu wenige Daten da sind, aber nach einiger Zeit gab's dann den grünen Haken (s. Anhang).
Ist aber letztlich für die Fragestellung egal, denn das Tuning soll ja eher so Faktoren wie Verschattung etc. berücksichtigen. Das fällt i.d.R. aber nicht so extrem ins Gewicht, zumindest nicht so deutlich wie die Unterschiede zwischen DWD und SolCast Vorhersage auch ohne Tuning schon waren.
Mit Deinem Schnipsel kann ich jetzt auf die Schnelle nichts anfangen, hier ist meine entsprechende FHEM Config:
defmod SolCast_Reporting HTTPMOD https://api.solcast.com.au/rooftop_sites/... 0
attr SolCast_Reporting bodyDecode utf-8
attr SolCast_Reporting extractAllJSON 1
attr SolCast_Reporting replacement01Mode expression
attr SolCast_Reporting replacement01Regex {{([^}]+)}}
attr SolCast_Reporting replacement01Value ReadingsVal($name, $1, "")
attr SolCast_Reporting room Solar
attr SolCast_Reporting set01Data {"measurement": {"period_end": "{{period_end}}","period": "{{reporting_interval_ISO8601}}","total_power": $val}}
attr SolCast_Reporting set01Name pvProduction
attr SolCast_Reporting setHeader1 Content-Type: application/json
attr SolCast_Reporting setHeader2 Accept: */*
attr SolCast_Reporting stateFormat [SolCast_Reporting:value]
attr SolCast_Reporting userReadings reporting_interval {ReadingsVal($NAME, "reporting_interval", 300)},\
reporting_interval_ISO8601 {return "PT" . ReadingsVal($NAME, "reporting_interval", 300) / 60 . "M"},\
period_end {return strftime('%Y-%m-%dT%H:%M:%SZ', gmtime(time))}\
defmod di_reset_production DOIF ([+[SolCast_Reporting:reporting_interval]]) \
(setreading SolCast_Reporting period_end {strftime('%Y-%m-%dT%H:%M:%SZ', gmtime(time))},\
set SolCast_Reporting pvProduction {(ReadingsVal("BydBattery","avg_production","N/A")/1000)},\
setreading BydBattery avg_production_counter 0,\
setreading BydBattery avg_production 0,\
setreading BydBattery avg_production_sum 0)
Und hier noch der Ausschnitt aus dem userReading des Batterie-Devices "BydBattery":
avg_production_counter:Meter_Power.* {
ReadingsVal($NAME,"avg_production_counter",0)+1;
},
avg_production_sum:Meter_Power.* {
ReadingsVal($NAME,"avg_production_sum",0) + ReadingsVal($NAME, "pvProduction",0);
},
avg_production:Meter_Power.* {
my $aps = ReadingsVal($NAME,"avg_production_sum",0);
my $apc = ReadingsVal($NAME, "avg_production_counter", 0);
if ($apc > 0) {
return sprintf("%.1f", $aps/$apc);
} else {
return 0;
}
}
Ich hoffe, das hilft weiter...