NittyGritty icon

Context-Store

NittyGritty | PRO | 01/28/24 09:49:33 AM UTC | 0 ⭐ | 837 👁️ | Never ⏰ | []
JavaScript |

1.56 KB

|

None

|

0 👍

/

0 👎

function CalcDew(fTemp, fHum) {
    var temp = -1.0 * fTemp;
    var es = 6.112 * Math.exp(-1.0 * 17.67 * temp / (243.5 - temp))
    var ed = fHum / 100.0 * es;
    var eln = Math.log(ed / 6.112);
    var td = -243.5 * eln / (eln - 17.67);
    var fDew = parseFloat(td.toFixed(1));
    return (fDew);
}
 
function CalcAF(fTemp, fHum) {
    var T = fTemp;
    var r = fHum;
 
    var a = 7.5;
    var b = 237.3;
    var RG = 8314.3;
    var mw = 18.016;
    var TK = T + 273.15;
 
    if (T <= 0) {
        a = 7.6;
        b = 240.7;
    }
 
    var SDDt = 6.1078 * Math.pow(10, ((a * T) / (b + T)));
    var DDrT = r / 100 * SDDt;
    var AF = parseFloat((Math.pow(10, 5) * mw / RG * DDrT / TK).toFixed(1) );
 
    return (AF);
}
 
var KnotenName = msg.topic;
var varname = KnotenName + "-";
 
 
var Temp = msg.payload.temp
var Hum = "50";                       // in case not supplied by Sensor
 
if (msg.payload.hum === undefined) {
    Hum = 50;
}
else {
    Hum = msg.payload.hum
}
 
var Dew = CalcDew(Temp, Hum);
var AF = CalcAF(Temp, Hum);
 
global.set(varname + "Temp", Temp);
global.set(varname +  "Hum", Hum);
global.set(varname +  "Dew", Dew);
global.set(varname +   "AF", AF);
 
var Influx = [{
    Room: KnotenName,
    Temp: Temp,
    Hum: Hum,
    Dew: Dew
}]
 
var time = Date.now();
var Time1 = {payload:time};
var Influx1 = {payload:Influx};
 
node.status({
    fill: "blue", shape: "ring", text: KnotenName + ", Temp: " + Temp + "°C, Hum: " + Hum + "%, Dew: " + Dew + "°C, AF: " + AF + "g/m³" });
 
return [Influx1, Time1];

Comments