Initial commit
This commit is contained in:
commit
c53c7085bc
60 changed files with 23885 additions and 0 deletions
84
flow/send_to_display.js
Normal file
84
flow/send_to_display.js
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
exports.id = 'sendtodisplay';
|
||||
exports.title = 'Send to display';
|
||||
exports.group = 'Worksys';
|
||||
exports.color = '#5D9CEC';
|
||||
exports.version = '0.0.1';
|
||||
exports.output = 2;
|
||||
exports.input = 2;
|
||||
exports.author = 'Rastislav Kovac';
|
||||
exports.icon = 'cloud-upload';
|
||||
|
||||
const { execSync } = require('child_process');
|
||||
|
||||
exports.install = function(instance) {
|
||||
|
||||
const getDepartures = setInterval(checkIfWeHaveDepartures, 60000);
|
||||
let departures = [];
|
||||
let firstDepartureTime = getCurrentTimeFormatted();
|
||||
|
||||
function checkIfWeHaveDepartures() {
|
||||
if (departures.length === 0) instance.send(1, "reload");
|
||||
}
|
||||
|
||||
instance.on('1', flowdata => {
|
||||
departures = flowdata.data;
|
||||
})
|
||||
|
||||
instance.on('close', function() {
|
||||
clearInterval(getDepartures);
|
||||
})
|
||||
|
||||
instance.on('0', function(_) {
|
||||
|
||||
// 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);
|
||||
let hour = d.getHours();
|
||||
let minute = d.getMinutes();
|
||||
console.log('******hour, minute', hour, minute)
|
||||
|
||||
if (minute < 10) minute = `0${minute}`;
|
||||
if (hour < 10) hour = `0${hour}`;
|
||||
|
||||
const now = `${hour}:${minute}`;
|
||||
|
||||
console.log('******--------', firstDepartureTime, now);
|
||||
console.log('******--------', firstDepartureTime < now);
|
||||
|
||||
if (firstDepartureTime < now) {
|
||||
|
||||
let departures_filtered = departures.filter(departure => {
|
||||
const timeOfDeparture = departure[1];
|
||||
if (now < timeOfDeparture) return true;
|
||||
return false;
|
||||
})
|
||||
|
||||
if (departures_filtered.length > 0) firstDepartureTime = departures_filtered[0][1];
|
||||
else firstDepartureTime = "00:00";
|
||||
|
||||
instance.send(0, departures_filtered.slice(0, 10));
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
function getCurrentTimeFormatted() {
|
||||
const now = new Date(); // Get the current date and time
|
||||
|
||||
const hours = now.getHours(); // Get the current hour (0-23)
|
||||
const minutes = now.getMinutes(); // Get the current minute (0-59)
|
||||
|
||||
// Pad with leading zero if the number is less than 10
|
||||
const formattedHours = hours < 10 ? '0' + hours : hours;
|
||||
const formattedMinutes = minutes < 10 ? '0' + minutes : minutes;
|
||||
|
||||
return `${formattedHours}:${formattedMinutes}`;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue