mirror of
https://github.com/MichMich/MagicMirror.git
synced 2026-04-23 22:37:01 +00:00
While looking at the WeatherFlow provider (to evaluate #4107), I noticed a few things that weren't quite right. 1. **UV index was broken for most providers in forecast/hourly views.** The templates read `uv_index`, but only the WeatherAPI provider actually wrote that key. All other providers (OpenWeatherMap, WeatherFlow, PirateWeather, etc.) use `uvIndex` - so UV was silently never displayed for them. This went unnoticed because `showUVIndex` defaults to `false` and there were no test assertions for it. Standardized everything on `uvIndex` and added test coverage. 2. **WeatherFlow didn't map precipitation for current weather.** The API provides `precip_accum_local_day` and `precip_probability`, but they weren't passed through. While adding them I also noticed the template used truthiness checks, which hid valid zero values. Fixed both. 3. **`||` vs `??` in WeatherFlow provider.** Several numeric fields used `|| null`, replacing valid `0` with `null`. Switched to `??` for correctness.
49 lines
2.1 KiB
Plaintext
49 lines
2.1 KiB
Plaintext
{% if hourly %}
|
|
{% set numSteps = hourly | calcNumEntries %}
|
|
{% set currentStep = 0 %}
|
|
<table class="{{ config.tableClass }}">
|
|
{% set hours = hourly.slice(0, numSteps) %}
|
|
{% for hour in hours %}
|
|
<tr
|
|
{% if config.colored %}class="colored"{% endif %}
|
|
{% if config.fade %}style="opacity: {{ currentStep | opacity(numSteps) }};"{% endif %}
|
|
>
|
|
<td class="day">{{ hour.date | formatTime }}</td>
|
|
<td class="bright weather-icon">
|
|
<span class="wi weathericon wi-{{ hour.weatherType }}"></span>
|
|
</td>
|
|
<td class="align-right bright">{{ hour.temperature | roundValue | unit("temperature") }}</td>
|
|
{% if config.showUVIndex %}
|
|
<td class="align-right bright uv-index">
|
|
{% if hour.uvIndex!=0 %}
|
|
{{ hour.uvIndex }}
|
|
<span class="wi weathericon wi-hot"></span>
|
|
{% endif %}
|
|
</td>
|
|
{% endif %}
|
|
{% if config.showHumidity != "none" %}
|
|
<td class="align-left bright humidity-hourly">
|
|
{{ hour.humidity }}
|
|
<span class="wi wi-humidity humidity-icon"></span>
|
|
</td>
|
|
{% endif %}
|
|
{% if config.showPrecipitationAmount %}
|
|
{% if (not config.hideZeroes or hour.precipitationAmount>0) %}
|
|
<td class="align-right bright precipitation-amount">{{ hour.precipitationAmount | unit("precip", hour.precipitationUnits) }}</td>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if config.showPrecipitationProbability %}
|
|
{% if (not config.hideZeroes or hour.precipitationAmount>0) %}
|
|
<td class="align-right bright precipitation-prob">{{ hour.precipitationProbability | unit('precip', '%') }}</td>
|
|
{% endif %}
|
|
{% endif %}
|
|
</tr>
|
|
{% set currentStep = currentStep + 1 %}
|
|
{% endfor %}
|
|
</table>
|
|
{% else %}
|
|
<div class="dimmed light small">{{ "LOADING" | translate }}</div>
|
|
{% endif %}
|
|
<!-- Uncomment the line below to see the contents of the `hourly` object. -->
|
|
<!-- <div style="word-wrap:break-word" class="xsmall dimmed">{{ hourly | dump }}</div> -->
|