NEWS
Javascript zum umrechnen watt in kw/h täglich auf 0 setzten
-
Hallo,
aktuell habe ich dieses script am laufen (iobroker)[font=Consolas, "Courier New", monospace]const idPower = 'mqtt.0.solpiplog.pip.pvchargew'; // cur_power
const idEnergy = 'Tagesproduktion'; // kWh// Energie-Datenpunkt erzeugen
createState(idEnergy, 1.11, {type: 'number', unit: 'kWh'}); // Anfangswert anpassen !var energy = 1000 * getState(idEnergy).val; // Wh, erzeugt beim ersten Skripstart Fehler
on({id: idPower}, function(dp) {
energy = energy + dp.oldState.val * (dp.state.ts - dp.oldState.ts) / 3600000; // Wh
setState(idEnergy, Math.round(energy) / 1000, true); // kWh mit 3 Nachkommastellen
});[/font]nun möchte ich das um 0uhr nachts der Wer Tagesproduktion auf 0 gesetzt wird und bekomme das nicht so recht hin.
-
@mmoeller53 Schau dir mal den sourceanalytix Adapter an
-
@mmoeller53 der einfachste weg:
im Trigger : vor der Berechnung prüfen ob getDateObject(dp.oldState.ts).getMonth() == getDateObject(dp.state.ts).getMonth()
Wenn ja dann passt deine Berechnung, wenn nein :
var v = getDateObject(dp.state.ts);
energy = (v.getHours() * 3600 + v.getMinutes() * 60 + v.getSeconds() * dp.oldState.val)/3600;A.
-
@asgothian Verstehe die antwort nicht so ganz, also nach dem was ich von der quelle ablesen kann stimmt die berechnung (ausgerechnete kwh vom wechelrichter im vergleich zum skript) nun möchte ich aber das der errechnete wert im script täglich zurück auf 0 gesetzt wird und weiß nicht so recht wie.
-
@alcalzone Vielen dank für den tipp, super adapter werde ich verwenden
-
@mmoeller53 sagte: nun möchte ich das um 0uhr nachts der Wer Tagesproduktion auf 0 gesetzt wird
schedule('0 0 * * *', function() { energy = 0; });
-
@mmoeller53 sagte in Javascript zum umrechnen watt in kw/h täglich auf 0 setzten:
@asgothian Verstehe die antwort nicht so ganz, also nach dem was ich von der quelle ablesen kann stimmt die berechnung (ausgerechnete kwh vom wechelrichter im vergleich zum skript) nun möchte ich aber das der errechnete wert im script täglich zurück auf 0 gesetzt wird und weiß nicht so recht wie.
Der trick ist nicht um 0 Uhr auf 0 zurück zu setzen sondern bei der ersten Änderung nach 0 Uhr den Wert seit 0 Uhr zu berechnen. Dann sparst Du dir den ganzen Zeit-Krams mit cron job und Überscheidungen von Skripten um Mitternacht.
A.