Hi,

Thanks for the responses! I'll answer as many questions as I can ..

The RPi (meteopi) running the weather station is part of a small "pi-stack" 
housed in a case. It's powered from a 18V switched mode supply, regulated 
down to 5V by a buck converter. I've checked the voltage on meteopi with a 
scope and it's a tad over 5V, with very little ripple and no "sag". It has 
all USB ports connected. Here's the lsusb output ...

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 

Bus 001 Device 004: ID 046d:0809 Logitech, Inc. Webcam Pro 9000

Bus 001 Device 005: ID 046d:0809 Logitech, Inc. Webcam Pro 9000

Bus 001 Device 006: ID 1941:8021 Dream Link WH1080 Weather Station / USB 
Missile Launcher

Bus 001 Device 007: ID 046d:0826 Logitech, Inc.

So, 3 Logitech webcams and a WX station. The station is a WEA22 from 
WeatherEye (now only £55 from Amazon!). The console is self-powered and 
connected directly to USB (no hub). One other point worth noting is that 
the root file system is held on my network server, not on the SD card.

The raspbian op system is ...

wheezy - 3.18.7-v7

Python version is 2.7.3 and I seem to have versions 0.1.4 and 1.0.0 of 
libusb installed - presumably the latter is used. pyusb appears to be 0.4.3.

I've attached a copy of my weewx.conf, but the relevant parts are ...

[FineOffsetUSB]

    # This section is for the Fine Offset series of weather stations.

    

    # The station model, e.g., WH1080, WS1090, WS2080, WH3081

    model = WEA22

    

    # How often to poll the station for data, in seconds

    polling_interval = 60

    

    # The driver to use:

    driver = weewx.drivers.fousb


[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

    

    # How long to wait (in seconds) before processing new archive data. Must

    # be greater than zero.

    archive_delay = 15

    

    # 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 = software

    

    # Whether to include LOOP data in hi/low statistics

    loop_hilo = True

    

    # The data binding used to save archive records

    data_binding = wx_binding

When the "lockup" occurs (perhaps a better description is "lockout"), a RPi 
reboot fixes it, there's no need to do anything to the console, and as 
previously mentioned, it happens about once/twice a week.

I hadn't even begun to think about how I'd monitor syslog, but the rsyslog 
idea is great - I wouldn't have thought of doing it that way ... 

Once again, thanks for the interest, I really appreciate it.


On Wednesday, October 19, 2016 at 10:12:19 AM UTC+2, Macha wrote:
>
> Well, not really I suppose, but ...
>
> Some time ago I commented that my setup (Raspberry Pi + W1080 clone) 
> "crashed" weewx from time to time. I found that restarting weewx didn't 
> help because it couldn't read from the Console. So, I had this cron job 
> which checked if weewx was running. If not, the RPi was rebooted and things 
> worked fine until the next time. This event happened, on average, once a 
> week.
>
> Now, after upgrading to V3.6.0, this kind-of-lockup still occurs, but 
> weewx doesn't crash and simply reports to syslog ...
>
> Caught WeeWxIOError: Cannot determine archive interval
>
>
> ... each 60 seconds.
>
>
> So I still need to "trap" this error in order to reboot the RPi (I have 
> tried many things to "reset" the USB link to the console, but haven't found 
> any solution other than a reboot). The only thing I can think of is to 
> periodically scan syslog and reboot if this message turns up.
>
>
> Is there any other way I can flag weewx errors other than syslog?
>
>
>

-- 
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].
For more options, visit https://groups.google.com/d/optout.
# 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 = 0

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

# 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 = 3.6.0

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

#   This section is for information about the station.

[Station]
    
    # Description of the station location
    location = "La Chouette, Figani&egrave;res, France"
    
    # Latitude and longitude in decimal degrees
    latitude = 43.5697
    longitude = 6.4978
    
    # Altitude of the station, with unit it is in. This is downloaded from
    # from the station if the hardware supports it.
    altitude = 290, meter    # Choose 'foot' or 'meter' for unit
    
    # 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 = FineOffsetUSB
    
    # 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

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

[FineOffsetUSB]
    # This section is for the Fine Offset series of weather stations.
    
    # The station model, e.g., WH1080, WS1090, WS2080, WH3081
    model = WEA22
    
    # How often to poll the station for data, in seconds
    polling_interval = 60
    
    # The driver to use:
    driver = weewx.drivers.fousb

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

#   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.
        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.
        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.
        enable = false
        station = replace_me
        password = replace_me
    
    [[Wunderground]]
        enable = false
        station = replace_me
        password = replace_me
        # 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.
        #enable = false
        #station  = replace_me
        #password = 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 = skins
    
    # Where the generated reports should go, relative to WEEWX_ROOT
    HTML_ROOT = public_html
    
    # The database binding indicates which data should be used in reports.
    data_binding = wx_binding
    
    # Each of the following subsections defines a report that will be run.
    
    [[StandardReport]]
        # 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.
        
        # The StandardReport uses the 'Standard' skin, which contains the
        # images, templates and plots for the report.
        skin = Standard
        
        [[[Units]]]
            [[[[Groups]]]]
                group_altitude = meter
                group_speed2 = meter_per_second2
                group_pressure = mbar
                group_rain = mm
                group_rainrate = mm_per_hour
                group_temperature = degree_C
                group_degree_day = degree_C_day
                group_speed = meter_per_second
        
        [[[CheetahGenerator]]]
            search_list_extensions = user.forecast.ForecastVariables
    
    [[forecast]]
        HTML_ROOT = public_html/forecast
        skin = forecast
    
    [[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, uncomment and fill out the next four lines.
        #user = replace with the ftp username
        #password = replace with the ftp password
        #server = replace with the ftp server name, e.g, www.threefools.org
        #path = replace with the ftp 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 = public_html
        
        # 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
        
        # 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
        
        # 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

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

#   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

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

#   This section controls the origin of derived values.

[StdWXCalculate]
    [[Calculations]]
        # Derived quantities are calculated by this service. 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
        barometer = prefer_hardware
        altimeter = prefer_hardware
        windchill = prefer_hardware
        heatindex = prefer_hardware
        dewpoint = prefer_hardware
        inDewpoint = prefer_hardware
        rainRate = 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
    
    # How long to wait (in seconds) before processing new archive data. Must
    # be greater than zero.
    archive_delay = 15
    
    # 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 = software
    
    # 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
        schema = user.illuminance.schema_with_illuminance
    [[forecast_binding]]
        database = forecast_sqlite

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

#   This section defines various databases.

[Databases]
    
    # A SQLite database is simply a single file
    [[archive_sqlite]]
        database_type = SQLite
        database_name = weewx.sdb_new
    
    # MySQL
    [[archive_mysql]]
        database_type = MySQL
        database_name = weewx
    
    [[forecast_sqlite]]
        root = /home/weewx-3.5.0
        database_name = archive/forecast.sdb
        driver = weedb.sqlite
##############################################################################

#   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 = %(WEEWX_ROOT)s/archive
    
    # 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 = user.uv.AddUV, user.illuminance.AddIlluminance, 
weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, 
weewx.wxservices.StdWXCalculate
        archive_services = weewx.engine.StdArchive, user.forecast.WUForecast
        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

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

[Forecast]
    data_binding = forecast_binding
    [[XTide]]
        location = "INSERT_LOCATION_HERE (e.g., Boston)"
    [[Zambretti]]
        hemisphere = NORTH
    [[WU]]
        api_key = 02275b0d8bb33b7d
    [[NWS]]
        lid = "INSERT_LOCATION_ID_HERE (e.g., MAZ014)"
        foid = "INSERT_FORECAST_OFFICE_ID_HERE (e.g., BOX)"
[forecast]
    data_binding = forecast_binding
    [[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, uncomment and fill out the next four lines.
        #user = replace with the ftp username
        #password = replace with the ftp password
        #server = replace with the ftp server name, e.g, www.threefools.org
        #path = replace with the ftp destination directory (e.g., /weather)
        
        # Set to True for a secure FTP (SFTP) 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 = public_html
        
        # 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
        
        # 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
        
        # 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

Reply via email to