Version 5.4.0

397 views
Skip to first unread message

Tom Keffer

unread,
Jun 16, 2026, 11:21:29 AMJun 16
to weewx-user
Now in the usual places. A few new features, and a bunch of minor bug fixes.

Change log

Added utility weectl rest, which allows selective uploading to RESTful
services. PR #1100. Thanks to user Jari!

Added @createIfMissing option for report_timing handling so that report
generation will be allowed if there are missing report files or if the modified
times of templates are newer than generated files. PR #1097. Thanks to user evilbunny2008!

Added Catalan translation. PR #1087. Thanks to user Ferran!

Initialize the widgets in the Seasons skin as soon as the DOM is ready.

Example xstats.py had nonsensical time context values. Fixed in
PR #1072. Thanks to user evilbunny2008!

Added Cheetah generator seasons timespans $season$seasonsyear, and seasons
iterator .seasonsPR #1095. Thanks to user roe-dl!

Prevent AttributeError when the weectl command is run without a subcommand.

Guard against an empty string being passed to the copy generator.

Use better measure of system uptime.

Fix problem that prevented table headers from appearing in the Seasons's
statistics page.

Fix problem with Acurite usb failures in newer kernels. PR #1080

Allow duration notation to be used with option x_interval.

Enhance cheetah logging in debug mode, showing generation execution time per
report to identify bottlenecks. PR #1091

Fix problem where errors raising exception MySQLdb.InterfaceError are not
caught. Issue #1101.

steepleian

unread,
Jun 17, 2026, 3:41:28 AMJun 17
to weewx...@googlegroups.com, weewx-user
Tom,
I might be missing something here but pip install is still giving me 5.3.
Ian


On 16 Jun 2026, at 16:21, Tom Keffer <tke...@gmail.com> wrote:


--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/weewx-user/CAPq0zECBHZLn2oH2Xd0iWu%3D_qNL%2BpF9VE7HR14%2BHvmxk%3DJ94Ug%40mail.gmail.com.

Tom Keffer

unread,
Jun 17, 2026, 7:38:55 AMJun 17
to weewx...@googlegroups.com
Hmmm, I just tried it and pip installed V5.4.0. The WeeWX page on pypi.org also shows 5.4.0.

I see that your Divum WX and Seasons pages are showing 5.3.1. The CSS files for Seasons are also messed up. Perhaps a deployment issue?

steepleian

unread,
Jun 17, 2026, 8:53:35 AMJun 17
to weewx...@googlegroups.com
Thanks Tom,
I have not attempted my public facing server yet. It was my local testing server which I was attempting to update. I will give another try this evening. Yes CSS on Seasons needs fixing.


On 17 Jun 2026, at 12:38, Tom Keffer <tke...@gmail.com> wrote:



Vince Skahan

unread,
Jun 17, 2026, 5:16:44 PMJun 17
to weewx-user
5.2 to 5.4 upgrade worked fine here. I didn’t update skins etc.

salinois

unread,
Jul 14, 2026, 8:50:10 AM (3 days ago) Jul 14
to weewx...@googlegroups.com

hello,

how are you.

I just installed your 5.4.0 version of weewx; all works.

I don't remember where I can change this value "BCRobotics", behind Matériel.

Can you point me in the right direction to change this value?

have a good day.

Patrick

Tom Keffer

unread,
Jul 14, 2026, 10:35:50 AM (3 days ago) Jul 14
to weewx...@googlegroups.com
It is obtained directly from the hardware driver as attribute hardware_name, which all well-behaved drivers should have implemented.

If you don't like what it is returning, you can change the template about.inc to anything you want. For example, change this

    <tr>
      <td class="label">$gettext("Hardware")</td>
      <td class="data">$station.hardware</td>
    </tr>

to this

    <tr>
      <td class="label">$gettext("Hardware")</td>
      <td class="data">My very special hardware name</td>
    </tr>




salinois

unread,
Jul 14, 2026, 11:23:33 AM (3 days ago) Jul 14
to weewx...@googlegroups.com

salinois

unread,
Jul 14, 2026, 2:31:11 PM (3 days ago) Jul 14
to weewx...@googlegroups.com

again me TOM,

this ok now, on my version installed by Debian and with new skin Belchertown 2.0

But, now I try with an other RPi with install by PIP installation (venv), weewx works fine; I upgraded also with the new-belchertown 2.0 and I have this error:

DEBUG user.new_belchertown: Sunshine duration stats not available: archive_day_sunshineDur table not found.

I don't have this issue with installation by Debian !!!

an idea, thanks

Patrick

salinois

unread,
Jul 14, 2026, 2:48:45 PM (3 days ago) Jul 14
to weewx...@googlegroups.com

again me;

I done an error, I had forgotten new- in front of belchertown inside URL; the skin works but I have always the error : user.new_belchertown: Sunshine duration stats not available: archive_day_sunshineDur table not found. !!!

Patrick

salinois

unread,
Jul 15, 2026, 7:48:55 AM (2 days ago) Jul 15
to weewx...@googlegroups.com

hello,

I'm going to post this issue in the discussion regarding the new-belchertown skin;

 WeeWX works fine now. 

Sorry.

Patrick

Pablo Sanchez

unread,
Jul 15, 2026, 8:14:13 AM (2 days ago) Jul 15
to weewx...@googlegroups.com
Hi Patrick,

Thank you for submitting an Issue. I responded with the resolution. Let us continue there.

À bientôt !
---
pablo

salinois

unread,
Jul 15, 2026, 9:18:22 AM (2 days ago) Jul 15
to weewx...@googlegroups.com

Hi Pablo,

thanks for your response.

I am doing it right now.  Error disappeared, but I have a few display issues that I didn't have in version 2.0!!!

Check out my site if you have time. [http://jurassikpat.ddns.net/weewx/new-belchertown]

Update time: gone

 Forecasts: gone

 And graphs too 

All of this on the homepage.

 I'm thinking of settings in weewx.conf.

what is the difference between 2.0 and 2.1b3 , inside weewx.conf ?

patrick

Pablo Sanchez

unread,
Jul 15, 2026, 12:30:45 PM (2 days ago) Jul 15
to weewx...@googlegroups.com
Salut Patrick,

This was reported as Issue 261.  The problem is with malformed JSON coming from your station - see the scrape below from your website. This has been resolved in the development branch:

weectl extension install https://github.com/uajqq/weewx-belchertown-new/archive/refs/heads/development.zip

Merci !

Console showing borked JSON

---
pablo

salinois

unread,
Jul 15, 2026, 2:30:24 PM (2 days ago) Jul 15
to weewx...@googlegroups.com

Hello Pablo,

I follow as you said:

 weectl extension install /home/patrick/weewx-belchertown-new-dev.tar.gz
Using configuration file /home/patrick/weewx-data/weewx.conf
Install extension '/home/patrick/weewx-belchertown-new-dev.tar.gz' (y/n)? y
Extracting from tar archive /home/patrick/weewx-belchertown-new-dev.tar.gz
Saving installer file to /home/patrick/weewx-data/bin/user/installer/new-belchertown
Saved copy of configuration as /home/patrick/weewx-data/weewx.conf.20260715200818
Finished installing extension new-belchertown from /home/patrick/weewx-belchertown-new-dev.tar.gz

after, restart weewx

but , this the same thing !!!

it is normal for the dev version ? => 2026-07-15T20:15:23.881047+02:00 RPi-WS-BCRo weewxd[207955]: INFO user.new_belchertown: version 2.1beta3

My extract of weewx.conf: I don't use mqtt.
I must be getting some of the settings wrong...

[[new-belchertown]]
        # See wiki for configuration help: https://github.com/uajqq/weewx-belchertown-new/wiki
        skin = new-belchertown
        HTML_ROOT = public_html/new-belchertown
        enable = true

        [[[Extras]]]


            # ----- Core site branding and language -----
            # belchertown_locale    = "auto"
            # theme                 = "light"
            site_title            = "Meteo Loulle, Jura France"
            logo_image            = http://jurassikpat.ddns.net/weewx/new-belchertown/images/jura-fc.jpg
            # logo_image_dark       = ""
            manifest_name         = Station Meteo Loulle
            manifest_short_name   = SML
            # googleAnalyticsId   = ""

            # ----- Homepage -----
            station_observations     = pressure, dewpoint, outHumidity, rainWithRainRate, visibility, soilTemp1
            aqi_enabled              = 1
            # aqi_source               = "auto"
            aqi_location_enabled     = 1
            # almanac_extras           = 1
            # align_solar_path         = "transit"
            # beaufort_category       = 0
            # beaufort_category_gusts = 0
            # wind_compass_marker     = ""
            # wind_compass_source     = ""
            # unit_switching          = 0
            # back_to_top_button_enabled  = 0
            # back_to_top_button_position = 0
            # back_to_top_button_opacity  = 0.8

            # ----- Radar and map display -----
            # radar_html            = ""
            # radar_html_dark       = "None"
            # radar_width           = 650
            # radar_height          = 360
            # radar_marker          = 0
            # radar_zoom            = 8
            # radar_overlay         = "radar"
            # radar_rain            = "default"
            # radar_temp            = "default"
            # radar_wind            = "default"
            # aeris_map             = "1"

            # ----- Charts -----
            highcharts_enabled             = 1
            chart_page_show_all_button     = 1
            # chart_page_default_chartgroup  = "day"
            # highcharts_homepage_chartgroup = "homepage"
            # highcharts_decimal             = "auto"
            # highcharts_thousands           = "auto"

            # ----- Live updates and MQTT -----
            # mqtt_websockets_enabled         = 0
            # mqtt_websockets_host            = ""
            # mqtt_websockets_port            = "8080"
            # mqtt_websockets_ssl             = 0
            # mqtt_websockets_topic           = ""
            # mqtt_websockets_username        = ""
            # mqtt_websockets_password        = ""
            # disconnect_live_website_visitor = 1800000

            # ----- Page status and auto-refresh behavior -----
            # show_last_updated_alert      = 0
            # last_updated_alert_threshold = 1800
            webpage_autorefresh          = 1
            # reload_hook_images           = 0
            # reload_images_radar          = 300
            # reload_images_hook_asi       = -1
            # reload_images_hook_af        = -1
            # reload_images_hook_as        = -1
            # reload_images_hook_ac        = -1

            # ----- Forecast -----
            forecast_enabled                 = 1
            forecast_provider                = aeris
            forecast_api_id                  = "my parameters"
            forecast_api_secret              = "my parameters"
            forecast_units                   = ca
            # forecast_interval_hours          = 24
            # nws_station_id                   = ""
            forecast_lang                   = fr
            # forecast_stale                  = 3540
            # current_conditions_stale        = 3540
            # forecast_aeris_use_metar        = 1
            # forecast_alert_enabled          = 0
            # forecast_alert_limit            = 1
            # forecast_show_daily_forecast_link = 0
            # forecast_daily_forecast_link      = ""
            # forecast_show_humidity_dewpoint   = 0
            # forecast_place                   = ""
            # current_conditions               = "obs"
            # current_conditions_timestamp_enabled = 0

            # ----- Earthquake options -----
            earthquake_enabled     = 1
            earthquake_maxradiuskm = 2000
            # earthquake_stale       = 10740
            # earthquake_server      = USGS
            # earthquake_minmag      = 2

            # ----- Social sharing and footer extras -----
            # facebook_enabled  = 0
            # twitter_enabled   = 0
            # social_share_html = ""

            # ----- Kiosk -----
            # pi_kiosk_bold                 = "false"
            # pi_theme                      = "auto"
            # radar_html_kiosk              = ""
            # radar_width_kiosk             = 490
            # radar_height_kiosk            = 362
            # mqtt_websockets_host_kiosk    = ""
            # mqtt_websockets_port_kiosk    = ""
            # mqtt_websockets_ssl_kiosk     = ""
            # forecast_interval_hours_kiosk = 24
            # aqi_enabled_kiosk             = 0

            # ----- Dev/debug options -----
            # belchertown_debug = 0
            # minify            = 0

patrick

Pablo Sanchez

unread,
Jul 15, 2026, 6:30:50 PM (2 days ago) Jul 15
to weewx...@googlegroups.com
Bonjour Patrick,

These two missing values are making the JSON file, weewx_data.json, invalid:

      "inTemp_raw":,
      "rain_raw":,

Are you comfortable submitting an Issue - https://github.com/uajqq/weewx-belchertown-new/issues 

If you want to run a quick test, in your .../public_html/json, you will see a set of JSON files:

# ls
charts.json              earthquake.json  index.html      week.json        year.json
current_conditions.json  forecast.json    last_365d.json  weewx_data.json
day.json                 homepage.json    month.json      year_2025.json


You can do a quick test and fix the forecast file with this command:

sed -i -e 's@"rain_raw": ,@"rain_raw": "N/A",@' -e 's@"inTemp_raw": ,@"inTemp_raw": "N/A",@' weewx_data.json

The command searches for the two bad elements and sets them to "N/A".

Cheers!
---
pablo

--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.

Pablo Sanchez

unread,
Jul 16, 2026, 10:05:39 AM (yesterday) Jul 16
to weewx...@googlegroups.com
Bonjour Patrick,

A quick clarification. The sed script will only fix the file per forecast update. Once another update happens, the file may have bad data. You could run the sed script again if you want. :) This is until the bug is resolved.

If all goes well today, I will to submit a PR. Ideally, against an open Issue.

Merci.
---
pablo

gary....@gmail.com

unread,
Jul 16, 2026, 10:44:31 AM (yesterday) Jul 16
to weewx-user
It may be that you downloaded the file then installed.
Your commands though do not match what you were asked to do.I was bitten by using ....dev.zip vs development.zip
It's hard to follow the releases and development builds without a score card.
Best if you are given a specific build to enosure you install exactly that.

salinois

unread,
Jul 16, 2026, 2:34:50 PM (yesterday) Jul 16
to weewx...@googlegroups.com
It's me again, Pablo.
 I ran the commands you suggested, and while they do fix the issue,
 it comes back after the update—just as you said. 
Do you still want me to open a ticket? Let me know. 
I'll wait for the bug fix.
cheers

Patrick

Pablo Sanchez

unread,
Jul 16, 2026, 2:52:02 PM (yesterday) Jul 16
to weewx...@googlegroups.com
Salut Patrick,

Yes, please open a ticket. What you are seeing is expected. As the data changes, if there is no data for the raw JSON elements, the file becomes invalid.

Merci !
---
pablo

Pablo Sanchez

unread,
Jul 16, 2026, 9:58:23 PM (21 hours ago) Jul 16
to weewx...@googlegroups.com
Bonjour Patrick,

Attached is weewx_data.json.tmpl.N  It has the fix for the issue that you are encountering along with some additional fire-proofing. I am hoping to submit a PR with this code. Perhaps tomorrow. 

If you want to test with it, place is on your server. Say /var/tmp/weewx_data.json.tmpl.N  Next, do the following:

# Change directories to the json subdirectory
cd .../skins/new-belchertown/json

# Backup the original file weewx_data.json.tmpl
cp weewx_data.json.tmpl weewx_data.json.tmpl.ORIG

# Overlay the new version over the original file
cp /var/tmp/weewx_data.json.tmpl.N weewx_data.json.tmpl

# Restart weewx
systemctl restart weewx


Cheers!
---
pablo

weewx_data.json.tmpl.N
Reply all
Reply to author
Forward
0 new messages