balsimpson
10/8/2017 - 3:23 PM

setAlarm

set alarm with local time for fb messenger - node-red

var makeMsg = context.global.makeMsg;
var fbId = msg.payload.originalRequest.data.sender.id;

var alarmTime = msg.payload.result.parameters.time;
var _alarmTime = alarmTime;

if (alarmTime === '') {
    alarmTime = new Date();
    alarmTime = alarmTime.toString();
    alarmTime = alarmTime.substr(16,5);
} else {
    alarmTime = alarmTime.substr(0,5);
}
 
var date = new Date();
var _date = date;
	date = date.toString();

var currentTime = date.substr(16,5);

var diffH = Math.abs(parseInt(alarmTime.substr(0,2)) - parseInt(currentTime.substr(0,2)));
var diffM = Math.abs(parseInt(alarmTime.substr(3,2)) - parseInt(currentTime.substr(3,2)));

var totalDiff = ((diffH * 60 + diffM) * 60) * 1000;

var time = _date.getTime();
	time = time + totalDiff + 3000;
	
var offset = (1000 * 60 * 60 * 5) + (1000 * 60 * 30);
    time = time - offset;
	time = new Date(time);

var bAlarms = [];
    bAlarms.push(time);
msg.dates = bAlarms;

sendMsg();

function sendMsg() {
    var text = '';
     
        if (_alarmTime === '') {
            text = 'calling you right now!'; 
        } else {
            text = 'call scheduled at ' + _alarmTime.substr(0,5);
        }
     
    msg.payload = makeMsg.textMsg(fbId, text);
    node.send(msg);
}