Calculating kWh based on changing Watt input

// Initialisiere die Variablen beim ersten Start
let lastTime = context.get('lastTime') || Date.now();
let lastPower = context.get('lastPower') || msg.payload; // msg.payload ist die aktuelle Leistung in Watt
let totalEnergyWh = context.get('totalEnergyWh',"persistent") || 0;

let currentTime = Date.now();
let durationHours = (currentTime - lastTime) / (1000 * 60 * 60); // Zeit in Stunden

// Riemann-Summe (Trapezregel): Durchschnitt der Leistung * Zeit
let energyDiffWh = ((lastPower + msg.payload) / 2) * durationHours;

totalEnergyWh += energyDiffWh;

// Werte für den nächsten Durchlauf speichern
context.set('lastTime', currentTime);
context.set('lastPower', msg.payload);
context.set('totalEnergyWh', totalEnergyWh, "persistent");

// Ausgabe in kWh (auf 2 Stellen gerundet)
msg.payload = parseFloat((totalEnergyWh / 1000).toFixed(2));
status(msg.payload);
return msg;

function status(data){
    let time = new Date(Date.now()).toLocaleString('de-DE');
    node.status({ fill: "green", shape: "dot", text: (time + " : " + data + " kWh") }); 
}