mirror of https://github.com/espruino/BangleApps
Merge pull request #2561 from sabrsorensen/add_weather.json_support_to_mtnclock
[mtnclock] Added support for reading weather.jsonpull/2564/head
commit
a0f12dce8e
|
@ -4,7 +4,7 @@ Based on the Pebble watchface Weather Land.
|
|||
|
||||
Mountain Pass Clock changes depending on time (day/night) and weather conditions.
|
||||
|
||||
This clock requires Gadgetbridge and an app that Gadgetbridge can use to get the current weather from OpenWeatherMap (e.g. Weather Notification). To set up Gadgetbridge and weather, see https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Weather.
|
||||
This clock requires Gadgetbridge and an app that Gadgetbridge can use to get the current weather from OpenWeatherMap (e.g. Weather Notification), or a Bangle app that will update weather.json such as OWM Weather. To set up Gadgetbridge and weather, see https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Weather.
|
||||
|
||||
The scene will change according to the following OpenWeatherMap conditions: clear, cloudy, overcast, lightning, drizzle, rain, fog and snow. Each weather condition has night/day scenes.
|
||||
|
||||
|
|
|
@ -323,11 +323,28 @@ function setWeather() {
|
|||
draw(a);
|
||||
}
|
||||
|
||||
function readWeather() {
|
||||
var weatherJson = require("Storage").readJSON('weather.json', 1);
|
||||
// save updated weather data if available and it has been an hour since last updated
|
||||
if (weatherJson !== undefined && (data.time === undefined || (data.time + 3600000) < weatherJson.weather.time)) {
|
||||
data = {
|
||||
time: weatherJson.weather.time,
|
||||
temp: weatherJson.weather.temp,
|
||||
code: weatherJson.weather.code
|
||||
};
|
||||
require("Storage").writeJSON('mtnclock.json', data);
|
||||
}
|
||||
}
|
||||
|
||||
const _GB = global.GB;
|
||||
global.GB = (event) => {
|
||||
if (event.t==="weather") {
|
||||
data = event;
|
||||
require("Storage").write('mtnclock.json', event);
|
||||
data = {
|
||||
temp: event.temp,
|
||||
code: event.code,
|
||||
time: Date.now()
|
||||
};
|
||||
require("Storage").writeJSON('mtnclock.json', data);
|
||||
setWeather();
|
||||
}
|
||||
if (_GB) setTimeout(_GB, 0, event);
|
||||
|
@ -340,11 +357,13 @@ function queueDraw() {
|
|||
if (drawTimeout) clearTimeout(drawTimeout);
|
||||
drawTimeout = setTimeout(function() {
|
||||
drawTimeout = undefined;
|
||||
readWeather();
|
||||
setWeather();
|
||||
queueDraw();
|
||||
}, 60000 - (Date.now() % 60000));
|
||||
}
|
||||
|
||||
queueDraw();
|
||||
readWeather();
|
||||
setWeather();
|
||||
Bangle.setUI("clock");
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"id": "mtnclock",
|
||||
"name": "Mountain Pass Clock",
|
||||
"shortName": "Mtn Clock",
|
||||
"version": "0.01",
|
||||
"version": "0.02",
|
||||
"description": "A clock that changes scenery based on time and weather.",
|
||||
"readme":"README.md",
|
||||
"icon": "app.png",
|
||||
|
|
Loading…
Reference in New Issue