2024-03-13 21:29:28 +00:00
|
|
|
// first ensure that the sleeplog trigger object is available (sleeplog is enabled)
|
|
|
|
if (typeof (global.sleeplog || {}).trigger === "object") {
|
|
|
|
// then add your parameters with the function to call as object into the trigger object
|
|
|
|
|
2024-03-16 09:17:11 +00:00
|
|
|
sleeplog.trigger["quietMode"] = {
|
2024-03-13 21:29:28 +00:00
|
|
|
onChange: true, // false as default, if true call fn only on a status change
|
|
|
|
from: 0, // 0 as default, in ms, first time fn will be called
|
2024-03-16 09:17:11 +00:00
|
|
|
// to: 24*60*60*1000, // 24h as default, in ms, last time fn will be called
|
|
|
|
to: 0,
|
2024-03-13 21:29:28 +00:00
|
|
|
// reference time to from & to is rounded to full minutes
|
2024-03-16 09:17:11 +00:00
|
|
|
fn: function (data, thisTriggerEntry) {
|
2024-03-16 11:28:43 +00:00
|
|
|
let aSettings = require('Storage').readJSON('quietSwitch.json', 1) || {};
|
2024-03-13 21:29:28 +00:00
|
|
|
const DEFAULTS = {
|
2024-03-16 09:17:11 +00:00
|
|
|
'quietWhenSleep': false,
|
|
|
|
'quietMode': 1
|
2024-03-13 21:29:28 +00:00
|
|
|
};
|
|
|
|
Object.keys(DEFAULTS).forEach(k => {
|
2024-03-16 09:17:11 +00:00
|
|
|
if (aSettings[k] === undefined) aSettings[k] = DEFAULTS[k];
|
2024-03-13 21:29:28 +00:00
|
|
|
});
|
|
|
|
|
2024-03-16 09:17:11 +00:00
|
|
|
if (aSettings && aSettings['quietWhenSleep']) {
|
|
|
|
console.log("the sleep status is: " + data.status);
|
2024-03-16 11:28:43 +00:00
|
|
|
let quietMode = aSettings['quietMode'];
|
2024-03-13 21:29:28 +00:00
|
|
|
delete aSettings;
|
2024-03-16 09:17:11 +00:00
|
|
|
if ((data.status === 3 || data.status === 4)
|
|
|
|
&& (data.prevStatus !== 3 && data.prevStatus !== 4)) {
|
2024-03-16 12:33:10 +00:00
|
|
|
let bSettings = require("Storage").readJSON('setting.json', true) || {};
|
2024-03-16 11:28:43 +00:00
|
|
|
let current = 0 | bSettings.quiet;
|
2024-03-13 21:29:28 +00:00
|
|
|
console.log("quiet mode is:" + current);
|
2024-03-16 09:17:11 +00:00
|
|
|
if (current !== quietMode) {
|
2024-03-13 21:29:28 +00:00
|
|
|
console.log("fallen asleep");
|
2024-03-16 09:17:11 +00:00
|
|
|
bSettings.quiet = quietMode;
|
2024-03-13 21:29:28 +00:00
|
|
|
require("Storage").writeJSON("setting.json", bSettings);
|
2024-03-16 09:17:11 +00:00
|
|
|
}
|
|
|
|
delete bSettings;
|
2024-03-13 21:29:28 +00:00
|
|
|
}
|
2024-03-16 09:17:11 +00:00
|
|
|
if ((data.status === 2 || data.status === 1)
|
|
|
|
&& (data.prevStatus !== 2 && data.prevStatus !== 1)) {
|
2024-03-16 11:28:43 +00:00
|
|
|
let bSettings = require("Storage").readJSON('setting.json', true) || {};
|
2024-03-16 12:33:10 +00:00
|
|
|
let current = 0 | bSettings.quiet;
|
2024-03-13 21:29:28 +00:00
|
|
|
console.log("quiet mode is:" + current);
|
2024-03-16 09:17:11 +00:00
|
|
|
if (current !== 0) {
|
2024-03-13 21:29:28 +00:00
|
|
|
console.log("woken up");
|
|
|
|
bSettings.quiet = 0;
|
|
|
|
require("Storage").writeJSON("setting.json", bSettings);
|
|
|
|
}
|
2024-03-16 09:17:11 +00:00
|
|
|
delete bSettings;
|
2024-03-13 21:29:28 +00:00
|
|
|
}
|
|
|
|
}
|
2024-03-16 09:17:11 +00:00
|
|
|
}
|
2024-03-13 21:29:28 +00:00
|
|
|
};
|
|
|
|
}
|