Cannot find 'BootstrapLabels'

308 views
Skip to first unread message

Jon B

unread,
Jun 19, 2025, 11:19:50 AM6/19/25
to weewx-user
I'm using part of the fuzzy-archer skin to generate history tables on the records page, in conjunction with the Belchertown skin. I'm using this on two sites, both of which I set up myself. For one site, these tables stopped updating at the end of last year. In the logs, I get this error:

2025-06-19T15:45:18.871571+01:00 weewxd[121035]: ERROR weewx.cheetahgenerator: Evaluation of template /etc/weewx/skins/Belchertown/records/index.html.tmpl failed.
2025-06-19T15:45:18.872969+01:00 weewxd[121035]: ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/Belchertown/records/index.html.tmpl
2025-06-19T15:45:18.873193+01:00 weewxd[121035]: ERROR weewx.cheetahgenerator: **** Reason: cannot find 'BootstrapLabels'
2025-06-19T15:45:18.873288+01:00 weewxd[121035]: ERROR weewx.cheetahgenerator: **** To debug, try inserting '#errorCatcher Echo' at top of template

I have defined 'BootstrapLabels' in the Belchertown skin.conf as follows:

[BootstrapLabels]

    #
    # Labels specific to the Bootstrap template
    #

    [[headings]]
        front_page  = The Weather
        stats       = Stats
        history     = History
        news        = News
        about       = About
        last_update = Last updated

    [[timespans]]
        day      = Last 24 hours
        today    = Today            # today = any time since midnight
        week     = This week
        month    = This Month
        year     = This Year
        ever     = Since ever

    [[status]]
        latitude       = Latitude:
        longitude      = Longitude:
        altitude       = Altitude:
        station_uptime = Station uptime:
        server_uptime  = Server uptime:

    [[history_tables]]
        min_temp  = Minimum Temperature
        max_temp  = Maximum Temperature
        avg_temp  = Average Temperature
        rain      = Rainfall Accumulation
        rain_days = Days with at least 1 mm rainfall
        sunHours = Total sunshine hours
        max_wind_gust = Maximum Wind Gust
        NOAA      = Month-by-month Data

    [[minmax]]
        min = Low
        max = High 

In the Belchertown records.inc file I then have the following:

#encoding UTF-8
<div class="entry-content about-outer" itemprop="text">
    <h3>$BootstrapLabels.history_tables.max_temp</h3> $max_temp_table
    <h3>$BootstrapLabels.history_tables.min_temp</h3> $min_temp_table
    <h3>$BootstrapLabels.history_tables.avg_temp</h3> $avg_temp_table
    <h3>$BootstrapLabels.history_tables.rain</h3> $rain_table
    <h3>$BootstrapLabels.history_tables.rain_days</h3> $rain_days_table
    <h3>$BootstrapLabels.history_tables.sunHours</h3> $sunHours_table
    <h3>$BootstrapLabels.history_tables.max_wind_gust</h3> $max_wind_gust_table
    <h3>$BootstrapLabels.history_tables.NOAA</h3> $NOAA_table
</div>

As far as I can tell, everything relating to the history tables and the fuzzy-archer skin is the same as in the working version that I have for the other site. I'm wondering if perhaps something updated which I'm not aware of (the broken site is my Dad's, and he may have run some updates without me realising). The broken site isn't publically available, but the other working one is here in case it's helpful to know what the setup looks like: https://empslocal.ex.ac.uk/uoeweather/records/

Any advice would be much appreciated!

michael.k...@gmx.at

unread,
Jun 19, 2025, 3:09:09 PM6/19/25
to weewx-user
First and most important advice: do not modify any skin.conf. You can override any setting in your weewx.conf.

Second: which version of the skin(s) are you using? [BootstrapLabels] is from a version that is outdated probably for years now.

Jon B

unread,
Jun 19, 2025, 5:04:07 PM6/19/25
to weewx-user
It's version 2.26 (I didn't realise it was so old!) - I'll try updating it and see if that helps.

Someone else suggested editing skin.conf but I'll change that as well!

Jon B

unread,
Jun 22, 2025, 10:14:37 AM6/22/25
to weewx-user
I've installed the latest version of the fuzzy-archer skin (v4.3, and removed the previous version, as suggested in the upgrade guide). What should I add to weewx.conf in order to generate the coloured tables inside the Belchertown skin?

michael.k...@gmx.at

unread,
Jun 23, 2025, 4:20:53 AM6/23/25
to weewx-user
If you are satisfied with what fuzzy-archer produces, you need to fin d a way to integrate it into the existing pages from Belchertown. There are probably many possible approaches.

If you want to modify what fuzzy-archer produces, read it's customization guide: https://github.com/brewster76/fuzzy-archer/wiki/Customization

Jon B

unread,
Jun 23, 2025, 5:54:57 AM6/23/25
to weewx-user
I like how the default fuzzy-archer tables look, so I think I'll likely just stick with that, at least initially. I'll do some digging to see if I can figure out how to incorporate it within the other skin. If you have any advice, that would be appreciated!

Jon B

unread,
Jun 24, 2025, 8:07:08 AM6/24/25
to weewx-user
I'm having a bit of trouble getting it to work. I thought I'd try to get it to work in the way that I had it set up before, by editing the Belchertown skin.conf (I know this is bad practice, but I wanted to get the new skin version working first before making the changes to weewx.conf instead).

I installed the latest version of fuzzy-archer (4.3) and copied the following sections into the Belchertown skin.conf:


[HistoryColors]
    # minvalues and colors and fontColors should contain the same number of elements.
    #
    # For example,  the [min_temp] example below, if the minimum temperature measured in
    # a month is between -50 and -10 (degC) then the cell will be shaded in html color code #0029E5.
    #
    # colors = background color
    # fontColors = foreground color [optional, defaults to black if omitted]

    [[outTemp]]
        [[[degree_C]]]
            # These are for Celsius
            minvalues = -50, -30, -28, -26, -24, -22, -20, -18, -16, -14, -12, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 45
            colors = "#404240", "#646664", "#8C8A8C", "#B4B2B4", "#CCCECC", "#E4E6E4", "#743274", "#AC32AC", "#CC32CC", "#FC32FC", "#FC9AFC", "#143dde", "#3466FC", "#349AFC", "#34CEFC", "#34FEFC", "#047604", "#049A04", "#04BA04", "#04DE04", "#04FE04", "#FCFE34", "#FCEE34", "#FCDE34", "#FCCE34", "#FCBA34", "#FCAA04", "#FC9A04", "#FC7604", "#FC0204", "#EC0204", "#CC0204", "#BC0204", "#AC0204", "#9C0204", "#8C0204", "#740204", "#5C0204"
            fontColors = "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#333333", "#bbbbbb", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#bbbbbb", "#bbbbbb", "#bbbbbb"
        [[[degree_F]]]
            # Use these for Fahrenheit
            minvalues = -60, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
            colors =   "#0029E5", "#0186E7", "#02E3EA", "#04EC97", "#05EF3D", "#2BF207", "#8AF408", "#E9F70A", "#F9A90B", "#FC4D0D", "#FF0F2D"
            fontColors =   "#FFFFFF", "#FFFFFF", "#000000", "#000000", "#000000", "#000000", "#000000", "#000000", "#FFFFFF", "#FFFFFF", "#FFFFFF"

    [[rain]]
        [[[mm]]]
            # These are for mm
            minvalues = 0, 25, 50, 75, 100, 150, 200, 250, 300, 350
            colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc", "#fc02fc", "#d402d4", "#9c029c", "#6d016d"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#bbbbbb", "#bbbbbb"
            # if the summary is to be calculated independently, specify here.
            [[[[summary]]]]
                minvalues = 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900
                colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc", "#fc02fc", "#d402d4", "#9c029c", "#6d016d"
                fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#bbbbbb", "#bbbbbb"
        [[[inch]]]
            # Use these instead for inches
            minvalues = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
            colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc", "#fc02fc", "#d402d4", "#9c029c", "#6d016d"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#bbbbbb", "#bbbbbb"
             # if the summary is to be calculated independently, specify here.
            [[[[summary]]]]
                minvalues = 40, 44, 48, 52, 56, 60, 64, 68, 72, 76
                colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc", "#fc02fc", "#d402d4", "#9c029c", "#6d016d"
                fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#bbbbbb", "#bbbbbb"

    [[rainRate]]
        [[[mm_per_hour]]]
            # These are for mm per hour
            minvalues = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
            colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc", "#fc02fc", "#d402d4", "#9c029c", "#6d016d"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#bbbbbb", "#bbbbbb"
        [[[inch_per_hour]]]
            # Use these instead for inches per hour
            minvalues = 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5
            colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc", "#fc02fc", "#d402d4", "#9c029c", "#6d016d"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb", "#333333", "#333333", "#bbbbbb", "#bbbbbb"

    [[rainDays]]
        [[[count]]]
            minvalues = 1, 5, 10, 15, 20, 25    
            colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb"
            [[[[summary]]]]
                minvalues = 1, 100, 120, 140, 160, 180
                colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc"
                fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb"

    [[windGust]]
        [[[meter_per_second]]]
            minvalues = 0, 0.3, 1.5, 3.3, 5.4, 7.9, 10.7, 13.8, 17.1, 20.7, 24.4, 28.4, 32.6
            colors = "#ffffff", "#72d475", "#10cd24", "#00b900", "#f1eea5", "#f6ef27", "#fed6d3", "#ffb6b3", "#ff9e9a", "#ff8281", "#ff6160", "#ff453c", "#ff200e"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333"
        [[[km_per_hour]]]
            minvalues = 0, 1, 5, 11, 19, 29, 39, 50, 61, 74, 88, 102, 118
            colors = "#ffffff", "#72d475", "#10cd24", "#00b900", "#f1eea5", "#f6ef27", "#fed6d3", "#ffb6b3", "#ff9e9a", "#ff8281", "#ff6160", "#ff453c", "#ff200e"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333"
        [[[mile_per_hour]]]
            minvalues = 0, 1, 3, 7, 12, 18, 24, 31, 38, 46, 54, 63, 72
            colors = "#ffffff", "#72d475", "#10cd24", "#00b900", "#f1eea5", "#f6ef27", "#fed6d3", "#ffb6b3", "#ff9e9a", "#ff8281", "#ff6160", "#ff453c", "#ff200e"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333"
        [[[knot]]]
            minvalues = 0, 1, 3, 6, 10, 16, 21, 27, 33, 40, 47, 54, 63
            colors = "#ffffff", "#72d475", "#10cd24", "#00b900", "#f1eea5", "#f6ef27", "#fed6d3", "#ffb6b3", "#ff9e9a", "#ff8281", "#ff6160", "#ff453c", "#ff200e"
            fontColors = "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333", "#333333"

[HistoryReport]
    #
    # Settings for the HTML month/year color coded summary table generator
    #

    # This list determines which tables will appear in the history report, as well as in which order.
    history_items = min_temp, avg_temp, max_temp, rain, rain_days, max_wind, NOAA

    # Restrict the size of the table by ignoring everything before startdate
    # Specify in unix epoch time. e.g. 1325376000 is 1-Jan-2012
    # Note: whatever you specify as startdate, the whole year (or better: all
    # the values availlable for this year) this startdate is within, will be included in the table.
    #startdate = 1325376000

    # The Raspberry Pi typically takes 15+ seconds to calculate all the summaries with a few years of weather date.
    # refresh_interval is how often in minutes the tables are calculated.
    refresh_interval = 5

    [[min_temp]]
        obs_type = outTemp                 # obs_type can be any weewx reading
        aggregate_type = min               # Any of these: 'sum', 'count', 'avg', 'max', 'min'
        summary_column = true

    #
    # You can also use these aggregate_types:  'max_ge', 'max_le', 'min_le', 'sum_ge' to count days
    # where an observation is ge: greater of equalto, or le: lessthan or equal to a threshold value
    # To specify this threshold, use: aggregate_threshold = [value], [units]
    #
    # e.g Specify temperature threshold of 20C:  aggregate_threshold = 20, degree_C
    #

    [[avg_temp]]
        obs_type = outTemp
        aggregate_type = avg
        summary_column = true

    [[max_temp]]
        obs_type = outTemp
        aggregate_type = max
        summary_column = true

    [[rain]]
        obs_type = rain
        aggregate_type = sum
        summary_column = true

    [[rain_days]]
        obs_type = rain
        colors = rainDays, count # colors are derived from obs_type per default, specify colors from [Colors] to override
        units = ""                        # Override default table units label
        aggregate_type = sum_ge
        aggregate_threshold = 1, mm
        summary_column = true

    [[max_wind]]
        obs_type = windGust
        aggregate_type = max
        summary_column = true

    [[NOAA]]
        #
        # Creates a table of links to NOAA reports with the tag $NOAA_table
        # Comment out [[NOAATable]] if you do not need this.
        #

        # Where to find the NOAA files and how they are named
        # Uses Python datetime convention (docs.python.org/2/library/datetime.html):
        # %Y = YYYY, %y = YY, %m = MM, etc.
        #
        year_filename = NOAA/NOAA-%Y.txt
        month_filename = NOAA/NOAA-%Y-%m.txt


In the Belchertown records.inc file I then reference the tables using, e.g.:

<h3>$HistoryReport.max_temp</h3> $max_temp_table

However I then get the following error in the logs:

2025-06-24T12:49:16.627475+01:00 weewxd[3747531]: ERROR weewx.cheetahgenerator: Evaluation of template /etc/weewx/skins/Belchertown/records/index.html.tmpl failed.
2025-06-24T12:49:16.627569+01:00 weewxd[3747531]: ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/Belchertown/records/index.html.tmpl
2025-06-24T12:49:16.627595+01:00 weewxd[3747531]: ERROR weewx.cheetahgenerator: **** Reason: cannot find 'HistoryReport'
2025-06-24T12:49:16.627620+01:00 weewxd[3747531]: ERROR weewx.cheetahgenerator: **** To debug, try inserting '#errorCatcher Echo' at top of template


Any ideas?

michael.k...@gmx.at

unread,
Jun 24, 2025, 8:32:00 AM6/24/25
to weewx-user
Here's how fuzzy-archer uses the history report: https://github.com/brewster76/fuzzy-archer/blob/master/skins/Bootstrap/skin.conf

First idea: add user.historygenerator.MyXSearch to the search_list_extensions, just like in line 70: https://github.com/brewster76/fuzzy-archer/blob/master/skins/Bootstrap/skin.conf#L70

Jon B

unread,
Jun 24, 2025, 8:46:09 AM6/24/25
to weewx-user
Thanks - I did have that there but had commented it out while I was testing things before!

I'm now getting a different error, though:

2025-06-24T13:38:16.053220+01:00 weewxd[3755918]: ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.cheetahgenerator.CheetahGenerator'
2025-06-24T13:38:16.053295+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****  'version'
2025-06-24T13:38:16.054253+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****  Traceback (most recent call last):
2025-06-24T13:38:16.054305+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****    File "/usr/share/weewx/weewx/reportengine.py", line 248, in run
2025-06-24T13:38:16.054348+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****      obj.start()
2025-06-24T13:38:16.054392+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****    File "/usr/share/weewx/weewx/reportengine.py", line 465, in start
2025-06-24T13:38:16.054461+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****      self.run()
2025-06-24T13:38:16.054531+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 163, in run
2025-06-24T13:38:16.054580+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****      self.init_extensions(gen_dict[section_name])
2025-06-24T13:38:16.054620+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 196, in init_extensions
2025-06-24T13:38:16.054665+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****      self.search_list_objs.append(klass(self))
2025-06-24T13:38:16.054707+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****                                   ^^^^^^^^^^^
2025-06-24T13:38:16.054747+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****    File "/etc/weewx/bin/user/historygenerator.py", line 62, in __init__
2025-06-24T13:38:16.054794+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****      self.search_list_extension['fuzzy_archer_version'] = generator.skin_dict['version']
2025-06-24T13:38:16.054836+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****                                                           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
2025-06-24T13:38:16.054871+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****    File "/usr/lib/python3/dist-packages/configobj/__init__.py", line 553, in __getitem__
2025-06-24T13:38:16.054905+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****      val = dict.__getitem__(self, key)
2025-06-24T13:38:16.054940+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-06-24T13:38:16.054975+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****  KeyError: 'version'
2025-06-24T13:38:16.055017+01:00 weewxd[3755918]: ERROR weewx.reportengine:         ****  Generator terminated

michael.k...@gmx.at

unread,
Jun 24, 2025, 9:15:51 AM6/24/25
to weewx-user
That's in line 18 https://github.com/brewster76/fuzzy-archer/blob/master/skins/Bootstrap/skin.conf#L18
But you obviously see how you are messing up your skin.conf that will be overwritten with the next skin update.

Jon B

unread,
Jun 24, 2025, 2:37:37 PM6/24/25
to weewx-user
Thanks again - I've now got it working. But yes, coding it that way is obviously not a good idea so I'll now work on implementing it in such a way that I don't need to edit the skin.conf

michael.k...@gmx.at

unread,
Jun 25, 2025, 1:56:46 AM6/25/25
to weewx-user
It should be possible to move everything you customized in skin.conf under the corresponding sections below [StdReport]. For the "version", which is just for information, I'll fix it in fuzzy-archer for the next version, that it isn't required any more.

Jon B

unread,
Jun 25, 2025, 10:14:17 AM6/25/25
to weewx-user
Yep, I've done that and it seems to work! Putting this here in case anyone else wants to do this - still need to finish customising it but this is what I added under [StdReport] [[Belchertown]]:

[[[HistoryColors]]]
        minvalues = 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050
[[[[frostDays]]]]
[[[[[count]]]]]
    minvalues = 1, 3, 5, 7, 9, 11    

    colors = "#e6e5fc", "#cccafc", "#acaafc", "#8486fc", "#6c6efc", "#5c5afc"
    fontColors = "#333333", "#333333", "#333333", "#333333", "#bbbbbb", "#bbbbbb"
    [[[[[[summary]]]]]]
        minvalues = 3, 6, 9, 12, 15, 18
"max_temp_tableheader_text" = "Maximum Temperature"

[[[[rain]]]]

obs_type = rain
aggregate_type = sum
summary_column = true

[[[[rain_days]]]]
obs_type = rain
colors = rainDays, count # colors are derived from obs_type per default, specify colors from [Colors] to override
units = ""                        # Override default table units label
aggregate_type = sum_ge
aggregate_threshold = 1, mm
summary_column = true

[[[[frost_days]]]]
obs_type = outTemp
colors = frostDays, count # colors are derived from obs_type per default, specify colors from [Colors] to override

units = ""                        # Override default table units label
aggregate_type = min_le
aggregate_threshold = 0, degree_C

summary_column = true

[[[[max_wind]]]]
obs_type = windGust
aggregate_type = max
summary_column = true

[[[[NOAA]]]]
#
# Creates a table of links to NOAA reports with the tag $NOAA_table
# Comment out [[NOAATable]] if you do not need this.
#

# Where to find the NOAA files and how they are named
# Uses Python datetime convention (docs.python.org/2/library/datetime.html):
# %Y = YYYY, %y = YY, %m = MM, etc.
#
year_filename = ../NOAA/NOAA-%Y.txt
month_filename = ../NOAA/NOAA-%Y-%m.txt


And then in /etc/weewx/skins/Belchertown/records.inc I have the following:

#set $HistoryReport = {
    'max_temp': 'Maximum Temperature',
    'min_temp': 'Minimum Temperature',
    'avg_temp': 'Average Temperature',
    'rain': 'Rainfall Accumulation',
    'rain_days': 'Days With At Least 1 mm Rainfall',
    'frost_days': 'Days of Air Frost',
    'max_wind': 'Maximum Wind Gust',
    'NOAA': 'Month-by-month Data'
}

#for $key, $label in $HistoryReport.items()
    #if $key in $history_tables
        #set $table = $history_tables[$key]
        <h3 class="historyHeader">$label</h3>
        <table class="table historyTable text-center">
        #if not $table.noaa
            <thead>
                <tr>
                    <th class="head">$table.header.head</th>
                    #for $headervalue in $table.header.values
                        <th class="month">$gettext($headervalue)</th>
                    #end for
                    #if "summary" in $table.header
                        <th class="year">$gettext($table.header.summary)</th>
                    #end if
                </tr>
            </thead>
            <tbody>
                #for $line in $table.lines
                    <tr>
                        <th class="head">$line.head.value</th>
                        #for $linevalue in $line.values
                            #set $value = $linevalue.value if $linevalue.value else '-'
                            #set $style = ''
                            #if $linevalue.value
                                #set $style = ' style="background-color:' + $linevalue.bgcolor + '; color:' + $linevalue.fontcolor + ';"'
                            #end if
                            <td class="month"$style>$value</td>
                        #end for
                        #if "summary" in $line
                            #set $style = ' style="background-color:' + $line.summary.bgcolor + '; color:' + $line.summary.fontcolor + ';"'
                            <td class="year"$style>$line.summary.value</td>
                        #end if
                    </tr>
                #end for
            </tbody>
        #else
            <!-- NOAA-specific rendering -->
            <thead>
                <tr>
                    <th class="head">$table.header.head</th>
                    #for $headervalue in $table.header.values
                        <th>$gettext($headervalue)</th>
                    #end for
                </tr>
            </thead>
            <tbody>
                #for $line in $table.lines
                    <tr>
                        <th class="noaa">
                            <a href="$line.head.url" class="btn btn-sm btn-primary primaryLive btnNOAA">$line.head.value</a>
                        </th>
                        #for $linevalue in $line.values
                            #set $data = '-'
                            #if $linevalue.value
                                #set $data = '<a href="' + $linevalue.url + '" class="btn btn-sm btn-light primaryLight btnNOAA">' + $linevalue.value + '</a>'
                            #end if
                            <td class="noaa">$data</td>
                        #end for
                    </tr>
                #end for
            </tbody>
        #end if
        </table>
        <br>
    #end if
#end for




I think the only other necessary change that I made was adding "version = 4.3" at the top of the Belchertown skin.conf file, but obviously this won't be necessary when you next update fuzzy-archer skin.

Thanks for your help!

Ton Karsten

unread,
Jun 27, 2025, 2:13:49 PM6/27/25
to weewx-user
Thanks for this information.
I copied the above information into weew.conf and into the records.inc file.
Now I get the following error messages:
~ $ sudo journalctl -u weewx -f
jun 27 19:58:18 Raspberry weewxd[783]: INFO weewx.restx: AWEKAS: Posting not enabled.
Jun 27 19:58:18 Raspberry weewxd[783]: INFO user.wcloud: service version is 0.13
Jun 27 19:58:18 Raspberry weewxd[783]: INFO user.wcloud: Data will be uploaded for id=110ae4fad479e3b3
Jun 27 19:58:18 Raspberry weewxd[783]: INFO weewx.engine: 'pyephem' detected, extended almanac data is available
Jun 27 19:58:18 Raspberry weewxd[783]: INFO __main__: Starting up weewx version 5.0.2
Jun 27 19:58:18 Raspberry weewxd[783]: INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
Jun 27 19:58:18 Raspberry weewxd[783]: INFO weewx.manager: Starting backfill of daily summaries
Jun 27 19:58:18 Raspberry weewxd[783]: INFO weewx.manager: Daily summaries up to date
Jun 27 19:58:18 Raspberry weewxd[783]: INFO weewx.engine: Starting main packet loop.
Jun 27 19:58:18 Raspberry weewxd.py[783]: weatherflowudp: MainThread: Listening for UDP broadcasts to IP address <broadcast> on port 50222, with timeout 90 and share_socket False...
Jun 27 19:59:01 Raspberry weewxd[783]: INFO weewx.manager: Added record 2025-06-27 20:00:00 CEST (1751047200) to database 'weewx.sdb'
Jun 27 19:59:01 Raspberry weewxd[783]: INFO weewx.manager: Added record 2025-06-27 20:00:00 CEST (1751047200) to daily summary in 'weewx.sdb'
Jun 27 19:59:01 Raspberry weewxd.py[783]: weatherflowudp: MainThread: Listening for UDP broadcasts to IP address <broadcast> on port 50222, with timeout 90 and share_socket False...
Jun 27 19:59:01 Raspberry weewxd[783]: INFO user.belchertown: version 1.3.1
Jun 27 19:59:01 Raspberry weewxd[783]: INFO weewx.restx: PWSWeather: Published record 2025-06-27 20:00:00 CEST (1751047200)
Jun 27 19:59:01 Raspberry weewxd[783]: INFO weewx.restx: WOW: Published record 2025-06-27 20:00:00 CEST (1751047200)
Jun 27 19:59:01 Raspberry weewxd[783]: INFO weewx.restx: Wunderground-PWS: Published record 2025-06-27 20:00:00 CEST (1751047200)
Jun 27 19:59:03 Raspberry weewxd[783]: ERROR weewx.restx: StationRegistry: Failed to publish record 2025-06-27 20:00:00 CEST (1751047200): HTTP Error 429: TOO MANY REQUESTS
Jun 27 19:59:06 Raspberry weewxd[783]: INFO weewx.restx: WeatherCloud: Published record 2025-06-27 20:00:00 CEST (1751047200)
Jun 27 19:59:10 Raspberry weewxd[783]: ERROR weewx.cheetahgenerator: Evaluation of template /etc/weewx/skins/Belchertown/records/index.html.tmpl failed.
Jun 27 19:59:10 Raspberry weewxd[783]: ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/Belchertown/records/index.html.tmpl
Jun 27 19:59:10 Raspberry weewxd[783]: ERROR weewx.cheetahgenerator: **** Reason: cannot find 'history_tables'
Jun 27 19:59:10 Raspberry weewxd[783]: ERROR weewx.cheetahgenerator: **** To debug, try inserting '#errorCatcher Echo' at top of template

Jun 27 19:59:12 Raspberry weewxd[783]: INFO weewx.cheetahgenerator: Generated 11 files for report Belchertown in 11.38 seconds
Jun 27 19:59:12 Raspberry weewxd[783]: INFO weewx.reportengine: Copied 41 files to /var/www/html
The nice overview is not created.
What am I doing wrong?
This is my website: http://weerstationnibbixwoud.nl
Greetings,
Ton

Op woensdag 25 juni 2025 om 16:14:17 UTC+2 schreef Jon B:

Jon B

unread,
Jun 30, 2025, 5:44:50 AM6/30/25
to weewx-user
Did you add "user.historygenerator.MyXSearch" to the search_list_extensions under [CheetahGenerator] in Belchertown skin.conf?

Ton Karsten

unread,
Jun 30, 2025, 2:44:46 PM6/30/25
to weewx...@googlegroups.com
Now have these errors
Bootstrap enabled
No success with the overview on the records page
Also the web pages are no longer generated
:~ $ sudo journalctl -u weewx -f
jun 30 20:31:19 Raspberry weewxd[7515]: DEBUG weewx.engine: Station does not sup                                                                                                 port reading the time
jun 30 20:31:19 Raspberry weewxd[7515]: INFO weewx.engine: Using binding 'wx_bin                                                                                                 ding' to database 'weewx.sdb'
jun 30 20:31:19 Raspberry weewxd[7515]: INFO weewx.manager: Starting backfill of                                                                                                  daily summaries
jun 30 20:31:19 Raspberry weewxd[7515]: INFO weewx.manager: Daily summaries up t                                                                                                 o date
jun 30 20:31:19 Raspberry weewxd[7515]: INFO weewx.engine: Starting main packet                                                                                                  loop.
jun 30 20:31:19 Raspberry weewxd.py[7515]: weatherflowudp: MainThread: Listening                                                                                                  for UDP broadcasts to IP address <broadcast> on port 50222, with timeout 90 and                                                                                                  share_socket False...
jun 30 20:31:19 Raspberry weewxd[7515]: DEBUG weewx.manager: Daily summary versi                                                                                                 on is 4.0
jun 30 20:31:19 Raspberry weewxd[7515]: DEBUG weewx.manager: Daily summary versi                                                                                                 on is 4.0
jun 30 20:31:19 Raspberry weewxd[7515]: DEBUG weewx.manager: Daily summary versi                                                                                                 on is 4.0
jun 30 20:31:19 Raspberry weewxd[7515]: DEBUG weewx.manager: Daily summary versi                                                                                                 on is 4.0
jun 30 20:34:01 Raspberry weewxd[7515]: INFO weewx.manager: Added record 2025-06-30 20:35:00 CEST (1751308500) to database 'weewx.sdb'
jun 30 20:34:01 Raspberry weewxd[7515]: INFO weewx.manager: Added record 2025-06-30 20:35:00 CEST (1751308500) to daily summary in 'weewx.sdb'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.restx: StationRegistry: Delaying post by 15 seconds
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Running reports for latest time in the database.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Report 'SeasonsReport' not enabled. Skipping.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Report 'SmartphoneReport' not enabled. Skipping.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Report 'MobileReport' not enabled. Skipping.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Running report 'Belchertown'
jun 30 20:34:01 Raspberry weewxd.py[7515]: weatherflowudp: MainThread: Listening for UDP broadcasts to IP address <broadcast> on port 50222, with timeout 90 and sh              are_socket False...
jun 30 20:34:01 Raspberry weewxd[7515]: ERROR weewx.reportengine: Failed to read skin configuration file /etc/weewx/skins/Belchertown/skin.conf for report 'Belcher              town': Duplicate keyword name at line 783.
jun 30 20:34:01 Raspberry weewxd[7515]: ERROR weewx.reportengine: Syntax error: Duplicate keyword name at line 783.
jun 30 20:34:01 Raspberry weewxd[7515]: ERROR weewx.reportengine:    ****       Report ignored
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Running report 'Bootstrap'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Bootstrap/skin.conf for report 'Bootstrap'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Running generators for report 'Bootstrap' in directory '/etc/weewx/skins/Bootstrap'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name outTemp and column_name outTemp with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'outTemp'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding outTemp to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name dewpoint and column_name dewpoint with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'dewpoint'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding dewpoint to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name barometer and column_name barometer with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'barometer'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding barometer to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name rain and column_name rain with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'rain'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding rain to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name outHumidity and column_name outHumidity with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'outHumidity'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding outHumidity to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name windSpeed and column_name windSpeed with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'windSpeed'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding windSpeed to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name windGust and column_name windGust with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'windGust'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding windGust to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name windDir and column_name windDir with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'windDir'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding windDir to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name radiation and column_name radiation with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'radiation'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding radiation to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name maxSolarRad and column_name maxSolarRad with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'maxSolarRad'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding maxSolarRad to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name UV and column_name UV with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'UV'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding UV to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name lightning_distance and column_name lightning_distance with binding N              one
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'lightning_distance'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding lightning_distance to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name lightning_strike_count and column_name lightning_strike_count with b              inding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Returning data series for 'lightning_strike_count'
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Adding lightning_strike_count to frontend_data.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name outTemp and column_name outTemp with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Data for observation outTemp has already been collected.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name barometer and column_name barometer with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Data for observation barometer has already been collected.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name windDir and column_name windDir with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Data for observation windDir has already been collected.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name outHumidity and column_name outHumidity with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Data for observation outHumidity has already been collected.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name windSpeed and column_name windSpeed with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Data for observation windSpeed has already been collected.
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Generating history for obs_name windGust and column_name windGust with binding None
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.jsonengine: Data for observation windGust has already been collected.
jun 30 20:34:01 Raspberry weewxd[7515]: INFO user.jsonengine: JSONGenerator: Generated 13 data items for Bootstrap in 0.21 seconds
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: anti_alias
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 3
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: width
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 1
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: show_daynight
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: true
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: daynight_day_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0xdfdfdf
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: daynight_night_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0xbbbbbb
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: daynight_edge_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0xd0d0d0
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: image_width
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 451
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: image_height
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 275
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: large_image_width
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 900
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: large_image_height
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 600
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: image_background_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0xffffff
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: chart_background_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0xffffff
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: chart_gridline_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0xa0a0a0
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: top_label_font_path
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: top_label_font_size
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 14
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: unit_label_font_path
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: unit_label_font_size
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 10
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: unit_label_font_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0x000000
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: bottom_label_font_path
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: bottom_label_font_size
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 10
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: bottom_label_font_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0x000000
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: axis_label_font_path
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: axis_label_font_size
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 10
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: axis_label_font_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0x000000
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: rose_label
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: N
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: rose_label_font_path
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: rose_label_font_size
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 12
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: rose_label_font_color
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 0x000000
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: chart_line_colors
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: ['0xb48242', '0x4242b4', '0x42b442']
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: line_type
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: solid
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: marker_size
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 8
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: marker_type
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: none
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: plot_type
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: line
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: aggregate_type
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: none
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: time_length
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 86400
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: yscale
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: ['None', 'None', 'None']
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: vector_rotate
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: 90
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: day_images
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: {'image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap',               'dayhumidity-Bootstrap', 'daywind-Bootstrap', 'daywinddir-Bootstrap'], 'x_label_format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'daytemp-              Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'daybarometer-Bootstrap': {'barometer': {}}, 'dayrain-Bootstrap': {'yscale': ['N              one', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'dayhumidity-Bootstrap              ': {'outHumidity': {}}, 'daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}}, 'daywinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', '              marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'dayradiation-Bootstrap': {'radiation': {}}}
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: week_images
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap              ', 'weekhumidity-Bootstrap', 'weekwind-Bootstrap', 'weekwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggr              egate_type': 'avg', 'aggregate_interval': '3600', 'weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'weekbarometer-Boots              trap': {'barometer': {}}, 'weekrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3              600', 'label': 'Rain (hourly total)'}}, 'weekhumidity-Bootstrap': {'outHumidity': {}}, 'weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'              }}, 'weekwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'weekradiation-B              ootstrap': {'radiation': {'aggregate_interval': '300'}}}
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: month_images
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap', 'monthrain-Bootst              rap', 'monthhumidity-Bootstrap', 'monthwind-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '2592000'              , 'aggregate_type': 'avg', 'aggregate_interval': '10800', 'show_daynight': 'false', 'monthtemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color':               '0xb48242'}}, 'monthbarometer-Bootstrap': {'barometer': {}}, 'monthrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_t              ype': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'monthhumidity-Bootstrap': {'outHumidity': {}}, 'monthwind-Bootstrap': {'windSpeed': {              }, 'windGust': {'aggregate_type': 'max'}}, 'monthwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': '              cross', 'windDir': {}}}
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: key: year_images
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: item: {'image_items': ['yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Boo              tstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'], 'x_label_format': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536              000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': 'false', 'yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggre              gate_type': 'min', 'label': 'Min'}, 'outTemp': {'aggregate_type': 'max', 'label': 'Max'}}, 'yearbarometer-Bootstrap': {'barometer': {}}, 'yearrain-Bootstrap': {'ys              cale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'yearhumidit              y-Bootstrap': {'outHumidity': {}}, 'yearwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'yearwinddir-Bootstrap': {'yscale': ['0.0', '360              .0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: [ImageGenerator]: {'anti_alias': '3', 'width': '1', 'show_daynight': 'true', 'daynight_day_              color': '0xdfdfdf', 'daynight_night_color': '0xbbbbbb', 'daynight_edge_color': '0xd0d0d0', 'image_width': '451', 'image_height': '275', 'large_image_width': '900',               'large_image_height': '600', 'image_background_color': '0xffffff', 'chart_background_color': '0xffffff', 'chart_gridline_color': '0xa0a0a0', 'top_label_font_path'              : 'font/FreeMonoBold.ttf', 'top_label_font_size': '14', 'unit_label_font_path': 'font/FreeMonoBold.ttf', 'unit_label_font_size': '10', 'unit_label_font_color': '0x              000000', 'bottom_label_font_path': 'font/FreeMonoBold.ttf', 'bottom_label_font_size': '10', 'bottom_label_font_color': '0x000000', 'axis_label_font_path': 'font/Fr              eeMonoBold.ttf', 'axis_label_font_size': '10', 'axis_label_font_color': '0x000000', 'rose_label': 'N', 'rose_label_font_path': 'font/FreeMonoBold.ttf', 'rose_label              _font_size': '12', 'rose_label_font_color': '0x000000', 'chart_line_colors': ['0xb48242', '0x4242b4', '0x42b442'], 'line_type': 'solid', 'marker_size': '8', 'marke              r_type': 'none', 'plot_type': 'line', 'aggregate_type': 'none', 'time_length': '86400', 'yscale': ['None', 'None', 'None'], 'vector_rotate': '90', 'day_images': {'              image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap', 'dayhumidity-Bootstrap', 'daywind-Bootstrap', 'daywinddir-Bootstrap'], 'x_label_              format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'daytemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}              }, 'daybarometer-Bootstrap': {'barometer': {}}, 'dayrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'ag              gregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'dayhumidity-Bootstrap': {'outHumidity': {}}, 'daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}},               'daywinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'dayradiation-Bootstr              ap': {'radiation': {}}}, 'week_images': {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap', 'weekhumidity-Bootstrap', 'weekwind              -Bootstrap', 'weekwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggregate_type': 'avg', 'aggregate_interva              l': '3600', 'weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'weekbarometer-Bootstrap': {'barometer': {}}, 'weekrain-Bo              otstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}              , 'weekhumidity-Bootstrap': {'outHumidity': {}}, 'weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'weekwinddir-Bootstrap': {'yscale'              : ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'weekradiation-Bootstrap': {'radiation': {'aggregate_i              nterval': '300'}}}, 'month_images': {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap', 'monthrain-Bootstrap', 'monthhumidity-Bootstrap', 'monthwin              d-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '2592000', 'aggregate_type': 'avg', 'aggregate_inte              rval': '10800', 'show_daynight': 'false', 'monthtemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'monthbarometer-Bootstrap':               {'barometer': {}}, 'monthrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400'              , 'label': 'Rain (daily total)'}}, 'monthhumidity-Bootstrap': {'outHumidity': {}}, 'monthwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}},               'monthwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}, 'year_images': {'              image_items': ['yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Bootstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'              ], 'x_label_format': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': '              false', 'yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggregate_type': 'min', 'label': 'Min'}, 'outTemp': {'aggregate_type': 'max', 'label'              : 'Max'}}, 'yearbarometer-Bootstrap': {'barometer': {}}, 'yearrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type':               'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'yearhumidity-Bootstrap': {'outHumidity': {}}, 'yearwind-Bootstrap': {'windSpeed': {}, 'wind              Gust': {'aggregate_type': 'max'}}, 'yearwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', '              windDir': {}}}, 'large-day_images': {'image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap', 'dayhumidity-Bootstrap', 'daywind-Bootstra              p', 'daywinddir-Bootstrap'], 'x_label_format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'image_width': '900', 'image_height': '600', 'large              -daytemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-daybarometer-Bootstrap': {'barometer': {}}, 'large-dayrain-Boots              trap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, '              large-dayhumidity-Bootstrap': {'outHumidity': {}}, 'large-daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}}, 'large-daywinddir-Bootstrap': {'yscale': ['0.0', '              360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'large-dayradiation-Bootstrap': {'radiation': {}}}, 'large-week_i              mages': {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap', 'weekhumidity-Bootstrap', 'weekwind-Bootstrap', 'weekwinddir-Bootst              rap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggregate_type': 'avg', 'aggregate_interval': '3600', 'image_width': '900'              , 'image_height': '600', 'large-weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-weekbarometer-Bootstrap': {'baro              meter': {}}, 'large-weekrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', '              label': 'Rain (hourly total)'}}, 'large-weekhumidity-Bootstrap': {'outHumidity': {}}, 'large-weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type':               'max'}}, 'large-weekwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'larg              e-weekradiation-Bootstrap': {'radiation': {'aggregate_interval': '300'}}}, 'large-month_images': {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap'              , 'monthrain-Bootstrap', 'monthhumidity-Bootstrap', 'monthwind-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time              _length': '2592000', 'aggregate_type': 'avg', 'aggregate_interval': '10800', 'show_daynight': 'false', 'image_width': '900', 'image_height': '600', 'large-monthtem              p-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-monthbarometer-Bootstrap': {'barometer': {}}, 'large-monthrain-Bootstra              p': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'lar              ge-monthhumidity-Bootstrap': {'outHumidity': {}}, 'large-monthwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'large-monthwinddir-Bootst              rap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}, 'large-year_images': {'image_items': [              'yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Bootstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'], 'x_label_for              mat': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': 'false', 'image_              width': '900', 'image_height': '600', 'large-yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggregate_type': 'min', 'label': 'Min'}, 'outTemp              ': {'aggregate_type': 'max', 'label': 'Max'}}, 'large-yearbarometer-Bootstrap': {'barometer': {}}, 'large-yearrain-Bootstrap': {'yscale': ['None', 'None', '0.02'],               'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'large-yearhumidity-Bootstrap': {'outHumidit              y': {}}, 'large-yearwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'large-yearwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'],               'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}}
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG user.largeimagegenerator: largeimagegenerator.py: Generated large images configs in 0.03 seconds
jun 30 20:34:01 Raspberry weewxd[7515]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 20:34:01 Raspberry weewxd[7515]: INFO weewx.restx: PWSWeather: Published record 2025-06-30 20:35:00 CEST (1751308500)
jun 30 20:34:02 Raspberry weewxd[7515]: INFO weewx.restx: WOW: Published record 2025-06-30 20:35:00 CEST (1751308500)
jun 30 20:34:02 Raspberry weewxd[7515]: INFO weewx.restx: Wunderground-PWS: Published record 2025-06-30 20:35:00 CEST (1751308500)
jun 30 20:34:03 Raspberry weewxd[7515]: INFO weewx.restx: WeatherCloud: Published record 2025-06-30 20:35:00 CEST (1751308500)
jun 30 20:34:17 Raspberry weewxd[7515]: DEBUG weewx.restx: StationRegistry: Posting too frequently: HTTP Error 429: TOO MANY REQUESTS
jun 30 20:34:17 Raspberry weewxd[7515]: ERROR weewx.restx: StationRegistry: Failed to publish record 2025-06-30 20:35:00 CEST (1751308500): HTTP Error 429: TOO MAN              Y REQUESTS
jun 30 20:34:36 Raspberry weewxd[7515]: INFO weewx.imagegenerator: Generated 52 images for report Bootstrap in 34.27 seconds
jun 30 20:34:36 Raspberry weewxd[7515]: INFO weewx.reportengine: Copied 15 files to /var/www/html/Bootstrap
jun 30 20:34:36 Raspberry weewxd[7515]: DEBUG weewx.cheetahgenerator: Using search list ['user.historygenerator.MyXSearch', 'weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.DisplayOptions', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.Gettext', 'weewx.cheetahgenerator.JSONHelpers', 'weewx.cheetahgenerator.PlotInfo', 'weewx.cheetahgenerator.SkinInfo', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo']
jun 30 20:34:36 Raspberry weewxd[7515]: DEBUG user.historygenerator: TranslationLinks: No historygenerator.py specific labels found
jun 30 20:34:36 Raspberry weewxd[7515]: DEBUG user.historygenerator: BootstrapLabels: No historygenerator.py specific labels found
jun 30 20:34:36 Raspberry weewxd[7515]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 20:34:37 Raspberry weewxd[7515]: INFO user.historygenerator: historygenerator.py: Generated 7 tables in 0.92 seconds
jun 30 20:34:44 Raspberry weewxd[7515]: INFO weewx.cheetahgenerator: Generated 12 files for report Bootstrap in 7.61 seconds
jun 30 20:34:44 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
jun 30 20:34:44 Raspberry weewxd[7515]: DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.



Op ma 30 jun 2025 om 11:44 schreef Jon B <jonbe...@gmail.com>:
--
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/f1f0a4c8-bc4a-4daa-9503-1d54e46958b5n%40googlegroups.com.

Ton Karsten

unread,
Jun 30, 2025, 2:47:27 PM6/30/25
to weewx...@googlegroups.com
My skin.conf settings
[CheetahGenerator]
    # This section is used by the generator CheetahGenerator, and specifies
    # which files are to be generated from which template.

    search_list_extensions = user.belchertown.getData
    search_list_extensions = user.historygenerator.MyXSearch

    # Possible encodings are 'html_entities', 'utf8', or 'strict_ascii'
    encoding = html_entities


Op ma 30 jun 2025 om 20:44 schreef Ton Karsten <moth...@gmail.com>:

vince

unread,
Jun 30, 2025, 2:59:49 PM6/30/25
to weewx-user
jun 30 20:34:01 Raspberry weewxd[7515]: ERROR weewx.reportengine: Failed to read skin configuration file /etc/weewx/skins/Belchertown/skin.conf for report 'Belcher              town': Duplicate keyword name at line 783.
jun 30 20:34:01 Raspberry weewxd[7515]: ERROR weewx.reportengine: Syntax error: Duplicate keyword name at line 783.
jun 30 20:34:01 Raspberry weewxd[7515]: ERROR weewx.reportengine:    ****       Report ignored


You have a keyword in there twice…..

Jon B

unread,
Jun 30, 2025, 3:04:53 PM6/30/25
to weewx-user
Yep, you just want:  search_list_extensions = user.belchertown.getData,  user.historygenerator.MyXSearch

Ton Karsten

unread,
Jun 30, 2025, 3:52:15 PM6/30/25
to weewx-user
Now I have these error messages and no working website anymore.
 $ sudo journalctl -u weewx -f
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: {'image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap', 'dayhumidity-Bootstrap', 'daywind-Bootstrap', 'daywinddir-Bootstrap'], 'x_label_format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'daytemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'daybarometer-Bootstrap': {'barometer': {}}, 'dayrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'dayhumidity-Bootstrap': {'outHumidity': {}}, 'daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}}, 'daywinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'dayradiation-Bootstrap': {'radiation': {}}}
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: week_images
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap', 'weekhumidity-Bootstrap', 'weekwind-Bootstrap', 'weekwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggregate_type': 'avg', 'aggregate_interval': '3600', 'weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'weekbarometer-Bootstrap': {'barometer': {}}, 'weekrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'weekhumidity-Bootstrap': {'outHumidity': {}}, 'weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'weekwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'weekradiation-Bootstrap': {'radiation': {'aggregate_interval': '300'}}}
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: month_images
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap', 'monthrain-Bootstrap', 'monthhumidity-Bootstrap', 'monthwind-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '2592000', 'aggregate_type': 'avg', 'aggregate_interval': '10800', 'show_daynight': 'false', 'monthtemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'monthbarometer-Bootstrap': {'barometer': {}}, 'monthrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'monthhumidity-Bootstrap': {'outHumidity': {}}, 'monthwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'monthwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: year_images
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: {'image_items': ['yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Bootstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'], 'x_label_format': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': 'false', 'yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggregate_type': 'min', 'label': 'Min'}, 'outTemp': {'aggregate_type': 'max', 'label': 'Max'}}, 'yearbarometer-Bootstrap': {'barometer': {}}, 'yearrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'yearhumidity-Bootstrap': {'outHumidity': {}}, 'yearwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'yearwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: [ImageGenerator]: {'anti_alias': '3', 'width': '1', 'show_daynight': 'true', 'daynight_day_color': '0xdfdfdf', 'daynight_night_color': '0xbbbbbb', 'daynight_edge_color': '0xd0d0d0', 'image_width': '451', 'image_height': '275', 'large_image_width': '900', 'large_image_height': '600', 'image_background_color': '0xffffff', 'chart_background_color': '0xffffff', 'chart_gridline_color': '0xa0a0a0', 'top_label_font_path': 'font/FreeMonoBold.ttf', 'top_label_font_size': '14', 'unit_label_font_path': 'font/FreeMonoBold.ttf', 'unit_label_font_size': '10', 'unit_label_font_color': '0x000000', 'bottom_label_font_path': 'font/FreeMonoBold.ttf', 'bottom_label_font_size': '10', 'bottom_label_font_color': '0x000000', 'axis_label_font_path': 'font/FreeMonoBold.ttf', 'axis_label_font_size': '10', 'axis_label_font_color': '0x000000', 'rose_label': 'N', 'rose_label_font_path': 'font/FreeMonoBold.ttf', 'rose_label_font_size': '12', 'rose_label_font_color': '0x000000', 'chart_line_colors': ['0xb48242', '0x4242b4', '0x42b442'], 'line_type': 'solid', 'marker_size': '8', 'marker_type': 'none', 'plot_type': 'line', 'aggregate_type': 'none', 'time_length': '86400', 'yscale': ['None', 'None', 'None'], 'vector_rotate': '90', 'day_images': {'image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap', 'dayhumidity-Bootstrap', 'daywind-Bootstrap', 'daywinddir-Bootstrap'], 'x_label_format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'daytemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'daybarometer-Bootstrap': {'barometer': {}}, 'dayrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'dayhumidity-Bootstrap': {'outHumidity': {}}, 'daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}}, 'daywinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'dayradiation-Bootstrap': {'radiation': {}}}, 'week_images': {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap', 'weekhumidity-Bootstrap', 'weekwind-Bootstrap', 'weekwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggregate_type': 'avg', 'aggregate_interval': '3600', 'weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'weekbarometer-Bootstrap': {'barometer': {}}, 'weekrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'weekhumidity-Bootstrap': {'outHumidity': {}}, 'weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'weekwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'weekradiation-Bootstrap': {'radiation': {'aggregate_interval': '300'}}}, 'month_images': {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap', 'monthrain-Bootstrap', 'monthhumidity-Bootstrap', 'monthwind-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '2592000', 'aggregate_type': 'avg', 'aggregate_interval': '10800', 'show_daynight': 'false', 'monthtemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'monthbarometer-Bootstrap': {'barometer': {}}, 'monthrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'monthhumidity-Bootstrap': {'outHumidity': {}}, 'monthwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'monthwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}, 'year_images': {'image_items': ['yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Bootstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'], 'x_label_format': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': 'false', 'yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggregate_type': 'min', 'label': 'Min'}, 'outTemp': {'aggregate_type': 'max', 'label': 'Max'}}, 'yearbarometer-Bootstrap': {'barometer': {}}, 'yearrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'yearhumidity-Bootstrap': {'outHumidity': {}}, 'yearwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'yearwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}, 'large-day_images': {'image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap', 'dayhumidity-Bootstrap', 'daywind-Bootstrap', 'daywinddir-Bootstrap'], 'x_label_format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'image_width': '900', 'image_height': '600', 'large-daytemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-daybarometer-Bootstrap': {'barometer': {}}, 'large-dayrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'large-dayhumidity-Bootstrap': {'outHumidity': {}}, 'large-daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}}, 'large-daywinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'large-dayradiation-Bootstrap': {'radiation': {}}}, 'large-week_images': {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap', 'weekhumidity-Bootstrap', 'weekwind-Bootstrap', 'weekwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggregate_type': 'avg', 'aggregate_interval': '3600', 'image_width': '900', 'image_height': '600', 'large-weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-weekbarometer-Bootstrap': {'barometer': {}}, 'large-weekrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'large-weekhumidity-Bootstrap': {'outHumidity': {}}, 'large-weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'large-weekwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'large-weekradiation-Bootstrap': {'radiation': {'aggregate_interval': '300'}}}, 'large-month_images': {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap', 'monthrain-Bootstrap', 'monthhumidity-Bootstrap', 'monthwind-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '2592000', 'aggregate_type': 'avg', 'aggregate_interval': '10800', 'show_daynight': 'false', 'image_width': '900', 'image_height': '600', 'large-monthtemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-monthbarometer-Bootstrap': {'barometer': {}}, 'large-monthrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'large-monthhumidity-Bootstrap': {'outHumidity': {}}, 'large-monthwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'large-monthwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}, 'large-year_images': {'image_items': ['yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Bootstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'], 'x_label_format': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': 'false', 'image_width': '900', 'image_height': '600', 'large-yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggregate_type': 'min', 'label': 'Min'}, 'outTemp': {'aggregate_type': 'max', 'label': 'Max'}}, 'large-yearbarometer-Bootstrap': {'barometer': {}}, 'large-yearrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'large-yearhumidity-Bootstrap': {'outHumidity': {}}, 'large-yearwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'large-yearwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}}
jun 30 21:39:54 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: largeimagegenerator.py: Generated large images configs in 0.02 seconds
jun 30 21:39:55 Raspberry weewxd[753]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 21:40:01 Raspberry weewxd[753]: INFO weewx.imagegenerator: Generated 14 images for report Bootstrap in 6.49 seconds
jun 30 21:40:01 Raspberry weewxd[753]: INFO weewx.reportengine: Copied 15 files to /var/www/html/Bootstrap
jun 30 21:40:02 Raspberry weewxd[753]: DEBUG weewx.cheetahgenerator: Using search list ['user.historygenerator.MyXSearch', 'weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.DisplayOptions', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.Gettext', 'weewx.cheetahgenerator.JSONHelpers', 'weewx.cheetahgenerator.PlotInfo', 'weewx.cheetahgenerator.SkinInfo', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo']
jun 30 21:40:02 Raspberry weewxd[753]: DEBUG user.historygenerator: TranslationLinks: No historygenerator.py specific labels found
jun 30 21:40:02 Raspberry weewxd[753]: DEBUG user.historygenerator: BootstrapLabels: No historygenerator.py specific labels found
jun 30 21:40:02 Raspberry weewxd[753]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 21:40:03 Raspberry weewxd[753]: INFO user.historygenerator: historygenerator.py: Generated 7 tables in 1.04 seconds
jun 30 21:40:11 Raspberry weewxd[753]: INFO weewx.cheetahgenerator: Generated 12 files for report Bootstrap in 9.12 seconds
jun 30 21:40:11 Raspberry weewxd[753]: DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
jun 30 21:40:11 Raspberry weewxd[753]: DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.
jun 30 21:43:57 Raspberry weewxd[753]: INFO weewx.manager: Added record 2025-06-30 21:45:00 CEST (1751312700) to database 'weewx.sdb'
jun 30 21:43:57 Raspberry weewxd[753]: INFO weewx.manager: Added record 2025-06-30 21:45:00 CEST (1751312700) to daily summary in 'weewx.sdb'
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.reportengine: Running reports for latest time in the database.
jun 30 21:43:57 Raspberry weewxd.py[753]: weatherflowudp: MainThread: Listening for UDP broadcasts to IP address <broadcast> on port 50222, with timeout 90 and share_socket False...
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.restx: StationRegistry: Delaying post by 14 seconds
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.reportengine: Report 'SeasonsReport' not enabled. Skipping.
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.reportengine: Report 'SmartphoneReport' not enabled. Skipping.
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.reportengine: Report 'MobileReport' not enabled. Skipping.
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.reportengine: Running report 'Belchertown'
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Belchertown/skin.conf for report 'Belchertown'
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.reportengine: Running generators for report 'Belchertown' in directory '/etc/weewx/skins/Belchertown'
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.cheetahgenerator: Using search list ['user.belchertown.getData', 'user.historygenerator.MyXSearch', 'weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.DisplayOptions', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.Gettext', 'weewx.cheetahgenerator.JSONHelpers', 'weewx.cheetahgenerator.PlotInfo', 'weewx.cheetahgenerator.SkinInfo', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo']
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.cheetahgenerator.CheetahGenerator'
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****  'version'
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****  Traceback (most recent call last):
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****    File "/usr/share/weewx/weewx/reportengine.py", line 220, in run
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****      obj.start()
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****    File "/usr/share/weewx/weewx/reportengine.py", line 409, in start
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****      self.run()
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 163, in run
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****      self.init_extensions(gen_dict[section_name])
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 196, in init_extensions
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****      self.search_list_objs.append(klass(self))
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****                                   ^^^^^^^^^^^
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****    File "/etc/weewx/bin/user/historygenerator.py", line 62, in __init__
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****      self.search_list_extension['fuzzy_archer_version'] = generator.skin_dict['version']
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****                                                           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****    File "/usr/lib/python3/dist-packages/configobj/__init__.py", line 554, in __getitem__
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****      val = dict.__getitem__(self, key)
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****  KeyError: 'version'
jun 30 21:43:57 Raspberry weewxd[753]: ERROR weewx.reportengine:         ****  Generator terminated
jun 30 21:43:57 Raspberry weewxd[753]: Traceback (most recent call last):
jun 30 21:43:57 Raspberry weewxd[753]:   File "/usr/share/weewx/weewx/reportengine.py", line 220, in run
jun 30 21:43:57 Raspberry weewxd[753]:     obj.start()
jun 30 21:43:57 Raspberry weewxd[753]:   File "/usr/share/weewx/weewx/reportengine.py", line 409, in start
jun 30 21:43:57 Raspberry weewxd[753]:     self.run()
jun 30 21:43:57 Raspberry weewxd[753]:   File "/usr/share/weewx/weewx/cheetahgenerator.py", line 163, in run
jun 30 21:43:57 Raspberry weewxd[753]:     self.init_extensions(gen_dict[section_name])
jun 30 21:43:57 Raspberry weewxd[753]:   File "/usr/share/weewx/weewx/cheetahgenerator.py", line 196, in init_extensions
jun 30 21:43:57 Raspberry weewxd[753]:     self.search_list_objs.append(klass(self))
jun 30 21:43:57 Raspberry weewxd[753]:                                  ^^^^^^^^^^^
jun 30 21:43:57 Raspberry weewxd[753]:   File "/etc/weewx/bin/user/historygenerator.py", line 62, in __init__
jun 30 21:43:57 Raspberry weewxd[753]:     self.search_list_extension['fuzzy_archer_version'] = generator.skin_dict['version']
jun 30 21:43:57 Raspberry weewxd[753]:                                                          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
jun 30 21:43:57 Raspberry weewxd[753]:   File "/usr/lib/python3/dist-packages/configobj/__init__.py", line 554, in __getitem__
jun 30 21:43:57 Raspberry weewxd[753]:     val = dict.__getitem__(self, key)
jun 30 21:43:57 Raspberry weewxd[753]:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
jun 30 21:43:57 Raspberry weewxd[753]: KeyError: 'version'
jun 30 21:43:57 Raspberry weewxd[753]: INFO weewx.reportengine: Copied 3 files to /var/www/html
jun 30 21:43:57 Raspberry weewxd[753]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 21:43:58 Raspberry weewxd[753]: INFO weewx.restx: PWSWeather: Published record 2025-06-30 21:45:00 CEST (1751312700)
jun 30 21:43:58 Raspberry weewxd[753]: INFO weewx.restx: WOW: Published record 2025-06-30 21:45:00 CEST (1751312700)
jun 30 21:43:58 Raspberry weewxd[753]: INFO weewx.restx: Wunderground-PWS: Published record 2025-06-30 21:45:00 CEST (1751312700)
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG weewx.reportengine: Running report 'Bootstrap'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Bootstrap/skin.conf for report 'Bootstrap'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG weewx.reportengine: Running generators for report 'Bootstrap' in directory '/etc/weewx/skins/Bootstrap'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name outTemp and column_name outTemp with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'outTemp'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding outTemp to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name dewpoint and column_name dewpoint with binding None
jun 30 21:44:00 Raspberry weewxd[753]: INFO weewx.restx: WeatherCloud: Published record 2025-06-30 21:45:00 CEST (1751312700)
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'dewpoint'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding dewpoint to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name barometer and column_name barometer with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'barometer'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding barometer to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name rain and column_name rain with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'rain'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding rain to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name outHumidity and column_name outHumidity with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'outHumidity'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding outHumidity to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name windSpeed and column_name windSpeed with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'windSpeed'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding windSpeed to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name windGust and column_name windGust with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'windGust'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding windGust to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name windDir and column_name windDir with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'windDir'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding windDir to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name radiation and column_name radiation with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'radiation'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding radiation to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name maxSolarRad and column_name maxSolarRad with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'maxSolarRad'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding maxSolarRad to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name UV and column_name UV with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'UV'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding UV to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name lightning_distance and column_name lightning_distance with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'lightning_distance'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding lightning_distance to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name lightning_strike_count and column_name lightning_strike_count with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Returning data series for 'lightning_strike_count'
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Adding lightning_strike_count to frontend_data.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name outTemp and column_name outTemp with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Data for observation outTemp has already been collected.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name barometer and column_name barometer with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Data for observation barometer has already been collected.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name windDir and column_name windDir with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Data for observation windDir has already been collected.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name outHumidity and column_name outHumidity with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Data for observation outHumidity has already been collected.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name windSpeed and column_name windSpeed with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Data for observation windSpeed has already been collected.
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Generating history for obs_name windGust and column_name windGust with binding None
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.jsonengine: Data for observation windGust has already been collected.
jun 30 21:44:00 Raspberry weewxd[753]: INFO user.jsonengine: JSONGenerator: Generated 13 data items for Bootstrap in 0.21 seconds
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: anti_alias
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 3
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: width
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 1
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: show_daynight
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: true
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: daynight_day_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0xdfdfdf
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: daynight_night_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0xbbbbbb
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: daynight_edge_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0xd0d0d0
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: image_width
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 451
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: image_height
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 275
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: large_image_width
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 900
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: large_image_height
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 600
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: image_background_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0xffffff
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: chart_background_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0xffffff
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: chart_gridline_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0xa0a0a0
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: top_label_font_path
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: top_label_font_size
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 14
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: unit_label_font_path
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: unit_label_font_size
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 10
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: unit_label_font_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0x000000
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: bottom_label_font_path
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: bottom_label_font_size
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 10
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: bottom_label_font_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0x000000
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: axis_label_font_path
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: axis_label_font_size
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 10
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: axis_label_font_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0x000000
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: rose_label
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: N
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: rose_label_font_path
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: font/FreeMonoBold.ttf
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: rose_label_font_size
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 12
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: rose_label_font_color
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 0x000000
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: chart_line_colors
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: ['0xb48242', '0x4242b4', '0x42b442']
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: line_type
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: solid
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: marker_size
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 8
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: marker_type
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: none
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: plot_type
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: line
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: aggregate_type
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: none
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: time_length
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 86400
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: yscale
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: ['None', 'None', 'None']
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: vector_rotate
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: 90
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: day_images
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: {'image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap', 'dayhumidity-Bootstrap', 'daywind-Bootstrap', 'daywinddir-Bootstrap'], 'x_label_format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'daytemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'daybarometer-Bootstrap': {'barometer': {}}, 'dayrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'dayhumidity-Bootstrap': {'outHumidity': {}}, 'daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}}, 'daywinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'dayradiation-Bootstrap': {'radiation': {}}}
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: week_images
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap', 'weekhumidity-Bootstrap', 'weekwind-Bootstrap', 'weekwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggregate_type': 'avg', 'aggregate_interval': '3600', 'weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'weekbarometer-Bootstrap': {'barometer': {}}, 'weekrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'weekhumidity-Bootstrap': {'outHumidity': {}}, 'weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'weekwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'weekradiation-Bootstrap': {'radiation': {'aggregate_interval': '300'}}}
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: month_images
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap', 'monthrain-Bootstrap', 'monthhumidity-Bootstrap', 'monthwind-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '2592000', 'aggregate_type': 'avg', 'aggregate_interval': '10800', 'show_daynight': 'false', 'monthtemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'monthbarometer-Bootstrap': {'barometer': {}}, 'monthrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'monthhumidity-Bootstrap': {'outHumidity': {}}, 'monthwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'monthwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: key: year_images
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: item: {'image_items': ['yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Bootstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'], 'x_label_format': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': 'false', 'yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggregate_type': 'min', 'label': 'Min'}, 'outTemp': {'aggregate_type': 'max', 'label': 'Max'}}, 'yearbarometer-Bootstrap': {'barometer': {}}, 'yearrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'yearhumidity-Bootstrap': {'outHumidity': {}}, 'yearwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'yearwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: [ImageGenerator]: {'anti_alias': '3', 'width': '1', 'show_daynight': 'true', 'daynight_day_color': '0xdfdfdf', 'daynight_night_color': '0xbbbbbb', 'daynight_edge_color': '0xd0d0d0', 'image_width': '451', 'image_height': '275', 'large_image_width': '900', 'large_image_height': '600', 'image_background_color': '0xffffff', 'chart_background_color': '0xffffff', 'chart_gridline_color': '0xa0a0a0', 'top_label_font_path': 'font/FreeMonoBold.ttf', 'top_label_font_size': '14', 'unit_label_font_path': 'font/FreeMonoBold.ttf', 'unit_label_font_size': '10', 'unit_label_font_color': '0x000000', 'bottom_label_font_path': 'font/FreeMonoBold.ttf', 'bottom_label_font_size': '10', 'bottom_label_font_color': '0x000000', 'axis_label_font_path': 'font/FreeMonoBold.ttf', 'axis_label_font_size': '10', 'axis_label_font_color': '0x000000', 'rose_label': 'N', 'rose_label_font_path': 'font/FreeMonoBold.ttf', 'rose_label_font_size': '12', 'rose_label_font_color': '0x000000', 'chart_line_colors': ['0xb48242', '0x4242b4', '0x42b442'], 'line_type': 'solid', 'marker_size': '8', 'marker_type': 'none', 'plot_type': 'line', 'aggregate_type': 'none', 'time_length': '86400', 'yscale': ['None', 'None', 'None'], 'vector_rotate': '90', 'day_images': {'image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap', 'dayhumidity-Bootstrap', 'daywind-Bootstrap', 'daywinddir-Bootstrap'], 'x_label_format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'daytemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'daybarometer-Bootstrap': {'barometer': {}}, 'dayrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'dayhumidity-Bootstrap': {'outHumidity': {}}, 'daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}}, 'daywinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'dayradiation-Bootstrap': {'radiation': {}}}, 'week_images': {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap', 'weekhumidity-Bootstrap', 'weekwind-Bootstrap', 'weekwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggregate_type': 'avg', 'aggregate_interval': '3600', 'weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'weekbarometer-Bootstrap': {'barometer': {}}, 'weekrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'weekhumidity-Bootstrap': {'outHumidity': {}}, 'weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'weekwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'weekradiation-Bootstrap': {'radiation': {'aggregate_interval': '300'}}}, 'month_images': {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap', 'monthrain-Bootstrap', 'monthhumidity-Bootstrap', 'monthwind-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '2592000', 'aggregate_type': 'avg', 'aggregate_interval': '10800', 'show_daynight': 'false', 'monthtemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'monthbarometer-Bootstrap': {'barometer': {}}, 'monthrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'monthhumidity-Bootstrap': {'outHumidity': {}}, 'monthwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'monthwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}, 'year_images': {'image_items': ['yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Bootstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'], 'x_label_format': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': 'false', 'yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggregate_type': 'min', 'label': 'Min'}, 'outTemp': {'aggregate_type': 'max', 'label': 'Max'}}, 'yearbarometer-Bootstrap': {'barometer': {}}, 'yearrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'yearhumidity-Bootstrap': {'outHumidity': {}}, 'yearwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'yearwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}, 'large-day_images': {'image_items': ['daytemp-Bootstrap', 'daybarometer-Bootstrap', 'dayrain-Bootstrap', 'dayhumidity-Bootstrap', 'daywind-Bootstrap', 'daywinddir-Bootstrap'], 'x_label_format': '%H:%M', 'bottom_label_format': '%x %X', 'time_length': '97200', 'image_width': '900', 'image_height': '600', 'large-daytemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-daybarometer-Bootstrap': {'barometer': {}}, 'large-dayrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'large-dayhumidity-Bootstrap': {'outHumidity': {}}, 'large-daywind-Bootstrap': {'windSpeed': {}, 'windGust': {}}, 'large-daywinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'large-dayradiation-Bootstrap': {'radiation': {}}}, 'large-week_images': {'image_items': ['weektemp-Bootstrap', 'weekbarometer-Bootstrap', 'weekrain-Bootstrap', 'weekhumidity-Bootstrap', 'weekwind-Bootstrap', 'weekwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '604800', 'aggregate_type': 'avg', 'aggregate_interval': '3600', 'image_width': '900', 'image_height': '600', 'large-weektemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-weekbarometer-Bootstrap': {'barometer': {}}, 'large-weekrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '3600', 'label': 'Rain (hourly total)'}}, 'large-weekhumidity-Bootstrap': {'outHumidity': {}}, 'large-weekwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'large-weekwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}, 'large-weekradiation-Bootstrap': {'radiation': {'aggregate_interval': '300'}}}, 'large-month_images': {'image_items': ['monthtemp-Bootstrap', 'monthbarometer-Bootstrap', 'monthrain-Bootstrap', 'monthhumidity-Bootstrap', 'monthwind-Bootstrap', 'monthwinddir-Bootstrap'], 'x_label_format': '%d', 'bottom_label_format': '%x %X', 'time_length': '2592000', 'aggregate_type': 'avg', 'aggregate_interval': '10800', 'show_daynight': 'false', 'image_width': '900', 'image_height': '600', 'large-monthtemp-Bootstrap': {'outTemp': {'color': '0x4242b4'}, 'dewpoint': {'color': '0xb48242'}}, 'large-monthbarometer-Bootstrap': {'barometer': {}}, 'large-monthrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'large-monthhumidity-Bootstrap': {'outHumidity': {}}, 'large-monthwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'large-monthwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}, 'large-year_images': {'image_items': ['yeartempmaxmin-Bootstrap', 'yearbarometer-Bootstrap', 'yearrain-Bootstrap', 'yearhumidity-Bootstrap', 'yearwind-Bootstrap', 'yearwinddir-Bootstrap'], 'x_label_format': '%m/%y', 'bottom_label_format': '%x %X', 'time_length': '31536000', 'aggregate_type': 'avg', 'aggregate_interval': '86400', 'show_daynight': 'false', 'image_width': '900', 'image_height': '600', 'large-yeartempmaxmin-Bootstrap': {'min_outTemp': {'data_type': 'outTemp', 'aggregate_type': 'min', 'label': 'Min'}, 'outTemp': {'aggregate_type': 'max', 'label': 'Max'}}, 'large-yearbarometer-Bootstrap': {'barometer': {}}, 'large-yearrain-Bootstrap': {'yscale': ['None', 'None', '0.02'], 'plot_type': 'bar', 'rain': {'aggregate_type': 'sum', 'aggregate_interval': '86400', 'label': 'Rain (daily total)'}}, 'large-yearhumidity-Bootstrap': {'outHumidity': {}}, 'large-yearwind-Bootstrap': {'windSpeed': {}, 'windGust': {'aggregate_type': 'max'}}, 'large-yearwinddir-Bootstrap': {'yscale': ['0.0', '360.0', '45.0'], 'line_type': 'none', 'marker_size': '6', 'marker_type': 'cross', 'windDir': {}}}}
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG user.largeimagegenerator: largeimagegenerator.py: Generated large images configs in 0.02 seconds
jun 30 21:44:00 Raspberry weewxd[753]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 21:44:06 Raspberry weewxd[753]: INFO weewx.imagegenerator: Generated 14 images for report Bootstrap in 6.24 seconds
jun 30 21:44:06 Raspberry weewxd[753]: INFO weewx.reportengine: Copied 0 files to /var/www/html/Bootstrap
jun 30 21:44:06 Raspberry weewxd[753]: DEBUG weewx.cheetahgenerator: Using search list ['user.historygenerator.MyXSearch', 'weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.DisplayOptions', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.Gettext', 'weewx.cheetahgenerator.JSONHelpers', 'weewx.cheetahgenerator.PlotInfo', 'weewx.cheetahgenerator.SkinInfo', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo']
jun 30 21:44:06 Raspberry weewxd[753]: DEBUG user.historygenerator: TranslationLinks: No historygenerator.py specific labels found
jun 30 21:44:06 Raspberry weewxd[753]: DEBUG user.historygenerator: BootstrapLabels: No historygenerator.py specific labels found
jun 30 21:44:06 Raspberry weewxd[753]: DEBUG weewx.manager: Daily summary version is 4.0
jun 30 21:44:07 Raspberry weewxd[753]: INFO user.historygenerator: historygenerator.py: Generated 7 tables in 0.90 seconds
jun 30 21:44:13 Raspberry weewxd[753]: DEBUG weewx.restx: StationRegistry: Posting too frequently: HTTP Error 429: TOO MANY REQUESTS
jun 30 21:44:13 Raspberry weewxd[753]: ERROR weewx.restx: StationRegistry: Failed to publish record 2025-06-30 21:45:00 CEST (1751312700): HTTP Error 429: TOO MANY REQUESTS
jun 30 21:44:13 Raspberry weewxd[753]: INFO weewx.cheetahgenerator: Generated 12 files for report Bootstrap in 6.51 seconds
jun 30 21:44:13 Raspberry weewxd[753]: DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
jun 30 21:44:13 Raspberry weewxd[753]: DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.
From skin.conf
[CheetahGenerator]
    # This section is used by the generator CheetahGenerator, and specifies
    # which files are to be generated from which template.

    search_list_extensions = user.belchertown.getData, user.historygenerator.MyXSearch


    # Possible encodings are 'html_entities', 'utf8', or 'strict_ascii'
    encoding = html_entities



Op maandag 30 juni 2025 om 21:04:53 UTC+2 schreef Jon B:

Jon B

unread,
Jun 30, 2025, 3:57:12 PM6/30/25
to weewx-user
You need to insert "version = x.x" at the top of the Belchertown skin.conf, replacing the x's with whichever version of the fuzzy-archer skin you are using (the latest is 4.3). I would put this right at the start, just above the [Extras] section at the beginning. The need to put this in will be removed in the next version of the fuzzy-archer skin, as per Michael's message above, but for now it is still necessary.

Ton Karsten

unread,
Jul 1, 2025, 5:48:43 AM7/1/25
to weewx-user
Thank you, everything works as it should now.
https://weerstationnibbixwoud.nl/records/

Op maandag 30 juni 2025 om 21:57:12 UTC+2 schreef Jon B:

michael.k...@gmx.at

unread,
Jul 4, 2025, 1:21:38 PM7/4/25
to weewx-user
I released v4.4, the version is now optional.
See "New in 4.4" on https://github.com/brewster76/fuzzy-archer for further details of the new version

Reply all
Reply to author
Forward
0 new messages