Ich habe bei meiner Autotherm 2D mir statt hz (0,8 (Stufe1) bis 1,5 (Stufe 9)) mir den Wert in litern anzeigen lassen. Ich bin von der Annahme ausgegangen, dass die 2D auf kleinster Stufe 0,1 Liter Diesel und unter Vollast 0,24 Liter Diesel verbraucht. Dies ist einschlägig im Internet nachzulesen.
Hier meine Function:
// Die Eingabe ist die Frequenz der Kraftstoffpumpe in Hz, die von einem vorherigen Knoten kommt
let frequenzHz = msg.payload.frequencyfuelpump / 100;
// Berechne Liter pro Stunde basierend auf der Frequenz
let literProStunde = 0.2 * frequenzHz - 0.06;
// Stelle sicher, dass das Ergebnis nicht negativ ist
literProStunde = Math.max(literProStunde, 0);
// Begrenze das Ergebnis auf zwei Dezimalstellen und konvertiere es zurück in eine Zahl
literProStunde = Number(literProStunde.toFixed(2));
// Setze das Ergebnis als neuen Payload
msg.payload = literProStunde;
return msg;
Man muss dann im Fuelpump dashboard nur noch die Unit und die Maximalwerte anpassen. Vielleicht nervt es ja jemand anderen auch und das hier hilft weiter!