mirror of
https://github.com/netbymatt/ws4kp.git
synced 2026-04-14 07:39:29 -07:00
@@ -335,6 +335,10 @@ Before reporting an issue or requesting a feature please consider that this is n
|
||||
|
||||
Note: not all units are converted to metric, if selected. Some text-based products such as warnings are simple text strings provided from the national weather service and thus have baked-in units such as "gusts up to 60 mph." These values will not be converted.
|
||||
|
||||
## The full moon icon is broken
|
||||
|
||||
This is a known problem with the Ws4kp as it ages. It was a problem with the [actual Weatherstar hardware](https://youtu.be/rcUwlZ4pqh0?feature=shared&t=116) as well.
|
||||
|
||||
## Related Projects
|
||||
|
||||
Not retro enough? Try the [Weatherstar 3000+](https://github.com/netbymatt/ws3kp)
|
||||
|
||||
BIN
server/images/gimp/Full-Moon-Degraded.xcf
Normal file
BIN
server/images/gimp/Full-Moon-Degraded.xcf
Normal file
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
server/images/gimp/No-Data.xcf
Normal file
BIN
server/images/gimp/No-Data.xcf
Normal file
Binary file not shown.
BIN
server/images/icons/current-conditions/No-Data.gif
Normal file
BIN
server/images/icons/current-conditions/No-Data.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
server/images/icons/moon-phases/Full-Moon-Degraded.gif
Normal file
BIN
server/images/icons/moon-phases/Full-Moon-Degraded.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1009 B |
@@ -9,11 +9,19 @@ class Almanac extends WeatherDisplay {
|
||||
constructor(navId, elemId) {
|
||||
super(navId, elemId, 'Almanac', true);
|
||||
|
||||
// occasional degraded moon icon
|
||||
this.iconPaths = {
|
||||
Full: imageName(Math.random() > 0.995 ? 'Degraded' : 'Full'),
|
||||
Last: imageName('Last'),
|
||||
New: imageName('New'),
|
||||
First: imageName('First'),
|
||||
};
|
||||
|
||||
// preload the moon images
|
||||
preloadImg(imageName('Full'));
|
||||
preloadImg(imageName('Last'));
|
||||
preloadImg(imageName('New'));
|
||||
preloadImg(imageName('First'));
|
||||
preloadImg(this.iconPaths.Full);
|
||||
preloadImg(this.iconPaths.Last);
|
||||
preloadImg(this.iconPaths.New);
|
||||
preloadImg(this.iconPaths.First);
|
||||
|
||||
this.timing.totalScreens = 1;
|
||||
}
|
||||
@@ -142,7 +150,7 @@ class Almanac extends WeatherDisplay {
|
||||
|
||||
fill.date = date;
|
||||
fill.type = MoonPhase.phase;
|
||||
fill.icon = { type: 'img', src: imageName(MoonPhase.phase) };
|
||||
fill.icon = { type: 'img', src: this.iconPaths[MoonPhase.phase] };
|
||||
|
||||
return this.fillTemplate('day', fill);
|
||||
});
|
||||
@@ -169,6 +177,8 @@ const imageName = (type) => {
|
||||
switch (type) {
|
||||
case 'Full':
|
||||
return 'images/icons/moon-phases/Full-Moon.gif';
|
||||
case 'Degraded':
|
||||
return 'images/icons/moon-phases/Full-Moon-Degraded.gif';
|
||||
case 'Last':
|
||||
return 'images/icons/moon-phases/Last-Quarter.gif';
|
||||
case 'New':
|
||||
|
||||
@@ -85,7 +85,6 @@ class CurrentWeather extends WeatherDisplay {
|
||||
const requiredFields = [
|
||||
{ name: 'temperature', check: (props) => props.temperature?.value === null, required: true },
|
||||
{ name: 'textDescription', check: (props) => props.textDescription === null || props.textDescription === '', required: true },
|
||||
{ name: 'icon', check: (props) => props.icon === null, required: true },
|
||||
{ name: 'windSpeed', check: (props) => props.windSpeed?.value === null, required: false },
|
||||
{ name: 'dewpoint', check: (props) => props.dewpoint?.value === null, required: false },
|
||||
{ name: 'barometricPressure', check: (props) => props.barometricPressure?.value === null, required: false },
|
||||
|
||||
@@ -13,7 +13,7 @@ const largeIcon = (link, _isNightTime) => {
|
||||
} catch (error) {
|
||||
console.warn(`largeIcon: ${error.message}`);
|
||||
// Return a fallback icon to prevent downstream errors
|
||||
return addPath(_isNightTime ? 'Clear.gif' : 'Sunny.gif');
|
||||
return addPath(`No-Data.gif?${conditionIcon}${isNightTime ? '-n' : ''}`);
|
||||
}
|
||||
|
||||
// find the icon
|
||||
@@ -169,7 +169,7 @@ const largeIcon = (link, _isNightTime) => {
|
||||
default: {
|
||||
console.warn(`Unknown weather condition '${conditionIcon}' from ${link}; using fallback icon`);
|
||||
// Return a reasonable fallback instead of false to prevent downstream errors
|
||||
return addPath(isNightTime ? 'Clear.gif' : 'Sunny.gif');
|
||||
return addPath(`No-Data.gif?${conditionIcon}${isNightTime ? '-n' : ''}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user