Hier die Logik:
Code: Alles auswählen
/*=====================================================================
Auswertung von Zählerwerten (vom Shelly in Wh) und Umrechnung zu kWh
- Verbrauch für Auto laden über definierte Steckdose in der Garage
======================================================================*/
{
"Level": [
["$Zaehlerstand_Input","float",0],
["$ZaehlerJahr","float",0],
["$ZaehlerGes","float",0],
["$Gesamtverbrauch","float",0],
["$Delta_roh","float",0.0],
["$Delta","float",0.0],
["$Konstn1","float",-1.0],
["$Konst1","float",1.0],
["$Konst0","float",0.0],
["$Faktor","float",0.001],
["$KonstLarge","float",1000000.0],
["$KonstTrue","bool",true],
["$ResetJahr","bool",false],
["$StartZeitJahr","string","3 5 0 1 1 *"]
],
"Module": [
// immer, wenn ein neuer Gesamtverbrauch kommt, delta in Wh ausrechnen, neuen Stand merken
["Polynomial","$Konst1","$Delta_roh",["$Zaehlerstand_Input", "-$Gesamtverbrauch"]],
["Polynomial","$Delta_roh","$Delta",["$Konst0", "$Konst1"]],
// Zaehlerstand-resets (z.b. wegen reboot, Stromausfall, ...) ignorieren
["Limiter","$Delta_roh","$Delta",["$Konst0", "$KonstLarge"]],
// Jahreszaehler Zurücksetzen
["Cron","$KonstTrue","$ResetJahr",0,"$StartZeitJahr"],
["Multiplexer",["$ZaehlerJahr","$Konst0"],"$ZaehlerJahr","$ResetJahr"],
["Multiplexer",["$ResetJahr","$Konst0"],"$ResetJahr","$ResetJahr"],
// neue Zaehlerstaende in kWh berechnen
["Polynomial","$Delta","$ZaehlerJahr",["$ZaehlerJahr","$Faktor"]],
["Polynomial","$Delta","$ZaehlerGes",["$ZaehlerGes","$Faktor"]]
],
"Output": [
["Zählerstand Jahr","Zählerstand Jahr","$ZaehlerJahr","c"],
["Zählerstand Gesamt","Zählerstand Gesamt","$ZaehlerGes","c"]
],
"Input": [
["Zählerstand gesamt Wh","Eingang Zählerstand Wh","$Zaehlerstand_Input","c"]
]
}
Über jegliche Ideen zum weiteren Debuggen bin ich dankbar....
