Hallo zusammen,
besitze ebenfalls eine Pellematic und wollte mal meinen Ansatz darstellen.
Mit der letzten Wartung wurde bei mir das Touch V4 aufgespielt. Darüber kann ich per JSON auf alle Messwerte im csv Format zugreifen.
Ich habe mir ein Skript gebastelt, das per GET Befehl den Parameter "PE1 Einschublaufzeit[zs]" auswertet.
Dort wird angegeben, wie lange Pellets in den Brennraum befördert wurden. Vorsicht - es geht hier nicht um die Schnecke des Pelletlagers, sondern die kesselinterne Förderschnecke vom Tagesbehälter in den Brennraum.
Der Wert wird in Zs (Zehntel Sekunden) angegeben.
Das Skript funktioniert trotz meiner rudimentären Fähigkeiten soweit, allerdings fehlt mir noch ein kg/min Wert, für die interne Förderschnecke.
Hat da jemand zufällig eine Idee? Ich habe leider auch gar keinen Ansatz um den Wert zu ermitteln.
Eventuell könnte ja jemand von euch mal prüfen wie lange die interne Förderschnecke im Vergleich zur externen lief (am besten über ein paar Tage summiert).
Dann könnte man euren bekannten Wert auf die interne Förderschnecke umrechnen.
Da meine Lösung ganz ohne externe Sensoren auskommt, wäre der Ansatz für neue User sicher interessant.
var logCSV, log, i, result;
async function csvToJSON(logCSV) {
var lines=logCSV.replace(/\uFFFD/g, '°').split("\r");
var result = [];
var headers=lines[0].split(";");
//console.log(headers);
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split(";");
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return result;
}
schedule("*/15 * * * * *", async function () {
try {
require("request")('http://192.168.178.78:4321/PASSWORT/log0', async function (error, response, result) {
log = await csvToJSON(result);
var summeEinschublaufzeit = 0;
for (i = 0; i <= Object.keys(log).length; i++) {
var currentElement = parseFloat(getAttr(log,[i,"PE1 Einschublaufzeit[zs]"]));
if (isNaN(currentElement)) { currentElement = 0; }
//console.log(currentElement);
var summeEinschublaufzeit = summeEinschublaufzeit + currentElement;
}
console.log("summeEinschublaufzeit = "+summeEinschublaufzeit);
//console.log(typeof log);
summeEinschublaufzeit = summeEinschublaufzeit / 10 / 60; // Daten im Datensatz sind in "ZS" = Zehntel Sekunden. Anschließend in Minuten umwandeln.
var kgVerbrauch = summeEinschublaufzeit * 7.5; // Umwandlung von kg/min in kg
console.log("kgVerbrauch = "+kgVerbrauch);
setState("0_userdata.0.Pellematic.Pelletverbrauch_pro_Tag",kgVerbrauch, true);
}).on("error", function (e) {console.error(e);});
} catch (e) { console.error(e); }
console.debug("request: " + 'http://192.168.178.78:4321/PASSWORT/log0');
});