Fix warning

master
Marco H 2022-05-26 20:07:15 +02:00
parent 55a346272a
commit 02fc7af750
1 changed files with 23 additions and 20 deletions

View File

@ -32,33 +32,38 @@
let history3 = storage.readJSON(LOG_FILE, true) || []; // history of recent 3 hours let history3 = storage.readJSON(LOG_FILE, true) || []; // history of recent 3 hours
function showAlarm(body, title, key) { function showAlarm(body, key) {
if (body == undefined) return; if (body == undefined) return;
E.showPrompt(body, { E.showPrompt(body, {
title: title || "Pressure", title: "Pressure alarm",
buttons: { "Ok": 1, "Dismiss": 2, "Pause": 3 } buttons: { "Ok": 1, "Dismiss": 2, "Pause": 3 }
}).then(function (v) { }).then(function (v) {
const tsNow = Math.round(Date.now() / 1000); // seconds const tsNow = Math.round(Date.now() / 1000); // seconds
if (v == 1) {
saveSetting(key, tsNow);
}
if (v == 2) { if (v == 2) {
saveSetting(key, tsNow + 60 * settings('dismissDelayMin')); saveSetting(key, tsNow + 60 * setting('dismissDelayMin'));
} }
if (v == 3) { if (v == 3) {
saveSetting(key, tsNow + 60 * settings('pauseDelayMin')); saveSetting(key, tsNow + 60 * setting('pauseDelayMin'));
} }
load();
}); });
if (setting("buzz") && if (setting("buzz") &&
!(storage.readJSON('setting.json', 1) || {}).quiet) { !(storage.readJSON('setting.json', 1) || {}).quiet) {
Bangle.buzz(); Bangle.buzz();
} }
setTimeout(load, 20000);
} }
function doWeNeedToWarn(key) { function doWeNeedToWarn(key) {
const tsNow = Math.round(Date.now() / 1000); // seconds const tsNow = Math.round(Date.now() / 1000); // seconds
return setting(key) == 0 || setting(key) < tsNow; return setting(key) == 0 || setting(key) < tsNow;
} }
@ -88,8 +93,7 @@
// Is below the alarm threshold? // Is below the alarm threshold?
if (pressure <= setting("min")) { if (pressure <= setting("min")) {
if (!doWeNeedToWarn("lastLowWarningTs")) { if (!doWeNeedToWarn("lastLowWarningTs")) {
showAlarm("Pressure low: " + Math.round(pressure) + " hPa"); showAlarm("Pressure low: " + Math.round(pressure) + " hPa", "lastLowWarningTs");
saveSetting("lastLowWarningTs", ts);
alreadyWarned = true; alreadyWarned = true;
} }
} else { } else {
@ -102,9 +106,8 @@
if (setting("highalarm")) { if (setting("highalarm")) {
// Is above the alarm threshold? // Is above the alarm threshold?
if (pressure >= setting("max")) { if (pressure >= setting("max")) {
if (!doWeNeedToWarn("lastHighWarningTs")) { if (doWeNeedToWarn("lastHighWarningTs")) {
showAlarm("Pressure high: " + Math.round(pressure) + " hPa"); showAlarm("Pressure high: " + Math.round(pressure) + " hPa", "lastHighWarningTs");
saveSetting("lastHighWarningTs", ts);
alreadyWarned = true; alreadyWarned = true;
} }
} else { } else {
@ -132,10 +135,9 @@
// drop alarm // drop alarm
if (drop3halarm > 0 && oldestPressure > pressure) { if (drop3halarm > 0 && oldestPressure > pressure) {
if (Math.abs(diff) > drop3halarm) { if (Math.abs(diff) > drop3halarm) {
if (!doWeNeedToWarn("lastDropWarningTs")) { if (doWeNeedToWarn("lastDropWarningTs")) {
showAlarm((Math.round(Math.abs(diff) * 10) / 10) + " hPa/3h from " + showAlarm((Math.round(Math.abs(diff) * 10) / 10) + " hPa/3h from " +
Math.round(oldestPressure) + " to " + Math.round(pressure) + " hPa", "Pressure drop"); Math.round(oldestPressure) + " to " + Math.round(pressure) + " hPa", "Pressure drop", "lastDropWarningTs");
saveSetting("lastDropWarningTs", ts);
} }
} else { } else {
saveSetting("lastDropWarningTs", 0); saveSetting("lastDropWarningTs", 0);
@ -147,10 +149,9 @@
// raise alarm // raise alarm
if (raise3halarm > 0 && oldestPressure < pressure) { if (raise3halarm > 0 && oldestPressure < pressure) {
if (Math.abs(diff) > raise3halarm) { if (Math.abs(diff) > raise3halarm) {
if (!doWeNeedToWarn("lastRaiseWarningTs")) { if (doWeNeedToWarn("lastRaiseWarningTs")) {
showAlarm((Math.round(Math.abs(diff) * 10) / 10) + " hPa/3h from " + showAlarm((Math.round(Math.abs(diff) * 10) / 10) + " hPa/3h from " +
Math.round(oldestPressure) + " to " + Math.round(pressure) + " hPa", "Pressure raise"); Math.round(oldestPressure) + " to " + Math.round(pressure) + " hPa", "Pressure raise", "lastRaiseWarningTs");
saveSetting("lastRaiseWarningTs", ts);
} }
} else { } else {
saveSetting("lastRaiseWarningTs", 0); saveSetting("lastRaiseWarningTs", 0);
@ -186,7 +187,7 @@
/* /*
turn on barometer power turn on barometer power
take `numberOfMeasurements` measurements take `numberOfMeasurements` measurements with a delay of 1000ms each
sort the results sort the results
take the middle one (median) take the middle one (median)
turn off barometer power turn off barometer power
@ -196,10 +197,12 @@
setTimeout(function() { setTimeout(function() {
currentPressures = []; currentPressures = [];
const numberOfMeasurements = 5; const numberOfMeasurements = 7;
for (let i = 0; i < numberOfMeasurements; i++) { for (let i = 0; i < numberOfMeasurements; i++) {
Bangle.getPressure().then(baroHandler); setTimeout(function() {
Bangle.getPressure().then(baroHandler);
}, i * 1000);
} }
setTimeout(function() { setTimeout(function() {
@ -210,7 +213,7 @@
// take median value // take median value
medianPressure = currentPressures[Math.round(numberOfMeasurements / 2) + 1]; medianPressure = currentPressures[Math.round(numberOfMeasurements / 2) + 1];
checkForAlarms(medianPressure); checkForAlarms(medianPressure);
}, 1000); }, numberOfMeasurements * 1000 + 500);
}, 500); }, 500);
} }