...wobei, nicht wahr. Ich bin wieder auf Doif umgestiegen, weil ich das ohnehin den Tages-Ertrag resetten wollte - dann kann ich auch die Aggregation darin machen. Und zusätzlich habe ich auch noch den finanziellen Teil hinzugefügt. So sieht's momentan aus und funktionirt ganz gut:
defmod Doif_Solarertrag DOIF ([EG_Shelly_Solaranlage:energy])\
(\
{\
my $KWH_COST = 0.2770;; ## EUR 4.4.2021\
fhem('setreading EG_Shelly_Solaranlage currentUsedKWHCost '.sprintf("%.3f", $KWH_COST));;\
\
my $energyOffset = ReadingsVal("EG_Shelly_Solaranlage", "energyOffset", 0);;\
my $energy = ReadingsVal("EG_Shelly_Solaranlage", "energy", 0);;\
my $add = ($energy <= $energyOffset) ? 0 : ($energy - $energyOffset);;\
\
my $savingsTotal = ReadingsVal("EG_Shelly_Solaranlage", "savingsTotal", 0);;\
\
fhem('setreading EG_Shelly_Solaranlage lastDelta '.sprintf("%.3f", $add));;\
\
## update the total counter\
fhem('setreading EG_Shelly_Solaranlage energyTotal_kWh '.sprintf("%.3f", (ReadingsVal("EG_Shelly_Solaranlage", "energyTotal_kWh", 0) + ($add/1000))));;\
fhem('setreading EG_Shelly_Solaranlage savingsTotal '.sprintf("%.3f", $savingsTotal + ($add/1000) * $KWH_COST));;\
\
## update daily counter\
fhem('setreading EG_Shelly_Solaranlage energyToday_kWh '.sprintf("%.3f", (ReadingsVal("EG_Shelly_Solaranlage", "energyToday_kWh", 0) + ($add/1000))));;\
fhem('setreading EG_Shelly_Solaranlage savingsToday '.sprintf("%.3f", ReadingsVal("EG_Shelly_Solaranlage", "energyToday_kWh", 0) * $KWH_COST));;\
\
## set the new offset\
fhem('setreading EG_Shelly_Solaranlage energyOffset '.$energy);;\
}\
)\
DOELSEIF ([00:00])\
(\
setreading EG_Shelly_Solaranlage energyToday_kWh 0, \
)\
DOELSE\
()
attr Doif_Solarertrag do always
attr Doif_Solarertrag group Automatisch
attr Doif_Solarertrag room Automatisierung
Alles anzeigen
Damit sehe ich den "finanziellen" Ertrag der Anlage