Use notify module to show notification
parent
40db573458
commit
273c1b8928
|
|
@ -5,10 +5,10 @@
|
||||||
"version": "0.01",
|
"version": "0.01",
|
||||||
"description": "A widget that can alarm on when the pressure reaches defined thresholds.",
|
"description": "A widget that can alarm on when the pressure reaches defined thresholds.",
|
||||||
"icon": "widget.png",
|
"icon": "widget.png",
|
||||||
"screenshots": [{"url":"screenshot.png"}],
|
|
||||||
"type": "widget",
|
"type": "widget",
|
||||||
"tags": "tool,barometer",
|
"tags": "tool,barometer",
|
||||||
"supports": ["BANGLEJS2"],
|
"supports": ["BANGLEJS2"],
|
||||||
|
"dependencies": {"notify":"type"},
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"widbaroalarm.wid.js","url":"widget.js"},
|
{"name":"widbaroalarm.wid.js","url":"widget.js"},
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 KiB |
|
|
@ -18,65 +18,14 @@
|
||||||
|
|
||||||
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(text, value, value2, icon) {
|
function showAlarm(body, title) {
|
||||||
if (text == undefined || value == undefined) return;
|
if (body == undefined) return;
|
||||||
const Layout = require("Layout");
|
|
||||||
layout = new Layout({
|
|
||||||
type: "v",
|
|
||||||
c: [{
|
|
||||||
type: "h",
|
|
||||||
c: [{
|
|
||||||
type: "img",
|
|
||||||
pad: 0,
|
|
||||||
src: function() {
|
|
||||||
return icon || require("heatshrink").decompress(atob("jEY4cA///gH4/++mkK30kiWC4H8x3BGDmSGgYDCgmSoEAg3bsAIDpAIFkmSpMAm3btgIFDQwIGNQpTYkAIJwAHEgMoCA0JgMEyBnBCAW3KoQQDhu3oAIH5JnDBAW24IIBEYm2EYwACBCIACA"));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "txt",
|
|
||||||
id: "title",
|
|
||||||
font: "6x8:2",
|
|
||||||
label: "Alarm",
|
|
||||||
pad: 2
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "txt",
|
|
||||||
id: "text",
|
|
||||||
font: "6x8:2",
|
|
||||||
label: text,
|
|
||||||
pad: 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "txt",
|
|
||||||
id: "value",
|
|
||||||
font: "6x8:2",
|
|
||||||
label: value,
|
|
||||||
halign: 0,
|
|
||||||
pad: 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "txt",
|
|
||||||
id: "value2",
|
|
||||||
font: "6x8:1",
|
|
||||||
label: value2 || "",
|
|
||||||
halign: 0,
|
|
||||||
pad: 3
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}, {
|
|
||||||
btns: [{
|
|
||||||
label: "OK",
|
|
||||||
cb: function() {
|
|
||||||
load(); // close
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
lazy: false
|
|
||||||
});
|
|
||||||
|
|
||||||
g.clear();
|
require("notify").show({
|
||||||
layout.render();
|
title: title || "Pressure",
|
||||||
|
body: body,
|
||||||
|
icon: require("heatshrink").decompress(atob("jEY4cA///gH4/++mkK30kiWC4H8x3BGDmSGgYDCgmSoEAg3bsAIDpAIFkmSpMAm3btgIFDQwIGNQpTYkAIJwAHEgMoCA0JgMEyBnBCAW3KoQQDhu3oAIH5JnDBAW24IIBEYm2EYwACBCIACA"))
|
||||||
|
});
|
||||||
|
|
||||||
if (setting("buzz") &&
|
if (setting("buzz") &&
|
||||||
!(storage.readJSON('setting.json', 1) || {}).quiet) {
|
!(storage.readJSON('setting.json', 1) || {}).quiet) {
|
||||||
|
|
@ -121,11 +70,11 @@
|
||||||
avrPressure = (history3[history3.length - 1]["p"] + history3[history3.length - 2]["p"] + history3[history3.length - 3]["p"]) / 3;
|
avrPressure = (history3[history3.length - 1]["p"] + history3[history3.length - 2]["p"] + history3[history3.length - 3]["p"]) / 3;
|
||||||
|
|
||||||
if (setting("lowalarm") && avrPressure <= setting("min")) {
|
if (setting("lowalarm") && avrPressure <= setting("min")) {
|
||||||
showAlarm("Pressure low", Math.round(avrPressure) + " hPa");
|
showAlarm("Pressure low: " + Math.round(avrPressure) + " hPa");
|
||||||
alreadyWarned = true;
|
alreadyWarned = true;
|
||||||
}
|
}
|
||||||
if (setting("highalarm") && avrPressure >= setting("max")) {
|
if (setting("highalarm") && avrPressure >= setting("max")) {
|
||||||
showAlarm("Pressure high", Math.round(avrPressure) + " hPa");
|
showAlarm("Pressure high: " + Math.round(avrPressure) + " hPa");
|
||||||
alreadyWarned = true;
|
alreadyWarned = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -143,8 +92,9 @@
|
||||||
if (oldestAvgPressure != undefined && oldestAvgPressure > 0) {
|
if (oldestAvgPressure != undefined && oldestAvgPressure > 0) {
|
||||||
const diff = oldestAvgPressure - avrPressure;
|
const diff = oldestAvgPressure - avrPressure;
|
||||||
if (Math.abs(diff) > threeHourChange) {
|
if (Math.abs(diff) > threeHourChange) {
|
||||||
showAlarm("Pressure " + (diff > 0 ? "drop" : "raise"), (Math.round(Math.abs(diff) * 10) / 10) + " hPa/3h",
|
showAlarm((Math.round(Math.abs(diff) * 10) / 10) + " hPa/3h from " +
|
||||||
Math.round(oldestAvgPressure) + " hPa -> " + Math.round(avrPressure) + " hPa");
|
Math.round(oldestAvgPressure) + " to " + Math.round(avrPressure) + " hPa",
|
||||||
|
"Pressure " + (diff > 0 ? "drop" : "raise"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -188,7 +138,7 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Let's delay check a bit
|
// Let's delay the first check a bit
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
check();
|
check();
|
||||||
if (interval > 0) {
|
if (interval > 0) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue