@RobS said in Test Adapter MyVBus v0.0.x GitHub:
mich interessiert ebenfalls natürlich die aktuelle Leistung der Solarzellen bzw. was am jeweiligen Tag erzeugt wurde und nicht nur der Gesamtwert.
Ich habe zur Ermitllung der täglich erzeugten Wärmemenge und der momentanen Kollektorleistung den in vielen Resol Reglern eingebauten Wärmemengenzähler aktiviert (man muss dazu den max. Durchfluss bei 100% Pumpendrehzahl wissen/messen und die Daten des Wärmeträgermediums). Dann kann man die erzeugte Wämemengensumme am Datenpunkt myvbus.0.00427B0010.17019.000010427B10010002840 (Wärmemenge) in Wh auslesen (die Id des Datenpunkts ist bei anderen Reglern anders, aber die Bezeichnung Wärmemenge ist gleich) . Für die Ermittlung der täglich/wöchentlich etc. erzeugten Wärmemenge nutze ich den statistics Adapter und zur Berechnung der momentanen Leistung folgendes Skript:
var Zaehler = 'myvbus.0.00427B0010.17019.000010427B10010002840';
var idWaermemenge = Zaehler;
var idWaermeleistung = 'Heat.Power';
function createLeistung(name, desc) {
createState(name, 0, { // Datenpunkt für Leistung
type: 'number',
desc: desc,
role: 'value.power',
unit: 'kW',
def: 0,
read: true,
write: true
});
}
createLeistung(idWaermeleistung, 'Power Generated Heat');
var Waermeleistung = 0;
var faktor = 3600000; // Umrechnungsfaktor kWh --> kW
function runden(wert, stellen) {
return Math.round(wert * Math.pow(10, stellen)) / Math.pow(10, stellen);
}
function energy2power(dp) {
var actval = dp.state.val; // aktueller Energiewert
var lastval = dp.oldState.val; // letzter Energiewert
var acttime = dp.state.lc; // aktuelle Zeit in ms
var lasttime = dp.oldState.lc; // Zeitpunkt zu letztem Energiewert in ms
return faktor * (actval - lastval) / (acttime - lasttime); // Leistung
}
on(idWaermemenge, function(dp) { // triggert bei jeder Wertänderung
Waermeleistung = energy2power(dp);
setState(idWaermeleistung, runden(Waermeleistung/1000, 3), true);
});