1
0
Fork 0

Merge pull request #2762 from halemmerich/owmweather

owmweather - Fix updating weather too often
master
Gordon Williams 2023-05-18 08:35:34 +01:00 committed by GitHub
commit f49ca11111
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 7 deletions

View File

@ -1,2 +1,3 @@
0.01: New App! 0.01: New App!
0.02: Do first update request 5s after boot to boot up faster 0.02: Do first update request 5s after boot to boot up faster
0.03: Fix updating weather too often

View File

@ -1,19 +1,21 @@
{ {
let waiting = false; let waiting = false;
let settings = require("Storage").readJSON("owmweather.json", 1) || { let settings = Object.assign(
enabled: false require('Storage').readJSON("owmweather.default.json", true) || {},
}; require('Storage').readJSON("owmweather.json", true) || {}
);
let completion = function(){ let completion = function(){
waiting = false; waiting = false;
settings.updated = Date.now();
require('Storage').writeJSON("owmweather.json", settings);
} }
if (settings.enabled) { if (settings.enabled) {
let weather = require("Storage").readJSON('weather.json') || {}; let weather = require("Storage").readJSON('weather.json') || {};
let lastUpdate;
if (weather && weather.weather && weather.weather.time) lastUpdate = weather.weather.time; if (weather && weather.weather && weather.weather.time) lastUpdate = weather.weather.time;
if (!lastUpdate || lastUpdate + settings.refresh * 1000 * 60 < Date.now()){ if (!settings.updated || settings.updated + settings.refresh * 1000 * 60 < Date.now()){
setTimeout(() => { setTimeout(() => {
if (!waiting){ if (!waiting){
waiting = true; waiting = true;

View File

@ -25,7 +25,7 @@ function parseWeather(response) {
json.weather = weather; json.weather = weather;
require("Storage").writeJSON('weather.json', json); require("Storage").writeJSON('weather.json', json);
require("weather").emit("update", json.weather); if (require("Storage").read("weather")!==undefined) require("weather").emit("update", json.weather);
return undefined; return undefined;
} else { } else {
return /*LANG*/"Not OWM data"; return /*LANG*/"Not OWM data";

View File

@ -1,7 +1,7 @@
{ "id": "owmweather", { "id": "owmweather",
"name": "OpenWeatherMap weather provider", "name": "OpenWeatherMap weather provider",
"shortName":"OWM Weather", "shortName":"OWM Weather",
"version":"0.02", "version":"0.03",
"description": "Pulls weather from OpenWeatherMap (OWM) API", "description": "Pulls weather from OpenWeatherMap (OWM) API",
"icon": "app.png", "icon": "app.png",
"type": "bootloader", "type": "bootloader",