Safeties, Startup, Shutdown
This commit is contained in:
parent
096d1739ac
commit
3e0a78b905
@ -20,8 +20,8 @@
|
|||||||
"intervals": {
|
"intervals": {
|
||||||
"augerOn": 500,
|
"augerOn": 500,
|
||||||
"augerOff": 1500,
|
"augerOff": 1500,
|
||||||
"pause": 10000,
|
"pause": 3000,
|
||||||
"igniterStart": 10000,
|
"igniterStart": 30000,
|
||||||
"blowerStop": 10000
|
"blowerStop": 30000
|
||||||
}
|
}
|
||||||
}
|
}
|
13
functions.js
13
functions.js
@ -224,6 +224,7 @@ const functions = {
|
|||||||
// If the auger is enabled, disable it
|
// If the auger is enabled, disable it
|
||||||
if (config.status.auger == 1) {
|
if (config.status.auger == 1) {
|
||||||
config.status.auger = 0;
|
config.status.auger = 0;
|
||||||
|
if (config.debugMode) console.log(`[${(Date.now() - config.timestamps.procStart)/1000}] I: Auger disabled.`);
|
||||||
}
|
}
|
||||||
// If the igniter is on, shut it off.
|
// If the igniter is on, shut it off.
|
||||||
if (config.status.igniter == 1) {
|
if (config.status.igniter == 1) {
|
||||||
@ -235,20 +236,17 @@ const functions = {
|
|||||||
if (config.status.blower == 1) {
|
if (config.status.blower == 1) {
|
||||||
// Set the timestamp to turn the blower off at
|
// Set the timestamp to turn the blower off at
|
||||||
config.timestamps.blowerOff = Date.now() + config.intervals.blowerStop;
|
config.timestamps.blowerOff = Date.now() + config.intervals.blowerStop;
|
||||||
functions.power.blower.off(gpio).then(res => {
|
|
||||||
if (config.debugMode) console.log(`[${(Date.now() - config.timestamps.procStart)/1000}] I: ${res}`);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return "Shutdown has been initiated.";
|
return "Shutdown has been initiated.";
|
||||||
} else {
|
} else {
|
||||||
// blower.canShutdown() returns true only if the blower shutdown has
|
// blower.blocksShutdown() returns false only if the blower shutdown has
|
||||||
// been initiated AND the specified cooldown time has passed
|
// been initiated AND the specified cooldown time has passed
|
||||||
if(functions.blower.blocksShutdown()) {
|
if(!(functions.blower.blocksShutdown())) {
|
||||||
if (config.debugMode) console.log(`[${(Date.now() - config.timestamps.procStart)/1000}] I: Blower can be turned off.`);
|
if (config.debugMode) console.log(`[${(Date.now() - config.timestamps.procStart)/1000}] I: Blower can be turned off.`);
|
||||||
fn.power.blower.off(gpio).then(res => {
|
functions.power.blower.off(gpio).then(res => {
|
||||||
// Since the blower shutting off is the last step in the shutdown, we can quit.
|
// Since the blower shutting off is the last step in the shutdown, we can quit.
|
||||||
// TODO eventually we don't want to ever quit the program, so it can be restarted remotely
|
// TODO eventually we don't want to ever quit the program, so it can be restarted remotely
|
||||||
fn.commands.quit();
|
functions.commands.quit();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
return "A shutdown has already been initiated and the blower is preventing shutdown.";
|
return "A shutdown has already been initiated and the blower is preventing shutdown.";
|
||||||
@ -379,6 +377,7 @@ const functions = {
|
|||||||
off(gpio) {
|
off(gpio) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
config.timestamps.igniterOff = Date.now();
|
config.timestamps.igniterOff = Date.now();
|
||||||
|
config.status.igniterFinished = true;
|
||||||
if (process.env.ONPI == 'true') {
|
if (process.env.ONPI == 'true') {
|
||||||
gpio.write(igniterPin, false, (err) => {
|
gpio.write(igniterPin, false, (err) => {
|
||||||
if (err) reject(err);
|
if (err) reject(err);
|
||||||
|
22
main.js
22
main.js
@ -70,7 +70,8 @@ async function main(fn, gpio) {
|
|||||||
break;
|
break;
|
||||||
case "quit":
|
case "quit":
|
||||||
// Quit the script
|
// Quit the script
|
||||||
fn.commands.shutdown(gpio);
|
console.log(fn.commands.shutdown(gpio));
|
||||||
|
statusCheck(fn, gpio);
|
||||||
break;
|
break;
|
||||||
case "ignite":
|
case "ignite":
|
||||||
// Start the ignite sequence
|
// Start the ignite sequence
|
||||||
@ -121,9 +122,16 @@ async function main(fn, gpio) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function statusCheck(fn, gpio) {
|
function statusCheck(fn, gpio) {
|
||||||
fn.tests.igniter(gpio).then((res) => {
|
if (config.status.shutdown == 1) {
|
||||||
if (config.debugMode) console.log(`[${(Date.now() - config.timestamps.procStart)/1000}] I: ${res}`);
|
console.log(fn.commands.shutdown(gpio) || 'Shutting down...');
|
||||||
});
|
main(fn, gpio);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (config.status.igniter == 1) {
|
||||||
|
fn.tests.igniter(gpio).then((res) => {
|
||||||
|
if (config.debugMode) console.log(`[${(Date.now() - config.timestamps.procStart)/1000}] I: ${res}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Check the vacuum switch, if the test returns true, the vacuum is sensed
|
// Check the vacuum switch, if the test returns true, the vacuum is sensed
|
||||||
// if it returns false, we will initiate a shutdown
|
// if it returns false, we will initiate a shutdown
|
||||||
@ -131,14 +139,16 @@ function statusCheck(fn, gpio) {
|
|||||||
fn.tests.vacuum(gpio).then(vacStatus => {
|
fn.tests.vacuum(gpio).then(vacStatus => {
|
||||||
if (!vacStatus) {
|
if (!vacStatus) {
|
||||||
console.error('No vacuum detected, beginning shutdown procedure.');
|
console.error('No vacuum detected, beginning shutdown procedure.');
|
||||||
fn.commands.shutdown(gpio);
|
console.log(fn.commands.shutdown(gpio));
|
||||||
|
main(fn, gpio);
|
||||||
} else {
|
} else {
|
||||||
// Check the Proof of Fire Switch
|
// Check the Proof of Fire Switch
|
||||||
fn.tests.pof(gpio).then(pofStatus => {
|
fn.tests.pof(gpio).then(pofStatus => {
|
||||||
// If the igniter has finished running and no proof of fire is seen, shutdown the stove
|
// If the igniter has finished running and no proof of fire is seen, shutdown the stove
|
||||||
if (config.status.igniterFinished && (!pofStatus)) {
|
if (config.status.igniterFinished && (!pofStatus)) {
|
||||||
console.error('No Proof of Fire after the igniter shut off, beginning shutdown procedure.');
|
console.error('No Proof of Fire after the igniter shut off, beginning shutdown procedure.');
|
||||||
fn.commands.shutdown(gpio);
|
console.log(fn.commands.shutdown(gpio));
|
||||||
|
main(fn, gpio);
|
||||||
} else {
|
} else {
|
||||||
if (config.debugMode) console.log(`[${(Date.now() - config.timestamps.procStart)/1000}] I: Vacuum and Proof of Fire OK.`);
|
if (config.debugMode) console.log(`[${(Date.now() - config.timestamps.procStart)/1000}] I: Vacuum and Proof of Fire OK.`);
|
||||||
main(fn, gpio);
|
main(fn, gpio);
|
||||||
|
Loading…
Reference in New Issue
Block a user