Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var words = msg.topic.split('/');
- var KnotenName = (words[3]);
- var Taskname = (words[4]);
- var Influx = "";
- var SysUnit = ("00"+ msg.payload.Unit).slice(-3);
- // var varname = SysUnit + "-" + KnotenName + "-" + Taskname;
- var varname = KnotenName + "-";
- var TotalCount = global.get("TotalCount", "file");
- var time = Date.now();
- if (Taskname != "System") {
- global.set(varname + "TimeStamp", time);
- }
- /**
- * @param {number} fTemp
- * @param {number} fHum
- */
- 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);
- }
- /**
- * @param {any} fTemp
- * @param {any} fHum
- */
- 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);
- }
- switch (Taskname) {
- case 'SI7021':
- var SI7021_Temp = msg.payload.Temp;
- var SI7021_Hum = msg.payload.Hum;
- var SI7021_Dew = CalcDew(SI7021_Temp, SI7021_Hum);
- var SI7021_AF = CalcAF(SI7021_Temp, SI7021_Hum);
- global.set(varname +"Temp", SI7021_Temp);
- global.set(varname + "Hum", SI7021_Hum);
- global.set(varname + "Dew", SI7021_Dew);
- global.set(varname + "AF", SI7021_AF);
- Influx = [{
- Room: KnotenName,
- Temp: SI7021_Temp,
- Hum: SI7021_Hum,
- Dew: SI7021_Dew,
- AF: SI7021_AF
- }]
- break;
- /* -------------------------------------------------------------------- */
- case 'DHT22':
- var DHT22_Temp = msg.payload.Temp;
- var DHT22_Hum = msg.payload.Hum;
- var DHT22_Dew = CalcDew(DHT22_Temp, DHT22_Hum);
- var DHT22_AF = CalcAF(DHT22_Temp, DHT22_Hum);
- global.set(varname + "Temp", DHT22_Temp);
- global.set(varname + "Hum", DHT22_Hum);
- global.set(varname + "Dew", DHT22_Dew);
- global.set(varname + "AF", DHT22_AF);
- Influx = [{
- Room: KnotenName,
- Temp: DHT22_Temp,
- Hum: DHT22_Hum,
- Dew: DHT22_Dew,
- AF: DHT22_AF
- }]
- break;
- /* -------------------------------------------------------------------- */
- case 'Wasser':
- var Warmwasser_Temp = msg.payload.Warmwasser;
- var Vorlauf_Temp = msg.payload.Vorlauf;
- var Ruecklauf_Temp = msg.payload.Rücklauf;
- var Gehaeuse_Temp = msg.payload.Gehäuse;
- global.set(varname + "Warmwasser", Warmwasser_Temp);
- global.set(varname + "Vorlauf", Vorlauf_Temp);
- global.set(varname + "Ruecklauf", Ruecklauf_Temp);
- global.set(varname + "Gehaeuse", Gehaeuse_Temp);
- Influx = [{
- Room: KnotenName,
- Warmwasser: Warmwasser_Temp,
- Vorlauf: Vorlauf_Temp,
- Ruecklauf: Ruecklauf_Temp,
- Gehaeuse: Gehaeuse_Temp
- }]
- break;
- /* -------------------------------------------------------------------- */
- case 'TSL2561':
- var TSL2561_Lux = msg.payload.Lux;
- var TSL2561_IR = msg.payload.Infrared;
- var TSL2561_Broad = msg.payload.Broadband;
- global.set(varname + "Lux", TSL2561_Lux);
- global.set(varname + "IR", TSL2561_IR);
- global.set(varname + "Broad", TSL2561_Broad);
- Influx = [{
- Room: KnotenName,
- Broad: TSL2561_Broad,
- IR: TSL2561_IR,
- Lux: TSL2561_Lux
- }]
- break;
- /* -------------------------------------------------------------------- */
- case 'BH1750':
- var BH1750_Lux = msg.payload.Lux;
- global.set(varname + "Lux", BH1750_Lux)
- Influx = [{
- Room: KnotenName,
- Lux: BH1750_Lux
- }]
- break;
- /* -------------------------------------------------------------------- */
- case 'BMP085':
- var BMP085_Temp = msg.payload.Temp;
- var BMP085_Pres = msg.payload.Pressure;
- global.set(varname + "Temp", BMP085_Temp);
- global.set(varname + "Pres", BMP085_Pres);
- Influx = [{
- Room: KnotenName,
- Temp1: BMP085_Temp,
- Pressure: BMP085_Pres
- }]
- break;
- /* -------------------------------------------------------------------- */
- case 'Oben':
- var Count = msg.payload.Count;
- var Total = msg.payload.Total;
- var Time = msg.payload.Time;
- global.set(varname + "Count", Count);
- global.set(varname + "Total", Total);
- TotalCount = TotalCount + Count;
- global.set("TotalCount", TotalCount, "file");
- Influx = [{
- Room: KnotenName,
- Count: Count,
- Total: Total,
- Time: Time
- }]
- break;
- /* -------------------------------------------------------------------- */
- case 'BME280':
- var BME280_Temp = msg.payload.Temp;
- var BME280_Hum = msg.payload.Hum;
- var BME280_Pres = msg.payload.Pressure;
- global.set(varname + "Temp", BME280_Temp);
- global.set(varname + "Hum", BME280_Hum);
- global.set(varname + "Pres", BME280_Pres);
- Influx = [{
- Room: KnotenName,
- Temp1: BME280_Temp,
- Hum1: BME280_Hum,
- Pressure: BME280_Pres
- }]
- break;
- /* -------------------------------------------------------------------- */
- case 'System':
- var SysUptime = msg.payload.Uptime;
- var SysRSSI = msg.payload.RSSI;
- global.set(varname + "Uptime", SysUptime);
- global.set(varname + "RSSI", SysRSSI);
- Influx = [{
- Room: KnotenName,
- Uptime: SysUptime,
- RSSI: SysRSSI
- }]
- break;
- } // switch (Taskname)
- node.status({
- fill: "green",
- shape: "ring",
- text: KnotenName + " - " +
- Taskname + " - " +
- "Unit: " + SysUnit +
- ", Total: " +TotalCount / 100
- });
- return [{ payload: Influx}, {payload:time}];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement