How I installed the forecast_strip template into the Seasons skin

65 views
Skip to first unread message

Sylvain Gagnon

unread,
Jan 25, 2026, 9:59:26 PM (9 days ago) Jan 25
to weewx-user
That took way longer than anticipated, especially since all three AI where quite useless into helping me make a working configuration. So I started from scratch ans studied how the forecast example works. This is what I did, it quite pretty simple, in fact, once you know it lol.

Install the skin
sudo weectl extension install https://github.com/chaunceygardiner/weewx-forecast/releases/download/v4.0/weewx-forecast-4.0.zip

Edit /etc/weewx/weewx.conf
- Under [Forecast], remove unwanted forecasts. I kept only OWM and inserted my api_key. This will remove the warning for unconfigured services when weewx starts.
- Under [Engine]->[[Services]], only keep the archive_services needed. For me, it was weewx.engine.StdArchive, user.forecast.OWMForecast (first one was already present before forecast was installed)

Nothing else was changed by me.

Copy the required files from forecast to Seasons (adjust to whatever forecast services you want to use, but keep forecast.css and the icons)
sudo cp -pr /etc/weewx/skins/forecast/forecast.css /etc/weewx/skins/forecast/forecast_strip.* /etc/weewx/skins/forecast/icons /etc/weewx/skins/Seasons

Edit /etc/weewx/skins/Seasons/skin.conf
- Under [CheetahGenerator], after "encoding = html_entities", add
    search_list_extensions = user.forecast.ForecastVariables
- Under [CopyGenerator], append to the end of "copy_once"
    forecast.css, forecast_strip.css, icons/*.png

Edit /etc/weewx/skins/Seasons/forecast_strip.inc
- Change the strip_source variable content to the service you're using. I used OWM so I changed the line to
    #set $strip_source = 'OWM'
- Change the num_periods to what you need. Mine is 40 so I changed the line to
    #set $num_periods = 40
- Adjust the section 'Which columns should be displayed' to your liking. I added dewpoint and humidity

Nothing else was changed.

Edit /etc/weewx/skins/Seasons/index.html.tmpl
- Just below
    <link rel="stylesheet" type="text/css" href="seasons.css"/>
  add
    <link rel="stylesheet" type="text/css" href="forecast.css"/>
    <link rel="stylesheet" type="text/css" href="forecast_strip.css"/>
- Between the last </div> and  <p class="footnote"> add this
    <div id='forecast'></div>
- Between </p> and </body> add this (adjust populate_strip second parameter to the service you're using)
    #set global $forecast_strip_settings = dict()
    #set global $forecast_strip_settings['orientation'] = 'vertical'

    #include "forecast_strip.inc"

    <script>
      populate_strip('forecast', 'OWM');
    </script>

Nothing else was changed. That's all the changes that are needed. Icons are size correctly and the list drops vertically, perfect for a phone.

Restart weewx and either wait for the reports to autogenerate or run
  weectl report run
to run them right away.

The forecast will appear after the graphs. You can put them anywhere by moving the "<div id='forecast_strip'></div>" line to where you want.

Hope this save somebody else the headache of figuring out to make it work. The readme i the repo was pretty useless.

Sylvain Gagnon

unread,
Jan 27, 2026, 11:15:07 PM (7 days ago) Jan 27
to weewx-user
I played a bit more with this and did some esthetic changes that makes it more appealing (to me).

First I centered the data in the columns by modifying /etc/weewx/skins/Seasons/forecast_strip.css. I added "text-align: center !important;" in both ".fc_strip th" and ".fc_strip td".

Second, since OWM do not produce wind gust data, I removed that column. To do that, there is two methods I found, an easy and a more complex way. The easy way is to add 

col.windGust {
    visibility: collapse !important;
}

at the end of the file  /etc/weewx/skins/Seasons/forecast_strip.css. It will still try to produce the data but the end result is your browser is told to not display it. Not very elegant. The other way is to remove all the lines in function "populate_vertical_strip" (or  "populate_horizontal_strip") that contains  "forecast_data[data_id].windGust" from the file  /etc/weewx/skins/Seasons/forecast_strip.inc.

No matter, which method you chose, rebuilt the data with weectl run report

Last one is I added the lines 
  'legend': 'icons/wind_dir.png',
after
  'windDir': {
    'className': 'windDir',

and the line
   'legend': 'icons/cloud_cover.png', 
after
  'clouds': {
    'className': 'clouds',

and copied the two files from here https://imgur.com/a/PotXUAr to 
   /etc/weewx/skins/Seasons/icons

I didn't like these two columns to not have header icons. Again, rebuild the data with weectl run report.

One last thing not related to forecast but to weewx itself. Backing up the database. The safest way is to stop weewx and copy  /var/lib/weewx/weewx.sdb" somewhere safe , but that affects the  WeeWX uptime report . So instead, take a backup of the data with the commands:

# Define a path for the safe database copy
SAFE_DB="/var/lib/weewx/weewx_safe.sdb"

# Remove any old database backup file
rm -f "$SAFE_DB"

# Use sqlite3 to create a consistent 'hot' backup copy
sqlite3 /var/lib/weewx/weewx.sdb "VACUUM INTO '$SAFE_DB';"

That's it. Now you have a backup of your database that you can store somewhere for safekeeping.

Reply all
Reply to author
Forward
0 new messages