sokolov-sbs-flowserver/flow/gettemperature.js
2025-08-07 21:49:01 +02:00

68 lines
No EOL
1.6 KiB
JavaScript

exports.id = 'gettemperature';
exports.title = 'Get RVO temperature';
exports.group = 'Worksys';
exports.color = '#5CB36D';
exports.version = '1.0.2';
exports.output = ["red", "white"];
exports.author = 'Rastislav Kovac';
exports.icon = 'thermometer-three-quarters';
exports.readme = `# Getting temperature values from RVO`;
exports.install = function(instance) {
const { exec } = require('child_process');
let startRead;
let dataToTb;
let counter;
instance.on("close", function(){
clearInterval(startRead);
})
const start = function(){
//console.log("start function called");
exec("owread -C 28.427B45920702/temperature", (error, stdout, stderr) => {
parseData(stdout);
//instance.send({"Temp":stdout,"stderr":stderr,"err":error});
});
}
const parseData = function(data) {
data = parseFloat(data);
if (!isNaN(data)){
if ( counter > 290 ) {
instance.send(0, "[Get temperature component] - temperature data are comming again from RVO after more than 1 day break");
}
dataToTb = {
"KjbN4q7JPZmexgdnz2yKQ98YAWwO0Q3BMX6ERLoV": [
{
"ts": Date.now(),
"values": {
"temperature": data.toFixed(2)
}
}
]
}
instance.send(1, dataToTb);
counter = 0;
} else {
counter++;
if ( counter > 288 && counter < 290 ) {
instance.send(0, "[Get temperature component] - no temperature data from RVO for more than 1 day");
}
}
}
start();
startRead = setInterval(start, 300000);
};