Hi, I am using a Oregon Scientific WMR88 (WMR100 driver) and the Seasons 
skin which is properly running except that it is generating corrupted 
diagram images. 
Trying to open the images (i.e. daybarometer.png) directly with an image 
viewer shows an error 'bad adaptive filter value'.
With gimp I am able to open it:

[image: daybarometer.jpg]

The issue appears after updating debian from stretch -> buster and from 
weewx 3.9 to 4.1.1. Maybe an issue with the also updated python-pillow 
package.
Logging shows nothing unusual.


*System*
debian buster on armel (all installed via .deb package, no pip3 installed)
weewx 4.1.1
python 3.7.3 
python3-pil 5.4.1

*journalctl -xe* with debug=2
Aug 02 21:48:00 weewx python3[2497]: wee_reports[2497] DEBUG weewx.manager: 
Daily summary version is 2.0
Aug 02 21:48:16 weewx python3[2497]: wee_reports[2497] INFO weewx.
cheetahgenerator: Generated 8 files for report SeasonsReport in 16.10 
seconds
Aug 02 21:48:17 weewx python3[2497]: wee_reports[2497] DEBUG weewx.manager: 
Daily summary version is 2.0
Aug 02 21:48:22 weewx python3[2497]: wee_reports[2497] INFO weewx.
imagegenerator: Generated 15 images for report SeasonsReport in 5.50 seconds
Aug 02 21:48:22 weewx python3[2497]: wee_reports[2497] INFO weewx.
reportengine: Copied 5 files to /var/www/html/weewx
Aug 02 21:48:22 weewx python3[2497]: wee_reports[2497] DEBUG weewx.
reportengine: Running report 'SmartphoneReport'
Aug 02 21:48:23 weewx python3[2497]: wee_reports[2497] DEBUG weewx.
reportengine: Found configuration file /etc/weewx/skins/Smartphone/skin.conf 
for report 'SmartphoneReport'
Aug 02 21:48:23 weewx python3[2497]: wee_reports[2497] DEBUG weewx.
cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 
'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Cu
Aug 02 21:48:23 weewx python3[2497]: wee_reports[2497] DEBUG weewx.manager: 
Daily summary version is 2.0
Aug 02 21:48:23 weewx python3[2492]: weewx[2492] DEBUG 
weewx.drivers.wmr100: Bad USB report received: [Errno 110] Operation timed 
out
Aug 02 21:48:24 weewx python3[2497]: wee_reports[2497] INFO 
weewx.cheetahgenerator: Generated 6 files for report SmartphoneReport in 
1.25 seconds
Aug 02 21:48:24 weewx python3[2497]: wee_reports[2497] DEBUG weewx.manager: 
Daily summary version is 2.0
Aug 02 21:48:25 weewx python3[2497]: wee_reports[2497] INFO 
weewx.imagegenerator: Generated 6 images for report SmartphoneReport in 
1.42 seconds
Aug 02 21:48:25 weewx python3[2497]: wee_reports[2497] INFO 
weewx.reportengine: Copied 6 files to /var/www/html/weewx/smartphone
Aug 02 21:48:26 weewx python3[2497]: wee_reports[2497] DEBUG 
weewx.reportengine: Report 'MobileReport' not enabled. Skipping.
Aug 02 21:48:26 weewx python3[2497]: wee_reports[2497] DEBUG 
weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
Aug 02 21:48:26 weewx python3[2497]: wee_reports[2497] DEBUG 
weewx.reportengine: Report 'FTP' not enabled. Skipping.
Aug 02 21:48:26 weewx python3[2497]: wee_reports[2497] DEBUG 
weewx.reportengine: Running report 'RSYNC'
Aug 02 21:48:26 weewx python3[2497]: wee_reports[2497] DEBUG 
weewx.reportengine: Found configuration file 
/etc/weewx/skins/Rsync/skin.conf for report 'RSYNC'
Aug 02 21:48:26 weewx python3[2497]: wee_reports[2497] DEBUG 
weeutil.rsyncupload: rsyncupload: cmd: [['rsync', '--archive', '--stats', '-e 
ssh -p 221', '/var/www/html/weewx/', 'embedded-engineer.de@
Aug 02 21:48:27 weewx python3[2497]: wee_reports[2497] INFO weeutil.
rsyncupload: rsync'd 46 files (431,862 bytes) in 1.15 seconds
Aug 02 21:48:57 weewx python3[2492]: weewx[2492] DEBUG 
weewx.drivers.wmr100: Bad USB report received: [Errno 110] Operation timed 
out
Aug 02 21:49:19 weewx python3[2492]: weewx[2492] DEBUG 
weewx.drivers.wmr100: Bad USB report received: [Errno 110] Operation timed 
out


*weewx.conf*
    [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons
        enable = true
        HTML_ROOT = /var/www/html/weewx


*skins/Seasons/skin.conf is attached*

Any help is appreciated
Thanks
Stephan

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/473c2e3b-0e7a-45bb-aa54-11b32a5bf6a1o%40googlegroups.com.
###############################################################################
# SEASONS SKIN CONFIGURATION FILE                                             #
# Copyright (c) 2018 Tom Keffer <[email protected]> and Matthew Wall          #
# See the file LICENSE.txt for your rights.                                   #
###############################################################################

###############################################################################

# The following section is for any extra tags that you want to be available in
# the templates

[Extras]

    # This radar image would be available as $Extras.radar_img
    #radar_img = http://radar.weather.gov/ridge/lite/N0R/RTX_loop.gif
    # This URL will be used as the image hyperlink:
    #radar_url = 
http://radar.weather.gov/ridge/radar.php?product=NCR&rid=RTX&loop=yes

    # Similar to radar, but for satellite image.
    #satellite_img = 
http://images.intellicast.com/WxImages/SatelliteLoop/hipacsat_None_anim.gif
    #satellite_url = 
http://images.intellicast.com/WxImages/SatelliteLoop/hipacsat_None_anim.gif

    # To display a map, enter an API key for google maps
    #google_maps_apikey = xxx

    # If you have a Google Analytics ID, uncomment and edit the next line, and
    # the analytics code will be included in your generated HTML files:
    #googleAnalyticsId = UA-12345678-1

###############################################################################

[Labels]

    # Override some labels. No need to identify these as a "Battery"
    # or "Voltage", because that is included in the template.
    [[Generic]]
        txBatteryStatus      = Transmitter
        windBatteryStatus    = Wind
        rainBatteryStatus    = Rain
        outTempBatteryStatus = Outside Temperature
        inTempBatteryStatus  = Inside Temperature
        consBatteryVoltage   = Console
        heatingVoltage       = Heating
        supplyVoltage        = Supply
        referenceVoltage     = Reference

        # Some specialized labels
        rain_today           = Rain Today
        wind                 = Wind


###############################################################################

# The CheetahGenerator creates files from templates.  This section
# specifies which files will be generated from which template.

[CheetahGenerator]

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

    [[SummaryByMonth]]
        # Reports that summarize "by month"
        [[[NOAA_month]]]
            encoding = strict_ascii
            template = NOAA/NOAA-%Y-%m.txt.tmpl

    [[SummaryByYear]]
        # Reports that summarize "by year"
        [[[NOAA_year]]]
            encoding = strict_ascii
            template = NOAA/NOAA-%Y.txt.tmpl
        
    [[ToDate]]
        # Reports that show statistics "to date", such as day-to-date,
        # week-to-date, month-to-date, etc.
        [[[index]]]
            template = index.html.tmpl
        [[[statistics]]]
            template = statistics.html.tmpl
        [[[telemetry]]]
            template = telemetry.html.tmpl
        [[[tabular]]]
            template = tabular.html.tmpl
        [[[celestial]]]
            template = celestial.html.tmpl
            # Uncomment the following to generate a celestial page only once
            # an hour instead of every report cycle.
            # stale_age = 3600
        [[[RSS]]]
            template = rss.xml.tmpl
            
###############################################################################

# The CopyGenerator copies files from one location to another.

[CopyGenerator]

    # List of files to be copied only the first time the generator runs
    copy_once = seasons.css, seasons.js, favicon.ico, font/*.woff, font/*.woff2

    # List of files to be copied each time the generator runs
    # copy_always = 
        

###############################################################################

# The ImageGenerator creates image plots of data.

[ImageGenerator]

    # This section lists all the images to be generated, what SQL types are to
    # be included in them, along with many plotting options. There is a default
    # for almost everything. Nevertheless, values for most options are included
    # to make it easy to see and understand the options.
    #
    # Fonts can be anything accepted by the Python Imaging Library (PIL), which
    # includes truetype (.ttf), or PIL's own font format (.pil). See
    # http://www.pythonware.com/library/pil/handbook/imagefont.htm for more
    # details.  Note that "font size" is only used with truetype (.ttf)
    # fonts. For others, font size is determined by the bit-mapped size,
    # usually encoded in the file name (e.g., courB010.pil). A relative path
    # for a font is relative to the SKIN_ROOT.  If a font cannot be found,
    # then a default font will be used.
    #
    # Colors can be specified any of three ways:
    #   1. Notation 0xBBGGRR;
    #   2. Notation #RRGGBB; or
    #   3. Using an English name, such as 'yellow', or 'blue'.
    # So, 0xff0000, #0000ff, or 'blue' would all specify a pure blue color.
    
    image_width = 300
    image_height = 180
    image_background_color = "#ffffff"
    
    chart_background_color = "#ffffff"
    chart_gridline_color = "#d0d0d0"

    # Setting to 2 or more might give a sharper image with fewer jagged edges
    anti_alias = 2

    top_label_font_path = font/OpenSans-Bold.ttf
    top_label_font_size = 14

    unit_label_font_path = font/OpenSans-Bold.ttf
    unit_label_font_size = 12
    unit_label_font_color = "#787878"

    bottom_label_font_path = font/OpenSans-Regular.ttf
    bottom_label_font_size = 12
    bottom_label_font_color = "#787878"
    bottom_label_offset = 3

    axis_label_font_path = font/OpenSans-Regular.ttf
    axis_label_font_size = 10
    axis_label_font_color = "#787878"
    
    # Options for the compass rose, used for progressive vector plots
    rose_label = N
    rose_label_font_path = font/OpenSans-Regular.ttf
    rose_label_font_size  = 9
    rose_label_font_color = "#222222"

    # Default colors for the plot lines. These can be overridden for
    # individual lines using option 'color'.
    chart_line_colors = "#4282b4", "#b44242", "#42b442", "#42b4b4", "#b442b4"
    
    # Default fill colors for bar charts. These can be overridden for
    # individual bar plots using option 'fill_color'.
    chart_fill_colors = "#72b2c4", "#c47272", "#72c472", "#72c4c4", "#c472c4"
    
    # Type of line. Options are 'solid' or 'none'.
    line_type = 'solid'

    # Size of marker in pixels
    marker_size = 8

    # Type of marker. Options are 'cross', 'x', 'circle', 'box', or 'none'.
    marker_type ='none'
        
    # The following option merits an explanation. The y-axis scale used for
    # plotting can be controlled using option 'yscale'. It is a 3-way tuple,
    # with values (ylow, yhigh, min_interval). If set to "None", a parameter is
    # set automatically, otherwise the value is used. However, in the case of
    # min_interval, what is set is the *minimum* y-axis tick interval. 
    yscale = None, None, None

    # For progressive vector plots, you can choose to rotate the vectors.
    # Positive is clockwise.
    # For my area, westerlies overwhelmingly predominate, so by rotating
    # positive 90 degrees, the average vector will point straight up.
    vector_rotate = 90

    # This defines what fraction of the difference between maximum and minimum
    # horizontal chart bounds is considered a gap in the samples and should not
    # be plotted.
    line_gap_fraction = 0.01

    # This controls whether day/night bands will be shown. They only look good
    # on plots wide enough to show individual days such as day and week plots.
    show_daynight = true
    # These control the appearance of the bands if they are shown.
    # Here's a monochrome scheme:
    daynight_day_color   = "#fdfaff"
    daynight_night_color = "#dfdfe2"
    daynight_edge_color  = "#e0d8d8"
    # Here's an alternative, using a blue/yellow tint:
    #daynight_day_color   = "#fffff8"
    #daynight_night_color = "#f8f8ff"
    #daynight_edge_color  = "#fff8f8"

    # What follows is a list of subsections, each specifying a time span, such
    # as a day, week, month, or year. There's nothing special about them or
    # their names: it's just a convenient way to group plots with a time span
    # in common. You could add a time span [[biweek_images]] and add the
    # appropriate time length, aggregation strategy, etc., without changing
    # any code.
    #
    # Within each time span, each sub-subsection is the name of a plot to be
    # generated for that time span. The generated plot will be stored using
    # that name, in whatever directory was specified by option 'HTML_ROOT'
    # in weewx.conf.
    #
    # With one final nesting (four brackets!) is the sql type of each line to
    # be included within that plot.
    #
    # Unless overridden, leaf nodes inherit options from their parent
    
    # Default plot parameters
    plot_type = line
    aggregate_type = none
    width = 1
    time_length = 86400 # 24 hours

    [[day_images]]
        x_label_format = %H:%M
        bottom_label_format = %x %X
        time_length = 97200 # 27 hours
        
        [[[daybarometer]]]
            [[[[barometer]]]]
        
        [[[daytempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
        
        [[[daytempfeel]]]
            [[[[windchill]]]]
            [[[[heatindex]]]]

        [[[daytempin]]]
            [[[[inTemp]]]]

        [[[daytemp]]]
            yscale = None, None, 0.5
            [[[[extraTemp1]]]]
            [[[[extraTemp2]]]]
            [[[[extraTemp3]]]]

        [[[dayhum]]]
            [[[[outHumidity]]]]

        [[[dayhumin]]]
            [[[[inHumidity]]]]
        
        [[[dayrain]]]
            # Make sure the y-axis increment is at least 0.02 for the rain plot
            yscale = None, None, 0.02
            plot_type = bar
            [[[[rain]]]]
                aggregate_type = sum
                aggregate_interval = 3600
                label = Rain (hourly total)
        
        [[[daywind]]]
            [[[[windSpeed]]]]
            [[[[windGust]]]]
        
        [[[daywinddir]]]
            # Hardwire in the y-axis scale for wind direction
            yscale = 0.0, 360.0, 45.0
            line_type = None
            marker_type = box
            marker_size = 2
            [[[[windDir]]]]
    
        [[[daywindvec]]]
            [[[[windvec]]]]
                plot_type = vector

        [[[dayradiation]]]
            [[[[radiation]]]]

        [[[dayuv]]]
#            yscale = 0, 16, 1
            [[[[UV]]]]

        [[[dayrx]]]
            yscale = 0.0, 100.0, 25.0
            [[[[rxCheckPercent]]]]

        [[[dayvolt]]]
            [[[[consBatteryVoltage]]]]
            [[[[heatingVoltage]]]]
            [[[[supplyVoltage]]]]
            [[[[referenceVoltage]]]]

    [[week_images]]
        x_label_format = %d
        bottom_label_format = %x %X
        time_length = 604800 # 7 days
        aggregate_type = avg
        aggregate_interval = 3600
        
        [[[weekbarometer]]]
            [[[[barometer]]]]
        
        [[[weektempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
        
        [[[weektempfeel]]]
            [[[[windchill]]]]
            [[[[heatindex]]]]
        
        [[[weektempin]]]
            [[[[inTemp]]]]

        [[[weektemp]]]
            yscale = None, None, 0.5
            [[[[extraTemp1]]]]
            [[[[extraTemp2]]]]
            [[[[extraTemp3]]]]

        [[[weekhum]]]
            [[[[outHumidity]]]]

        [[[weekhumin]]]
            [[[[inHumidity]]]]

        [[[weekrain]]]
            yscale = None, None, 0.02
            plot_type = bar
            [[[[rain]]]]
                aggregate_type = sum
                aggregate_interval = 86400
                label = Rain (daily total)
        
        [[[weekwind]]]
            [[[[windSpeed]]]]
            [[[[windGust]]]]
                aggregate_type = max
        
        [[[weekwinddir]]]
            yscale = 0.0, 360.0, 45.0
            line_type = None
            marker_type = box
            marker_size = 2
            [[[[windDir]]]]
    
        [[[weekwindvec]]]
            [[[[windvec]]]]
                plot_type = vector

        [[[weekradiation]]]
            [[[[radiation]]]]

        [[[weekuv]]]
#            yscale = 0, 16, 1
            [[[[UV]]]]

        [[[weekrx]]]
            yscale = 0.0, 100.0, 25.0
            [[[[rxCheckPercent]]]]

        [[[weekvolt]]]
            [[[[consBatteryVoltage]]]]
            [[[[heatingVoltage]]]]
            [[[[supplyVoltage]]]]
            [[[[referenceVoltage]]]]

    [[month_images]]
        x_label_format = %d
        bottom_label_format = %x %X
        time_length = 2592000 # 30 days
        aggregate_type = avg
        aggregate_interval = 10800 # 3 hours
        show_daynight = false
        
        [[[monthbarometer]]]
            [[[[barometer]]]]
        
        [[[monthtempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
        
        [[[monthtempfeel]]]
            [[[[windchill]]]]
            [[[[heatindex]]]]
        
        [[[monthtempin]]]
            [[[[inTemp]]]]

        [[[monthtemp]]]
            yscale = None, None, 0.5
            [[[[extraTemp1]]]]
            [[[[extraTemp2]]]]
            [[[[extraTemp3]]]]

        [[[monthhum]]]
            [[[[outHumidity]]]]

        [[[monthhumin]]]
            [[[[inHumidity]]]]

        [[[monthrain]]]
            yscale = None, None, 0.02
            plot_type = bar
            [[[[rain]]]]
                aggregate_type = sum
                aggregate_interval = 86400
                label = Rain (daily total)
        
        [[[monthwind]]]
            [[[[windSpeed]]]]
            [[[[windGust]]]]
                aggregate_type = max
        
        [[[monthwinddir]]]
            yscale = 0.0, 360.0, 45.0
            line_type = None
            marker_type = box
            marker_size = 2
            [[[[windDir]]]]
    
        [[[monthwindvec]]]
            [[[[windvec]]]]
                plot_type = vector

        [[[monthradiation]]]
            [[[[radiation]]]]

        [[[monthuv]]]
#            yscale = 0, 16, 1
            [[[[UV]]]]

        [[[monthrx]]]
            yscale = 0.0, 100.0, 25.0
            [[[[rxCheckPercent]]]]

        [[[monthvolt]]]
            [[[[consBatteryVoltage]]]]
            [[[[heatingVoltage]]]]
            [[[[supplyVoltage]]]]
            [[[[referenceVoltage]]]]

    [[year_images]]
        x_label_format = %m/%d
        bottom_label_format = %x %X
        time_length = 31536000 # 365 days
        aggregate_type = avg
        aggregate_interval = 86400
        show_daynight = false
        
        [[[yearbarometer]]]
            [[[[barometer]]]]

        [[[yeartempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
        
        [[[yeartempfeel]]]
            [[[[windchill]]]]
            [[[[heatindex]]]]
        
        [[[yeartempin]]]
            [[[[inTemp]]]]

        [[[yeartemp]]]
            yscale = None, None, 0.5
            [[[[extraTemp1]]]]
            [[[[extraTemp2]]]]
            [[[[extraTemp3]]]]

        [[[yearhum]]]
            [[[[outHumidity]]]]

        [[[yearhumin]]]
            [[[[inHumidity]]]]
        
        [[[yearrain]]]
            yscale = None, None, 0.02
            plot_type = bar
            [[[[rain]]]]
                aggregate_type = sum
                # aggregate_interval = 2629800 # the length of a nominal month
                aggregate_interval = 604800    # one week
                label = Rain (weekly total)
                
        [[[yearwind]]]
            [[[[windSpeed]]]]
            [[[[windGust]]]]
                aggregate_type = max
        
        [[[yearwinddir]]]
            yscale = 0.0, 360.0, 45.0
            line_type = None
            marker_type = box
            marker_size = 2
            [[[[windDir]]]]

        [[[yearwindvec]]]
            [[[[windvec]]]]
                plot_type = vector

        [[[yearradiation]]]
            [[[[radiation]]]]

        [[[yearuv]]]
#            yscale = 0, 16, 1
            [[[[UV]]]]

        [[[yearrx]]]
            yscale = 0.0, 100.0, 25.0
            [[[[rxCheckPercent]]]]

        [[[yearvolt]]]
            [[[[consBatteryVoltage]]]]
            [[[[heatingVoltage]]]]
            [[[[supplyVoltage]]]]
            [[[[referenceVoltage]]]]

        # This is how to generate a plot of high/low temperatures for the year:
#        [[[yearhilow]]]
#            [[[[hi]]]]
#                data_type = outTemp
#                aggregate_type = max
#                label = High
#            [[[[low]]]]
#                data_type = outTemp
#                aggregate_type = min
#                label = Low Temperature


###############################################################################

[Generators]
        # The list of generators that are to be run:
        generator_list = weewx.cheetahgenerator.CheetahGenerator, 
weewx.imagegenerator.ImageGenerator, weewx.reportengine.CopyGenerator
# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2015 Tom Keffer <[email protected]>
# See the file LICENSE.txt for your rights.

##############################################################################

# This section is for general configuration information.

# Set to 1 for extra debug info, otherwise comment it out or set to zero
debug = 2

# Root directory of the weewx data file hierarchy for this station
WEEWX_ROOT = /

# Whether to log successful operations
log_success = True

# Whether to log unsuccessful operations
log_failure = True

# How long to wait before timing out a socket (FTP, HTTP) connection
socket_timeout = 20

# Do not modify this. It is used when installing and updating weewx.
version = 4.1.1

##############################################################################

#   This section is for information about the station.

[Station]
    
    # Description of the station location
    location = "Münchfeld, Mainz, Germany"
    
    # Latitude and longitude in decimal degrees
    latitude = 49.99609
    longitude = 8.22818
    
    # Altitude of the station, with unit it is in. This is downloaded from
    # from the station if the hardware supports it.
    altitude = 130, meter
    
    # Set to type of station hardware. There must be a corresponding stanza
    # in this file with a 'driver' parameter indicating the driver to be used.
    station_type = WMR100
    
    # If you have a website, you may specify an URL
    #station_url = http://www.example.com
    
    # The start of the rain year (1=January; 10=October, etc.). This is
    # downloaded from the station if the hardware supports it.
    rain_year_start = 1
    
    # Start of week (0=Monday, 6=Sunday)
    week_start = 6

##############################################################################

[WMR100]
    # This section is for the Oregon Scientific WMR100
    
    # The station model, e.g., WMR100, WMR100N, WMRS200
    model = WMR88
    
    # The driver to use:
    driver = weewx.drivers.wmr100

##############################################################################

#   This section is for uploading data to Internet sites

[StdRESTful]

    [[StationRegistry]]
        # To register this weather station with weewx, set this to true
        register_this_station = false

    [[AWEKAS]]
        # This section is for configuring posts to AWEKAS.

        # If you wish to do this, set the option 'enable' to true,
        # and specify a username and password.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        username = replace_me
        password = "replace_me"

    [[CWOP]]
        # This section is for configuring posts to CWOP.

        # If you wish to do this, set the option 'enable' to true,
        # and specify the station ID (e.g., CW1234).
        enable = false
        station = replace_me

        # If this is an APRS (radio amateur) station, uncomment
        # the following and replace with a passcode (e.g., 12345).
        #passcode = replace_me (APRS stations only)

    [[PWSweather]]
        # This section is for configuring posts to PWSweather.com.

        # If you wish to do this, set the option 'enable' to true,
        # and specify a station and password.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        station  = replace_me
        password = "replace_me"

    [[WOW]]
        # This section is for configuring posts to WOW.

        # If you wish to do this, set the option 'enable' to true,
        # and specify a station and password.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        station  = replace_me
        password = "replace_me"

    [[Wunderground]]
        # This section is for configuring posts to the Weather Underground.

        # If you wish to do this, set the option 'enable' to true,
        # and specify a station (e.g., 'KORHOODR3') and password.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        station  = replace_me
        password = "replace_me"

        # If you plan on using wunderfixer, set the following
        # to your API key:
        api_key = replace_me

        # Set the following to True to have weewx use the WU "Rapidfire"
        # protocol. Not all hardware can support it. See the User's Guide.
        rapidfire = False

##############################################################################

#   This section specifies what reports, using which skins, to generate.

[StdReport]
    
   # Where the skins reside, relative to WEEWX_ROOT
    SKIN_ROOT = /etc/weewx/skins

    # Where the generated reports should go, relative to WEEWX_ROOT
    HTML_ROOT = /var/www/html/weewx

    # The database binding indicates which data should be used in reports.
    data_binding = wx_binding

    # Whether to log a successful operation
    log_success = True

    # Whether to log an unsuccessful operation
    log_failure = False
 
    # Each of the following subsections defines a report that will be run.
    # See the customizing guide to change the units, plot types and line
    # colors, modify the fonts, display additional sensor data, and other
    # customizations. Many of those changes can be made here by overriding
    # parameters, or by modifying templates within the skin itself.

    [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons
        enable = true
        HTML_ROOT = /var/www/html/weewx

    [[SmartphoneReport]]
        # The SmartphoneReport uses the 'Smartphone' skin, and the images and
        # files are placed in a dedicated subdirectory.
        skin = Smartphone
        enable = true 
        HTML_ROOT = /var/www/html/weewx/smartphone

    [[MobileReport]]
        # The MobileReport uses the 'Mobile' skin, and the images and files
        # are placed in a dedicated subdirectory.
        skin = Mobile
        enable = false
        HTML_ROOT = /var/www/html/weewx/mobile

    [[StandardReport]]
        # This is the old "Standard" skin. By default, it is not enabled.
        skin = Standard
        enable = false
 
   [[FTP]]
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        skin = Ftp

        # If you wish to use FTP, set "enable" to "true", then
        # fill out the next four lines.
        # Use quotes around passwords to guard against parsing errors.
        enable = false
        user = replace_me
        password = "replace_me"
        server = replace_me    # The ftp server name, e.g, www.myserver.org
        path = replace_me      # The destination directory, e.g., /weather

        # Set to True for an FTP over TLS (FTPS) connection. Not all servers
        # support this.
        secure_ftp = False

        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        #HTML_ROOT = /var/www/html/weewx

        # Most FTP servers use port 21
        port = 21

        # Set to 1 to use passive mode, zero for active mode
        passive = 1
 
    [[RSYNC]]
        # rsync'ing to a webserver is treated as just another report
        skin = Rsync
        # Rsync can be configured to remove files from the remote server if
        # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you
        # make a mistake in the remote path, you could could unintentionally
        # cause unrelated files to be deleted. Set to 1 to enable remote file
        # deletion, zero to allow files to accumulate remotely.
        delete = 0
        
        # If you wish to use rsync, you must configure passwordless ssh using
        # public/private key authentication from the user account that weewx
        # runs as to the user account on the remote machine where the files
        # will be copied.
        #
        # The following three lines determine where files will be sent.
        #server = replace with the rsync server name, e.g, www.threefools.org
        #path = replace with the rsync destination directory (e.g., /weather)
        #user = replace with the rsync username
        enable = true
        server = embedded-engineer.de
        port = 221
        path = /var/www/embedded-engineer.de/www/weewx
        user = embedded-engineer.de
    
    ####
    
    # Various options for customizing your reports.
    
    [[Defaults]]
        
        # The following section determines the selection and formatting of 
units.
        [[[Units]]]
            
            # The following section sets what unit to use for each unit group.
            # NB: The unit is always in the singular. I.e., 'mile_per_hour',
            # NOT 'miles_per_hour'
            [[[[Groups]]]]
                
                group_altitude = meter    # Options are 'foot' or 'meter'
                group_degree_day = degree_C_day    # Options are 'degree_F_day' 
or 'degree_C_day'
                group_pressure = mbar    # Options are 'inHg', 'mmHg', 'mbar', 
or 'hPa'
                group_rain = cm    # Options are 'inch', 'cm', or 'mm'
                group_rainrate = cm_per_hour    # Options are 'inch_per_hour', 
'cm_per_hour', or 'mm_per_hour'
                group_speed = km_per_hour    # Options are 'mile_per_hour', 
'km_per_hour', 'knot', or 'meter_per_second'
                group_speed2 = km_per_hour2    # Options are 'mile_per_hour2', 
'km_per_hour2', 'knot2', or 'meter_per_second2'
                group_temperature = degree_C    # Options are 'degree_F' or 
'degree_C'
            
            
            # The following section sets the formatting for each type of unit.
            [[[[StringFormats]]]]
                
                centibar           = %.0f
                cm                 = %.2f
                cm_per_hour        = %.2f
                degree_C           = %.1f
                degree_F           = %.1f
                degree_compass     = %.0f
                foot               = %.0f
                hPa                = %.1f
                hour               = %.1f
                inHg               = %.3f
                inch               = %.2f
                inch_per_hour      = %.2f
                km                 = %.1f
                km_per_hour        = %.0f
                km_per_hour2       = %.1f
                knot               = %.0f
                knot2              = %.1f
                mbar               = %.1f
                meter              = %.0f
                meter_per_second   = %.1f
                meter_per_second2  = %.1f
                mile               = %.1f
                mile_per_hour      = %.0f
                mile_per_hour2     = %.1f
                mm                 = %.1f
                mmHg               = %.1f
                mm_per_hour        = %.1f
                percent            = %.0f
                second             = %.0f
                uv_index           = %.1f
                volt               = %.1f
                watt_per_meter_squared = %.0f
                NONE               = "   N/A"

           # The following section overrides the label used for each type of 
unit
            [[[[Labels]]]]

                meter             = " meter",  " meters"     # You may prefer 
"metre".
                day               = " day",    " days"
                hour              = " hour",   " hours"
                minute            = " minute", " minutes"
                second            = " second", " seconds"
                NONE              = ""

            # The following section sets the format for each time scale.
            # The values below will work in every locale, but they may not look
            # particularly attractive.
            [[[[TimeFormats]]]]

                hour       = %H:%M
                day        = %X
                week       = %X (%A)
                month      = %x %X
                year       = %x %X
                rainyear   = %x %X
                current    = %x %X
                ephem_day  = %X
                ephem_year = %x %X

            [[[[Ordinates]]]]

                # Ordinal directions. The last one is for no wind direction
                directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, 
W, WNW, NW, NNW, N/A

            # The following section sets the base temperatures used for the
            #  calculation of heating, cooling, and growing degree-days.
            [[[[DegreeDays]]]]

                # Base temperature for heating days, with unit:
                heating_base = 65, degree_F
                # Base temperature for cooling days, with unit:
                cooling_base = 65, degree_F
                # Base temperature for growing days, with unit:
                growing_base = 50, degree_F

            # A trend takes a difference across a time period. The following
            # section sets the time period, and how big an error is allowed to
            # still be counted as the start or end of a period.
            [[[[Trend]]]]

                time_delta = 10800  # 3 hours
                time_grace = 300    # 5 minutes
 
            # The labels to be used for each observation type
            [[[Labels]]]
            
            # Set to hemisphere abbreviations suitable for your location:
            hemispheres = N, S, E, W
            
            # Formats to be used for latitude whole degrees, longitude whole
            # degrees, and minutes:
            latlon_formats = %02d, %03d, %05.2f
            
            # Generic labels, keyed by an observation type.
            [[[[Generic]]]]
                barometer      = Barometer
                dewpoint       = Dew Point
                ET             = ET
                heatindex      = Heat Index
                inHumidity     = Inside Humidity
                inTemp         = Inside Temperature
                outHumidity    = Humidity
                outTemp        = Outside Temperature
                radiation      = Radiation
                rain           = Rain
                rainRate       = Rain Rate
                UV             = UV Index
                windDir        = Wind Direction
                windGust       = Gust Speed
                windGustDir    = Gust Direction
                windSpeed      = Wind Speed
                windchill      = Wind Chill
                windgustvec    = Gust Vector
                windvec        = Wind Vector
                extraTemp1     = Temperature1
                extraTemp2     = Temperature2
                extraTemp3     = Temperature3

                # Sensor status indicators

                rxCheckPercent       = Signal Quality
                txBatteryStatus      = Transmitter Battery
                windBatteryStatus    = Wind Battery
                rainBatteryStatus    = Rain Battery
                outTempBatteryStatus = Outside Temperature Battery
                inTempBatteryStatus  = Inside Temperature Battery
                consBatteryVoltage   = Console Battery
                heatingVoltage       = Heating Battery
                supplyVoltage        = Supply Voltage
                referenceVoltage     = Reference Voltage
 
        [[[Almanac]]]
            
            # The labels to be used for the phases of the moon:
            moon_phases = New, Waxing crescent, First quarter, Waxing gibbous, 
Full, Waning gibbous, Last quarter, Waning crescent

##############################################################################

#   This service acts as a filter, converting the unit system coming from
#   the hardware to a unit system in the database.

[StdConvert]
    
    # The target_unit affects only the unit system in the database. Once
    # chosen it cannot be changed without converting the entire database.
    # Modification of target_unit after starting weewx will result in
    # corrupt data - the database will contain a mix of US and METRIC data.
    #
    # The value of target_unit does not affect the unit system for
    # reporting - reports can display US, Metric, or any combination of units.
    #
    # In most cases, target_unit should be left as the default: US
    #
    # In particular, those migrating from a standard wview installation
    # should use US since that is what the wview database contains.
    
    # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING!
    target_unit = US    # Options are 'US', 'METRICWX', or 'METRIC'

##############################################################################

#   This section can adjust data using calibration expressions.

[StdCalibrate]
    
    [[Corrections]]
        # For each type, an arbitrary calibration expression can be given. 
        # It should be in the units defined in the StdConvert section.
        # Example:
        foo = foo + 0.2

##############################################################################

#   This section is for quality control checks. If units are not specified,
#   values must be in the units defined in the StdConvert section.

[StdQC]
    
    [[MinMax]]
        barometer = 26, 32.5, inHg
        outTemp = -40, 120, degree_F
        inTemp = 10, 120, degree_F
        outHumidity = 0, 100
        inHumidity = 0, 100
        windSpeed = 0, 120, mile_per_hour
        pressure = 24, 34.5, inHg
        rain = 0, 10, inch

##############################################################################

#   This section controls the origin of derived values.

[StdWXCalculate]
    
    [[Calculations]]
        # How to calculate derived quantities.  Possible values are:
        #  hardware        - use the value provided by hardware
        #  software        - use the value calculated by weewx
        #  prefer_hardware - use value provide by hardware if available,
        #                      otherwise use value calculated by weewx

        pressure = prefer_hardware
        altimeter = prefer_hardware
        appTemp = prefer_hardware
        barometer = prefer_hardware
        beaufort = prefer_hardware
        cloudbase = prefer_hardware
        dewpoint = prefer_hardware
        ET = prefer_hardware
        heatindex = prefer_hardware
        humidex = prefer_hardware
        inDewpoint = prefer_hardware
        maxSolarRad = prefer_hardware
        rainRate = prefer_hardware
        windchill = prefer_hardware
        windrun = prefer_hardware

##############################################################################

#   For hardware that supports it, this section controls how often the
#   onboard clock gets updated.

[StdTimeSynch]
    
    # How often to check the weather station clock for drift (in seconds)
    clock_check = 14400
    
    # How much it can drift before we will correct it (in seconds)
    max_drift = 5

##############################################################################

#   This section is for configuring the archive service.

[StdArchive]
    
    # If the station hardware supports data logging then the archive interval
    # will be downloaded from the station. Otherwise, specify it (in seconds).
    archive_interval = 300
    
    # If possible, new archive records are downloaded from the station
    # hardware. If the hardware does not support this, then new archive
    # records will be generated in software.
    # Set the following to "software" to force software record generation.
    record_generation = hardware
    
    # Whether to include LOOP data in hi/low statistics
    loop_hilo = True
    
    # The data binding used to save archive records
    data_binding = wx_binding

##############################################################################

#   This section binds a data store to a database.

[DataBindings]
    
    [[wx_binding]]
        # The database must match one of the sections in [Databases].
        # This is likely to be the only option you would want to change.
        database = archive_sqlite
        # The name of the table within the database
        table_name = archive
        # The manager handles aggregation of data for historical summaries
        manager = weewx.wxmanager.WXDaySummaryManager
        # The schema defines the structure of the database.
        # It is *only* used when the database is created.
        schema = schemas.wview.schema

##############################################################################

#   This section defines various databases.

[Databases]
    
    # A SQLite database is simply a single file
    [[archive_sqlite]]
        database_type = SQLite
        database_name = weewx.sdb
    
    # MySQL
    [[archive_mysql]]
        database_type = MySQL
        database_name = weewx

##############################################################################

#   This section defines defaults for the different types of databases.

[DatabaseTypes]
    
    # Defaults for SQLite databases
    [[SQLite]]
        driver = weedb.sqlite
        # Directory in which the database files are located
        SQLITE_ROOT = /var/lib/weewx
    
    # Defaults for MySQL databases
    [[MySQL]]
        driver = weedb.mysql
        # The host where the database is located
        host = localhost
        # The user name for logging in to the host
        user = weewx
        # The password for the user name
        password = weewx

##############################################################################

#   This section configures the internal weewx engine.

[Engine]
    
    [[Services]]
        # This section specifies the services that should be run. They are
        # grouped by type, and the order of services within each group
        # determines the order in which the services will be run.
        prep_services = weewx.engine.StdTimeSynch
        data_services = ,
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, 
weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
        archive_services = weewx.engine.StdArchive
        restful_services = weewx.restx.StdStationRegistry, 
weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, 
weewx.restx.StdWOW, weewx.restx.StdAWEKAS
        report_services = weewx.engine.StdPrint, weewx.engine.StdReport

Reply via email to