github uajqq/weewx-belchertown-new v2.1
Version 2.1

6 hours ago

Version 2.1 brings a few notable features and many many bug fixes / improvements! Some of these are breaking changes if you have a lot of custom content!

Important note: the skin now has two branches, Master (stable releases) and Development (beta releases, and development versions).

Thank you as always to all the beta testers who made this possible!

Bootstrap upgrade -- no more JQuery, potentially breaking change

Big thanks to @ThomasForeman86 for a full refactor that upgrades the underlying architecture to Bootstrap v5.3.3! That also means we no longer need jQuery, so that has been removed. The new Bootstrap version allows improved menus, and also improved notifications/alerts. It also means a separate dark mode .css file is no longer necessary.

The biggest change is a transition to a Bootstrap "hamburger" menu at upper right, which handles better in mobile views in particular. responsive-menu.js has been removed! The menu is now customized from an .inc file. There is an example provided, nav-menu-custom.inc.example, that you can modify to your needs and is preserved across upgrades. The syntax should be similar.

If you have custom content that relies on jQuery, that will also have to be redone. Please seek help in the Discussions section if needed.

New feature -- live unit switching

HUGE thanks to @Millardiang, who has managed to figure out how to implement live unit switching for EVERYTHING in the chart, including forecast, charts, etc. etc. A very handy feature!

The switching is off by default. You can enable it by setting unit_switching = 1 in weewx.conf. When active, users can set the units using the "hamburger" menu at upper right. Please note this option does increase processing requirements!

New feature -- zoomable charts

Charts can now be zoomed and scrolled to isolate any sub-range.

Screenshot 2026-06-11 at 12 40 07 Screenshot 2026-06-11 at 12 39 45

This feature can be enabled in charts.conf for all charts, or section-by-section, or just for individual charts. It can also be disabled individually, too -- for example, you could turn on zooming by default on a page, and only disable it for certain charts.

[[chart1]]
    title = Temperature
    time_length = all
    zoom = true
    zoom_range = week
    [[[outTemp]]]

zoom = 1 (or zoom = true) turns on zooming (if omitted, it is off by default). zoom_range allows you to set the default range that is displayed using number of seconds, or words like "day," "month," etc.

WARNING: chart loading can become very slow if you enable long time ranges for each chart. In the example above, even if only a week of data is available by default, all data is loaded and available to display. Use long time_length charts sparingly unless you are all right with slow loading times!

New feature -- "threshold" line in charts (thank you @ThomasForeman86 and @ziti!)

    [[mainWindChart]]
        [[[windGust]]]
             yAxis_plotLine_value = 46
             yAxis_plotLine_label = "Gale force"
             yAxis_plotLine_color = "#dc322f"

This renders a dashed horizontal Highcharts plotLine on the series' yAxis with an optional right-aligned label - useful for marking fixed thresholds such as river flood levels, frost points or gale-force wind speeds. Only yAxis_plotLine_value is required; color defaults to a red dash and the label is omitted when not set.

You can add as many threshold labels as you want, and vary the styles / label alignments:

    [[mainWindChart]]
        [[[windGust]]]
            yAxis_plotLine_value = 4
            yAxis_plotLine_label = Light breeze
            yAxis_plotLine_color = "#268bd2"
            yAxis_plotLine_dashStyle = LongDash
            yAxis_plotLine_labelAlign = left
            yAxis_plotLine2_value = 24
            yAxis_plotLine2_label = Fresh breeze
            yAxis_plotLine2_color = "#71bc3c"
            yAxis_plotLine3_value = 48
            yAxis_plotLine3_label = Gale
            yAxis_plotLine3_color = "#f7a35c"
            yAxis_plotLine3_dashStyle = Dash
            yAxis_plotLine3_zIndex = 3
            yAxis_plotLine3_labelVerticalAlign = bottom
            yAxis_plotLine4_value = 63
            yAxis_plotLine4_label = Storm
            yAxis_plotLine4_color = "#dc322f"
            yAxis_plotLine4_dashStyle = Dash
            yAxis_plotLine4_width = 3

New feature -- labels in charts.conf

Labels are now supported in charts.conf. This can be useful for those who like to serve two different versions of the skin in two different languages.

The syntax is ${your_label}. The brackets are to make it explicit that this is not a Cheetah tag -- the text is replaced manually by Python, since otherwise we'd have to change everything to .tmpl files.

You can define a chart group using labels like this:

[day]
    title = ${chart_day_title}
    button_text = ${chart_day_button}

    [[chart1]]
        title = ${chart_temperature_title}
        [[[outTemp]]]
            name = ${chart_outtemp_series}

And then run two reports, with two different translations:

[StdReport]

    [[new-belchertown-en]]
        skin = new-belchertown
        HTML_ROOT = public_html/en
        enable = true
        lang = en

        [[[Extras]]]
            forecast_lang = en
            site_title = "My Weather Website"

        [[[Labels]]]
            [[[[Generic]]]]
                chart_day_title = "Today"
                chart_day_button = "Day"
                chart_temperature_title = "Temperature"
                chart_outtemp_series = "Temperature"

    [[new-belchertown-fr]]
        skin = new-belchertown
        HTML_ROOT = public_html/fr
        enable = true
        lang = fr

        [[[Extras]]]
            forecast_lang = fr
            site_title = "Mon site météo"

        [[[Labels]]]
            [[[[Generic]]]]
                chart_day_title = "Aujourd'hui"
                chart_day_button = "Jour"
                chart_temperature_title = "Température"
                chart_outtemp_series = "Température"

Enhancements and behavior changes

  • Alerts and AQI now show as "badges" instead of text. Click on any badge to get more information.
  • Alerts are now color-coded. Red is currently active, grey is pending.
  • The "auto" dark/light theme now follows system settings, not sunrise/sunset. You can override that by setting theme = sun.
  • AQI source enhancements: users can now specify the source for AQI. By default it is auto, which uses local sensors first and then downloaded forecast data as a fallback. Users can override to local or forecast.
  • AQI scale enhancements: users can specify which AQI scale to use. auto uses geolocation to pick the local country when possible. Users can override to us, uk, canada, european.
  • Wet bulb temperature can now be calculated if not measured directly, as outWetBulb.
  • Records page now has more categories and detail.

Bug fixes

Far too many to document individually, mostly related to stability of forecast downloads and page refreshing in the background.

Don't miss a new weewx-belchertown-new release

NewReleases is sending notifications on new releases.