54 lines
No EOL
1.4 KiB
JavaScript
54 lines
No EOL
1.4 KiB
JavaScript
exports.id = 'checknewday';
|
|
exports.title = 'Check if new day';
|
|
exports.group = 'Worksys';
|
|
exports.color = '#5D9CEC';
|
|
exports.version = '0.0.1';
|
|
exports.output = ['white'];
|
|
exports.input = true;
|
|
exports.author = 'Rastislav Kovac';
|
|
exports.icon = 'cloud-upload';
|
|
|
|
exports.readme = `Checks, if day changed. If yes, it sends it to connected components`;
|
|
|
|
const { execSync } = require('child_process');
|
|
|
|
const weekday = ["Nedele","Pondeli","Uteri","Streda","Ctvrtek","Patek","Sobota"];
|
|
|
|
function getDate() {
|
|
// for some reason new Date() function does not set month and year in local timezone, so we use "timedatectl" command
|
|
let dateFromCommand = execSync("timedatectl", {}).toString();
|
|
|
|
let first = dateFromCommand.search("time:");
|
|
let last = dateFromCommand.search(" CE");
|
|
dateFromCommand = dateFromCommand.slice(first, last); //Thu 2022-04-07 13:38:03
|
|
|
|
const d = new Date(dateFromCommand);
|
|
return d;
|
|
}
|
|
|
|
exports.install = function(instance) {
|
|
|
|
let date = null;
|
|
|
|
const checkNewDay = () =>
|
|
{
|
|
const d = getDate();
|
|
const today = d.getDate(); //napr 21 (dvadsiateho prveho)
|
|
|
|
if(today !== date)
|
|
{
|
|
date = today;
|
|
const month = d.getMonth(); // 0-11
|
|
const day = d.getDay(); // 0-6 (0 = nedela)
|
|
const datum = `${today}.${month + 1}`;
|
|
|
|
const result = [datum, weekday[day]];
|
|
instance.send(0, result); // ['22.12', 'Streda']
|
|
}
|
|
}
|
|
|
|
instance.on('data', flowdata => {
|
|
checkNewDay();
|
|
})
|
|
|
|
} |