NEWS
Aktuelle Leistung aus Stromzählerstand berechnen
-
Moin zusammen,
mein Stromzähler zeigt mir nur den aktuellen Zählerstand an und diesen kann ich auch via IR-Kopf auslesen. Ich habe versucht an die PIN vom Stromzähler (APATOR/PAFAL 12ec3g) zu kommen aber laut meinem Messstellenbetreiber haben die keine PIN hinterlegt und so kann ich die aktuelle Leistung nicht einsehen Auch reagiert der Zähler nicht auf das anleuchten mit der Taschenlampe.
Ich habe versucht mir von ChatGPT ein JSScript bauen zu lassen, aber es kommen Werte wie 0,08 und 0,15 raus.
// ID des Stromzählerstands-Datapoints var meterId = 'deinStromzaehlerstandID'; // ID des Datapoints, um die aktuelle Leistung zu speichern var powerId = 'deineLeistungsDatapointID'; // Variable zur Speicherung des vorherigen Zählerstands var previousMeterValue = null; // Variable zur Speicherung des vorherigen Zeitstempels var previousTimestamp = null; // Funktion zum Berechnen der aktuellen Leistung function calculatePower() { // Aktueller Zählerstand var currentMeterValue = getState(meterId).val; // Aktueller Zeitstempel var currentTimestamp = Date.now(); if (previousMeterValue !== null && previousTimestamp !== null) { // Berechnung der Zeitdifferenz in Sekunden var timeDifference = (currentTimestamp - previousTimestamp) / 1000; if (timeDifference > 0 && currentMeterValue >= previousMeterValue) { // Berechnung der Differenz zwischen aktuellem und vorherigem Zählerstand var meterDifference = currentMeterValue - previousMeterValue; // Berechnung der aktuellen Leistung in Watt mit zwei Nachkommastellen var power = parseFloat((meterDifference / timeDifference) * 1000).toFixed(2); // Aktuelle Leistung setzen setState(powerId, power); } } // Vorherigen Zählerstand und Zeitstempel aktualisieren previousMeterValue = currentMeterValue; previousTimestamp = currentTimestamp; } // Überwachung von Änderungen am Zählerstand on({ id: meterId, change: 'ne' }, calculatePower);
vlt könnt ihr mir helfen uns sagen wo der Fehler ist bzw. wie man es anders/besser machen kann. Der Zählerstand wird alle 60 Sekunden durch Smartmeter ausgelesen und mit zwei Nachkommastellen abgespeichert (31968.68)
Gruß
Wurmi \m/ -
@wurmi sagte: wie man es anders/besser machen kann.
const idEnergy = '...'; // Zählerstand in kWh const idPower = '0_userdata.0.Elektro.Zaehler.Leistung'; // in W on(idEnergy, function(dp) { let power = 3600000000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); setState(idPower, Math.round(power), true); });
@wurmi sagte in Aktuelle Leistung aus Stromzählerstand berechnen:
von ChatGPT ein JSScript bauen zu lassen
ChatGPT muss offenbar noch viel lernen.
-
@paul53 Vielen dank Hat geklappt.
Gruß
Wurmi \m/