Fix reading weather data if not available

master
Martin Boonk 2022-02-22 18:37:01 +01:00
parent 2b6ffb127a
commit c70f25a15e
1 changed files with 7 additions and 10 deletions

View File

@ -237,22 +237,19 @@ function getWeatherTemperature(){
var jsonWeather = require("Storage").readJSON('weather.json'); var jsonWeather = require("Storage").readJSON('weather.json');
var weather = (jsonWeather && jsonWeather.weather) ? jsonWeather.weather : undefined; var weather = (jsonWeather && jsonWeather.weather) ? jsonWeather.weather : undefined;
var result = { unit: "unknown"};
if (weather && weather.temp){ if (weather && weather.temp){
//print("Weather temp is", weather.temp); //print("Weather is", weather);
var temp = require('locale').temp(weather.temp-273.15); var temp = require('locale').temp(weather.temp-273.15);
var value = Number(temp.match(/[\d\-]*/)[0]); result.value = Number(temp.match(/[\d\-]*/)[0]);
var unit; var unit;
if (temp.includes("C")){ if (temp.includes("C")){
unit = "celsius"; result.unit = "celsius";
} else if (temp.includes("F")){ } else if (temp.includes("F")){
unit = "fahrenheit"; result.unit = "fahrenheit";
} else {
throw new Error("Unknown temperature unit " + unit);
} }
return {value: value, unit: unit};
} }
return undefined; return result;
} }
function updateOffset(element, offset){ function updateOffset(element, offset){
@ -299,7 +296,7 @@ numbers.Altitude = () => { return alt; };
numbers.BatteryPercentage = E.getBattery; numbers.BatteryPercentage = E.getBattery;
numbers.BatteryVoltage = NRF.getBattery; numbers.BatteryVoltage = NRF.getBattery;
numbers.WeatherCode = getWeatherCode; numbers.WeatherCode = getWeatherCode;
numbers.WeatherTemperature = () => getWeatherTemperature().value; numbers.WeatherTemperature = () => { var t = getWeatherTemperature().value; return t ? t : undefined; };
var multistates = {}; var multistates = {};
multistates.Lock = () => { return Bangle.isLocked() ? "on" : "off"; }; multistates.Lock = () => { return Bangle.isLocked() ? "on" : "off"; };