added scheduling

This commit is contained in:
Senad Uka
2016-02-28 10:05:14 +01:00
parent 26bf8e5fd2
commit 33a5eee425
14 changed files with 350 additions and 118 deletions

View File

@@ -47,7 +47,7 @@ function closeOutValve(controller_id) {
var state = controller_state(controller_id);
var jobName = "Close out valve " + state.controller_id + " after draining";
console.log("Closing valve ", controller_id, jobName);
console.log("Closing valve ", controller_id, jobName);
SyncedCron.remove(jobName);
setOutValveTo(controller_id, 'closing');
console.log("Finished clearing cron ", controller_id);
@@ -58,8 +58,39 @@ function clearLog() {
SensorData.remove({});
}
function saveControllerConfig(controller_id, time, days) {
var state = controller_state(controller_id);
ControllerState.update(state._id, {
'$set': {
'config.automaticTimeOfDay': time,
'config.automaticDaysOfWeek': days
}
});
var jobName = "automatic_" + controller_id;
var times = time.split(":");
var hours = parseInt(times[0]);
var minutes = parseInt(times[1]);
SyncedCron.remove(jobName);
SyncedCron.add({
name: jobName,
schedule: function(parser) {
var period = parser.recur();
for (var i = 0; i < days.length; i++) {
period = period.and().on(parseInt(days[i])).dayOfWeek().on(hours).hour().on(minutes).minute();
}
return period;
},
job: function() {
openOutValve(controller_id);
}
});
}
Meteor.methods({
openOutValve: openOutValve,
closeOutValve: closeOutValve,
clearLog: clearLog
clearLog: clearLog,
saveControllerConfig: saveControllerConfig
});