Advertisement
NittyGritty

Context-Store

Jan 28th, 2024
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function CalcDew(fTemp, fHum) {
  2.     var temp = -1.0 * fTemp;
  3.     var es = 6.112 * Math.exp(-1.0 * 17.67 * temp / (243.5 - temp))
  4.     var ed = fHum / 100.0 * es;
  5.     var eln = Math.log(ed / 6.112);
  6.     var td = -243.5 * eln / (eln - 17.67);
  7.     var fDew = parseFloat(td.toFixed(1));
  8.     return (fDew);
  9. }
  10.  
  11. function CalcAF(fTemp, fHum) {
  12.     var T = fTemp;
  13.     var r = fHum;
  14.  
  15.     var a = 7.5;
  16.     var b = 237.3;
  17.     var RG = 8314.3;
  18.     var mw = 18.016;
  19.     var TK = T + 273.15;
  20.  
  21.     if (T <= 0) {
  22.         a = 7.6;
  23.         b = 240.7;
  24.     }
  25.  
  26.     var SDDt = 6.1078 * Math.pow(10, ((a * T) / (b + T)));
  27.     var DDrT = r / 100 * SDDt;
  28.     var AF = parseFloat((Math.pow(10, 5) * mw / RG * DDrT / TK).toFixed(1) );
  29.  
  30.     return (AF);
  31. }
  32.  
  33. var KnotenName = msg.topic;
  34. var varname = KnotenName + "-";
  35.  
  36.  
  37. var Temp = msg.payload.temp
  38. var Hum = "50";                       // in case not supplied by Sensor
  39.  
  40. if (msg.payload.hum === undefined) {
  41.     Hum = 50;
  42. }
  43. else {
  44.     Hum = msg.payload.hum
  45. }
  46.  
  47. var Dew = CalcDew(Temp, Hum);
  48. var AF = CalcAF(Temp, Hum);
  49.  
  50. global.set(varname + "Temp", Temp);
  51. global.set(varname +  "Hum", Hum);
  52. global.set(varname +  "Dew", Dew);
  53. global.set(varname +   "AF", AF);
  54.  
  55. var Influx = [{
  56.     Room: KnotenName,
  57.     Temp: Temp,
  58.     Hum: Hum,
  59.     Dew: Dew
  60. }]
  61.  
  62. var time = Date.now();
  63. var Time1 = {payload:time};
  64. var Influx1 = {payload:Influx};
  65.  
  66. node.status({
  67.     fill: "blue", shape: "ring", text: KnotenName + ", Temp: " + Temp + "°C, Hum: " + Hum + "%, Dew: " + Dew + "°C, AF: " + AF + "g/m³" });
  68.  
  69. return [Influx1, Time1];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement