From 3feaf83dadc6c63f62ffb26b3fbf9885b969f494 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 11 Jul 2025 19:56:43 -0400 Subject: [PATCH 01/68] Create widget.js --- apps/widsmartbatt/widget.js | 110 ++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 apps/widsmartbatt/widget.js diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js new file mode 100644 index 000000000..b8323f24b --- /dev/null +++ b/apps/widsmartbatt/widget.js @@ -0,0 +1,110 @@ +//Learns by averaging power usage every time it is updated + + +(function(){ + + + const storage = require("Storage"); + const filename = "widsmartbatt.json"; + let runningAvg; + var newJson=false; + + //check if json file exists; + + function CalcHoursRemaining (batt, usage) { + + var hrsLeft = 175000 * batt / (100 * usage); + return hrsLeft; + + }; + + function addValue(val) { + let summary = storage.readJSON(filename, 1) || { total: 0, count: 0 }; + summary.total += val; + summary.count++; + storage.writeJSON(filename, summary); // SAVED! + + let avg = summary.total / summary.count; + runningAvg=avg; + } + + + const intervalLow = 60000; // update time when not charging + const intervalHigh = 2000; // update time when charging + var showPercent=false; + const width=40; + const height=24; + let COLORS = { + 'bg': g.theme.bg, + 'fg': g.theme.fg, + 'charging': "#08f", + 'high': g.theme.dark ? "#fff" : "#000", + 'low': "#f00", + }; + + const levelColor = (l) => { + if (Bangle.isCharging()) return COLORS.charging; + if (l >= 30) return COLORS.high; + return COLORS.low; + }; + + function draw() { + var _a = require("power_usage").get(), usage = _a.usage, batt = _a.batt; + var s = 29; + var x = this.x, y = this.y; + var txt; + + //Add this to total and get the average + addValue(usage) + + if(showPercent){ + txt=batt; + }else{ + var hrsLeft=CalcHoursRemaining(batt,runningAvg); + var days = hrsLeft / 24; + txt = days >= 1 ? "".concat(Math.round(Math.min(days, 99)), "d") : "".concat(Math.round(hrsLeft), "h"); + } + + + let xl = x+4+batt*(s-12)/100; + + g.setColor(COLORS.bg); + g.fillRect(x+2,y+5,x+s-6,y+18); + + g.setColor(levelColor(batt)); + g.fillRect(x+1,y+3,x+s-5,y+4); + g.fillRect(x+1,y+19,x+s-5,y+20); + g.fillRect(x,y+4,x+1,y+19); + g.fillRect(x+s-5,y+4,x+s-4,y+19); + g.fillRect(x+s-3,y+8,x+s-2,y+16); // tip of the battery + g.fillRect(x+4,y+15,xl,y+16); // charging bar + + g.setColor(COLORS.fg); + g.setFontAlign(0,0); + g.setFont('6x8'); + g.drawString(txt, x + 14, y + 10); + + if (Bangle.isCharging()) changeInterval(id, intervalHigh); + else changeInterval(id, intervalLow); + } + + + Bangle.on('charging',function(charging) { draw(); }); + var id = setInterval(()=>WIDGETS["widsmartbatt"].draw(), intervalLow); + Bangle.on("touch", function (_btn, xy) { + if (WIDGETS["back"] || !xy) + return; + var oversize = 5; + + var w = WIDGETS["widsmartbatt"]; + var x = xy.x, y = xy.y; + if (w.x - oversize <= x && x < w.x + width + oversize + && w.y - oversize <= y && y < w.y + height + oversize) { + E.stopEventPropagation && E.stopEventPropagation(); + showPercent = true; + setTimeout(function () { return (showPercent = false, w.draw(w)); }, 3000); + w.draw(w); + } + }); + WIDGETS["widsmartbatt"]={area:"tr",width:30,draw:draw}; +})(); From 4f9aa34b60ba40857d252beee9024b9e2bd5cb10 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 11 Jul 2025 22:19:45 -0400 Subject: [PATCH 02/68] Create README.md --- apps/widsmartbatt/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 apps/widsmartbatt/README.md diff --git a/apps/widsmartbatt/README.md b/apps/widsmartbatt/README.md new file mode 100644 index 000000000..0a29819af --- /dev/null +++ b/apps/widsmartbatt/README.md @@ -0,0 +1,12 @@ +# Smart Battery Widget +Shows battery in terms of days (21 days, 12 hours), and learns from your daily usage to give better estimations. +This app was modified from `wid_a_battery_widget`, by @alainsaas + +When you install the app for the first time, or clear the data, the forecast will fluctate, and will not be reliable for a while. As it learns from your usage, it will keep learning, and provide better predictions. +The app learns by averaging all the power draw whenever it needs to draw, and saves it to a json, averaging it with many others, providing an accurate prediction. The app gives the best forecast when you use the watch relatively similar per day. + +Tap on the widget to show the battery percentage. It will go back to the days left after 3 seconds. +## Settings +* Clear Data - Clears the learned data. Useful when you change something fundamental that affects battery usage. (eg. New clock, turn on GPS daily, LCD backlight setting changes.) +## Creator +RKBoss6 From 2da0831c48be7f3830fbd17105033aba3d009ae1 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 11 Jul 2025 22:22:44 -0400 Subject: [PATCH 03/68] Create metadata.json --- apps/widsmartbatt/metadata.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 apps/widsmartbatt/metadata.json diff --git a/apps/widsmartbatt/metadata.json b/apps/widsmartbatt/metadata.json new file mode 100644 index 000000000..17b53d4a2 --- /dev/null +++ b/apps/widsmartbatt/metadata.json @@ -0,0 +1,17 @@ +{ + "id": "widsmartbatt", + "name": "Smart Battery Widget", + "shortName":"Smart Batt", + "icon": "icon.png", + "version":"0.01", + "type": "widget", + "supports": ["BANGLEJS", "BANGLEJS2"], + "readme": "README.md", + "description": "Simple and slim battery widget that shows days remaining, and learns from your usage to tailor the days remaining to you.", + "tags": "widget,battery", + "provides_widgets" : ["battery"], + "storage": [ + {"name":"widsmartbatt.js","url":"widget.js"}, + {"name":"widsmartbatt.settings.js","url":"settings.js"} + ] +} From c37dce107196ee25f933f2e6a08e2268edc21991 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 15:59:48 -0400 Subject: [PATCH 04/68] add base module --- apps/smartbatt/module.js | 112 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 apps/smartbatt/module.js diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js new file mode 100644 index 000000000..24b89a67d --- /dev/null +++ b/apps/smartbatt/module.js @@ -0,0 +1,112 @@ +{ + var filename = "smartbattdata.json"; + var interval; + var storage=require("Storage"); + + var logFile = "smartbattlog.json"; + + function logBatterySample(entry) { + let log = storage.readJSON(logFile, 1) || []; + + // Keep it from growing forever (optional: only keep last 100 entries) + if (log.length > 100) log.shift(); + + log.push(entry); + storage.writeJSON(logFile, log); + } + + + + // Record current battery reading into current average + function recordBattery() { + let now = Date.now(); + let data = getData(); + + let batt = E.getBattery(); + let battChange = data.battLastRecorded - batt; + let deltaHours = (now - data.timeLastRecorded) / (1000 * 60 * 60); + let totalHours=data.totalHours; + // Default reason (in case we skip) + let reason = "Recorded"; + + + if (battChange <= 0) { + reason = "Skipped: battery rose or no change"; + data.battLastRecorded = batt; + storage.writeJSON(filename, data); + } else if (deltaHours <= 0 || !isFinite(deltaHours)) { + reason = "Skipped: invalid time delta"; + data.timeLastRecorded = now; + data.battLastRecorded = batt; + storage.writeJSON(filename, data); + } else { + + let currentDrainage = battChange / deltaHours; + // Calculate new average + let alpha = 0.3; // how "fast" to react (0.1 = slow, 0.5 = fast) + + // Weight alpha by how much time the new reading represents + let weight = deltaHours / (deltaHours + 1); + let effectiveAlpha = alpha * weight; + data.avgBattDrainage = (effectiveAlpha * currentDrainage) + (1 - effectiveAlpha) * data.avgBattDrainage; + data.timeLastRecorded = now; + data.totalCycles += 1; + data.totalHours+=deltaHours; + data.battLastRecorded = batt; + storage.writeJSON(filename, data); + + reason = "Drainage recorded: " + currentDrainage.toFixed(3) + "%/hr"; + } + + // Always log the sample + logBatterySample({ + time: now, + battNow: batt, + battLast: data.battLastRecorded, + battChange: battChange, + deltaHours: deltaHours, + avgDrainage: data.avgBattDrainage, + reason: reason + }); + } + + + + getData=function() { + return storage.readJSON(filename, 1) || { + avgBattDrainage: 0, + battLastRecorded: E.getBattery(), + timeLastRecorded: Date.now(), + totalCycles: 0, + totalHours:0 + }; + } + + + + // Estimate hours remaining + estimateBatteryLife=function() { + let data = getData(); + var batt = E.getBattery(); + var hrsLeft = Math.abs(batt / data.avgBattDrainage); + return { + batt: batt, + hrsLeft: hrsLeft, + }; + } + + deleteData= function(){ + storage.erase(filename); + }; + // Expose public API + exports.record = recordBattery; + exports.deleteData = deleteData; + exports.get = estimateBatteryLife; + exports.changeInterval = function(newInterval) { + clearInterval(interval); + interval=setInterval(recordBattery, newInterval); + }; + // Start recording every 5 minutes + interval=setInterval(recordBattery, 600000); + recordBattery(); // Log immediately +} From 0b39121ee1890c7568a78d2be3331fd2c0372057 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:03:51 -0400 Subject: [PATCH 05/68] Create metadata.json --- apps/smartbatt/metadata.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 apps/smartbatt/metadata.json diff --git a/apps/smartbatt/metadata.json b/apps/smartbatt/metadata.json new file mode 100644 index 000000000..bee551796 --- /dev/null +++ b/apps/smartbatt/metadata.json @@ -0,0 +1,16 @@ +{ + "id": "smartbatt", + "name": "Smart Battery Module", + "shortName": "Smart Battery", + "version": "0.01", + "description": "Provides a `smartbatt` module that returns the battery in days, and learns from daily usage over time for accurate predictions.", + "icon": "icon.png", + "type": "module", + "tags": "tool,system", + "supports": ["BANGLEJS","BANGLEJS2"], + "provides_modules" : ["smartbatt"], + "readme": "README.md", + "storage": [ + {"name":"smartbatt","url":"module.js"} + ] +} From 255e34ea66b3d03a284ffa711a373564e142cbf6 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:11:18 -0400 Subject: [PATCH 06/68] Create README.md --- apps/smartbatt/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 apps/smartbatt/README.md diff --git a/apps/smartbatt/README.md b/apps/smartbatt/README.md new file mode 100644 index 000000000..6831cf63f --- /dev/null +++ b/apps/smartbatt/README.md @@ -0,0 +1,13 @@ +# Smart Battery Module +A module for providing a truly accurate battery life in terms of days. The module learns from daily usage and drainage patterns, and extrapolates that. As you use it more, and the battery keeps draining, the predictions should become more accurate. +## Upon Install +Use an app that needs this module, like `Smart Battery Widget`. +When this app is installed, do not rely on it for the first 24-30 hours. +The module might return different data than expected, or a severely low prediction. Give it time. It will learn from drainage rates, which needs the battery to drain. If your watch normally lasts for a long time on one charge, it will take longer for the module to return an accurate reading. +## Settings +### Clear Data - Clears all learned data. +Use this when you switch to a new clock or change the battery drainage in a fundamental way. The app averages drainage over time, and so you might just want to restart the learned data to be more accurate for the new configurations you have implemented. + +If you think something is wrong with the predictions, try clearing the data, and let it rebuild the data again from scratch. +## Creator +RKBoss6 From 0bcde8eb07a9f8f6cb720bca8af840c9d532c077 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:11:29 -0400 Subject: [PATCH 07/68] Add files via upload --- apps/smartbatt/icon.png | Bin 0 -> 412260 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/smartbatt/icon.png diff --git a/apps/smartbatt/icon.png b/apps/smartbatt/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..21e662def70e6fc56e48387a8b96fb80565ab18f GIT binary patch literal 412260 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 z�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

2M+GJU;v~;cD|k-6{0?G!+%LWZS8L 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 z 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 ZNorgsSC|{yUII5iRYfg@N;&i3{|DnP_(A{x literal 0 HcmV?d00001 From ebc31b5e36e2fab030794e66413f1728292593a7 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:14:45 -0400 Subject: [PATCH 08/68] Update module.js --- apps/smartbatt/module.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 24b89a67d..9d0f3b941 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -25,7 +25,6 @@ let batt = E.getBattery(); let battChange = data.battLastRecorded - batt; let deltaHours = (now - data.timeLastRecorded) / (1000 * 60 * 60); - let totalHours=data.totalHours; // Default reason (in case we skip) let reason = "Recorded"; @@ -72,7 +71,7 @@ - getData=function() { + function getData() { return storage.readJSON(filename, 1) || { avgBattDrainage: 0, battLastRecorded: E.getBattery(), @@ -85,7 +84,7 @@ // Estimate hours remaining - estimateBatteryLife=function() { + function estimateBatteryLife() { let data = getData(); var batt = E.getBattery(); var hrsLeft = Math.abs(batt / data.avgBattDrainage); @@ -95,7 +94,7 @@ }; } - deleteData= function(){ + function deleteData(){ storage.erase(filename); }; // Expose public API From d4d4a7eaaa5b220047cb614df4b9dc50fa87e3b1 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:16:32 -0400 Subject: [PATCH 09/68] Update module.js --- apps/smartbatt/module.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 9d0f3b941..8179cb9fd 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -96,7 +96,7 @@ function deleteData(){ storage.erase(filename); - }; + } // Expose public API exports.record = recordBattery; exports.deleteData = deleteData; From 276bf0c7cd697124ad79978ad08e930e31aa3741 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:20:37 -0400 Subject: [PATCH 10/68] add charging checks, made logging optional --- apps/smartbatt/module.js | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 8179cb9fd..afd5dc6bb 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -4,7 +4,7 @@ var storage=require("Storage"); var logFile = "smartbattlog.json"; - + var doLogging=true; function logBatterySample(entry) { let log = storage.readJSON(logFile, 1) || []; @@ -30,8 +30,16 @@ if (battChange <= 0) { - reason = "Skipped: battery rose or no change"; - data.battLastRecorded = batt; + reason = "Skipped: battery fluctuated or no change"; + if(Math.abs(battChange)<5){ + //less than 6% difference, average percents + var newBatt=(batt+data.battLastRecorded)/2; + data.battLastRecorded = newBatt; + }else{ + //probably charged, ignore average + data.battLastRecorded = batt; + } + storage.writeJSON(filename, data); } else if (deltaHours <= 0 || !isFinite(deltaHours)) { reason = "Skipped: invalid time delta"; @@ -56,17 +64,18 @@ reason = "Drainage recorded: " + currentDrainage.toFixed(3) + "%/hr"; } - - // Always log the sample - logBatterySample({ - time: now, - battNow: batt, - battLast: data.battLastRecorded, - battChange: battChange, - deltaHours: deltaHours, - avgDrainage: data.avgBattDrainage, - reason: reason - }); + if(doLogging){ + // Always log the sample + logBatterySample({ + time: now, + battNow: batt, + battLast: data.battLastRecorded, + battChange: battChange, + deltaHours: deltaHours, + avgDrainage: data.avgBattDrainage, + reason: reason + }); + } } @@ -96,7 +105,7 @@ function deleteData(){ storage.erase(filename); - } + }; // Expose public API exports.record = recordBattery; exports.deleteData = deleteData; From b170e9bb33df71e74a0b10f7b8c98b42c7866cc2 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 17:16:20 -0400 Subject: [PATCH 11/68] Fix for extra semicolon syntax error --- apps/smartbatt/module.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index afd5dc6bb..30e84aa49 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -113,7 +113,7 @@ exports.changeInterval = function(newInterval) { clearInterval(interval); interval=setInterval(recordBattery, newInterval); - }; + } // Start recording every 5 minutes interval=setInterval(recordBattery, 600000); recordBattery(); // Log immediately From cb9b22afe47495cc1c90dbd37533b2e837b91c49 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Wed, 23 Jul 2025 17:24:33 -0400 Subject: [PATCH 12/68] Update module.js --- apps/smartbatt/module.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 30e84aa49..970fd6ea8 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -105,7 +105,7 @@ function deleteData(){ storage.erase(filename); - }; + } // Expose public API exports.record = recordBattery; exports.deleteData = deleteData; From 9081a02c04d06ad7e2ccdbde8ea6697632ce89f3 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 13:24:24 -0400 Subject: [PATCH 13/68] Create ChangeLog --- apps/smartbatt/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/smartbatt/ChangeLog diff --git a/apps/smartbatt/ChangeLog b/apps/smartbatt/ChangeLog new file mode 100644 index 000000000..4e1092b44 --- /dev/null +++ b/apps/smartbatt/ChangeLog @@ -0,0 +1 @@ +v0.01: New app! From 746351da9a10b1122ad1a44373137ca649e3731a Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 15:36:48 -0400 Subject: [PATCH 14/68] Create settings.js --- apps/smartbatt/settings.js | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 apps/smartbatt/settings.js diff --git a/apps/smartbatt/settings.js b/apps/smartbatt/settings.js new file mode 100644 index 000000000..353e55ebb --- /dev/null +++ b/apps/smartbatt/settings.js @@ -0,0 +1,42 @@ + +(function(back) { + var FILE = "smartbatt.settings.json"; + // Load settings + var settings = Object.assign({ + //Record Interval stored in ms + doLogging:false + }, require('Storage').readJSON(FILE, true) || {}); + + function writeSettings() { + require('Storage').writeJSON(FILE, settings); + } + + // Show the menu + E.showMenu({ + "" : { "title" : "Smart Day Battery" }, + "< Back" : () => back(), + + 'Clear Data': function () { + E.showPrompt("Are you sure you want to delete all learned data?", {title:"Confirm"}) + .then(function(v) { + if (v) { + require("smartbatt").deleteData(); + E.showMessage("Successfully cleared data!","Cleared"); + } else { + eval(require("Storage").read("smartbatt.settings.js"))(()=>load()); + + } + }); + }, + 'Log Battery': { + value: !!settings.doLogging, // !! converts undefined to false + onchange: v => { + settings.doLogging = v; + writeSettings(); + } + // format: ... may be specified as a function which converts the value to a string + // if the value is a boolean, showMenu() will convert this automatically, which + // keeps settings menus consistent + }, + }); +}) From 27f2156a152d45c391d172eb7d423d5c12b25e70 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 15:38:38 -0400 Subject: [PATCH 15/68] Update metadata.json --- apps/smartbatt/metadata.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/smartbatt/metadata.json b/apps/smartbatt/metadata.json index bee551796..81206d56e 100644 --- a/apps/smartbatt/metadata.json +++ b/apps/smartbatt/metadata.json @@ -11,6 +11,10 @@ "provides_modules" : ["smartbatt"], "readme": "README.md", "storage": [ - {"name":"smartbatt","url":"module.js"} + {"name":"smartbatt","url":"module.js"}, + {"name":"smartbatt.settings.js","url":"settings.js"} + ], + "data": [ + {"name":"smartbatt.settings.json"}, ] } From 49a2780364daa966055fe275a452eb17dcebda5d Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 15:40:25 -0400 Subject: [PATCH 16/68] Update README.md --- apps/smartbatt/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/smartbatt/README.md b/apps/smartbatt/README.md index 6831cf63f..5cc122e20 100644 --- a/apps/smartbatt/README.md +++ b/apps/smartbatt/README.md @@ -1,5 +1,7 @@ # Smart Battery Module A module for providing a truly accurate battery life in terms of days. The module learns from daily usage and drainage patterns, and extrapolates that. As you use it more, and the battery keeps draining, the predictions should become more accurate. + +Because the Bangle.js battery percent fluctuates naturally, it is highly recomended to use the `Power Manager` app and enable monotonic/stable percentage to stabilize the percentage, and reduce fluctuations. This may help provide more accurate readings. ## Upon Install Use an app that needs this module, like `Smart Battery Widget`. When this app is installed, do not rely on it for the first 24-30 hours. From 143a7a40d6b0975d8b1014b16e67df648d829726 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 15:47:36 -0400 Subject: [PATCH 17/68] Update README.md --- apps/smartbatt/README.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/apps/smartbatt/README.md b/apps/smartbatt/README.md index 5cc122e20..d5db790f9 100644 --- a/apps/smartbatt/README.md +++ b/apps/smartbatt/README.md @@ -6,10 +6,27 @@ Because the Bangle.js battery percent fluctuates naturally, it is highly recomen Use an app that needs this module, like `Smart Battery Widget`. When this app is installed, do not rely on it for the first 24-30 hours. The module might return different data than expected, or a severely low prediction. Give it time. It will learn from drainage rates, which needs the battery to drain. If your watch normally lasts for a long time on one charge, it will take longer for the module to return an accurate reading. + +If you think something is wrong with the predictions after 3 days, try clearing the data, and let it rebuild again from scratch. + ## Settings ### Clear Data - Clears all learned data. Use this when you switch to a new clock or change the battery drainage in a fundamental way. The app averages drainage over time, and so you might just want to restart the learned data to be more accurate for the new configurations you have implemented. - -If you think something is wrong with the predictions, try clearing the data, and let it rebuild the data again from scratch. +### Logging - Enables logging for stats that this module uses. +Logs: +* The time in unix seconds that the record event was triggered +* The current battery percentage +* The last saved battery percentage +* The change in hours between the time last recorded and now +* The average or learned drainage for battery per hour +* The status of that record event: + * Recorded + * Skipped due to battery fluctuations or no change + * Invalid time between the two periods (first record) +## Functions +From any app, you can call `require("smartbatt")` and then one of the functions below: +* `require("smartbatt").record()` - Attempts to record the battery and push it to the average. +* `require("smartbatt").get()` - Returns an object that contains the hours left and current battery percentage +* `require("smartbatt").deleteData()` - Deletes all learned data. (Automatically re-learns) ## Creator RKBoss6 From 99f79878c957020907688097b0dcd9314404f022 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 15:51:27 -0400 Subject: [PATCH 18/68] Update metadata.json --- apps/smartbatt/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/metadata.json b/apps/smartbatt/metadata.json index 81206d56e..ed2982e02 100644 --- a/apps/smartbatt/metadata.json +++ b/apps/smartbatt/metadata.json @@ -15,6 +15,6 @@ {"name":"smartbatt.settings.js","url":"settings.js"} ], "data": [ - {"name":"smartbatt.settings.json"}, + {"name":"smartbatt.settings.json"} ] } From faa6257974287a6bbb448526aaf2247d890129b9 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 16:18:42 -0400 Subject: [PATCH 19/68] Update metadata.json --- apps/widsmartbatt/metadata.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/widsmartbatt/metadata.json b/apps/widsmartbatt/metadata.json index 17b53d4a2..a8878bf98 100644 --- a/apps/widsmartbatt/metadata.json +++ b/apps/widsmartbatt/metadata.json @@ -1,17 +1,16 @@ { "id": "widsmartbatt", "name": "Smart Battery Widget", - "shortName":"Smart Batt", + "shortName":"Smart Batt Wid", "icon": "icon.png", "version":"0.01", "type": "widget", "supports": ["BANGLEJS", "BANGLEJS2"], "readme": "README.md", - "description": "Simple and slim battery widget that shows days remaining, and learns from your usage to tailor the days remaining to you.", + "description": "Simple and slim battery widget that shows days remaining, and uses the `smartbatt` module to learm from your usage and provide accurate predictions.", "tags": "widget,battery", "provides_widgets" : ["battery"], "storage": [ - {"name":"widsmartbatt.js","url":"widget.js"}, - {"name":"widsmartbatt.settings.js","url":"settings.js"} + {"name":"widsmartbatt.js","url":"widget.js"} ] } From 725d16044268ecdfe58299f522ad39e76bed5c94 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 16:19:54 -0400 Subject: [PATCH 20/68] Update widget.js --- apps/widsmartbatt/widget.js | 157 ++++++++++++++++-------------------- 1 file changed, 70 insertions(+), 87 deletions(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index b8323f24b..df299f99c 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -1,45 +1,17 @@ -//Learns by averaging power usage every time it is updated - - (function(){ - - - const storage = require("Storage"); - const filename = "widsmartbatt.json"; - let runningAvg; - var newJson=false; - - //check if json file exists; - - function CalcHoursRemaining (batt, usage) { - - var hrsLeft = 175000 * batt / (100 * usage); - return hrsLeft; - - }; - - function addValue(val) { - let summary = storage.readJSON(filename, 1) || { total: 0, count: 0 }; - summary.total += val; - summary.count++; - storage.writeJSON(filename, summary); // SAVED! - let avg = summary.total / summary.count; - runningAvg=avg; - } + const intervalLow = 30000; // update interval when not charging + const intervalHigh = 30000; // faster update when charging + var showPercent = false; + const width = 40; + const height = 24; - - const intervalLow = 60000; // update time when not charging - const intervalHigh = 2000; // update time when charging - var showPercent=false; - const width=40; - const height=24; let COLORS = { - 'bg': g.theme.bg, - 'fg': g.theme.fg, + 'bg': g.theme.bg, + 'fg': g.theme.fg, 'charging': "#08f", - 'high': g.theme.dark ? "#fff" : "#000", - 'low': "#f00", + 'high': g.theme.dark ? "#fff" : "#000", + 'low': "#f00", }; const levelColor = (l) => { @@ -49,62 +21,73 @@ }; function draw() { - var _a = require("power_usage").get(), usage = _a.usage, batt = _a.batt; - var s = 29; - var x = this.x, y = this.y; - var txt; - - //Add this to total and get the average - addValue(usage) - - if(showPercent){ - txt=batt; - }else{ - var hrsLeft=CalcHoursRemaining(batt,runningAvg); - var days = hrsLeft / 24; - txt = days >= 1 ? "".concat(Math.round(Math.min(days, 99)), "d") : "".concat(Math.round(hrsLeft), "h"); - } - + let batt=E.getBattery(); + let data = require("smartbatt").get(); + let hrsLeft=data.hrsLeft; + let days = hrsLeft / 24; - let xl = x+4+batt*(s-12)/100; + let txt = showPercent + ? batt + : (days >= 1 + ? Math.round(Math.min(days, 99)) + "d" + : Math.round(hrsLeft) + "h"); + if(Bangle.isCharging()) txt=E.getBattery(); + let s = 29; + let x = this.x, y = this.y; + let xl = x + 4 + batt * (s - 12) / 100; + + // Drawing code follows... + g.setColor(COLORS.bg); + g.fillRect(x + 2, y + 5, x + s - 6, y + 18); - g.setColor(COLORS.bg); - g.fillRect(x+2,y+5,x+s-6,y+18); + g.setColor(levelColor(batt)); + g.fillRect(x + 1, y + 3, x + s - 5, y + 4); + g.fillRect(x + 1, y + 19, x + s - 5, y + 20); + g.fillRect(x, y + 4, x + 1, y + 19); + g.fillRect(x + s - 5, y + 4, x + s - 4, y + 19); + g.fillRect(x + s - 3, y + 8, x + s - 2, y + 16); + g.fillRect(x + 4, y + 15, xl, y + 16); - g.setColor(levelColor(batt)); - g.fillRect(x+1,y+3,x+s-5,y+4); - g.fillRect(x+1,y+19,x+s-5,y+20); - g.fillRect(x,y+4,x+1,y+19); - g.fillRect(x+s-5,y+4,x+s-4,y+19); - g.fillRect(x+s-3,y+8,x+s-2,y+16); // tip of the battery - g.fillRect(x+4,y+15,xl,y+16); // charging bar + g.setColor(COLORS.fg); + g.setFontAlign(0, 0); + g.setFont('6x8'); + g.drawString(txt, x + 14, y + 10); - g.setColor(COLORS.fg); - g.setFontAlign(0,0); - g.setFont('6x8'); - g.drawString(txt, x + 14, y + 10); - - if (Bangle.isCharging()) changeInterval(id, intervalHigh); - else changeInterval(id, intervalLow); - } + if (Bangle.isCharging()) changeInterval(id, intervalHigh); + else changeInterval(id, intervalLow); +} - Bangle.on('charging',function(charging) { draw(); }); - var id = setInterval(()=>WIDGETS["widsmartbatt"].draw(), intervalLow); + // Touch to temporarily show battery percent Bangle.on("touch", function (_btn, xy) { - if (WIDGETS["back"] || !xy) - return; - var oversize = 5; + if (WIDGETS["back"] || !xy) return; - var w = WIDGETS["widsmartbatt"]; - var x = xy.x, y = xy.y; - if (w.x - oversize <= x && x < w.x + width + oversize - && w.y - oversize <= y && y < w.y + height + oversize) { - E.stopEventPropagation && E.stopEventPropagation(); - showPercent = true; - setTimeout(function () { return (showPercent = false, w.draw(w)); }, 3000); - w.draw(w); - } - }); - WIDGETS["widsmartbatt"]={area:"tr",width:30,draw:draw}; + var oversize = 5; + var w = WIDGETS["widsmartbatt"]; + var x = xy.x, y = xy.y; + + if (w.x - oversize <= x && x < w.x + width + oversize + && w.y - oversize <= y && y < w.y + height + oversize) { + E.stopEventPropagation && E.stopEventPropagation(); + showPercent = true; + setTimeout(() => { + showPercent = false; + w.draw(w); + }, 3000); + w.draw(w); + } + }); + + // Update widget on charging state change + Bangle.on('charging', function () { + WIDGETS["widsmartbatt"].draw(); + }); + + var id = setInterval(() => WIDGETS["widsmartbatt"].draw(), intervalLow); + + WIDGETS["widsmartbatt"] = { + area: "tr", + width: 30, + draw: draw + }; })(); From 7d44e200dd9d103e7af42cbf0bdf122ec35cd00b Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 16:27:27 -0400 Subject: [PATCH 21/68] Add smartbatt module specifications, and links to it --- apps/widsmartbatt/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/widsmartbatt/README.md b/apps/widsmartbatt/README.md index 0a29819af..97463034c 100644 --- a/apps/widsmartbatt/README.md +++ b/apps/widsmartbatt/README.md @@ -1,12 +1,12 @@ # Smart Battery Widget -Shows battery in terms of days (21 days, 12 hours), and learns from your daily usage to give better estimations. +Shows battery in terms of days (21 days, 12 hours), and uses the [`smartbatt`](https://banglejs.com/apps/?id=smartbatt) module to learn from daily battery drainage and provide accurate estimations. This app was modified from `wid_a_battery_widget`, by @alainsaas -When you install the app for the first time, or clear the data, the forecast will fluctate, and will not be reliable for a while. As it learns from your usage, it will keep learning, and provide better predictions. -The app learns by averaging all the power draw whenever it needs to draw, and saves it to a json, averaging it with many others, providing an accurate prediction. The app gives the best forecast when you use the watch relatively similar per day. +When you install this widget for the first time, or clear the data, it will also install the [`smartbatt`](https://banglejs.com/apps/?id=smartbatt) module as a dependency. As it learns your battery usage for the first time the forecast will fluctate, and will not be reliable for a while. As it compunds many drainage values together, it will keep learning, and provide better predictions. +The module learns by averaging all the battery drainage over a period of time, and saves it to a json, averaging it with many others, providing an accurate prediction. The module gives the best forecast when you use the watch relatively similar per day. Tap on the widget to show the battery percentage. It will go back to the days left after 3 seconds. -## Settings -* Clear Data - Clears the learned data. Useful when you change something fundamental that affects battery usage. (eg. New clock, turn on GPS daily, LCD backlight setting changes.) + +When charging, only the percentage is shown. ## Creator RKBoss6 From fbb8500b98f115ecebf673c24c3d7f37cac87071 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 16:28:01 -0400 Subject: [PATCH 22/68] Create ChangeLog --- apps/widsmartbatt/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/widsmartbatt/ChangeLog diff --git a/apps/widsmartbatt/ChangeLog b/apps/widsmartbatt/ChangeLog new file mode 100644 index 000000000..4e1092b44 --- /dev/null +++ b/apps/widsmartbatt/ChangeLog @@ -0,0 +1 @@ +v0.01: New app! From fdab17a6be555453cea458c9bd66f9028808f264 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 21:07:06 -0400 Subject: [PATCH 23/68] Delete log file in delete(), new algorithm for weighted average over time --- apps/smartbatt/module.js | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 970fd6ea8..9cbced6b7 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -1,10 +1,15 @@ { - var filename = "smartbattdata.json"; + var dataFile = "smartbattdata.json"; var interval; var storage=require("Storage"); - + var settings = Object.assign({ + //Record Interval stored in ms + doLogging:false + }, require('Storage').readJSON("smartbatt.settings.json", true) || {}); + var logFile = "smartbattlog.json"; var doLogging=true; + function logBatterySample(entry) { let log = storage.readJSON(logFile, 1) || []; @@ -40,31 +45,27 @@ data.battLastRecorded = batt; } - storage.writeJSON(filename, data); + storage.writeJSON(dataFile, data); } else if (deltaHours <= 0 || !isFinite(deltaHours)) { reason = "Skipped: invalid time delta"; data.timeLastRecorded = now; data.battLastRecorded = batt; - storage.writeJSON(filename, data); + storage.writeJSON(dataFile, data); } else { let currentDrainage = battChange / deltaHours; - // Calculate new average - let alpha = 0.3; // how "fast" to react (0.1 = slow, 0.5 = fast) - // Weight alpha by how much time the new reading represents - let weight = deltaHours / (deltaHours + 1); - let effectiveAlpha = alpha * weight; - data.avgBattDrainage = (effectiveAlpha * currentDrainage) + (1 - effectiveAlpha) * data.avgBattDrainage; + let newAvg = weightedAverage(data.avgBattDrainage, data.totalHours, currentDrainage, deltaHours); + data.avgBattDrainage=newAvg; data.timeLastRecorded = now; data.totalCycles += 1; data.totalHours+=deltaHours; data.battLastRecorded = batt; - storage.writeJSON(filename, data); + storage.writeJSON(dataFile, data); reason = "Drainage recorded: " + currentDrainage.toFixed(3) + "%/hr"; } - if(doLogging){ + if(settings.doLogging){ // Always log the sample logBatterySample({ time: now, @@ -77,11 +78,15 @@ }); } } + + function weightedAverage(oldValue, oldWeight, newValue, newWeight) { + return (oldValue * oldWeight + newValue * newWeight) / (oldWeight + newWeight); + } function getData() { - return storage.readJSON(filename, 1) || { + return storage.readJSON(dataFile, 1) || { avgBattDrainage: 0, battLastRecorded: E.getBattery(), timeLastRecorded: Date.now(), @@ -104,7 +109,8 @@ } function deleteData(){ - storage.erase(filename); + storage.erase(dataFile); + storage.erase(logFile); } // Expose public API exports.record = recordBattery; @@ -113,7 +119,7 @@ exports.changeInterval = function(newInterval) { clearInterval(interval); interval=setInterval(recordBattery, newInterval); - } + }; // Start recording every 5 minutes interval=setInterval(recordBattery, 600000); recordBattery(); // Log immediately From d05c0b1a9d2f4efb506800b17e7ae48af7586c5c Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Thu, 24 Jul 2025 21:11:04 -0400 Subject: [PATCH 24/68] Use log file dynamically as getSettings() --- apps/smartbatt/module.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 9cbced6b7..5ed500f53 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -2,13 +2,16 @@ var dataFile = "smartbattdata.json"; var interval; var storage=require("Storage"); - var settings = Object.assign({ - //Record Interval stored in ms - doLogging:false - }, require('Storage').readJSON("smartbatt.settings.json", true) || {}); + var logFile = "smartbattlog.json"; - var doLogging=true; + + function getSettings(){ + return Object.assign({ + //Record Interval stored in ms + doLogging:false + }, require('Storage').readJSON("smartbatt.settings.json", true) || {}); + } function logBatterySample(entry) { let log = storage.readJSON(logFile, 1) || []; @@ -65,7 +68,7 @@ reason = "Drainage recorded: " + currentDrainage.toFixed(3) + "%/hr"; } - if(settings.doLogging){ + if(getSettings().doLogging){ // Always log the sample logBatterySample({ time: now, @@ -83,7 +86,7 @@ return (oldValue * oldWeight + newValue * newWeight) / (oldWeight + newWeight); } - + function getData() { return storage.readJSON(dataFile, 1) || { From 29be5f50b98e672438894c7c9b91a7bbf6d39e8b Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 19:39:43 -0400 Subject: [PATCH 25/68] add icon --- apps/widsmartbatt/icon.png | Bin 0 -> 24914 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/widsmartbatt/icon.png diff --git a/apps/widsmartbatt/icon.png b/apps/widsmartbatt/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cf7b5ee71ccb5346f38318811338cf1b7421394e GIT binary patch literal 24914 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 Date: Fri, 25 Jul 2025 19:41:09 -0400 Subject: [PATCH 26/68] Update metadata.json --- apps/widsmartbatt/metadata.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/widsmartbatt/metadata.json b/apps/widsmartbatt/metadata.json index a8878bf98..b61d367c6 100644 --- a/apps/widsmartbatt/metadata.json +++ b/apps/widsmartbatt/metadata.json @@ -7,6 +7,7 @@ "type": "widget", "supports": ["BANGLEJS", "BANGLEJS2"], "readme": "README.md", + "dependencies" : { "smartbatt":"module" }, "description": "Simple and slim battery widget that shows days remaining, and uses the `smartbatt` module to learm from your usage and provide accurate predictions.", "tags": "widget,battery", "provides_widgets" : ["battery"], From bddd0f769b55406b101652656d85a57ece62692e Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 19:44:28 -0400 Subject: [PATCH 27/68] Update widget.js --- apps/widsmartbatt/widget.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index df299f99c..f03834af1 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -1,4 +1,4 @@ -(function(){ +((){ const intervalLow = 30000; // update interval when not charging const intervalHigh = 30000; // faster update when charging From c09e29b4787f35f0a139df9fc173644721157f81 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 25 Jul 2025 19:47:17 -0400 Subject: [PATCH 28/68] Define widget first --- apps/widsmartbatt/widget.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index f03834af1..0ba8eda12 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -1,5 +1,9 @@ -((){ - +(function(){ + WIDGETS["widsmartbatt"] = { + area: "tr", + width: 30, + draw: draw + }; const intervalLow = 30000; // update interval when not charging const intervalHigh = 30000; // faster update when charging var showPercent = false; @@ -85,9 +89,5 @@ var id = setInterval(() => WIDGETS["widsmartbatt"].draw(), intervalLow); - WIDGETS["widsmartbatt"] = { - area: "tr", - width: 30, - draw: draw - }; + })(); From 45df9b3cfa4b100786ed0420cd6a19bc649b4421 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 26 Jul 2025 09:55:52 -0400 Subject: [PATCH 29/68] Update widget.js --- apps/widsmartbatt/widget.js | 81 +++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 39 deletions(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index 0ba8eda12..c519cfd7b 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -1,9 +1,5 @@ (function(){ - WIDGETS["widsmartbatt"] = { - area: "tr", - width: 30, - draw: draw - }; + const intervalLow = 30000; // update interval when not charging const intervalHigh = 30000; // faster update when charging var showPercent = false; @@ -25,42 +21,49 @@ }; function draw() { - let batt=E.getBattery(); - let data = require("smartbatt").get(); - let hrsLeft=data.hrsLeft; - let days = hrsLeft / 24; - - let txt = showPercent - ? batt - : (days >= 1 - ? Math.round(Math.min(days, 99)) + "d" - : Math.round(hrsLeft) + "h"); - if(Bangle.isCharging()) txt=E.getBattery(); - let s = 29; - let x = this.x, y = this.y; - let xl = x + 4 + batt * (s - 12) / 100; + let batt=E.getBattery(); + let data = require("smartbatt").get(); + let hrsLeft=data.hrsLeft; + let days = hrsLeft / 24; - // Drawing code follows... - g.setColor(COLORS.bg); - g.fillRect(x + 2, y + 5, x + s - 6, y + 18); - - g.setColor(levelColor(batt)); - g.fillRect(x + 1, y + 3, x + s - 5, y + 4); - g.fillRect(x + 1, y + 19, x + s - 5, y + 20); - g.fillRect(x, y + 4, x + 1, y + 19); - g.fillRect(x + s - 5, y + 4, x + s - 4, y + 19); - g.fillRect(x + s - 3, y + 8, x + s - 2, y + 16); - g.fillRect(x + 4, y + 15, xl, y + 16); - - g.setColor(COLORS.fg); - g.setFontAlign(0, 0); - g.setFont('6x8'); - g.drawString(txt, x + 14, y + 10); - - if (Bangle.isCharging()) changeInterval(id, intervalHigh); - else changeInterval(id, intervalLow); + let txt = showPercent + ? batt + : (days >= 1 + ? Math.round(Math.min(days, 99)) + "d" + : Math.round(hrsLeft) + "h"); + if(Bangle.isCharging()) txt=E.getBattery(); + let s = 29; + let x = this.x, y = this.y; + let xl = x + 4 + batt * (s - 12) / 100; + + // Drawing code follows... + g.setColor(COLORS.bg); + g.fillRect(x + 2, y + 5, x + s - 6, y + 18); + + g.setColor(levelColor(batt)); + g.fillRect(x + 1, y + 3, x + s - 5, y + 4); + g.fillRect(x + 1, y + 19, x + s - 5, y + 20); + g.fillRect(x, y + 4, x + 1, y + 19); + g.fillRect(x + s - 5, y + 4, x + s - 4, y + 19); + g.fillRect(x + s - 3, y + 8, x + s - 2, y + 16); + g.fillRect(x + 4, y + 15, xl, y + 16); + + g.setColor(COLORS.fg); + g.setFontAlign(0, 0); + g.setFont('6x8'); + g.drawString(txt, x + 14, y + 10); + + if (Bangle.isCharging()) changeInterval(id, intervalHigh); + else changeInterval(id, intervalLow); } - + WIDGETS["widsmartbatt"] = { + area: "tr", + width: 30, + draw: function() { + // Call your drawing function + draw(); + } + }; // Touch to temporarily show battery percent Bangle.on("touch", function (_btn, xy) { From c06255dfb3d9ad834377e5e9ff9242c5a6671ed4 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 26 Jul 2025 10:18:19 -0400 Subject: [PATCH 30/68] Update widget.js --- apps/widsmartbatt/widget.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index c519cfd7b..684890f96 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -22,7 +22,11 @@ function draw() { let batt=E.getBattery(); - let data = require("smartbatt").get(); + try { + data = require("smartbatt").get(); + } catch (e) { + data.hrsLeft = 0; + } let hrsLeft=data.hrsLeft; let days = hrsLeft / 24; From 328cc50893dd14eae0f9ade84895d5b344405bd2 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 26 Jul 2025 13:18:59 -0400 Subject: [PATCH 31/68] Fix filename --- apps/widsmartbatt/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widsmartbatt/metadata.json b/apps/widsmartbatt/metadata.json index b61d367c6..108dd8f6d 100644 --- a/apps/widsmartbatt/metadata.json +++ b/apps/widsmartbatt/metadata.json @@ -12,6 +12,6 @@ "tags": "widget,battery", "provides_widgets" : ["battery"], "storage": [ - {"name":"widsmartbatt.js","url":"widget.js"} + {"name":"widsmartbatt.widget.js","url":"widget.js"} ] } From 3fcd5fe2736d9428706eb709b98d2e577320a599 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sun, 27 Jul 2025 16:22:26 -0400 Subject: [PATCH 32/68] Add checks for extreme fluctuation, log with human-readable date format --- apps/smartbatt/module.js | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 5ed500f53..1f566aa9f 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -29,7 +29,7 @@ function recordBattery() { let now = Date.now(); let data = getData(); - + let formattedNow=new Date(); let batt = E.getBattery(); let battChange = data.battLastRecorded - batt; let deltaHours = (now - data.timeLastRecorded) / (1000 * 60 * 60); @@ -57,7 +57,35 @@ } else { let currentDrainage = battChange / deltaHours; + let drainageChange=data.avgBattDrainage-currentDrainage; + //check if drainage rate has fluctuated quite a bit + + if(Math.abs(drainageChange)>currentDrainage*0.7&&data.fluctuationEvent==0){ + //has fluctuated, first time doing so + reason="Skipped: Extreme fluctuation"; + //set fluctuationevent so it knows what was the first time. + data.fluctuationEvent=data.totalCycles+1; + data.battLastRecorded=batt; + storage.writeJSON(dataFile, data); + if(getSettings().doLogging){ + // Always log the sample + logBatterySample({ + time: formattedNow, + battNow: batt, + battLast: data.battLastRecorded, + battChange: battChange, + deltaHours: deltaHours, + avgDrainage: data.avgBattDrainage, + reason: reason + }); + return; + }else{ + data.fluctuationEvent=0; + } + + } + let newAvg = weightedAverage(data.avgBattDrainage, data.totalHours, currentDrainage, deltaHours); data.avgBattDrainage=newAvg; data.timeLastRecorded = now; @@ -71,7 +99,7 @@ if(getSettings().doLogging){ // Always log the sample logBatterySample({ - time: now, + time: formattedNow, battNow: batt, battLast: data.battLastRecorded, battChange: battChange, @@ -94,7 +122,8 @@ battLastRecorded: E.getBattery(), timeLastRecorded: Date.now(), totalCycles: 0, - totalHours:0 + totalHours:0, + fluctuationEvent:0 }; } From 0d2cf7b8f46a07073736d987976c76441937ac26 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sun, 27 Jul 2025 16:27:59 -0400 Subject: [PATCH 33/68] Shift time logging into logEntry() function --- apps/smartbatt/module.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 1f566aa9f..2b973f76a 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -15,21 +15,26 @@ function logBatterySample(entry) { let log = storage.readJSON(logFile, 1) || []; - - // Keep it from growing forever (optional: only keep last 100 entries) - if (log.length > 100) log.shift(); + //get human-readable time + let d = new Date(); + entry.time = d.getFullYear() + "-" + + ("0"+(d.getMonth()+1)).slice(-2) + "-" + + ("0"+d.getDate()).slice(-2) + " " + + ("0"+d.getHours()).slice(-2) + ":" + + ("0"+d.getMinutes()).slice(-2) + ":" + + ("0"+d.getSeconds()).slice(-2); log.push(entry); + if (log.length > 100) log = log.slice(-100); + storage.writeJSON(logFile, log); } - // Record current battery reading into current average function recordBattery() { let now = Date.now(); let data = getData(); - let formattedNow=new Date(); let batt = E.getBattery(); let battChange = data.battLastRecorded - batt; let deltaHours = (now - data.timeLastRecorded) / (1000 * 60 * 60); @@ -71,7 +76,6 @@ if(getSettings().doLogging){ // Always log the sample logBatterySample({ - time: formattedNow, battNow: batt, battLast: data.battLastRecorded, battChange: battChange, @@ -99,7 +103,6 @@ if(getSettings().doLogging){ // Always log the sample logBatterySample({ - time: formattedNow, battNow: batt, battLast: data.battLastRecorded, battChange: battChange, From bde2e815528583651104bc6b4802a26fc0cf51f3 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 28 Jul 2025 09:28:46 -0400 Subject: [PATCH 34/68] Only skip due to fluctuation if total cycles>=10, to let initial data collection pass --- apps/smartbatt/module.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 2b973f76a..e520b03b3 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -64,8 +64,8 @@ let currentDrainage = battChange / deltaHours; let drainageChange=data.avgBattDrainage-currentDrainage; //check if drainage rate has fluctuated quite a bit - - if(Math.abs(drainageChange)>currentDrainage*0.7&&data.fluctuationEvent==0){ + //If fluctuation event is 0, first time fluctuating like this, cycles > 10 so as not to interfere with initial data collection. + if(Math.abs(drainageChange)>currentDrainage*0.7&&data.fluctuationEvent==0&&data.totalCycles>=10){ //has fluctuated, first time doing so reason="Skipped: Extreme fluctuation"; //set fluctuationevent so it knows what was the first time. From f4d5bca326af09995bbb815271e5e37091ca1b57 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 28 Jul 2025 09:29:56 -0400 Subject: [PATCH 35/68] Update README.md --- apps/smartbatt/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/README.md b/apps/smartbatt/README.md index d5db790f9..822ba07bb 100644 --- a/apps/smartbatt/README.md +++ b/apps/smartbatt/README.md @@ -14,7 +14,7 @@ If you think something is wrong with the predictions after 3 days, try clearing Use this when you switch to a new clock or change the battery drainage in a fundamental way. The app averages drainage over time, and so you might just want to restart the learned data to be more accurate for the new configurations you have implemented. ### Logging - Enables logging for stats that this module uses. Logs: -* The time in unix seconds that the record event was triggered +* The time in a human-readable format (hh:mm:ss, mm:dd:yy) when the record event was triggered * The current battery percentage * The last saved battery percentage * The change in hours between the time last recorded and now From c97d8179df1134e6ffe5e10a24cd9bfc8c2563ef Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 28 Jul 2025 09:55:09 -0400 Subject: [PATCH 36/68] Update README.md --- apps/smartbatt/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/smartbatt/README.md b/apps/smartbatt/README.md index 822ba07bb..72bd62a87 100644 --- a/apps/smartbatt/README.md +++ b/apps/smartbatt/README.md @@ -13,6 +13,7 @@ If you think something is wrong with the predictions after 3 days, try clearing ### Clear Data - Clears all learned data. Use this when you switch to a new clock or change the battery drainage in a fundamental way. The app averages drainage over time, and so you might just want to restart the learned data to be more accurate for the new configurations you have implemented. ### Logging - Enables logging for stats that this module uses. +To view the log file, go to the [Web IDE](https://www.espruino.com/ide/#), click on the storage icon (4 discs), and scroll to the file named `smartbattlog.json`. From there, you can view the file, copy to editor, or save it to your computer. Logs: * The time in a human-readable format (hh:mm:ss, mm:dd:yy) when the record event was triggered * The current battery percentage From 751af4a8c0d85e0a8b1e9d0a82611626f48e3c54 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Wed, 30 Jul 2025 11:11:09 -0400 Subject: [PATCH 37/68] Fix no entry point for widget --- apps/widsmartbatt/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widsmartbatt/metadata.json b/apps/widsmartbatt/metadata.json index 108dd8f6d..e6a0796cd 100644 --- a/apps/widsmartbatt/metadata.json +++ b/apps/widsmartbatt/metadata.json @@ -12,6 +12,6 @@ "tags": "widget,battery", "provides_widgets" : ["battery"], "storage": [ - {"name":"widsmartbatt.widget.js","url":"widget.js"} + {"name":"widsmartbatt.wid.js","url":"widget.js"} ] } From 79dcbd7fd11608485694c6a1567892550e6fd7dc Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Wed, 30 Jul 2025 11:13:07 -0400 Subject: [PATCH 38/68] Remove outdated update changes --- apps/widsmartbatt/widget.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index 684890f96..e995cd298 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -1,7 +1,5 @@ (function(){ - - const intervalLow = 30000; // update interval when not charging - const intervalHigh = 30000; // faster update when charging + var showPercent = false; const width = 40; const height = 24; @@ -57,8 +55,7 @@ g.setFont('6x8'); g.drawString(txt, x + 14, y + 10); - if (Bangle.isCharging()) changeInterval(id, intervalHigh); - else changeInterval(id, intervalLow); + } WIDGETS["widsmartbatt"] = { area: "tr", @@ -80,6 +77,7 @@ if (w.x - oversize <= x && x < w.x + width + oversize && w.y - oversize <= y && y < w.y + height + oversize) { E.stopEventPropagation && E.stopEventPropagation(); + Bangle.buzz(20); showPercent = true; setTimeout(() => { showPercent = false; @@ -93,8 +91,8 @@ Bangle.on('charging', function () { WIDGETS["widsmartbatt"].draw(); }); - - var id = setInterval(() => WIDGETS["widsmartbatt"].draw(), intervalLow); + //draw once per minute... + var id = setInterval(() => WIDGETS["widsmartbatt"].draw(), 60000); })(); From 0875f516a17bca0df68689ef7c97bc47b94dcad1 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Wed, 30 Jul 2025 11:13:37 -0400 Subject: [PATCH 39/68] Update widget.js --- apps/widsmartbatt/widget.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index e995cd298..209d01d07 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -20,11 +20,7 @@ function draw() { let batt=E.getBattery(); - try { - data = require("smartbatt").get(); - } catch (e) { - data.hrsLeft = 0; - } + data = require("smartbatt").get(); let hrsLeft=data.hrsLeft; let days = hrsLeft / 24; From 274b51853fdc79a027dc5ed6258ab38e35d681b7 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Wed, 30 Jul 2025 11:15:12 -0400 Subject: [PATCH 40/68] Fix define data error --- apps/widsmartbatt/widget.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index 209d01d07..a5df02e5c 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -20,7 +20,7 @@ function draw() { let batt=E.getBattery(); - data = require("smartbatt").get(); + let data = require("smartbatt").get(); let hrsLeft=data.hrsLeft; let days = hrsLeft / 24; From ffc8d201e3da22ad3a78192f1b3b74aa197b7d38 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Wed, 30 Jul 2025 12:43:22 -0400 Subject: [PATCH 41/68] Fix draw define first --- apps/widsmartbatt/widget.js | 72 ++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index a5df02e5c..9d4bcb51d 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -1,5 +1,5 @@ (function(){ - + var showPercent = false; const width = 40; const height = 24; @@ -19,47 +19,44 @@ }; function draw() { - let batt=E.getBattery(); - let data = require("smartbatt").get(); - let hrsLeft=data.hrsLeft; - let days = hrsLeft / 24; + let batt=E.getBattery(); + let data = require("smartbatt").get(); + let hrsLeft=data.hrsLeft; + let days = hrsLeft / 24; + + let txt = showPercent + ? batt + : (days >= 1 + ? Math.round(Math.min(days, 99)) + "d" + : Math.round(hrsLeft) + "h"); + if(Bangle.isCharging()) txt=E.getBattery(); + let s = 29; + let x = this.x, y = this.y; + let xl = x + 4 + batt * (s - 12) / 100; - let txt = showPercent - ? batt - : (days >= 1 - ? Math.round(Math.min(days, 99)) + "d" - : Math.round(hrsLeft) + "h"); - if(Bangle.isCharging()) txt=E.getBattery(); - let s = 29; - let x = this.x, y = this.y; - let xl = x + 4 + batt * (s - 12) / 100; - - // Drawing code follows... - g.setColor(COLORS.bg); - g.fillRect(x + 2, y + 5, x + s - 6, y + 18); + // Drawing code follows... + g.setColor(COLORS.bg); + g.fillRect(x + 2, y + 5, x + s - 6, y + 18); + + g.setColor(levelColor(batt)); + g.fillRect(x + 1, y + 3, x + s - 5, y + 4); + g.fillRect(x + 1, y + 19, x + s - 5, y + 20); + g.fillRect(x, y + 4, x + 1, y + 19); + g.fillRect(x + s - 5, y + 4, x + s - 4, y + 19); + g.fillRect(x + s - 3, y + 8, x + s - 2, y + 16); + g.fillRect(x + 4, y + 15, xl, y + 16); + + g.setColor(COLORS.fg); + g.setFontAlign(0, 0); + g.setFont('6x8'); + g.drawString(txt, x + 14, y + 10); + - g.setColor(levelColor(batt)); - g.fillRect(x + 1, y + 3, x + s - 5, y + 4); - g.fillRect(x + 1, y + 19, x + s - 5, y + 20); - g.fillRect(x, y + 4, x + 1, y + 19); - g.fillRect(x + s - 5, y + 4, x + s - 4, y + 19); - g.fillRect(x + s - 3, y + 8, x + s - 2, y + 16); - g.fillRect(x + 4, y + 15, xl, y + 16); - - g.setColor(COLORS.fg); - g.setFontAlign(0, 0); - g.setFont('6x8'); - g.drawString(txt, x + 14, y + 10); - - } WIDGETS["widsmartbatt"] = { area: "tr", width: 30, - draw: function() { - // Call your drawing function - draw(); - } + draw: draw }; // Touch to temporarily show battery percent @@ -73,7 +70,6 @@ if (w.x - oversize <= x && x < w.x + width + oversize && w.y - oversize <= y && y < w.y + height + oversize) { E.stopEventPropagation && E.stopEventPropagation(); - Bangle.buzz(20); showPercent = true; setTimeout(() => { showPercent = false; @@ -87,7 +83,7 @@ Bangle.on('charging', function () { WIDGETS["widsmartbatt"].draw(); }); - //draw once per minute... + var id = setInterval(() => WIDGETS["widsmartbatt"].draw(), 60000); From 0fbcea89cb5d1231b2c5b121193061ad6cca630c Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Wed, 30 Jul 2025 12:45:05 -0400 Subject: [PATCH 42/68] Remove unused var --- apps/widsmartbatt/widget.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widsmartbatt/widget.js b/apps/widsmartbatt/widget.js index 9d4bcb51d..29ac15108 100644 --- a/apps/widsmartbatt/widget.js +++ b/apps/widsmartbatt/widget.js @@ -84,7 +84,7 @@ WIDGETS["widsmartbatt"].draw(); }); - var id = setInterval(() => WIDGETS["widsmartbatt"].draw(), 60000); + setInterval(() => WIDGETS["widsmartbatt"].draw(), 60000); })(); From d28d7623046dfcadce4b5473a6fd77fe61f4c4af Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 1 Aug 2025 16:13:24 -0400 Subject: [PATCH 43/68] Remove extreme fluctuation check, because of accuracy decline --- apps/smartbatt/module.js | 89 +++++++++++++++------------------------- 1 file changed, 32 insertions(+), 57 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index e520b03b3..ec6ef9eee 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -1,28 +1,28 @@ { var dataFile = "smartbattdata.json"; var interval; - var storage=require("Storage"); - - + var storage = require("Storage"); + + var logFile = "smartbattlog.json"; - - function getSettings(){ + + function getSettings() { return Object.assign({ //Record Interval stored in ms - doLogging:false + doLogging: false }, require('Storage').readJSON("smartbatt.settings.json", true) || {}); } - + function logBatterySample(entry) { let log = storage.readJSON(logFile, 1) || []; //get human-readable time let d = new Date(); entry.time = d.getFullYear() + "-" + - ("0"+(d.getMonth()+1)).slice(-2) + "-" + - ("0"+d.getDate()).slice(-2) + " " + - ("0"+d.getHours()).slice(-2) + ":" + - ("0"+d.getMinutes()).slice(-2) + ":" + - ("0"+d.getSeconds()).slice(-2); + ("0" + (d.getMonth() + 1)).slice(-2) + "-" + + ("0" + d.getDate()).slice(-2) + " " + + ("0" + d.getHours()).slice(-2) + ":" + + ("0" + d.getMinutes()).slice(-2) + ":" + + ("0" + d.getSeconds()).slice(-2); log.push(entry); if (log.length > 100) log = log.slice(-100); @@ -44,15 +44,15 @@ if (battChange <= 0) { reason = "Skipped: battery fluctuated or no change"; - if(Math.abs(battChange)<5){ + if (Math.abs(battChange) < 5) { //less than 6% difference, average percents - var newBatt=(batt+data.battLastRecorded)/2; + var newBatt = (batt + data.battLastRecorded) / 2; data.battLastRecorded = newBatt; - }else{ + } else { //probably charged, ignore average data.battLastRecorded = batt; } - + storage.writeJSON(dataFile, data); } else if (deltaHours <= 0 || !isFinite(deltaHours)) { reason = "Skipped: invalid time delta"; @@ -60,64 +60,40 @@ data.battLastRecorded = batt; storage.writeJSON(dataFile, data); } else { - + let weightCoefficient = 1; let currentDrainage = battChange / deltaHours; - let drainageChange=data.avgBattDrainage-currentDrainage; - //check if drainage rate has fluctuated quite a bit - //If fluctuation event is 0, first time fluctuating like this, cycles > 10 so as not to interfere with initial data collection. - if(Math.abs(drainageChange)>currentDrainage*0.7&&data.fluctuationEvent==0&&data.totalCycles>=10){ - //has fluctuated, first time doing so - reason="Skipped: Extreme fluctuation"; - //set fluctuationevent so it knows what was the first time. - data.fluctuationEvent=data.totalCycles+1; - data.battLastRecorded=batt; - storage.writeJSON(dataFile, data); + let drainageChange = data.avgBattDrainage - currentDrainage; - if(getSettings().doLogging){ - // Always log the sample - logBatterySample({ - battNow: batt, - battLast: data.battLastRecorded, - battChange: battChange, - deltaHours: deltaHours, - avgDrainage: data.avgBattDrainage, - reason: reason - }); - return; - }else{ - data.fluctuationEvent=0; - } - - } - - let newAvg = weightedAverage(data.avgBattDrainage, data.totalHours, currentDrainage, deltaHours); - data.avgBattDrainage=newAvg; + + let newAvg = weightedAverage(data.avgBattDrainage, data.totalHours, currentDrainage, deltaHours * weightCoefficient); + data.avgBattDrainage = newAvg; data.timeLastRecorded = now; data.totalCycles += 1; - data.totalHours+=deltaHours; + data.totalHours += deltaHours; data.battLastRecorded = batt; storage.writeJSON(dataFile, data); reason = "Drainage recorded: " + currentDrainage.toFixed(3) + "%/hr"; } - if(getSettings().doLogging){ + if (getSettings().doLogging) { // Always log the sample logBatterySample({ battNow: batt, battLast: data.battLastRecorded, battChange: battChange, deltaHours: deltaHours, + timeLastRecorded: data.timeLastRecorded, avgDrainage: data.avgBattDrainage, reason: reason }); } } - + function weightedAverage(oldValue, oldWeight, newValue, newWeight) { return (oldValue * oldWeight + newValue * newWeight) / (oldWeight + newWeight); } - + function getData() { return storage.readJSON(dataFile, 1) || { @@ -125,8 +101,7 @@ battLastRecorded: E.getBattery(), timeLastRecorded: Date.now(), totalCycles: 0, - totalHours:0, - fluctuationEvent:0 + totalHours: 0, }; } @@ -142,8 +117,8 @@ hrsLeft: hrsLeft, }; } - - function deleteData(){ + + function deleteData() { storage.erase(dataFile); storage.erase(logFile); } @@ -151,11 +126,11 @@ exports.record = recordBattery; exports.deleteData = deleteData; exports.get = estimateBatteryLife; - exports.changeInterval = function(newInterval) { + exports.changeInterval = function (newInterval) { clearInterval(interval); - interval=setInterval(recordBattery, newInterval); + interval = setInterval(recordBattery, newInterval); }; // Start recording every 5 minutes - interval=setInterval(recordBattery, 600000); + interval = setInterval(recordBattery, 600000); recordBattery(); // Log immediately } From 2901c34a2301977846b1945ec762fc326ee010ce Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Fri, 1 Aug 2025 22:17:42 -0400 Subject: [PATCH 44/68] Fix lint error, return more values in get() --- apps/smartbatt/module.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index ec6ef9eee..5321f4b7b 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -62,9 +62,6 @@ } else { let weightCoefficient = 1; let currentDrainage = battChange / deltaHours; - let drainageChange = data.avgBattDrainage - currentDrainage; - - let newAvg = weightedAverage(data.avgBattDrainage, data.totalHours, currentDrainage, deltaHours * weightCoefficient); data.avgBattDrainage = newAvg; data.timeLastRecorded = now; @@ -115,6 +112,9 @@ return { batt: batt, hrsLeft: hrsLeft, + avgDrainage:data.avgDrainage, + totalHours:data.totalHours, + cycles:data.cycles }; } From 611fa88828f9d4429cab711929b88f70942d1121 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 2 Aug 2025 14:47:38 -0400 Subject: [PATCH 45/68] Fix avgDrainage returning undefined --- apps/smartbatt/module.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/smartbatt/module.js b/apps/smartbatt/module.js index 5321f4b7b..834ae7e01 100644 --- a/apps/smartbatt/module.js +++ b/apps/smartbatt/module.js @@ -112,9 +112,9 @@ return { batt: batt, hrsLeft: hrsLeft, - avgDrainage:data.avgDrainage, + avgDrainage:data.avgBattDrainage, totalHours:data.totalHours, - cycles:data.cycles + cycles:data.totalCycles }; } From a0dd97cecefa32f7924cbaa5fce0788d315e00b5 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 2 Aug 2025 15:43:47 -0400 Subject: [PATCH 46/68] Create clkinfo.js from @RelapsingCertainly's gist, added avgDrainage clkInfo --- apps/smartbatt/clkinfo.js | 89 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 apps/smartbatt/clkinfo.js diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js new file mode 100644 index 000000000..603d9c910 --- /dev/null +++ b/apps/smartbatt/clkinfo.js @@ -0,0 +1,89 @@ +(function() { + var img; + var v; + var data; + var hrLeft = 0; + var daysLeft = 0; + var showPercent=false; + //updates values + function updateValues(){ + v = E.getBattery(); + data = require("smartbatt").get(); + hrLeft = data.hrsLeft; + daysLeft = hrLeft / 24; + + hrLeft = Math.round(hrLeft); + daysLeft = Math.round(daysLeft); + } + + + //draws battery icon and fill bar + function drawBatt(){ + v =E.getBattery(); + var s=24,g=Graphics.createArrayBuffer(24,24,1,{msb:true}); + g.fillRect(0,6,s-3,18).clearRect(2,8,s-5,16).fillRect(s-2,10,s,15).fillRect(3,9,3+v*(s-9)/100,15); + g.transparent=0; + img=g.asImage("string"); + } + + //calls both updates for values and icons. + //might split in the future since values updates once every five minutes so we dont need to call it in every minute while the battery can be updated once a minute. + function updateDisplay(){ + updateValues(); + drawBatt(); + } + + return { + name: "SmartBatt", + items: [ + { name : "BattStatus", + get : () => { + updateValues(); + drawBatt(); + + //update clock info according to batt state + if (Bangle.isCharging()) { + return { text: v+"%", img : img}; + } + else if(daysLeft >= 1) { + return { text: daysLeft+"d", img : img}; + } + + else { + return {text: hrLeft+"h", img: img}; + } + }, + + show : function() { + this.interval = setInterval(()=>{ + updateDisplay(); + this.emit('redraw'); + }, 60000); + }, + + hide : function() { + clearInterval(this.interval); + this.interval = undefined; + } + }, + { name : "AvgDrainage", + get : () => { + drawBatt() + var data=require("smartbatt").get(); + return { text: data.avgDrainage.toFixed(2)+"/h", img : img}; + }, + + show : function() { + this.interval = setInterval(()=>{ + this.emit('redraw'); + }, 60000); + }, + + hide : function() { + clearInterval(this.interval); + this.interval = undefined; + } + } + ] + }; +}) From 09f68038ea385dffb6ca57c9a6553a0906673743 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 2 Aug 2025 15:44:17 -0400 Subject: [PATCH 47/68] Update metadata.json --- apps/smartbatt/metadata.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/smartbatt/metadata.json b/apps/smartbatt/metadata.json index ed2982e02..538006701 100644 --- a/apps/smartbatt/metadata.json +++ b/apps/smartbatt/metadata.json @@ -12,7 +12,8 @@ "readme": "README.md", "storage": [ {"name":"smartbatt","url":"module.js"}, - {"name":"smartbatt.settings.js","url":"settings.js"} + {"name":"smartbatt.settings.js","url":"settings.js"}, + {"name":"smartbatt.clkinfo.js","url":"clkinfo.js"} ], "data": [ {"name":"smartbatt.settings.json"} From d132ab0f13bdbb75f8ed0e58b360fb0ea9ec4fef Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 2 Aug 2025 15:49:32 -0400 Subject: [PATCH 48/68] Update README.md for clockInfos, add @RelapsingCertainly to contributors --- apps/smartbatt/README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/apps/smartbatt/README.md b/apps/smartbatt/README.md index 72bd62a87..bf8b427db 100644 --- a/apps/smartbatt/README.md +++ b/apps/smartbatt/README.md @@ -8,6 +8,10 @@ When this app is installed, do not rely on it for the first 24-30 hours. Date: Sat, 2 Aug 2025 16:34:58 -0400 Subject: [PATCH 49/68] remove variables from memory, increase redraw time to conserve battery life --- apps/smartbatt/clkinfo.js | 49 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js index 603d9c910..cf8b6de11 100644 --- a/apps/smartbatt/clkinfo.js +++ b/apps/smartbatt/clkinfo.js @@ -1,25 +1,28 @@ (function() { var img; - var v; - var data; - var hrLeft = 0; - var daysLeft = 0; - var showPercent=false; + var batt; //updates values - function updateValues(){ - v = E.getBattery(); - data = require("smartbatt").get(); - hrLeft = data.hrsLeft; - daysLeft = hrLeft / 24; - hrLeft = Math.round(hrLeft); + + function getHrsFormatted(hrsLeft){ + + var daysLeft = hrsLeft / 24; daysLeft = Math.round(daysLeft); - } + if (Bangle.isCharging()) { + return batt+"%"; + } + else if(daysLeft >= 1) { + return daysLeft+"d"; + } + else { + return Math.round(hrsLeft)+"h"; + } + } //draws battery icon and fill bar function drawBatt(){ - v =E.getBattery(); + batt =E.getBattery(); var s=24,g=Graphics.createArrayBuffer(24,24,1,{msb:true}); g.fillRect(0,6,s-3,18).clearRect(2,8,s-5,16).fillRect(s-2,10,s,15).fillRect(3,9,3+v*(s-9)/100,15); g.transparent=0; @@ -29,7 +32,6 @@ //calls both updates for values and icons. //might split in the future since values updates once every five minutes so we dont need to call it in every minute while the battery can be updated once a minute. function updateDisplay(){ - updateValues(); drawBatt(); } @@ -38,19 +40,16 @@ items: [ { name : "BattStatus", get : () => { - updateValues(); - drawBatt(); + drawBatt(); + var data=require("smartbatt").get(); + //update clock info according to batt state if (Bangle.isCharging()) { - return { text: v+"%", img : img}; + return { text: batt+"%", img : img}; } - else if(daysLeft >= 1) { - return { text: daysLeft+"d", img : img}; - } - - else { - return {text: hrLeft+"h", img: img}; + else{ + return { text: getHrsFormatted(data.hrsLeft), img : img}; } }, @@ -58,7 +57,7 @@ this.interval = setInterval(()=>{ updateDisplay(); this.emit('redraw'); - }, 60000); + }, 300000); }, hide : function() { @@ -76,7 +75,7 @@ show : function() { this.interval = setInterval(()=>{ this.emit('redraw'); - }, 60000); + }, 300000); }, hide : function() { From a199abbf7ff29e9ec613dbf57e5e2a06c36bf207 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 2 Aug 2025 16:35:51 -0400 Subject: [PATCH 50/68] Update metadata.json --- apps/smartbatt/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/metadata.json b/apps/smartbatt/metadata.json index 538006701..310c3415e 100644 --- a/apps/smartbatt/metadata.json +++ b/apps/smartbatt/metadata.json @@ -6,7 +6,7 @@ "description": "Provides a `smartbatt` module that returns the battery in days, and learns from daily usage over time for accurate predictions.", "icon": "icon.png", "type": "module", - "tags": "tool,system", + "tags": "tool,system,clkinfo", "supports": ["BANGLEJS","BANGLEJS2"], "provides_modules" : ["smartbatt"], "readme": "README.md", From 9eaff57466995d788d55b94f4b4ec4e2696adffc Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Sat, 2 Aug 2025 16:37:38 -0400 Subject: [PATCH 51/68] Fix battery not drawing --- apps/smartbatt/clkinfo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js index cf8b6de11..cf31270b0 100644 --- a/apps/smartbatt/clkinfo.js +++ b/apps/smartbatt/clkinfo.js @@ -24,7 +24,7 @@ function drawBatt(){ batt =E.getBattery(); var s=24,g=Graphics.createArrayBuffer(24,24,1,{msb:true}); - g.fillRect(0,6,s-3,18).clearRect(2,8,s-5,16).fillRect(s-2,10,s,15).fillRect(3,9,3+v*(s-9)/100,15); + g.fillRect(0,6,s-3,18).clearRect(2,8,s-5,16).fillRect(s-2,10,s,15).fillRect(3,9,3+batt*(s-9)/100,15); g.transparent=0; img=g.asImage("string"); } From d4a777a42ff7cd72830e065f7d7afc971869c171 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Tue, 12 Aug 2025 16:11:20 -0400 Subject: [PATCH 52/68] Apply suggestion from @bobrippling Co-authored-by: Rob Pilling --- apps/smartbatt/clkinfo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js index cf31270b0..6a733a248 100644 --- a/apps/smartbatt/clkinfo.js +++ b/apps/smartbatt/clkinfo.js @@ -26,7 +26,7 @@ var s=24,g=Graphics.createArrayBuffer(24,24,1,{msb:true}); g.fillRect(0,6,s-3,18).clearRect(2,8,s-5,16).fillRect(s-2,10,s,15).fillRect(3,9,3+batt*(s-9)/100,15); g.transparent=0; - img=g.asImage("string"); + return g.asImage("string"); } //calls both updates for values and icons. From 88bb5e3683accc60805687288319fcbeca11c202 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Tue, 12 Aug 2025 16:13:10 -0400 Subject: [PATCH 53/68] Remove redundant Bangle.isCharging check --- apps/smartbatt/clkinfo.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js index 6a733a248..ae96756ba 100644 --- a/apps/smartbatt/clkinfo.js +++ b/apps/smartbatt/clkinfo.js @@ -8,9 +8,6 @@ var daysLeft = hrsLeft / 24; daysLeft = Math.round(daysLeft); - if (Bangle.isCharging()) { - return batt+"%"; - } else if(daysLeft >= 1) { return daysLeft+"d"; } From 1eac455a29e5acd4c71f2a8e8d7165dd97a69a76 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Tue, 12 Aug 2025 16:14:42 -0400 Subject: [PATCH 54/68] Fix lint error --- apps/smartbatt/clkinfo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js index ae96756ba..05f52cf64 100644 --- a/apps/smartbatt/clkinfo.js +++ b/apps/smartbatt/clkinfo.js @@ -8,7 +8,7 @@ var daysLeft = hrsLeft / 24; daysLeft = Math.round(daysLeft); - else if(daysLeft >= 1) { + if(daysLeft >= 1) { return daysLeft+"d"; } From dcec8ead0992665962901767b1cbfd22bdbb3b77 Mon Sep 17 00:00:00 2001 From: Rengyr Date: Sat, 17 May 2025 18:29:26 +0200 Subject: [PATCH 55/68] Weather: Unify formatting and more modern style of javascript --- apps/weather/app.js | 20 +++--- apps/weather/clkinfo.js | 7 +- apps/weather/lib.js | 143 +++++++++++++++++++-------------------- apps/weather/settings.js | 38 +++++------ apps/weather/widget.js | 42 ++++++------ 5 files changed, 124 insertions(+), 126 deletions(-) diff --git a/apps/weather/app.js b/apps/weather/app.js index 923e63bbf..7f42e60bb 100644 --- a/apps/weather/app.js +++ b/apps/weather/app.js @@ -16,24 +16,24 @@ var layout = new Layout({type:"v", bgCol: g.theme.bg, c: [ render: l => { if (!current || current.uv === undefined) return; const uv = Math.min(parseInt(current.uv), 11); // Cap at 11 - + // UV color thresholds: [max_value, color] based on WHO standards const colors = [[2,"#0F0"], [5,"#FF0"], [7,"#F80"], [10,"#F00"], [11,"#F0F"]]; const color = colors.find(c => uv <= c[0])[1]; - + // Setup and measure label g.setFont("6x8").setFontAlign(-1, 0); const label = "UV: "; const labelW = g.stringWidth(label); - + // Calculate centered position (4px block + 1px spacing) * blocks - last spacing const totalW = labelW + uv * 5 - (uv > 0 ? 1 : 0); const x = l.x + (l.w - totalW) / 2; const y = l.y + l.h+6; - + // Draw label g.setColor(g.theme.fg).drawString(label, x, y); - + // Draw UV blocks g.setColor(color); for (let i = 0; i < uv; i++) { @@ -58,7 +58,7 @@ var layout = new Layout({type:"v", bgCol: g.theme.bg, c: [ {type: "txt", font: "6x8", pad: 2, halign: 1, label: /*LANG*/"Hum:"}, {type: "txt", font: "9%", pad: 2, halign: 1, id: "hum", label: "000%"}, ]}, - + {filly: 1}, {type: "txt", font: "6x8", pad: 2, halign: -1, label: /*LANG*/"Wind"}, {type: "h", halign: -1, c: [ @@ -79,7 +79,7 @@ var layout = new Layout({type:"v", bgCol: g.theme.bg, c: [ ]}, {lazy: true}); function formatDuration(millis) { - let pluralize = (n, w) => n + " " + w + (n == 1 ? "" : "s"); + let pluralize = (n, w) => `${n} ${w}${n === 1 ? "" : "s"}`; if (millis < 60000) return /*LANG*/"< 1 minute"; if (millis < 3600000) return pluralize(Math.floor(millis/60000), /*LANG*/"minute"); if (millis < 86400000) return pluralize(Math.floor(millis/3600000), /*LANG*/"hour"); @@ -98,11 +98,11 @@ function draw() { }else{ layout.feelslike.label = feelsLikeTemp[1]+feelsLikeTemp[2]; } - - layout.hum.label = current.hum+"%"; + + layout.hum.label = `${current.hum}%`; const wind = locale.speed(current.wind).match(/^(\D*\d*)(.*)$/); layout.wind.label = wind[1]; - layout.windUnit.label = wind[2] + " " + (current.wrose||'').toUpperCase(); + layout.windUnit.label = `${wind[2]} ${(current.wrose||'').toUpperCase()}`; layout.cond.label = current.txt.charAt(0).toUpperCase()+(current.txt||'').slice(1); layout.loc.label = current.loc; layout.updateTime.label = `${formatDuration(Date.now() - current.time)} ago`; // How to autotranslate this and similar? diff --git a/apps/weather/clkinfo.js b/apps/weather/clkinfo.js index eaf9556e0..b60aa6daa 100644 --- a/apps/weather/clkinfo.js +++ b/apps/weather/clkinfo.js @@ -1,5 +1,4 @@ - -(function() { +(() => { var weather; var weatherLib = require("weather"); @@ -8,9 +7,9 @@ if(weather){ weather.temp = require("locale").temp(weather.temp-273.15); weather.feels = require("locale").temp(weather.feels-273.15); - weather.hum = weather.hum + "%"; + weather.hum = `${weather.hum}%`; weather.wind = require("locale").speed(weather.wind).match(/^(\D*\d*)(.*)$/); - weather.wind = Math.round(weather.wind[1]) + "kph"; + weather.wind = `${Math.round(weather.wind[1])}kph`; } else { weather = { temp: "?", diff --git a/apps/weather/lib.js b/apps/weather/lib.js index 9505cbafe..18f149c15 100644 --- a/apps/weather/lib.js +++ b/apps/weather/lib.js @@ -1,5 +1,5 @@ -const storage = require('Storage'); -const B2 = process.env.HWVERSION===2; +const storage = require("Storage"); +const B2 = process.env.HWVERSION === 2; let expiryTimeout; function scheduleExpiry(json) { @@ -7,7 +7,7 @@ function scheduleExpiry(json) { clearTimeout(expiryTimeout); expiryTimeout = undefined; } - let expiry = "expiry" in json ? json.expiry : 2*3600000; + let expiry = "expiry" in json ? json.expiry : 2 * 3600000; if (json.weather && json.weather.time && expiry) { let t = json.weather.time + expiry - Date.now(); expiryTimeout = setTimeout(update, t); @@ -15,7 +15,7 @@ function scheduleExpiry(json) { } function update(weatherEvent) { - let json = storage.readJSON('weather.json')||{}; + let json = storage.readJSON("weather.json") || {}; if (weatherEvent) { let weather = weatherEvent.clone(); @@ -24,92 +24,90 @@ function update(weatherEvent) { if (weather.wdir != null) { // Convert numeric direction into human-readable label let deg = weather.wdir; - while (deg<0 || deg>360) { - deg = (deg+360)%360; + while (deg < 0 || deg > 360) { + deg = (deg + 360) % 360; } - weather.wrose = ['n','ne','e','se','s','sw','w','nw','n'][Math.floor((deg+22.5)/45)]; + weather.wrose = ["n", "ne", "e", "se", "s", "sw", "w", "nw", "n"][Math.floor((deg + 22.5) / 45)]; } json.weather = weather; - } - else { + } else { delete json.weather; } - - storage.write('weather.json', json); + storage.write("weather.json", json); scheduleExpiry(json); exports.emit("update", json.weather); } exports.update = update; const _GB = global.GB; global.GB = (event) => { - if (event.t==="weather") update(event); + if (event.t === "weather") update(event); if (_GB) setTimeout(_GB, 0, event); }; -exports.get = function() { - return (storage.readJSON('weather.json')||{}).weather; -} +exports.get = () => { + return (storage.readJSON("weather.json") || {}).weather; +}; -scheduleExpiry(storage.readJSON('weather.json')||{}); +scheduleExpiry(storage.readJSON("weather.json") || {}); function getPalette(monochrome, ovr) { var palette; - if(monochrome) { + if (monochrome) { palette = { - sun: '#FFF', - cloud: '#FFF', - bgCloud: '#FFF', - rain: '#FFF', - lightning: '#FFF', - snow: '#FFF', - mist: '#FFF', - background: '#000' + sun: "#FFF", + cloud: "#FFF", + bgCloud: "#FFF", + rain: "#FFF", + lightning: "#FFF", + snow: "#FFF", + mist: "#FFF", + background: "#000", }; } else { if (B2) { if (ovr.theme.dark) { palette = { - sun: '#FF0', - cloud: '#FFF', - bgCloud: '#777', // dithers on B2, but that's ok - rain: '#0FF', - lightning: '#FF0', - snow: '#FFF', - mist: '#FFF' + sun: "#FF0", + cloud: "#FFF", + bgCloud: "#777", // dithers on B2, but that's ok + rain: "#0FF", + lightning: "#FF0", + snow: "#FFF", + mist: "#FFF", }; } else { palette = { - sun: '#FF0', - cloud: '#777', // dithers on B2, but that's ok - bgCloud: '#000', - rain: '#00F', - lightning: '#FF0', - snow: '#0FF', - mist: '#0FF' + sun: "#FF0", + cloud: "#777", // dithers on B2, but that's ok + bgCloud: "#000", + rain: "#00F", + lightning: "#FF0", + snow: "#0FF", + mist: "#0FF", }; } } else { if (ovr.theme.dark) { palette = { - sun: '#FE0', - cloud: '#BBB', - bgCloud: '#777', - rain: '#0CF', - lightning: '#FE0', - snow: '#FFF', - mist: '#FFF' + sun: "#FE0", + cloud: "#BBB", + bgCloud: "#777", + rain: "#0CF", + lightning: "#FE0", + snow: "#FFF", + mist: "#FFF", }; } else { palette = { - sun: '#FC0', - cloud: '#000', - bgCloud: '#777', - rain: '#07F', - lightning: '#FC0', - snow: '#CCC', - mist: '#CCC' + sun: "#FC0", + cloud: "#000", + bgCloud: "#777", + rain: "#07F", + lightning: "#FC0", + snow: "#CCC", + mist: "#CCC", }; } } @@ -117,10 +115,10 @@ function getPalette(monochrome, ovr) { return palette; } -exports.getColor = function(code) { +exports.getColor = (code) => { const codeGroup = Math.round(code / 100); const palette = getPalette(0, g); - const cloud = g.blendColor(palette.cloud, palette.bgCloud, .5); //theme independent + const cloud = g.blendColor(palette.cloud, palette.bgCloud, 0.5); //theme independent switch (codeGroup) { case 2: return g.blendColor(cloud, palette.lightning, .5); case 3: return palette.rain; @@ -144,7 +142,7 @@ exports.getColor = function(code) { } default: return cloud; } -} +}; /** * @@ -158,9 +156,9 @@ exports.getColor = function(code) { * @param ovr Graphics instance (or undefined for g) * @param monochrome If true, produce a monochromatic icon */ -exports.drawIcon = function(cond, x, y, r, ovr, monochrome) { +exports.drawIcon = (cond, x, y, r, ovr, monochrome) => { var palette; - if(!ovr) ovr = g; + if (!ovr) ovr = g; palette = getPalette(monochrome, ovr); @@ -257,7 +255,7 @@ exports.drawIcon = function(cond, x, y, r, ovr, monochrome) { function drawSnow(x, y, r) { function rotatePoints(points, pivotX, pivotY, angle) { - for(let i = 0; i {}; txt = txt.toLowerCase(); @@ -336,7 +334,8 @@ exports.drawIcon = function(cond, x, y, r, ovr, monochrome) { if (txt.includes("few clouds")) return drawFewClouds; if (txt.includes("scattered clouds")) return drawCloud; if (txt.includes("clouds")) return drawBrokenClouds; - if (txt.includes("mist") || + if ( + txt.includes("mist") || txt.includes("smoke") || txt.includes("haze") || txt.includes("sand") || @@ -344,16 +343,17 @@ exports.drawIcon = function(cond, x, y, r, ovr, monochrome) { txt.includes("fog") || txt.includes("ash") || txt.includes("squalls") || - txt.includes("tornado")) { + txt.includes("tornado") + ) { return drawMist; } return drawUnknown; } /* - * Choose weather icon to display based on weather conditition code - * https://openweathermap.org/weather-conditions#Weather-Condition-Codes-2 - */ + * Choose weather icon to display based on weather condition code + * https://openweathermap.org/weather-conditions#Weather-Condition-Codes-2 + */ function chooseIconByCode(code) { const codeGroup = Math.round(code / 100); switch (codeGroup) { @@ -382,16 +382,15 @@ exports.drawIcon = function(cond, x, y, r, ovr, monochrome) { } function chooseIcon(cond) { - if (typeof (cond)==="object") { + if (typeof cond === "object") { if ("code" in cond) return chooseIconByCode(cond.code); if ("txt" in cond) return chooseIconByTxt(cond.txt); - } else if (typeof (cond)==="number") { + } else if (typeof cond === "number") { return chooseIconByCode(cond.code); - } else if (typeof (cond)==="string") { + } else if (typeof cond === "string") { return chooseIconByTxt(cond.txt); } return drawUnknown; } chooseIcon(cond)(x, y, r); - }; diff --git a/apps/weather/settings.js b/apps/weather/settings.js index 7e0bb24c8..9f39c00df 100644 --- a/apps/weather/settings.js +++ b/apps/weather/settings.js @@ -1,31 +1,31 @@ -(function(back) { - const storage = require('Storage'); - let settings = storage.readJSON('weather.json', 1) || {}; +(back) => { + const storage = require("Storage"); + let settings = storage.readJSON("weather.json", 1) || {}; function save(key, value) { settings[key] = value; - storage.write('weather.json', settings); + storage.write("weather.json", settings); } E.showMenu({ - '': { 'title': 'Weather' }, - 'Expiry': { - value: "expiry" in settings ? settings["expiry"] : 2*3600000, + "": { "title": "Weather" }, + "Expiry": { + value: "expiry" in settings ? settings.expiry : 2 * 3600000, min: 0, - max : 24*3600000, - step: 15*60000, - format: x => { - if (x == 0) return "none"; - if (x < 3600000) return Math.floor(x/60000) + "m"; - if (x < 86400000) return Math.floor(x/36000)/100 + "h"; + max: 24 * 3600000, + step: 15 * 60000, + format: (x) => { + if (x === 0) return "none"; + if (x < 3600000) return `${Math.floor(x / 60000)}m`; + if (x < 86400000) return `${Math.floor(x / 36000) / 100}h`; }, - onchange: x => save('expiry', x), + onchange: (x) => save("expiry", x), }, - 'Hide Widget': { + "Hide Widget": { value: "hide" in settings ? settings.hide : false, onchange: () => { - settings.hide = !settings.hide - save('hide', settings.hide); + settings.hide = !settings.hide; + save("hide", settings.hide); }, }, - '< Back': back, + "< Back": back, }); -}) +}; diff --git a/apps/weather/widget.js b/apps/weather/widget.js index 2905d776b..be0ca838f 100644 --- a/apps/weather/widget.js +++ b/apps/weather/widget.js @@ -1,53 +1,53 @@ (() => { - const weather = require('weather'); - + const weather = require("weather"); + var dirty = false; - + let settings; function loadSettings() { - settings = require('Storage').readJSON('weather.json', 1) || {}; + settings = require("Storage").readJSON("weather.json", 1) || {}; } function setting(key) { if (!settings) { loadSettings(); } const DEFAULTS = { - 'expiry': 2*3600000, - 'hide': false + "expiry": 2*3600000, + "hide": false }; return (key in settings) ? settings[key] : DEFAULTS[key]; } weather.on("update", w => { - if (setting('hide')) return; + if (setting("hide")) return; if (w) { - if (!WIDGETS["weather"].width) { - WIDGETS["weather"].width = 20; + if (!WIDGETS.weather.width) { + WIDGETS.weather.width = 20; Bangle.drawWidgets(); } else if (Bangle.isLCDOn()) { - WIDGETS["weather"].draw(); + WIDGETS.weather.draw(); } else { dirty = true; } } else { - WIDGETS["weather"].width = 0; + WIDGETS.weather.width = 0; Bangle.drawWidgets(); } }); - Bangle.on('lcdPower', on => { - if (on && dirty && !setting('hide')) { - WIDGETS["weather"].draw(); + Bangle.on("lcdPower", on => { + if (on && dirty && !setting("hide")) { + WIDGETS.weather.draw(); dirty = false; } }); - WIDGETS["weather"] = { + WIDGETS.weather = { area: "tl", - width: weather.get() && !setting('hide') ? 20 : 0, + width: weather.get() && !setting("hide") ? 20 : 0, draw: function() { - if (setting('hide')) return; + if (setting("hide")) return; const w = weather.get(); if (!w) return; g.reset(); @@ -56,17 +56,17 @@ weather.drawIcon(w, this.x+10, this.y+8, 7.5); } if (w.temp) { - let t = require('locale').temp(w.temp-273.15); // applies conversion + let t = require("locale").temp(w.temp-273.15); // applies conversion t = t.match(/[\d\-]*/)[0]; // but we have no room for units g.reset(); g.setFontAlign(0, 1); // center horizontally at bottom of widget - g.setFont('6x8', 1); + g.setFont("6x8", 1); g.drawString(t, this.x+10, this.y+24); } }, - reload:function() { + reload:() => { loadSettings(); - WIDGETS["weather"].redraw(); + WIDGETS.weather.redraw(); }, }; })(); From 42bf5b3cbd7e5f28c045b965cc7c7dcd44c9f256 Mon Sep 17 00:00:00 2001 From: Rengyr Date: Sat, 17 May 2025 18:29:26 +0200 Subject: [PATCH 56/68] Weather: Add new weather parsing in Weather App --- apps/weather/ChangeLog | 6 + apps/weather/README.md | 87 ++++++++--- apps/weather/lib.js | 287 +++++++++++++++++++++++++++++++++---- apps/weather/metadata.json | 4 +- apps/weather/settings.js | 40 +++++- apps/weather/widget.js | 2 +- 6 files changed, 372 insertions(+), 54 deletions(-) diff --git a/apps/weather/ChangeLog b/apps/weather/ChangeLog index dcbbab2ed..81c373239 100644 --- a/apps/weather/ChangeLog +++ b/apps/weather/ChangeLog @@ -26,3 +26,9 @@ 0.27: Add UV index display 0.28: Fix UV positioning, hide when 0 0.29: Add feels-like temperature data and clock_info +0.30: Refactor code to more modern javascript style + Split settings and weather data into two files in storage + Add support for new version of weather data and forecast from GadgetBridge (requires version 0.86.0 or higher) + Add support to automatically fetch weather at time interval defined in settings (requires GadgetBridge version 0.86.0 or higher) + Add button to settings to force fetch weather data (requires GadgetBridge version 0.86.0 or higher) + Add new API to get weather from Weather App for other Apps diff --git a/apps/weather/README.md b/apps/weather/README.md index 7b29f90dd..9c692c011 100644 --- a/apps/weather/README.md +++ b/apps/weather/README.md @@ -3,7 +3,7 @@ This allows your Bangle.js to display weather reports from the Gadgetbridge app for an Android phone, or by using the iOS shortcut below to push weather information. It adds a widget with a weather pictogram and the temperature. -It also adds a ClockInfo list to Bangle.js. +It also adds a ClockInfo list to Bangle.js. You can view the full report through the app: ![Screenshot](screenshot.png) @@ -12,35 +12,35 @@ You can view the full report through the app: Use the iOS shortcut [here](https://www.icloud.com/shortcuts/73be0ce1076446f3bdc45a5707de5c4d). The shortcut uses Apple Weather for weather updates, and sends a notification, which is read by Bangle.js. To push weather every hour, or interval, you will need to create a shortcut automation for every time you want to push the weather. - ## Android Setup -1. Install [Gadgetbridge for Android](https://f-droid.org/packages/nodomain.freeyourgadget.gadgetbridge/) on your phone. -2. Set up [Gadgetbridge weather reporting](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Weather). - -If using the `Bangle.js Gadgetbridge` app on your phone (as opposed to the standard F-Droid `Gadgetbridge`) you need to set the package name -to `com.espruino.gadgetbridge.banglejs` in the settings of the weather app (`settings -> gadgetbridge support -> package name`). +1. Install [Gadgetbridge for Android](https://f-droid.org/packages/nodomain.freeyourgadget.gadgetbridge/) on your phone +2. Set up [Gadgetbridge weather reporting](https://gadgetbridge.org/basics/features/weather/) ### Android Weather Apps -There are two weather apps for Android that can connect with Gadgetbridge: +There are multiple weather apps for Android that can connect with Gadgetbridge: * Tiny Weather Forecast Germany - * F-Droid - https://f-droid.org/en/packages/de.kaffeemitkoffein.tinyweatherforecastgermany/ - * Source code - https://codeberg.org/Starfish/TinyWeatherForecastGermany - + * F-Droid - https://f-droid.org/en/packages/de.kaffeemitkoffein.tinyweatherforecastgermany/ + * Source code - https://codeberg.org/Starfish/TinyWeatherForecastGermany + * QuickWeather - * F-Droid - https://f-droid.org/en/packages/com.ominous.quickweather/ - * Google Play - https://play.google.com/store/apps/details?id=com.ominous.quickweather - * Source code - https://github.com/TylerWilliamson/QuickWeather - + * F-Droid - https://f-droid.org/en/packages/com.ominous.quickweather/ + * Google Play - https://play.google.com/store/apps/details?id=com.ominous.quickweather + * Source code - https://github.com/TylerWilliamson/QuickWeather + +* Breezy Weather + * F-Droid - https://f-droid.org/en/packages/org.breezyweather/ + * Source code - https://github.com/breezy-weather/breezy-weather + ### Tiny Weather Forecast Germany Even though Tiny Weather Forecast Germany is made for Germany, it can be used around the world. To do this: - + 1. Tap on the three dots in the top right hand corner and go to settings 2. Go down to Location and tap on the checkbox labeled "Use location services". You may also want to check on the "Check Location checkbox". Alternatively, you may select the "manual" checkbox and choose your location. -3. Scroll down further to the "other" section and tap "Gadgetbridge support". Then tap on "Enable". You may also choose to tap on "Send current time". +3. Scroll down further to the "other" section and tap "Gadgetbridge support". Then tap on "Enable". You may also choose to tap on "Send current time". 4. If you're using the specific Gadgetbridge for Bangle.JS app, you'll want to tap on "Package name." In the dialog box that appears, you'll want to put in "com.espruino.gadgetbridge.banglejs" without the quotes. If you're using the original Gadgetbridge, leave this as the default. ### QuickWeather @@ -51,9 +51,17 @@ If you're using OpenWeatherMap you will need the "One Call By Call" plan, which When you first load QuickWeather, it will take you through the setup process. You will fill out all the required information as well as put your API key in. If you do not have the "One Call By Call", or commonly known as "One Call", API, you will need to sign up for that. QuickWeather will work automatically with both the main version of Gadgetbridge and Gadgetbridge for Bangle.JS. +### Breezy Weather + +Enabling connection to Gadgetbridge: + +1. Tap on the three dots in the top right hand corner and go to settings +2. Find "Widgets & Live wallpaper" settings +3. Under "Data sharing" tap on "Send Gadgetbridge data" and enable for Gadgetbridge flavor you are using + ### Weather Notification -**Note:** at one time, the Weather Notification app also worked with Gadgetbridge. However, many users are reporting it's no longer seeing the OpenWeatherMap API key as valid. The app has not received any updates since August of 2020, and may be unmaintained. +**Note:** at one time, the Weather Notification app also worked with Gadgetbridge. However, many users are reporting it's no longer seeing the OpenWeatherMap API key as valid. The app has not received any updates since August of 2020, and may be unmaintained. ## Clock Infos @@ -67,7 +75,9 @@ Adds: ## Settings -* Expiration timespan can be set after which the local weather data is considered as invalid +* Expiration time span can be set after which the local weather data is considered as invalid +* Automatic weather data request interval can be set (weather data are pushed to Bangle automatically, but this can help in cases when it fails) (requires Gadgetbridge v0.86+) +* Forecast weather data can be enabled (this requires other App to use the data, Weather App itself doesn't show the forecast data) (requires Gadgetbridge v0.86+) * Widget can be hidden * To change the units for wind speed, you can install the [`Languages app`](https://banglejs.com/apps/?id=locale) which allows you to choose the units used for speed/distance/temperature and so on. @@ -76,3 +86,42 @@ allows you to choose the units used for speed/distance/temperature and so on. * BTN2: opens the launcher (Bangle.js 1) * BTN: opens the launcher (Bangle.js 2) + +## Weather App API + +Weather App can provide weather and forecast data to other Apps. + +* Get weather data without forecast: + ```javascript + const weather = require("weather"); + weatherData = weather.getWeather(false); // or weather.get() + ``` + +* Get weather data with forecast (needs forecast enabled in settings): + ```javascript + const weather = require("weather"); + weatherData = weather.getWeather(true); + ``` + +* Fetch new data from Gadgetbridge: + ```javascript + const weather = require("weather"); + weather.updateWeather(false); // Can set to true if we want to ignore debounce + ``` + +* React to updated weather data: + ```javascript + const weather = require("weather"); + + // For weather data without forecast + weather.on("update", () => { + currentData = weather.getWeather(false); + // console.log(currentData); + } + + // For weather data with forecast + weather.on("update2", () => { + currentData = weather.getWeather(true); + // console.log(currentData); + } + ``` diff --git a/apps/weather/lib.js b/apps/weather/lib.js index 18f149c15..604e76fca 100644 --- a/apps/weather/lib.js +++ b/apps/weather/lib.js @@ -2,43 +2,147 @@ const storage = require("Storage"); const B2 = process.env.HWVERSION === 2; let expiryTimeout; -function scheduleExpiry(json) { +function scheduleExpiry() { if (expiryTimeout) { clearTimeout(expiryTimeout); expiryTimeout = undefined; } - let expiry = "expiry" in json ? json.expiry : 2 * 3600000; - if (json.weather && json.weather.time && expiry) { - let t = json.weather.time + expiry - Date.now(); - expiryTimeout = setTimeout(update, t); + + const json = storage.readJSON("weatherSetting.json") || {}; + const expiry = "expiry" in json ? json.expiry : 2 * 3600000; + expiryTimeout = setTimeout(() => { + storage.write("weather.json", { t: "weather", weather: undefined }); + storage.write("weather2.json", {}); + }, expiry); +} + +let refreshTimeout; +function scheduleRefresh() { + if (refreshTimeout) { + clearTimeout(refreshTimeout); + refreshTimeout = undefined; } + const json = storage.readJSON("weatherSetting.json") || {}; + const refresh = "refresh" in json ? json.refresh : 0; + if (refresh === 0) { + return; + } + refreshTimeout = setTimeout(() => { + updateWeather(false); + scheduleRefresh(); + }, refresh); +} + +const angles = ["n", "ne", "e", "se", "s", "sw", "w", "nw", "n"]; +function windDirection(angle) { + return angles[Math.floor((angle + 22.5) / 45)]; } function update(weatherEvent) { - let json = storage.readJSON("weather.json") || {}; - - if (weatherEvent) { - let weather = weatherEvent.clone(); - delete weather.t; - weather.time = Date.now(); - if (weather.wdir != null) { - // Convert numeric direction into human-readable label - let deg = weather.wdir; - while (deg < 0 || deg > 360) { - deg = (deg + 360) % 360; - } - weather.wrose = ["n", "ne", "e", "se", "s", "sw", "w", "nw", "n"][Math.floor((deg + 22.5) / 45)]; - } - - json.weather = weather; - } else { - delete json.weather; + if (weatherEvent == null) { + return; } - storage.write("weather.json", json); - scheduleExpiry(json); - exports.emit("update", json.weather); + if (weatherEvent.t !== "weather") { + return; + } + + const weatherSetting = storage.readJSON("weatherSetting.json") || {}; + + if (weatherEvent.v == null || weatherEvent.v === 1) { + let json = { "t": "weather", "weather": weatherEvent.clone() }; + let weather = json.weather; + + weather.time = Date.now(); + if (weather.wdir != null) { + weather.wrose = windDirection(weather.wdir); + } + + storage.write("weather.json", json); + exports.emit("update", weather); + + // Request forecast if supported by GadgetBridge and set in settings + if (weatherEvent.v != null && (weatherSetting.forecast ?? false)) { + updateWeather(true); + } + + // Either GadgetBridge doesn't support v2 and/or we don't need forecast, so we use this event for refresh scheduling + if (weatherEvent.v == null || (weatherSetting.forecast ?? false) === false) { + weatherSetting.time = Date.now(); + storage.write("weatherSetting.json", weatherSetting); + + scheduleExpiry(); + scheduleRefresh(); + } + } else if (weatherEvent.v === 2) { + weatherSetting.time = Date.now(); + storage.write("weatherSetting.json", weatherSetting); + + // Store binary data for parsing when requested by other apps later + let cloned = weatherEvent.clone(); + cloned.time = weatherSetting.time; + storage.write("weather2.json", cloned); + + // If we stored weather v1 recently, we don't need to parse non-forecast from v2 + // Otherwise we need to parse part of it to refresh weather1.json + let weather1 = storage.readJSON("weather.json") ?? {}; + if (weather1.weather == null || weather1.weather.time == null || Date.now() - weather1.weather.time >= 60 * 1000) { + weather1 = undefined; // Clear memory + const weather2 = decodeWeatherV2(weatherEvent, true, false); + + // Store simpler weather for apps that doesn't need forecast or backward compatibility + const weather = downgradeWeatherV2(weather2); + storage.write("weather.json", weather); + } + + cloned = undefined; // Clear memory + + scheduleExpiry(); + scheduleRefresh(); + + exports.emit("update2"); + } } + +function updateWeather(force) { + const settings = storage.readJSON("weatherSetting.json") || {}; + + let lastFetch = settings.time ?? 0; + + // More than 5 minutes + if (force || Date.now() - lastFetch >= 5 * 60 * 1000) { + Bluetooth.println(""); + Bluetooth.println(JSON.stringify({ t: "weather", v: 2, f: settings.forecast ?? false })); + } +} + +function getWeather(forecast) { + const weatherSetting = storage.readJSON("weatherSetting.json") || {}; + + if (forecast === false || !(weatherSetting.forecast ?? false)) { + // biome-ignore lint/complexity/useOptionalChain: not supported by Espruino + return (storage.readJSON("weather.json") ?? {}).weather; + } else { + const json2 = storage.readJSON("weather2.json"); + if (json2 == null) { + // Fallback in case no weather v2 exists, but we have weather v1 + // biome-ignore lint/complexity/useOptionalChain: not supported by Espruino + return (storage.readJSON("weather.json") ?? {}).weather; + } + + if (json2.d == null) { + // We have already parsed weather v2 + return json2; + } + + // We have weather v2, but not decoded + const decoded = decodeWeatherV2(json2, true, true); + storage.write("weather2.json", decoded); + + return decoded; + } +} + exports.update = update; const _GB = global.GB; global.GB = (event) => { @@ -46,11 +150,134 @@ global.GB = (event) => { if (_GB) setTimeout(_GB, 0, event); }; -exports.get = () => { - return (storage.readJSON("weather.json") || {}).weather; -}; +exports.updateWeather = updateWeather; +exports.get = () => getWeather(false); +exports.getWeather = getWeather; -scheduleExpiry(storage.readJSON("weather.json") || {}); +scheduleRefresh(); + +function decodeWeatherV2(jsonData, canDestroyArgument, parseForecast) { + let time; + if (jsonData != null && jsonData.time != null) { + time = Math.round(jsonData.time); + } else { + time = Math.round(Date.now()); + } + + // Check if we have data to parse + if (jsonData == null || jsonData.d == null) { + return { t: "weather2", v: 2, time: time }; + } + + // This needs to be kept in sync with GadgetBridge + const weatherCodes = [ + [200, 201, 202, 210, 211, 212, 221, 230, 231, 232], + [300, 301, 302, 310, 311, 312, 313, 314, 321], + [], + [500, 501, 502, 503, 504, 511, 520, 521, 522, 531], + [600, 601, 602, 611, 612, 613, 615, 616, 620, 621, 622], + [701, 711, 721, 731, 741, 751, 761, 762, 771, 781], + [800, 801, 802, 803, 804], + ]; + const mapWCode = (code) => { + return weatherCodes[code >> 5][code & 0x1f]; + }; + + const buffer = E.toArrayBuffer(atob(jsonData.d)); + const dataView = new DataView(buffer); + + if (canDestroyArgument) { + delete jsonData.d; // Free some memory if we can + } + + const weather = { + t: "weather2", + v: 2, + time: time, + temp: dataView.getInt8(0), + hi: dataView.getInt8(1), + lo: dataView.getInt8(2), + hum: dataView.getUint8(3), + rain: dataView.getUint8(4), + uv: dataView.getUint8(5) / 10, + code: mapWCode(dataView.getUint8(6)), + txt: jsonData.c, + wind: dataView.getUint16(7, true) / 100, + wdir: dataView.getUint16(9, true), + loc: jsonData.l, + dew: dataView.getInt8(11), + pres: dataView.getUint16(12, true) / 10, + cloud: dataView.getUint8(14), + visib: dataView.getUint32(15, true) / 10, + sunrise: dataView.getUint32(19, true), + sunset: dataView.getUint32(23, true), + moonrise: dataView.getUint32(27, true), + moonset: dataView.getUint32(31, true), + moonphase: dataView.getUint16(35, true), + feel: dataView.getInt8(37, true), + }; + weather.wrose = windDirection(weather.wdir); + + let offset = 38; + if (offset < buffer.length && parseForecast) { + // We have forecast data + + // Hourly forecast + const hoursAmount = dataView.getUint8(offset++); + + const timestampBase = dataView.getUint32(offset, true); + offset += 4; + + weather.hourfcast = { + time: [].map.call(new Uint8Array(buffer, offset, hoursAmount), (v) => timestampBase + (v / 10) * 3600), + temp: new Int8Array(buffer, offset + hoursAmount, hoursAmount), + code: [].map.call(new Uint8Array(buffer, offset + hoursAmount * 2, hoursAmount), mapWCode), + wind: new Uint8Array(buffer, offset + hoursAmount * 3, hoursAmount), + wdir: [].map.call(new Uint8Array(buffer, offset + hoursAmount * 4, hoursAmount), (v) => v * 2), + wrose: [].map.call(new Uint8Array(buffer, offset + hoursAmount * 4, hoursAmount), (v) => windDirection(v * 2)), + rain: new Uint8Array(buffer, offset + hoursAmount * 5, hoursAmount), + }; + offset += hoursAmount * 6; + + // Daily forecast + const daysAmount = dataView.getUint8(offset++); + + weather.dayfcast = { + hi: new Int8Array(buffer, offset, daysAmount), + lo: new Int8Array(buffer, offset + daysAmount, daysAmount), + code: [].map.call(new Uint8Array(buffer, offset + daysAmount * 2, daysAmount), mapWCode), + wind: new Uint8Array(buffer, offset + daysAmount * 3, daysAmount), + wdir: [].map.call(new Uint8Array(buffer, offset + daysAmount * 4, daysAmount), (v) => v * 2), + wrose: [].map.call(new Uint8Array(buffer, offset + daysAmount * 4, daysAmount), (v) => windDirection(v * 2)), + rain: new Uint8Array(buffer, offset + daysAmount * 5, daysAmount), + }; + } + + return weather; +} + +function downgradeWeatherV2(weather2) { + const json = { t: "weather" }; + + json.weather = { + v: 1, + time: weather2.time, + temp: weather2.temp + 273, + hi: weather2.hi + 273, + lo: weather2.lo + 273, + hum: weather2.hum, + rain: weather2.rain, + uv: weather2.uv, + code: weather2.code, + txt: weather2.txt, + wind: weather2.wind, + wdir: weather2.wdir, + wrose: weather2.wrose, + loc: weather2.loc, + }; + + return json; +} function getPalette(monochrome, ovr) { var palette; diff --git a/apps/weather/metadata.json b/apps/weather/metadata.json index 1781d7fc0..86d41b038 100644 --- a/apps/weather/metadata.json +++ b/apps/weather/metadata.json @@ -1,7 +1,7 @@ { "id": "weather", "name": "Weather", - "version": "0.29", + "version": "0.30", "description": "Show Gadgetbridge/iOS weather report", "icon": "icon.png", "screenshots": [{"url":"screenshot.png"}], @@ -16,5 +16,5 @@ {"name":"weather.settings.js","url":"settings.js"}, {"name":"weather.clkinfo.js","url":"clkinfo.js"} ], - "data": [{"name":"weather.json"}] + "data": [{"name":"weatherSetting.json"},{"name":"weather.json"},{"name":"weather2.json"}] } diff --git a/apps/weather/settings.js b/apps/weather/settings.js index 9f39c00df..f0b43b678 100644 --- a/apps/weather/settings.js +++ b/apps/weather/settings.js @@ -1,10 +1,24 @@ (back) => { const storage = require("Storage"); - let settings = storage.readJSON("weather.json", 1) || {}; + let settings = storage.readJSON("weatherSetting.json", 1); + + // Handle transition from old weather.json to new weatherSetting.json + if (settings == null) { + const settingsOld = storage.readJSON("weather.json", 1) || {}; + settings = { + expiry: "expiry" in settingsOld ? settingsOld.expiry : 2 * 3600000, + hide: "hide" in settingsOld ? settingsOld.hide : false, + }; + if (settingsOld != null && settingsOld.weather != null && settingsOld.weather.time != null) { + settings.time = settingsOld.weather.time; + } + } + function save(key, value) { settings[key] = value; - storage.write("weather.json", settings); + storage.write("weatherSetting.json", settings); } + E.showMenu({ "": { "title": "Weather" }, "Expiry": { @@ -19,6 +33,25 @@ }, onchange: (x) => save("expiry", x), }, + "Refresh Rate": { + value: "refresh" in settings ? settings.refresh : 0, + min: 0, + max: 24 * 3600000, + step: 15 * 60000, + format: (x) => { + if (x === 0) return "never"; + if (x < 3600000) return `${Math.floor(x / 60000)}m`; + if (x < 86400000) return `${Math.floor(x / 36000) / 100}h`; + }, + onchange: (x) => save("refresh", x), + }, + Forecast: { + value: "forecast" in settings ? settings.forecast : false, + onchange: () => { + settings.forecast = !settings.forecast; + save("forecast", settings.forecast); + }, + }, "Hide Widget": { value: "hide" in settings ? settings.hide : false, onchange: () => { @@ -26,6 +59,9 @@ save("hide", settings.hide); }, }, + "Force refresh": () => { + require("weather").updateWeather(true); + }, "< Back": back, }); }; diff --git a/apps/weather/widget.js b/apps/weather/widget.js index be0ca838f..7e4d2c6dd 100644 --- a/apps/weather/widget.js +++ b/apps/weather/widget.js @@ -6,7 +6,7 @@ let settings; function loadSettings() { - settings = require("Storage").readJSON("weather.json", 1) || {}; + settings = require("Storage").readJSON("weatherSetting.json", 1) || {}; } function setting(key) { From c58d5031576bdf892f8af7a9a23106d1afbbdd9c Mon Sep 17 00:00:00 2001 From: Rengyr Date: Sun, 29 Jun 2025 12:01:39 +0200 Subject: [PATCH 57/68] Weather: Add support for only extended weather data without forecast Android only support for now. With extended data we can parse feels like temperature with GB same as on iOS. --- apps/weather/README.md | 8 +++++--- apps/weather/lib.js | 37 +++++++++++++++++++++++++++---------- apps/weather/settings.js | 15 ++++++++++----- 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/apps/weather/README.md b/apps/weather/README.md index 9c692c011..66402b4bd 100644 --- a/apps/weather/README.md +++ b/apps/weather/README.md @@ -77,7 +77,7 @@ Adds: * Expiration time span can be set after which the local weather data is considered as invalid * Automatic weather data request interval can be set (weather data are pushed to Bangle automatically, but this can help in cases when it fails) (requires Gadgetbridge v0.86+) -* Forecast weather data can be enabled (this requires other App to use the data, Weather App itself doesn't show the forecast data) (requires Gadgetbridge v0.86+) +* Extended or forecast weather data can be enabled (this requires other App to use this data, Weather App itself doesn't show the forecast data) (requires Gadgetbridge v0.86+) * Widget can be hidden * To change the units for wind speed, you can install the [`Languages app`](https://banglejs.com/apps/?id=locale) which allows you to choose the units used for speed/distance/temperature and so on. @@ -89,15 +89,17 @@ allows you to choose the units used for speed/distance/temperature and so on. ## Weather App API +Note: except `getWeather()` and `get()` it is android only for now + Weather App can provide weather and forecast data to other Apps. -* Get weather data without forecast: +* Get weather data without forecast/extended: ```javascript const weather = require("weather"); weatherData = weather.getWeather(false); // or weather.get() ``` -* Get weather data with forecast (needs forecast enabled in settings): +* Get weather data with forecast/extended (needs forecast/extended enabled in settings): ```javascript const weather = require("weather"); weatherData = weather.getWeather(true); diff --git a/apps/weather/lib.js b/apps/weather/lib.js index 604e76fca..1f854fe0c 100644 --- a/apps/weather/lib.js +++ b/apps/weather/lib.js @@ -61,13 +61,13 @@ function update(weatherEvent) { storage.write("weather.json", json); exports.emit("update", weather); - // Request forecast if supported by GadgetBridge and set in settings - if (weatherEvent.v != null && (weatherSetting.forecast ?? false)) { + // Request extended/forecast if supported by Weather Provider and set in settings + if (weatherEvent.v != null && (weatherSetting.dataType ?? "basic") !== "basic") { updateWeather(true); } - // Either GadgetBridge doesn't support v2 and/or we don't need forecast, so we use this event for refresh scheduling - if (weatherEvent.v == null || (weatherSetting.forecast ?? false) === false) { + // Either Weather Provider doesn't support v2 and/or we don't need extended/forecast, so we use this event for refresh scheduling + if (weatherEvent.v == null || (weatherSetting.dataType ?? "basic") === "basic") { weatherSetting.time = Date.now(); storage.write("weatherSetting.json", weatherSetting); @@ -93,6 +93,12 @@ function update(weatherEvent) { // Store simpler weather for apps that doesn't need forecast or backward compatibility const weather = downgradeWeatherV2(weather2); storage.write("weather.json", weather); + exports.emit("update", weather); + } else if (weather1.weather != null && weather1.weather.feels === undefined) { + // Grab feels like temperature as we have it in v2 + weather1.weather.feels = decodeWeatherV2FeelsLike(weatherEvent); + storage.write("weather.json", weather); + exports.emit("update", weather); } cloned = undefined; // Clear memory @@ -111,15 +117,15 @@ function updateWeather(force) { // More than 5 minutes if (force || Date.now() - lastFetch >= 5 * 60 * 1000) { - Bluetooth.println(""); - Bluetooth.println(JSON.stringify({ t: "weather", v: 2, f: settings.forecast ?? false })); + Bluetooth.println(""); // This empty line is important for correct communication with Weather Provider + Bluetooth.println(JSON.stringify({ t: "weather", v: 2, f: settings.dataType === "forecast" })); } } -function getWeather(forecast) { +function getWeather(extended) { const weatherSetting = storage.readJSON("weatherSetting.json") || {}; - if (forecast === false || !(weatherSetting.forecast ?? false)) { + if (extended === false || (weatherSetting.dataType ?? "basic") === "basic") { // biome-ignore lint/complexity/useOptionalChain: not supported by Espruino return (storage.readJSON("weather.json") ?? {}).weather; } else { @@ -169,7 +175,7 @@ function decodeWeatherV2(jsonData, canDestroyArgument, parseForecast) { return { t: "weather2", v: 2, time: time }; } - // This needs to be kept in sync with GadgetBridge + // This needs to be kept in sync with Weather Provider const weatherCodes = [ [200, 201, 202, 210, 211, 212, 221, 230, 231, 232], [300, 301, 302, 310, 311, 312, 313, 314, 321], @@ -214,7 +220,7 @@ function decodeWeatherV2(jsonData, canDestroyArgument, parseForecast) { moonrise: dataView.getUint32(27, true), moonset: dataView.getUint32(31, true), moonphase: dataView.getUint16(35, true), - feel: dataView.getInt8(37, true), + feels: dataView.getInt8(37, true), }; weather.wrose = windDirection(weather.wdir); @@ -256,6 +262,16 @@ function decodeWeatherV2(jsonData, canDestroyArgument, parseForecast) { return weather; } +function decodeWeatherV2FeelsLike(jsonData) { + if (jsonData == null || jsonData.d == null) { + return undefined; + } + + const buffer = E.toArrayBuffer(atob(jsonData.d)); + + return new DataView(buffer).getInt8(37, true); +} + function downgradeWeatherV2(weather2) { const json = { t: "weather" }; @@ -274,6 +290,7 @@ function downgradeWeatherV2(weather2) { wdir: weather2.wdir, wrose: weather2.wrose, loc: weather2.loc, + feels: weather2.feels, }; return json; diff --git a/apps/weather/settings.js b/apps/weather/settings.js index f0b43b678..443ef898f 100644 --- a/apps/weather/settings.js +++ b/apps/weather/settings.js @@ -19,6 +19,8 @@ storage.write("weatherSetting.json", settings); } + const DATA_TYPE = ["basic", "extended", "forecast"]; + E.showMenu({ "": { "title": "Weather" }, "Expiry": { @@ -45,11 +47,14 @@ }, onchange: (x) => save("refresh", x), }, - Forecast: { - value: "forecast" in settings ? settings.forecast : false, - onchange: () => { - settings.forecast = !settings.forecast; - save("forecast", settings.forecast); + "Data type": { + value: DATA_TYPE.indexOf(settings.dataType ?? "basic"), + format: (v) => DATA_TYPE[v], + min: 0, + max: DATA_TYPE.length - 1, + onchange: (v) => { + settings.dataType = DATA_TYPE[v]; + save("dataType", settings.dataType); }, }, "Hide Widget": { From c94e53e6aab41ef98a2dd3a27a31a22954f19f55 Mon Sep 17 00:00:00 2001 From: Rengyr Date: Mon, 30 Jun 2025 19:48:46 +0200 Subject: [PATCH 58/68] Weather: Change android only settings to show only when Android App is installed --- apps/weather/settings.js | 47 ++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/apps/weather/settings.js b/apps/weather/settings.js index 443ef898f..263d6a18b 100644 --- a/apps/weather/settings.js +++ b/apps/weather/settings.js @@ -21,7 +21,7 @@ const DATA_TYPE = ["basic", "extended", "forecast"]; - E.showMenu({ + menuItems = { "": { "title": "Weather" }, "Expiry": { value: "expiry" in settings ? settings.expiry : 2 * 3600000, @@ -35,7 +35,26 @@ }, onchange: (x) => save("expiry", x), }, - "Refresh Rate": { + "Hide Widget": { + value: "hide" in settings ? settings.hide : false, + onchange: () => { + settings.hide = !settings.hide; + save("hide", settings.hide); + }, + }, + "< Back": back, + }; + + // Add android only settings + let android = false; + try { + if (require("android") != null) { + android = true; + } + } catch (_) {} + + if (android) { + menuItems["Refresh Rate"] = { value: "refresh" in settings ? settings.refresh : 0, min: 0, max: 24 * 3600000, @@ -46,8 +65,9 @@ if (x < 86400000) return `${Math.floor(x / 36000) / 100}h`; }, onchange: (x) => save("refresh", x), - }, - "Data type": { + }; + + menuItems["Data type"] = { value: DATA_TYPE.indexOf(settings.dataType ?? "basic"), format: (v) => DATA_TYPE[v], min: 0, @@ -56,17 +76,12 @@ settings.dataType = DATA_TYPE[v]; save("dataType", settings.dataType); }, - }, - "Hide Widget": { - value: "hide" in settings ? settings.hide : false, - onchange: () => { - settings.hide = !settings.hide; - save("hide", settings.hide); - }, - }, - "Force refresh": () => { + }; + + menuItems["Force refresh"] = () => { require("weather").updateWeather(true); - }, - "< Back": back, - }); + }; + } + + E.showMenu(menuItems); }; From 6f9b5ad0b4bd348a17a243982ef681aabb606e62 Mon Sep 17 00:00:00 2001 From: Rengyr Date: Fri, 15 Aug 2025 16:37:00 +0200 Subject: [PATCH 59/68] Weather: Fix linting warnings --- apps/weather/lib.js | 4 ++-- apps/weather/settings.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/weather/lib.js b/apps/weather/lib.js index 1f854fe0c..23bc2323c 100644 --- a/apps/weather/lib.js +++ b/apps/weather/lib.js @@ -97,8 +97,8 @@ function update(weatherEvent) { } else if (weather1.weather != null && weather1.weather.feels === undefined) { // Grab feels like temperature as we have it in v2 weather1.weather.feels = decodeWeatherV2FeelsLike(weatherEvent); - storage.write("weather.json", weather); - exports.emit("update", weather); + storage.write("weather.json", weather1); + exports.emit("update", weather1); } cloned = undefined; // Clear memory diff --git a/apps/weather/settings.js b/apps/weather/settings.js index 263d6a18b..07b13c73a 100644 --- a/apps/weather/settings.js +++ b/apps/weather/settings.js @@ -1,4 +1,4 @@ -(back) => { +(function (back) { const storage = require("Storage"); let settings = storage.readJSON("weatherSetting.json", 1); @@ -21,7 +21,7 @@ const DATA_TYPE = ["basic", "extended", "forecast"]; - menuItems = { + let menuItems = { "": { "title": "Weather" }, "Expiry": { value: "expiry" in settings ? settings.expiry : 2 * 3600000, @@ -84,4 +84,4 @@ } E.showMenu(menuItems); -}; +}) From 06307f9dd83288cd551e4dd03ab3896af012f8ee Mon Sep 17 00:00:00 2001 From: Trippnology Date: Sat, 16 Aug 2025 20:36:55 +0100 Subject: [PATCH 60/68] Add settings menu and make widgets optional --- apps/deko/ChangeLog | 3 +- apps/deko/README.md | 12 +++-- apps/deko/app.js | 69 ++++++++++++++++++---------- apps/deko/metadata.json | 14 ++++-- apps/deko/screenshot-no-widgets.png | Bin 0 -> 2510 bytes apps/deko/settings.js | 32 +++++++++++++ 6 files changed, 97 insertions(+), 33 deletions(-) create mode 100644 apps/deko/screenshot-no-widgets.png create mode 100644 apps/deko/settings.js diff --git a/apps/deko/ChangeLog b/apps/deko/ChangeLog index 9db0e26c5..478fb3b26 100644 --- a/apps/deko/ChangeLog +++ b/apps/deko/ChangeLog @@ -1 +1,2 @@ -0.01: first release +0.01: First release +0.02: Add setting to make widgets optional \ No newline at end of file diff --git a/apps/deko/README.md b/apps/deko/README.md index 91e83bd23..bc3318774 100644 --- a/apps/deko/README.md +++ b/apps/deko/README.md @@ -1,10 +1,14 @@ # Deko Clock -A simple clock with an Art Deko font +A simple clock with an Art Deko font. -The font was obtained from https://dafonttop.com/building.font and is free for personal use +Widgets can be configured to be always on, always off, or only shown when unlocked. +The font was obtained from https://dafonttop.com/building.font and is free for personal use. -![](screenshot.png) +![](screenshot.png) ![](screenshot-no-widgets.png) -Written by: [Hugh Barney](https://github.com/hughbarney) For support and discussion please post in the [Bangle JS Forum](http://forum.espruino.com/microcosms/1424/) +Written by: [Hugh Barney](https://github.com/hughbarney) +Optional widgets settings added by [Trippnology](https://github.com/trippnology) + +For support and discussion please post in the [Bangle JS Forum](http://forum.espruino.com/microcosms/1424/) diff --git a/apps/deko/app.js b/apps/deko/app.js index 8ae2c1d31..a22e10d4a 100644 --- a/apps/deko/app.js +++ b/apps/deko/app.js @@ -1,15 +1,26 @@ -Graphics.prototype.setFontBuildingTypeface = function(scale) { +const widget_utils = require('widget_utils'); + +Graphics.prototype.setFontBuildingTypeface = function (scale) { // Actual height 100 (102 - 3) this.setFontCustom( - atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAH//gAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAD////gAAAAAAAAAAAAAAD/////gAAAAAAAAAAAAAB//////gAAAAAAAAAAAAB///////gAAAAAAAAAAAB////////gAAAAAAAAAAA////////4AAAAAAAAAAA////////4AAAAAAAAAAAf///////8AAAAAAAAAAAf///////8AAAAAAAAAAAf///////8AAAAAAAAAAAP///////+AAAAAAAAAAAP///////+AAAAAAAAAAAP///////+AAAAAAAAAAAH////////AAAAAAAAAAAAH///////AAAAAAAAAAAAAH//////AAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAH////gAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////AAAAAAAD/////////////wAAAAAAP/////////////4AAAAAAP/////////////8AAAAAAf/////////////+AAAAAAf/////////////+AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAP/////////////8AAAAAAH/////////////4AAAAAAD/////////////wAAAAAAA/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAf4AAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAH/4AAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/wAAf///////+AAAAAAB//wAB////////+AAAAAAH//wAD////////+AAAAAAH//wAH////////+AAAAAAP//wAP////////+AAAAAAf//wAP////////+AAAAAAf//wAP////////+AAAAAAf//wAf////////+AAAAAAf//wAf////////+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAP/////8AAAA///+AAAAAAH/////8AAAA///+AAAAAAH/////8AAAA///+AAAAAAB/////8AAAA///+AAAAAAAf////8AAAA///+AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAf//+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf8AAAAAAAAAAAP+AAAAAAf8AAAAAAAAAAAP+AAAAAAf8AAAAAAAAAAAP+AAAAAAf8AAAAEAAAAAAP+AAAAAAf8AAAB8AAAAAAP+AAAAAAf8AAAP8AAAAAAP+AAAAAAf8AAD/8AAAAAAP+AAAAAAf8AA//8AAAAAAP+AAAAAAf8AP//8AAAAAAP+AAAAAAf8B///8AAAAAAP+AAAAAAf8f///8AAAAAAP+AAAAAAf/////8AAAAAAP+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf///8P////////+AAAAAAf///gH////////+AAAAAAf//4AD////////+AAAAAAf/+AAB////////+AAAAAAf/gAAA////////+AAAAAAfwAAAAD///////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAH//gAAAAAAAAAAAAAAAAA///gAAAAAAAAAAAAAAAAH///gAAAAAAAAAAAAAAAAf///gAAAAAAAAAAAAAAAD////gAAAAAAAAAAAAAAAf////gAAAAAAAAAAAAAAB/////gAAAAAAAAAAAAAAP///z/gAAAAAAAAAAAAAB///+D/gAAAAAAAAAAAAAH///wD/gAAAAAAAAAAAAA///+AD/gAAAAAAAAAAAAH///wAD/gAAAAAAAAAAAAf//+AAD/gAAAAAAAAAAAD///wAAD/gAAAAAAAAAAAf///AAAD/gAAAAAAAAAAB///4AAAD/gAAAAAAAAAAP///AAAAD/gAAAAAAAAAB///4AAAAD/gAAAAAAAAAH///AAAAAD/gAAAAAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+AAAAAAAf/////8AAAA///wAAAAAAf/////8AAAA///4AAAAAAf/////8AAAA///8AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA////AAAAAAf/////8AAAA////AAAAAAf/////8AAAA////AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf//wAf8AAAAAAH/AAAAAAf//wAf/////////AAAAAAf//wAf/////////AAAAAAf//wAf/////////AAAAAAf//wAf////////+AAAAAAf//wAP////////+AAAAAAf//wAP////////8AAAAAAf//wAH////////8AAAAAAf//wAD////////wAAAAAAf//wAA////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////AAAAAAAD/////////////wAAAAAAP/////////////4AAAAAAP/////////////8AAAAAAf/////////////+AAAAAAf/////////////+AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA///wAf8AAAAAAH/AAAAAA///wAf/////////AAAAAA///wAf/////////AAAAAA///wAf/////////AAAAAAf//wAf/////////AAAAAAf//wAP////////+AAAAAAP//wAP////////+AAAAAAH//wAH////////8AAAAAAB//wAD////////4AAAAAAAf/wAB////////wAAAAAAAAAAAAf///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAeAAAAAAf//wAAAAAAAAAP+AAAAAAf//wAAAAAAAAD/+AAAAAAf//wAAAAAAAA//+AAAAAAf//wAAAAAAAf//+AAAAAAf//wAAAAAAH///+AAAAAAf//wAAAAAD////+AAAAAAf8AAAAAAA/////+AAAAAAf8AAAAAAP/////+AAAAAAf8AAAAAH//////8AAAAAAf8AAAAB///////AAAAAAAf8AAAAf//////wAAAAAAAf8AAAP//////4AAAAAAAAf8AAD//////+AAAAAAAAAf8AB///////gAAAAAAAAAf8Af//////4AAAAAAAAAAf8H//////+AAAAAAAAAAAf////////gAAAAAAAAAAAf///////wAAAAAAAAAAAAf//////8AAAAAAAAAAAAAf//////AAAAAAAAAAAAAAf/////wAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAf//4AAAAAAAAAAAAAAAAAf/+AAAAAAAAAAAAAAAAAAf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///gf//////+AAAAAAAB////4////////wAAAAAAH////9////////4AAAAAAP/////////////8AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAA///////////////AAAAAA///////////////AAAAAA//////4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAP/////////////+AAAAAAP/////////////8AAAAAAH////9////////4AAAAAAB////4////////gAAAAAAAH///gP//////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////+AAAAAAAAAAAAD////////gAD//AAAAAAAP////////wAD//wAAAAAAP////////4AD//4AAAAAAf////////8AD//8AAAAAAf////////8AD//+AAAAAA/////////+AD//+AAAAAA/////////+AD///AAAAAA/////////+AD///AAAAAA/4AAAAAAP+AD///AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAP/////////////8AAAAAAP/////////////4AAAAAAD/////////////wAAAAAAA/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='), + atob( + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAH//gAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAD////gAAAAAAAAAAAAAAD/////gAAAAAAAAAAAAAB//////gAAAAAAAAAAAAB///////gAAAAAAAAAAAB////////gAAAAAAAAAAA////////4AAAAAAAAAAA////////4AAAAAAAAAAAf///////8AAAAAAAAAAAf///////8AAAAAAAAAAAf///////8AAAAAAAAAAAP///////+AAAAAAAAAAAP///////+AAAAAAAAAAAP///////+AAAAAAAAAAAH////////AAAAAAAAAAAAH///////AAAAAAAAAAAAAH//////AAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAH////gAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////AAAAAAAD/////////////wAAAAAAP/////////////4AAAAAAP/////////////8AAAAAAf/////////////+AAAAAAf/////////////+AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA/4AAAAAAAAAAAH/AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAP/////////////8AAAAAAH/////////////4AAAAAAD/////////////wAAAAAAA/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAf4AAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAH/4AAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/wAAf///////+AAAAAAB//wAB////////+AAAAAAH//wAD////////+AAAAAAH//wAH////////+AAAAAAP//wAP////////+AAAAAAf//wAP////////+AAAAAAf//wAP////////+AAAAAAf//wAf////////+AAAAAAf//wAf////////+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf8AAAf8AAAAAAP+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAP/////8AAAA///+AAAAAAH/////8AAAA///+AAAAAAH/////8AAAA///+AAAAAAB/////8AAAA///+AAAAAAAf////8AAAA///+AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAf//+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf//wAAAAAAA///+AAAAAAf8AAAAAAAAAAAP+AAAAAAf8AAAAAAAAAAAP+AAAAAAf8AAAAAAAAAAAP+AAAAAAf8AAAAEAAAAAAP+AAAAAAf8AAAB8AAAAAAP+AAAAAAf8AAAP8AAAAAAP+AAAAAAf8AAD/8AAAAAAP+AAAAAAf8AA//8AAAAAAP+AAAAAAf8AP//8AAAAAAP+AAAAAAf8B///8AAAAAAP+AAAAAAf8f///8AAAAAAP+AAAAAAf/////8AAAAAAP+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf///8P////////+AAAAAAf///gH////////+AAAAAAf//4AD////////+AAAAAAf/+AAB////////+AAAAAAf/gAAA////////+AAAAAAfwAAAAD///////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAH//gAAAAAAAAAAAAAAAAA///gAAAAAAAAAAAAAAAAH///gAAAAAAAAAAAAAAAAf///gAAAAAAAAAAAAAAAD////gAAAAAAAAAAAAAAAf////gAAAAAAAAAAAAAAB/////gAAAAAAAAAAAAAAP///z/gAAAAAAAAAAAAAB///+D/gAAAAAAAAAAAAAH///wD/gAAAAAAAAAAAAA///+AD/gAAAAAAAAAAAAH///wAD/gAAAAAAAAAAAAf//+AAD/gAAAAAAAAAAAD///wAAD/gAAAAAAAAAAAf///AAAD/gAAAAAAAAAAB///4AAAD/gAAAAAAAAAAP///AAAAD/gAAAAAAAAAB///4AAAAD/gAAAAAAAAAH///AAAAAD/gAAAAAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+AAAAAAAf/////8AAAA///wAAAAAAf/////8AAAA///4AAAAAAf/////8AAAA///8AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA///+AAAAAAf/////8AAAA////AAAAAAf/////8AAAA////AAAAAAf/////8AAAA////AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf8AAAf8AAAAAAH/AAAAAAf//wAf8AAAAAAH/AAAAAAf//wAf/////////AAAAAAf//wAf/////////AAAAAAf//wAf/////////AAAAAAf//wAf////////+AAAAAAf//wAP////////+AAAAAAf//wAP////////8AAAAAAf//wAH////////8AAAAAAf//wAD////////wAAAAAAf//wAA////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////AAAAAAAD/////////////wAAAAAAP/////////////4AAAAAAP/////////////8AAAAAAf/////////////+AAAAAAf/////////////+AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA/4AAAf8AAAAAAH/AAAAAA///wAf8AAAAAAH/AAAAAA///wAf/////////AAAAAA///wAf/////////AAAAAA///wAf/////////AAAAAAf//wAf/////////AAAAAAf//wAP////////+AAAAAAP//wAP////////+AAAAAAH//wAH////////8AAAAAAB//wAD////////4AAAAAAAf/wAB////////wAAAAAAAAAAAAf///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAeAAAAAAf//wAAAAAAAAAP+AAAAAAf//wAAAAAAAAD/+AAAAAAf//wAAAAAAAA//+AAAAAAf//wAAAAAAAf//+AAAAAAf//wAAAAAAH///+AAAAAAf//wAAAAAD////+AAAAAAf8AAAAAAA/////+AAAAAAf8AAAAAAP/////+AAAAAAf8AAAAAH//////8AAAAAAf8AAAAB///////AAAAAAAf8AAAAf//////wAAAAAAAf8AAAP//////4AAAAAAAAf8AAD//////+AAAAAAAAAf8AB///////gAAAAAAAAAf8Af//////4AAAAAAAAAAf8H//////+AAAAAAAAAAAf////////gAAAAAAAAAAAf///////wAAAAAAAAAAAAf//////8AAAAAAAAAAAAAf//////AAAAAAAAAAAAAAf/////wAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAf//4AAAAAAAAAAAAAAAAAf/+AAAAAAAAAAAAAAAAAAf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///gf//////+AAAAAAAB////4////////wAAAAAAH////9////////4AAAAAAP/////////////8AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAf/////////////+AAAAAA///////////////AAAAAA///////////////AAAAAA//////4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA/4AAA/4AAAAAAH/AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAP/////////////+AAAAAAP/////////////8AAAAAAH////9////////4AAAAAAB////4////////gAAAAAAAH///gP//////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////+AAAAAAAAAAAAD////////gAD//AAAAAAAP////////wAD//wAAAAAAP////////4AD//4AAAAAAf////////8AD//8AAAAAAf////////8AD//+AAAAAA/////////+AD//+AAAAAA/////////+AD///AAAAAA/////////+AD///AAAAAA/4AAAAAAP+AD///AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA/4AAAAAAP+AAAH/AAAAAA///////////////AAAAAA///////////////AAAAAA///////////////AAAAAAf/////////////+AAAAAAf/////////////+AAAAAAP/////////////8AAAAAAP/////////////4AAAAAAD/////////////wAAAAAAA/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAD/wAAAf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=', + ), 46, - atob("FCYpGigoKigoJykoFA=="), - 126+(scale<<8)+(1<<16) + atob('FCYpGigoKigoJykoFA=='), + 126 + (scale << 8) + (1 << 16), ); return this; }; - +const settingsFile = 'deko.settings.json'; +const defaultSettings = { + loadWidgets: 1, // Always on, same as before settings added +}; +const settings = Object.assign( + defaultSettings, + require('Storage').readJSON(settingsFile, 1) || {}, +); // timeout used to update every minute var drawTimeout; @@ -17,29 +28,31 @@ var drawTimeout; // schedule a draw for the next minute function queueDraw() { if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = setTimeout(function() { - drawTimeout = undefined; - draw(); - }, 60000 - (Date.now() % 60000)); + drawTimeout = setTimeout( + function () { + drawTimeout = undefined; + draw(); + }, + 60000 - (Date.now() % 60000), + ); } - function draw() { - var x = g.getWidth()/2; - var y = g.getHeight()/2; + var x = g.getWidth() / 2; + var y = g.getHeight() / 2; g.reset(); var date = new Date(); - var timeStr = require("locale").time(date,1); - var dateStr = require("locale").date(date).toUpperCase(); + var timeStr = require('locale').time(date, 1); + var dateStr = require('locale').date(date).toUpperCase(); // draw time - g.setFontAlign(0,0).setFont("BuildingTypeface"); - g.clearRect(0, 24, g.getWidth(), y+35); // clear the background - g.drawString(timeStr,x,y); + g.setFontAlign(0, 0).setFont('BuildingTypeface'); + g.clearRect(0, 24, g.getWidth(), y + 35); // clear the background + g.drawString(timeStr, x, y); // draw date y += 60; - g.setFontAlign(0,0).setFont("6x8",2); - g.clearRect(0,y-8,g.getWidth(),y+8); // clear the background - g.drawString(dateStr,x,y); + g.setFontAlign(0, 0).setFont('6x8', 2); + g.clearRect(0, y - 8, g.getWidth(), y + 8); // clear the background + g.drawString(dateStr, x, y); // queue draw in one minute queueDraw(); } @@ -49,16 +62,26 @@ g.clear(); // draw immediately at first, queue update draw(); // Stop updates when LCD is off, restart when on -Bangle.on('lcdPower',on=>{ +Bangle.on('lcdPower', (on) => { if (on) { draw(); // draw immediately, queue redraw - } else { // stop draw timer + } else { + // stop draw timer if (drawTimeout) clearTimeout(drawTimeout); drawTimeout = undefined; } }); +// Handle optional widgets when the lock state changes +Bangle.on('lock', (locked, reason) => { + if (settings.loadWidgets === 0 || (settings.loadWidgets === 2 && locked)) { + widget_utils.hide(); + } + if (settings.loadWidgets === 1 || (settings.loadWidgets === 2 && !locked)) { + widget_utils.show(); + } +}); // Show launcher when middle button pressed -Bangle.setUI("clock"); +Bangle.setUI('clock'); // Load widgets Bangle.loadWidgets(); Bangle.drawWidgets(); diff --git a/apps/deko/metadata.json b/apps/deko/metadata.json index 9bdd15429..de05f2558 100644 --- a/apps/deko/metadata.json +++ b/apps/deko/metadata.json @@ -1,16 +1,20 @@ { "id": "deko", "name": "Deko Clock", - "version": "0.01", + "version": "0.02", "description": "Clock with Art Deko font", "readme": "README.md", "icon": "app.png", - "screenshots": [{"url":"screenshot.png"}], + "screenshots": [ + { "url": "screenshot.png" }, + { "url": "screenshot-no-widgets.png" } + ], "type": "clock", "tags": "clock", - "supports": ["BANGLEJS","BANGLEJS2"], + "supports": ["BANGLEJS", "BANGLEJS2"], "storage": [ - {"name":"deko.app.js","url":"app.js"}, - {"name":"deko.img","url":"app-icon.js","evaluate":true} + { "name": "deko.app.js", "url": "app.js" }, + { "name": "deko.settings.js", "url": "settings.js" }, + { "name": "deko.img", "url": "app-icon.js", "evaluate": true } ] } diff --git a/apps/deko/screenshot-no-widgets.png b/apps/deko/screenshot-no-widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..949a9b9642cbc70c40ec4f530101f4a371499787 GIT binary patch literal 2510 zcmcgu`#aMO8{Yw&wPcK_Ih2La3JD{JHQSWvU^yS2)Z47Ea>#0BE7c|xN{-J$M-ydE z<@D`sN+^woNHm8;lV*q!9?zffUe9&CKiv1{x<2>khx@ud_jTVl?|>(HEn))#1Olyf zrw|XV;?sWuuCkiTsz-uX0UUjZOaPU>$BctOs$6%Xt9N|xk9_fwVLZ}paK-uD$9xHI6@|?5pzsl}3P;ryovM0}YJ{_kOf{G43i! zkb!>jR?mdWZ|QGe^Zi2d=V+x}_(vw*KdV3?;TW6iInK3_)JY>|X@>@rSm_DP+kX?$ z`Z@*4jLWCz^j`jap87tURn`$RbB&${iO1S+K83}BkDcX~wdDRK8SSFx;9&7PEsqY+ zCUm*H((HM0z0Ws~>3aWs2pk6i%h6v?tx>U zPyN>AZjP{i#_wM&&U0^YIJqd>*~KwW=XnTv!q63zKHBH82A{7U@_xU705)%mOrvZf z4Urh>QsPElM$n#BJ{M$Q=84F;l2~GL^H?RdsU&H75X!5JQF#xyGY|BJmy^-M;sL>s zhD(u+dBs05RiQp;xMkv$RfAlG79)b?p>M z>*O^}R*?O_PVdgq5pM=KwIY!KfkzNV8}j8_{GDpYfjbfT9NR38b!bPWQVuF~Y2W!U5`|vn;9lO3v;d;7oy-Dw z8&|j1185`S=qEkeOS56IuO>$Ai~kQYsX0?`J`-ePoFNldmR(95QJ6)D0tyq{=KAH^ zMB*KEHA}qzv>AnxTGpY>%w+nPHvb`2V@2t2wX*C}bCh<>En3GaxlBmox1-t-dt>@IuZ&)5s|!Pv-y$NgqZWZa6DVr+ zJLh9W9`Pfu7lL_S(=HX}YJeLA*`PIyF~I8*)-R zaP>uHZdMlG=7d`t>Xkvikg$b1jc(*s}arf-8DS=!|60)G51-iqzENa!qX;>Fc z9r;c@P0r;Qi2!6^5OG6PMRWUPD+XC?tr@-RVHK#|czNt1ofW$&yv}FT!#OuOW;VM{ zsYfkYQ2Sw>*b-%Jo)JI>iRYkY(E#uWEq>eq7y*XZ|*h{nNgP62VD z^dncm)jGPvTNyizQ+%?cc10DZjRxLsT|EG*r@LpqAMJ>zx*3cE-eKLXy?IqC^9U{( zS%x!Cu??8WAE@*GTD}`F-=xp6ExPu4Wh3SaE8<+(0e8Hn zAQsSnB~8!;s-w{S3r6uX3%$0t1&vJ1xI9Wq9YaJjQ*i)ET1o?1*l+ya$VN$c-D^~3I zIOIeM7H^m~P|Pa2kQpm6{Gv+xnm0x7sX4$MZRKo?%??>ci}R5wmJBQ{QgH} z9lRFU?)>g_RMUD%^UIOhW|>ergJNc61bKCGoo>11NBlxzz)Za6pD~{(?U9NOd_*UQ z%t1?j-q+6$SI*Mc{W$JY0ByxH3P^j#fyb-fVg8jN|AWmd2759;(<4n2JXaqykh_~F Jv6K*c>2Li~qwN3y literal 0 HcmV?d00001 diff --git a/apps/deko/settings.js b/apps/deko/settings.js new file mode 100644 index 000000000..badcd4bca --- /dev/null +++ b/apps/deko/settings.js @@ -0,0 +1,32 @@ +(function (back) { + const storage = require('Storage'); + const settingsFile = 'deko.settings.json'; + const defaultSettings = { + loadWidgets: 1, + }; + const settings = Object.assign( + defaultSettings, + storage.readJSON(settingsFile, 1) || {}, + ); + const loadWidgetsChoices = ['No', 'Yes', 'Unlocked']; + + const save = () => storage.write(settingsFile, settings); + + const appMenu = { + '': { title: 'Deko Clock' }, + '< Back': back, + 'Load widgets?': { + value: settings.loadWidgets, + min: 0, + max: 2, + step: 1, + format: (v) => loadWidgetsChoices[v], + onchange: (v) => { + settings.loadWidgets = v; + save(); + }, + }, + }; + + E.showMenu(appMenu); +}); From 6e002702875e2ef32afb05f324a42a9a0126f5ed Mon Sep 17 00:00:00 2001 From: Rengyr Date: Sat, 16 Aug 2025 22:36:47 +0200 Subject: [PATCH 61/68] Weather: Fix 'feels like' temp being in wrong units --- apps/weather/lib.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/weather/lib.js b/apps/weather/lib.js index 23bc2323c..81ab852fc 100644 --- a/apps/weather/lib.js +++ b/apps/weather/lib.js @@ -96,7 +96,7 @@ function update(weatherEvent) { exports.emit("update", weather); } else if (weather1.weather != null && weather1.weather.feels === undefined) { // Grab feels like temperature as we have it in v2 - weather1.weather.feels = decodeWeatherV2FeelsLike(weatherEvent); + weather1.weather.feels = decodeWeatherV2FeelsLike(weatherEvent) + 273; storage.write("weather.json", weather1); exports.emit("update", weather1); } @@ -290,7 +290,7 @@ function downgradeWeatherV2(weather2) { wdir: weather2.wdir, wrose: weather2.wrose, loc: weather2.loc, - feels: weather2.feels, + feels: weather2.feels + 273, }; return json; From a0846f732eb799797eac8315e3408032d8bc261e Mon Sep 17 00:00:00 2001 From: Trippnology Date: Sat, 16 Aug 2025 22:09:18 +0100 Subject: [PATCH 62/68] Remove trailing semicolon --- apps/deko/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/deko/settings.js b/apps/deko/settings.js index badcd4bca..6c4bd24b5 100644 --- a/apps/deko/settings.js +++ b/apps/deko/settings.js @@ -29,4 +29,4 @@ }; E.showMenu(appMenu); -}); +}) From 8978d8e0d4c5a546aaacbd5eccd41c479ffc4661 Mon Sep 17 00:00:00 2001 From: Trippnology Date: Sat, 16 Aug 2025 22:10:33 +0100 Subject: [PATCH 63/68] Add data entry --- apps/deko/metadata.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/deko/metadata.json b/apps/deko/metadata.json index de05f2558..46dd2c73d 100644 --- a/apps/deko/metadata.json +++ b/apps/deko/metadata.json @@ -16,5 +16,6 @@ { "name": "deko.app.js", "url": "app.js" }, { "name": "deko.settings.js", "url": "settings.js" }, { "name": "deko.img", "url": "app-icon.js", "evaluate": true } - ] + ], + "data": [{ "name": "deko.settings.json" }] } From 26b98e2f6086fc5c4d1705a60e79067d90193416 Mon Sep 17 00:00:00 2001 From: Trippnology Date: Sun, 17 Aug 2025 11:56:09 +0100 Subject: [PATCH 64/68] Ensure widgets are correctly hidden on first boot or when coming from the launcher --- apps/deko/app.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/deko/app.js b/apps/deko/app.js index a22e10d4a..7d8a5766e 100644 --- a/apps/deko/app.js +++ b/apps/deko/app.js @@ -84,4 +84,9 @@ Bangle.on('lock', (locked, reason) => { Bangle.setUI('clock'); // Load widgets Bangle.loadWidgets(); -Bangle.drawWidgets(); +// Ensure widgets are correctly hidden on first boot or when coming from the launcher +if (settings.loadWidgets === 0) { + widget_utils.hide(); +} else { + Bangle.drawWidgets(); +} From 4d42694c4d360e3edc975d981488cc78b59eb0db Mon Sep 17 00:00:00 2001 From: Trippnology Date: Sun, 17 Aug 2025 12:26:26 +0100 Subject: [PATCH 65/68] Handle autoreset edge case --- apps/deko/app.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/deko/app.js b/apps/deko/app.js index 7d8a5766e..f74a7c7ab 100644 --- a/apps/deko/app.js +++ b/apps/deko/app.js @@ -84,8 +84,11 @@ Bangle.on('lock', (locked, reason) => { Bangle.setUI('clock'); // Load widgets Bangle.loadWidgets(); -// Ensure widgets are correctly hidden on first boot or when coming from the launcher -if (settings.loadWidgets === 0) { +// Ensure widgets are correctly hidden on first boot, when coming from the launcher, or via autoreset +if ( + settings.loadWidgets === 0 || + (settings.loadWidgets === 2 && Bangle.isLocked()) +) { widget_utils.hide(); } else { Bangle.drawWidgets(); From c138ba003d7de1412f9f648e7bf07c79c673d2fa Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Sun, 17 Aug 2025 18:35:13 +0100 Subject: [PATCH 66/68] smartbatt: remove whitespace --- apps/smartbatt/clkinfo.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js index 05f52cf64..aec3c735d 100644 --- a/apps/smartbatt/clkinfo.js +++ b/apps/smartbatt/clkinfo.js @@ -3,7 +3,7 @@ var batt; //updates values - + function getHrsFormatted(hrsLeft){ var daysLeft = hrsLeft / 24; @@ -16,7 +16,7 @@ return Math.round(hrsLeft)+"h"; } } - + //draws battery icon and fill bar function drawBatt(){ batt =E.getBattery(); @@ -37,7 +37,7 @@ items: [ { name : "BattStatus", get : () => { - + drawBatt(); var data=require("smartbatt").get(); From c7ae9864468a9563490414b29245360b7a618609 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Sun, 17 Aug 2025 18:35:27 +0100 Subject: [PATCH 67/68] smartbatt: use object-shorthand --- apps/smartbatt/clkinfo.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js index aec3c735d..e07646f87 100644 --- a/apps/smartbatt/clkinfo.js +++ b/apps/smartbatt/clkinfo.js @@ -43,10 +43,10 @@ //update clock info according to batt state if (Bangle.isCharging()) { - return { text: batt+"%", img : img}; + return { text: batt+"%", img }; } else{ - return { text: getHrsFormatted(data.hrsLeft), img : img}; + return { text: getHrsFormatted(data.hrsLeft), img }; } }, @@ -66,7 +66,7 @@ get : () => { drawBatt() var data=require("smartbatt").get(); - return { text: data.avgDrainage.toFixed(2)+"/h", img : img}; + return { text: data.avgDrainage.toFixed(2)+"/h", img }; }, show : function() { From 175e2acaa71ffe9ada6dc44ae8c0efde98f3701d Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Sun, 17 Aug 2025 18:35:51 +0100 Subject: [PATCH 68/68] smartbatt: remove `img` global variable --- apps/smartbatt/clkinfo.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/smartbatt/clkinfo.js b/apps/smartbatt/clkinfo.js index e07646f87..9e122be20 100644 --- a/apps/smartbatt/clkinfo.js +++ b/apps/smartbatt/clkinfo.js @@ -1,5 +1,4 @@ (function() { - var img; var batt; //updates values @@ -38,7 +37,7 @@ { name : "BattStatus", get : () => { - drawBatt(); + var img = drawBatt(); var data=require("smartbatt").get(); //update clock info according to batt state @@ -64,7 +63,7 @@ }, { name : "AvgDrainage", get : () => { - drawBatt() + var img = drawBatt() var data=require("smartbatt").get(); return { text: data.avgDrainage.toFixed(2)+"/h", img }; },

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