Error 110 timeout on Raspbian 9

110 views
Skip to first unread message

Cycle London

unread,
Dec 31, 2017, 5:49:05 PM12/31/17
to weewx-user
Hi.   
I have a Pi3 and an Oregon Scientific WM300 and when I try to start up the weewx process, I get the following errors:

Dec 31 22:38:41 weather weewx[2163]: engine: Using configuration file /etc/weewx/weewx.conf
Dec 31 22:38:41 weather weewx[2163]: engine: Loading station type WMR300 (weewx.drivers.wmr300)
Dec 31 22:38:41 weather weewx[2163]: wmr300: driver version is 0.18
Dec 31 22:38:41 weather weewx[2163]: wmr300: usb info: pyusb_version=1.0.0
Dec 31 22:38:41 weather weewx[2163]: wmr300: sensor map is {'outHumidity': 'humidity_1', 'extraDewpoint6': 'dewpoint_7', 'windchill': 'windchill', 'extraDewpoint4': 'dewpoint_5', 'rainRate': 'rain_rate', 'heatindex': 'heatindex_1', 'inTemp': 'temperature_0', 'windGustDir': 'wind_gust_dir', 'extraDewpoint2': 'dewpoint_3', 'extraDewpoint3': 'dewpoint_4', 'extraDewpoint1': 'dewpoint_2', 'barometer': 'barometer', 'extraDewpoint7': 'dewpoint_8', 'dewpoint': 'dewpoint_1', 'extraDewpoint5': 'dewpoint_6', 'extraHumid6': 'humidity_7', 'pressure': 'pressure', 'extraHumid4': 'humidity_5', 'extraHumid5': 'humidity_6', 'extraHumid2': 'humidity_3', 'extraHumid3': 'humidity_4', 'extraHumid1': 'humidity_2', 'extraTemp6': 'temperature_7', 'extraTemp7': 'temperature_8', 'extraTemp4': 'temperature_5', 'extraTemp5': 'temperature_6', 'extraTemp2': 'temperature_3', 'extraTemp3': 'temperature_4', 'extraTemp1': 'temperature_2', 'extraHeatindex3': 'heatindex_4', 'extraHeatindex2': 'heatindex_3', 'extraHeatindex1': 'heatindex_2', 'extraHeatindex7': 'heatindex_8', 'extraHeatindex6': 'heatindex_7', 'extraHeatindex5': 'heatindex_6', 'extraHumid7': 'humidity_8', 'extraHeatindex4': 'heatindex_5', 'windDir': 'wind_dir', 'outTemp': 'temperature_1', 'windSpeed': 'wind_avg', 'inHumidity': 'humidity_0', 'windGust': 'wind_gust'}
Dec 31 22:38:42 weather kernel: [ 1875.571823] usb 1-1.5: reset full-speed USB device number 4 using dwc_otg
Dec 31 22:38:42 weather weewx[2163]: engine: StdConvert target unit is 0x1
Dec 31 22:38:42 weather weewx[2163]: wxcalculate: The following values will be calculated: barometer=prefer_hardware, windchill=hardware, dewpoint=hardware, appTemp=prefer_hardware, rainRate=hardware, windrun=prefer_hardware, heatindex=hardware, maxSolarRad=prefer_hardware, humidex=prefer_hardware, pressure=prefer_hardware, inDewpoint=prefer_hardware, ET=prefer_hardware, altimeter=prefer_hardware, cloudbase=prefer_hardware
Dec 31 22:38:42 weather weewx[2163]: wxcalculate: The following algorithms will be used for calculations: altimeter=aaNOAA, maxSolarRad=RS
Dec 31 22:38:42 weather weewx[2163]: engine: Archive will use data binding wx_binding
Dec 31 22:38:42 weather weewx[2163]: engine: Record generation will be attempted in 'hardware'
Dec 31 22:38:42 weather weewx[2163]: engine: Using archive interval of 300 seconds (specified in weewx configuration)
Dec 31 22:38:42 weather weewx[2163]: engine: Using binding 'wx_binding' to database 'weewx.sdb'
Dec 31 22:38:42 weather weewx[2163]: manager: Starting backfill of daily summaries
Dec 31 22:38:42 weather weewx[2163]: restx: StationRegistry: Registration not requested.
Dec 31 22:38:42 weather weewx[2163]: restx: Wunderground: Posting not enabled.
Dec 31 22:38:42 weather weewx[2163]: restx: PWSweather: Posting not enabled.
Dec 31 22:38:42 weather weewx[2163]: restx: CWOP: Posting not enabled.
Dec 31 22:38:42 weather weewx[2163]: restx: WOW: Posting not enabled.
Dec 31 22:38:42 weather weewx[2163]: restx: AWEKAS: Posting not enabled.
Dec 31 22:38:42 weather weewx[2163]: engine: Starting up weewx version 3.8.0
Dec 31 22:38:42 weather weewx[2163]: wmr300: reading records since ******* N/A *******     (    N/A   )
Dec 31 22:38:42 weather weewx[2163]: wmr300: usb failure: [Errno 110] Operation timed out
Dec 31 22:38:42 weather weewx[2163]: engine: Caught WeeWxIOError: [Errno 110] Operation timed out
Dec 31 22:38:42 weather weewx[2163]:     ****  Waiting 60 seconds then retrying...


I've spent a while googling and came across a thread advising us to download wmr300x.py and place it into /usr/share/weewx/user.  This I did.  No change.  Should that file be placed somewhere else?   Should it be renamed to remove the 'x'?   

My config file is below. 

*****
# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2015 Tom Keffer <tke...@gmail.com>
# 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 = /

# 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.8.0

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

#   This section is for information about the station.

[Station]
    
    # Description of the station location
    location = "London UK"
    
    # Latitude and longitude in decimal degrees
    latitude = XXXXXXXXXX
    longitude = XXXXXXXXX
    
    # Altitude of the station, with unit it is in. This is downloaded from
    # from the station if the hardware supports it.
    altitude = 0, 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 = WMR300
    
    # 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

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

[WMR300]
    # This section is for WMR300 weather stations.
    
    # The station model, e.g., WMR300A
    model = WMR300
    
    # The driver to use:
    driver = weewx.drivers.wmr300

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

#   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
        # To guard against parsing errors, put your password in quotes:
        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
        # To guard against parsing errors, put your password in quotes:
        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
        # To guard against parsing errors, put your password in quotes:
        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.
        enable = false
        station = replace_me
        # To guard against parsing errors, put your password in quotes:
        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 = /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
    
    # 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 = foot
                group_speed2 = mile_per_hour2
                group_pressure = inHg
                group_rain = inch
                group_rainrate = inch_per_hour
                group_temperature = degree_F
                group_degree_day = degree_F_day
                group_speed = mile_per_hour
    
    [[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; put in quotes to guard against parsing errors.
        #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 = /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
        
        # 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 = hardware
        heatindex = hardware
        dewpoint = hardware
        inDewpoint = prefer_hardware
        rainRate = 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. Put in quotes to guard against parsing errors.
        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

gjr80

unread,
Dec 31, 2017, 6:04:45 PM12/31/17
to weewx-user
Hi,

The wmr300 driver is still being developed, I believe the latest version is detailed in this thread (https://groups.google.com/forum/m/#!topic/weewx-user/teVxjoRMOb8). You might want to use that version if not already. Also, if you place an updated wmr300 driver in usr/share/weewx/user you will need to make a change to weewx.conf, under [WMR300] you will need to change the driver config option to point to the new driver:

[WMR300]
....
driver = user.wmr300

You will need to restart weeWX for the change to take effect.

Gary

Cycle London

unread,
Jan 1, 2018, 5:27:29 AM1/1/18
to weewx-user

Ah, that looks so much better, thank you!  

One thing puzzles me.  I installed using the 'simplified' method in the User Guide: http://www.weewx.com/docs/usersguide.htm

In short, `apt-get install weewx`, but whilst the installation succeeded (except for the original subject of this post), there is nothing under /var/www/html (except for an index.html).  Is this normal? Where can I find the files to place into the HTML_ROOT?  

Also, I want to use MySQL but of course, that's MariaDB as standard these days.  Any problems with this?

gjr80

unread,
Jan 1, 2018, 7:19:50 AM1/1/18
to weewx-user
On Monday, 1 January 2018 20:27:29 UTC+10, Cycle London wrote:

Ah, that looks so much better, thank you! 

Hmm, that sounds promising but your next few lines do not sound so good.
 
One thing puzzles me.  I installed using the 'simplified' method in the User Guide: http://www.weewx.com/docs/usersguide.htm

In short, `apt-get install weewx`, but whilst the installation succeeded (except for the original subject of this post), there is nothing under /var/www/html (except for an index.html).  Is this normal? Where can I find the files to place into the HTML_ROOT?  

The installation may have succeeded but to obtain any output weeWX must be running, obtaining data from your station, saving data to the database and then generating output. WeeWX places the generated output in HTML_ROOT by default. You need to have a look at your log to see what is happening. Unless you have changed things this should be in /var/log/syslog. Open the log and have a look at the last time you started weeWX, what does it say? If the issue/answer is not obvious post an extract from the log, best from when weeWX was started until any error trace is complete. Don't delete or otherwise alter any lines. The log will tell what is or is not happening.

Also, I want to use MySQL but of course, that's MariaDB as standard these days.  Any problems with this?

No problems at all. I would strongly suggest you get weeWX up and running properly with SQLite before attempting to move to MySQL or MariaDB.  Small steps.

Gary

Cycle London

unread,
Jan 1, 2018, 9:33:55 AM1/1/18
to weewx...@googlegroups.com
Now I seem to have broken the entire thing.  I decided to try the python installation method, so ran `apt-get remove weewx` and then downloaded the tarball to try a manual installation. 

This time, there is content in /var/www/html but hardly anything (except user) under /usr/share/weewx.  Everything is under /home but even when I place the new driver into /usr/share/weewx/user and modify the configuration file, I still get... 

  1 14:11:35 weather systemd[1]: Starting LSB: weewx weather system...

Jan  1 14:11:35 weather weewx[12205]: engine: Initializing weewx version 3.8.0
Jan  1 14:11:35 weather weewx[12205]: engine: Using Python 2.7.13 (default, Jan 19 2017, 14:48:08) #012[GCC 6.3.0 20170124]
Jan  1 14:11:35 weather weewx[12205]: engine: Platform Linux-4.9.59-v7+-armv7l-with-debian-9.1
Jan  1 14:11:35 weather weewx[12205]: engine: Locale is 'en_GB.UTF-8'
Jan  1 14:11:35 weather weewx[12205]: engine: pid file is /var/run/weewx.pid

Jan  1 14:11:35 weather weewx[12209]: engine: Using configuration file /home/weewx/weewx.conf
Jan  1 14:11:35 weather weewx[12209]: engine: Loading station type WMR300 (weewx.user.wmr300.py)
Jan  1 14:11:35 weather weewx[12209]: engine: Caught unrecoverable exception in engine:
Jan  1 14:11:35 weather weewx[12209]:     ****  No module named user.wmr300.py
Jan  1 14:11:35 weather weewx[12209]:     ****  Traceback (most recent call last):
Jan  1 14:11:35 weather weewx[12209]:     ****    File "/home/weewx/bin/weewx/engine.py", line 865, in main
Jan  1 14:11:35 weather weewx[12209]:     ****      engine = engine_class(config_dict)
Jan  1 14:11:35 weather weewx[12209]:     ****    File "/home/weewx/bin/weewx/engine.py", line 71, in __init__
Jan  1 14:11:35 weather weewx[12209]:     ****      self.setupStation(config_dict)
Jan  1 14:11:35 weather weewx[12209]:     ****    File "/home/weewx/bin/weewx/engine.py", line 95, in setupStation
Jan  1 14:11:35 weather weewx[12209]:     ****      __import__(driver)
Jan  1 14:11:35 weather weewx[12209]:     ****  ImportError: No module named user.wmr300.py
Jan  1 14:11:35 weather weewx[12209]:     ****  Exiting.
Jan  1 14:11:35 weather systemd[1]: Started LSB: weewx weather system.
Jan  1 14:11:35 weather weewx[12193]: Starting weewx weather system: weewx.

Am I right in stating that in the driver section of the configuration file, a dot is the directory separator?   The file is indexed this way in the configuration file... 

root@weather:/usr/share/weewx/user# grep driver /home/weewx/weewx.conf
    driver = user.wmr300.py

I tried to change that to weewx.user.wmr300.py to no avail.  I also tried copying the file into /home/weewx but again, no luck.  It's trying to find the python file, but I don't know 1. where to put it and 2. how to point the configuration file at it. 

At this point, I'm thinking of jacking the whole thing in and re-installing raspbian to start again.

--
You received this message because you are subscribed to a topic in the Google Groups "weewx-user" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/weewx-user/iGXSDG5XsOQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to weewx-user+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Cycle London

unread,
Jan 1, 2018, 10:03:21 AM1/1/18
to weewx...@googlegroups.com
What the ...??? 

I don't get it.  I deleted every weewx-related file, and reinstalled again using the python script.  After a bit of tweaking, I finally got the service to start .. .

Jan  1 14:59:56 weather weewx[13574]: wmr300x: using PyUSB backend: libusb1
Jan  1 14:59:57 weather kernel: [60750.982271] usb 1-1.5: reset full-speed USB device number 4 using dwc_otg
Jan  1 14:59:57 weather weewx[13574]: wmr300x: send initial heartbeat, try 1
Jan  1 14:59:57 weather weewx[13574]: wmr300x: Initiation completed
Jan  1 14:59:57 weather weewx[13574]: engine: StdConvert target unit is 0x1
Jan  1 14:59:57 weather weewx[13574]: wxcalculate: The following values will be calculated: barometer=prefer_hardware, windchill=hardware, dewpoint=hardware, appTemp=prefer_hardware, rainRate=hardware, windrun=prefer_hardware, heatindex=hardware, maxSolarRad=prefer_hardware, humidex=prefer_hardware, pressure=prefer_hardware, inDewpoint=prefer_hardware, ET=prefer_hardware, altimeter=prefer_hardware, cloudbase=prefer_hardware
Jan  1 14:59:57 weather weewx[13574]: wxcalculate: The following algorithms will be used for calculations: altimeter=aaNOAA, maxSolarRad=RS
Jan  1 14:59:57 weather weewx[13574]: engine: Archive will use data binding wx_binding
Jan  1 14:59:57 weather weewx[13574]: engine: Record generation will be attempted in 'hardware'
Jan  1 14:59:57 weather weewx[13574]: engine: Using archive interval of 300 seconds (specified in weewx configuration)
Jan  1 14:59:57 weather weewx[13574]: engine: Using binding 'wx_binding' to database 'weewx.sdb'
Jan  1 14:59:57 weather weewx[13574]: manager: Starting backfill of daily summaries
Jan  1 14:59:57 weather weewx[13574]: restx: StationRegistry: Registration not requested.
Jan  1 14:59:57 weather weewx[13574]: restx: Wunderground: Posting not enabled.
Jan  1 14:59:57 weather weewx[13574]: restx: PWSweather: Posting not enabled.
Jan  1 14:59:57 weather weewx[13574]: restx: CWOP: Posting not enabled.
Jan  1 14:59:57 weather weewx[13574]: restx: WOW: Posting not enabled.
Jan  1 14:59:57 weather weewx[13574]: restx: AWEKAS: Posting not enabled.
Jan  1 14:59:57 weather weewx[13574]: engine: Starting up weewx version 3.8.0
Jan  1 14:59:57 weather weewx[13574]: wmr300x: read Hist since 2018-01-01 14:59:00 GMT (1514818740): from 31 to 891
Jan  1 14:59:57 weather weewx[13574]: wmr300x: send history startup, try 1
Jan  1 14:59:57 weather weewx[13574]: wmr300x: initHist: discarded 22 packets
Jan  1 14:59:57 weather weewx[13574]: wmr300x: Initing history req with cmd 0x65, starting with record 32
Jan  1 14:59:57 weather weewx[13574]: wmr300x: History read initiated
Jan  1 14:59:59 weather weewx[13574]: wmr300x: catchup nearly complete: count=0 kept, last_received=890 final=891; state=reading history
Jan  1 14:59:59 weather weewx[13574]: wmr300x: request station status at index: 890; state: finishing
Jan  1 14:59:59 weather weewx[13574]: wmr300x: catchup completed: count=0 kept last_index rcvd=890 final_index=891; state = wait57
Jan  1 14:59:59 weather weewx[13574]: wmr300x: history finish, try 1
Jan  1 15:00:00 weather weewx[13574]: wmr300x: History read completed
Jan  1 15:00:00 weather weewx[13574]: engine: Starting main packet loop.

This is further than I have been yet.  But when I look in the web directory . .

root@weather:~# ls -l /var/www/html/
total 12
-rw-r--r-- 1 root root 10701 Dec 31 20:28 index.html

How can the same install script run twice, two hours apart, give completely different results?? 

mwall

unread,
Jan 1, 2018, 10:45:51 AM1/1/18
to weewx-user
On Monday, January 1, 2018 at 9:33:55 AM UTC-5, Cycle London wrote:
Now I seem to have broken the entire thing.  I decided to try the python installation method, so ran `apt-get remove weewx` and then downloaded the tarball to try a manual installation. 

This time, there is content in /var/www/html but hardly anything (except user) under /usr/share/weewx.  Everything is under /home but even when I place the new driver into /usr/share/weewx/user and modify the configuration file, I still get... 

welcome to "unix is user-friendly, it is just picky about who its friends are"

there are a few things you should understand about debian linux and about python.

1) setup.py and apt-get are not compatible

you really should use one or the other.  the weewx wiki has instructions about how to change from one to the other.


2) how to use apt-get

apt-get install weewx
apt-get remove weewx
apt-get purge weewx

install does both initial installation as well as updates (but not upgrades)

three different commands which do three different things.  remove does not destroy any configuration files, especially not any that you have modified.  it also does not remove any debconf values.

purge deletes all configuration files and debconf values.  it does not touch any weewx data (nominally /var/lib/weewx/weewx.sdb)

for the state diagrams, see:


we try to test installer stuff, but as you can see the surface area for testing is massive.  so if you can clarify any procedures you make that result in unexpected results, that makes it more likely that someone will fix it.

3) python coders are lazy, and that is a good thing

weewx does not create a database until it has to use it

weewx does not create the html directory or any files in that directory until it has something to write.  in a default installation, that means you will not see anything until after the first archive interval (nominally 5 minutes, but it depends on your configuration).

4) you almost never need to reinstall the operating system.  linux is not windows, no matter how much certain redhat employees would like to make it so.

hope that helps!

m
 

Cycle London

unread,
Jan 1, 2018, 12:25:29 PM1/1/18
to weewx...@googlegroups.com
Yeah, I'm a friend of UNIX.  30 years of administering first Solaris, then RHEL and Slackware, FreeBSD, HP-UX and SCO UNIX.  But zero knowledge of Python, so completely unable to troubleshoot this.   And most of my days now are taken up with CentOS and RHEL, and I don't use apache2.  

Anyway, the system now appears to be running. 

root@weather:~# ps -ef | grep weather
avahi      322     1  0  2017 ?        00:00:17 avahi-daemon: running [weather.local]

Still nothing in the HTML_ROOT however.  That's fine I guess since it's aliasing to /home/weewx/public_html but what should the permissions be on that directory?  

drwxr-xr-x  6 root root  4096 Jan  1 17:20 public_html

And lynx localhost/weewx` still returns a 404 (with nothing in the httpd log but just that: 404).

Trying to hit the Pi on http from my Mac also returns a 404, which isn't anything to do with name resolution as the Pi is in DNS and I can ping it on its FQDN. 

Stumped, now.


--

mwall

unread,
Jan 1, 2018, 12:46:28 PM1/1/18
to weewx-user


On Monday, January 1, 2018 at 12:25:29 PM UTC-5, Cycle London wrote:
Anyway, the system now appears to be running. 

root@weather:~# ps -ef | grep weather
avahi      322     1  0  2017 ?        00:00:17 avahi-daemon: running [weather.local]

you want this:

ps ax | grep wee

or, if you prefer:

/etc/init.d/weewx status

or, if you have taken the kool-aid:

systemctl status weewx

i'm partial to ps - no extra layers or ideologies :)

 
Still nothing in the HTML_ROOT however.  That's fine I guess since it's aliasing to /home/weewx/public_html but what should the permissions be on that directory?  

you can use nginx, lighthttpd, apache, or any web server you prefer.  just symlink from the web server's document root to the weewx public_html directory, for example:

ln -s /home/weewx/public_html /var/www/html/weewx
 
public_html should already have the correct permissions (must be writable by whatever user owns the weewxd process).

drwxr-xr-x  6 root root  4096 Jan  1 17:20 public_html

And lynx localhost/weewx` still returns a 404 (with nothing in the httpd log but just that: 404).

Trying to hit the Pi on http from my Mac also returns a 404, which isn't anything to do with name resolution as the Pi is in DNS and I can ping it on its FQDN. 

be sure that weewx is actually running.  'ps ax|grep wee' will tell you that, and if it is not running, take a look at /var/log/syslog to find out why it quit. 

just earlier today we found another usb failure mode for the wmr300 stations:


you might want to grab the wmr300-0.19rc3.py driver from the end of that thread.  but please check  your syslog first and let me know if you go the same failure.  it looks like "Operation timed out" and "Connection timed out" really are different types of failures (i suspect the latter is more common on raspberry pi, where the weewx service is up and running before the usb subsystem has been fully initialized).

m

Les Niles

unread,
Jan 1, 2018, 7:05:27 PM1/1/18
to weewx...@googlegroups.com
Under what user ID are you running weewx?  I install from the debian package on a Raspberry Pi, and have to work around some permission issues related to running non-root.  IIRC, there are two:
* weewx can’t create the PID file in /var/run, causing it to exit almost immediately.  My hack is putting lines in the startup script (actually in /etc/defaults/weewx) to touch /var/run/weewx.pid and to chown that file to the weewx user ID.
* weewx can’t create the html, etc. files because it can’t write to /var/www/html. Solution is to manually create weewx's html directory and make that directory owned by the weewx user ID. 

  -Les


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.

Les Niles

unread,
Jan 1, 2018, 7:13:28 PM1/1/18
to weewx...@googlegroups.com
BTW, I run on mysql but I think there’s also a permission issue in creating the sqlite database file when running non-root, solved by pre-creating the file and setting its ownership.

  -Les

Cycle London

unread,
Jan 2, 2018, 3:58:59 AM1/2/18
to weewx...@googlegroups.com
This is incredible - it works.  Thank you.  Forgetting the soft link from the public_html directory.  Duh!

Priorities now are :

1. customization.  I want dials rather than a table. Is this in the customization guide? 
2. running proxy so that I don't need to have port number after the URL
3. adding my SSL certificates
4. securing the installation.  The Pi sits on a LAN that also has my production Atlassian, MX and horde.org servers on it.  So getting iptables up and running is a priority. Oh, wait. It's firewalld isn't it?  Sigh.  Something else to learn.  Can't wait to retire.  :-P

Thank you for all of your help.

  -Les

  -Les


To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
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+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Andrew Milner

unread,
Jan 2, 2018, 4:07:20 AM1/2/18
to weewx-user
You could always have the web server somewhere other than on the rpi and then just use weewx/rpi to build pages in public_html (using SQLite as the database perhaps), and ftp the buil;t pages to your real protected webserver wherever it may be - on your lan or maybe even on external servers.  This would mean you did not need to protect/open ports/firewall etc the rpi as it would only ever output to elsewhere and never have to handle incoming connections.
  -Les

  -Les


To unsubscribe from this group and all its topics, send an email to weewx-user+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

-- 
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.

For more options, visit https://groups.google.com/d/optout.

--
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.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "weewx-user" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/weewx-user/iGXSDG5XsOQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to weewx-user+...@googlegroups.com.

Cycle London

unread,
Jan 2, 2018, 4:44:51 AM1/2/18
to weewx...@googlegroups.com
I thought of that - rsyncing the data over to my production box, but I'm pretty paranoid about having anything experimental on that.  I snapshot the hell out of it if I so much as update a Horde module. 

Anyway, I've done the proxy thang, so technically, the Pi is now invisible from the outside world - and runs over https, so bonus. 

Can someone now point me to how to change the appearance of the site, and I'll stop bothering you all?  :)

To unsubscribe from this group and all its topics, send an email to weewx-user+unsubscribe@googlegroups.com.

Thomas Keffer

unread,
Jan 2, 2018, 7:20:57 AM1/2/18
to weewx-user
There is a huge webpage devoted to the subject: The WeeWX Customizing Guide.

Be sure to see the webpage on documentation to see what else you might be missing.

-tk

To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscribe@googlegroups.com.

Cycle London

unread,
Jan 2, 2018, 9:44:52 AM1/2/18
to weewx...@googlegroups.com
Hi Thomas.  Thanks for that.   I tried to get the 'bootstrap' skin running, but broke my install.  :-(  Still, I backed it up before doing so, so was able to get back to a working station. 

Andrew Milner

unread,
Jan 2, 2018, 9:49:28 AM1/2/18
to weewx-user
how did you try and get bootstrap running?  what broke and how did it break?  what did the log say?  what commands did you give and what (if any) errors did you receive??

Cycle London

unread,
Jan 2, 2018, 10:00:45 AM1/2/18
to weewx...@googlegroups.com
So to begin with, I went to the Wiki.  Checked out the Bootstrap skin, liked it so grabbed this:

https://github.com/brewster76/fuzzy-archer/archive/v2.2-beta.zip

I tried to install with wee_extension, but got a Python error.  I don't recall what the error was, and it's scrolled off of my screen buffer, but if you need to know, I can try to recreate it.  I _do_ recall that the instructions stated to run `wee_extension --install` on the tarball, but if you download from the above URL, you get a zip file.  So I unzipped it, tarred it back up as a *.gz and ran `wee_extension --install` on that.  Maybe that's what went wrong?

Anyway, so I went to the github page and decided to try the 'involved' method half-way down the page.

https://github.com/brewster76/fuzzy-archer/blob/master/INSTALL

First off, there was no 'translateengine.py' file.  A quick `find /home/weewx -name "translateengine.py"` came up empty-handed, as did the same command run with several permutations of the regex, to check if the quotes were confusing it.

Then, line 88 ..

'Move gaugeengine.py, gauges.py, historyengine,py and translateengine.py into the bin/user directory.'

Into which bin/user file?  The one in the untarred tarball, or the one in the /home/weewx file?  I opted for the latter.

I then tried to edit weewx.conf but as always, I did 'vim wee-TAB' and the filename did not complete.  Strange, I thought.  Ran an ls in that directory, and saw..

root@weather:/home/weewx# ls -l
total 100
-rw-r--r--  1 root root 32472 Jan 12  2017 LICENSE.txt
-rw-r--r--  1 root root   400 Jan 12  2017 README
drwxr-xr-x  2 root root  4096 Jan  2 14:55 archive
drwxr-xr-x 10 root root  4096 Jan  1 14:37 bin
drwxr-xr-x  6 root root  4096 Jan  1 14:37 docs
drwxr-xr-x  6 root root  4096 Jan  1 14:37 examples
drwxr-xr-x  6 root root  4096 Jan  2 14:55 public_html
drwxr-xr-x  7 root root  4096 Jan  2 13:22 skins
drwxr-xr-x 12 root root  4096 Jan  1 14:37 util
drwxr-xr-x  9 root root  4096 Jan  2 13:39 weewx
-rw-r--r--  1 root root 14420 Jan  2 14:11 weewx.conf
-rw-r--r--  1 root root 14406 Jan  2 13:45 weewx.conf.broken

A broken config file, created - I presume - by the wee_extension?

Something had gone wrong.  I grabbed the backup, untarred it back into /home and restarted the service. 

Lastly, I now have an /etc/weewx where I didn't this morning. 

Let me know if you want me to try again and run `script` so that you can see exactly what went wrong.



--

Andrew Milner

unread,
Jan 2, 2018, 10:42:45 AM1/2/18
to weewx-user
1.the latest version is 2.24 - follow the link to latest versions.  Even 2.24 is 15 months old!!  2.2 beta is possibly tooooo ancient now!!
2.Download the tarball, not the zip - both versions are always available
3.Do the install the easy way.  Note that the INSTALL page you went to refers to the latest 2.24 version - do not know if that makes a difference

Do the correct install procedure depending on whether you have installed weewx using debian installer (apt-get) or setup.py



Do take note - did you install weewx using 
To unsubscribe from this group and all its topics, send an email to weewx-user+...@googlegroups.com.

Cycle London

unread,
Jan 2, 2018, 11:15:21 AM1/2/18
to weewx...@googlegroups.com
Oh, nice! 

Thank you.  :-)

To unsubscribe from this group and all its topics, send an email to weewx-user+unsubscribe@googlegroups.com.

Cycle London

unread,
Jan 2, 2018, 11:19:52 AM1/2/18
to weewx...@googlegroups.com
One of the reasons this didn't appear was that I use my production webserver to proxy and reverse proxy .. so mydomain.com/weather was still going to mydomain/weather instead of to mydomain/weather/Bootstrap.

Fixed.  :)

Any chance .. man, I know I'm asking a lot, but how can I get a satellite pic in there?  I've tried the Met office here in London, but they don't seem to make animated gifs available..

On 2 January 2018 at 15:42, Andrew Milner <andrew.s...@gmail.com> wrote:
To unsubscribe from this group and all its topics, send an email to weewx-user+unsubscribe@googlegroups.com.

Andrew Milner

unread,
Jan 2, 2018, 11:28:49 AM1/2/18
to weewx-user
I would suggest googling for import uk weather satellite image to web page and see what you find!!

I'm afraid I am not in the UK

vince

unread,
Jan 2, 2018, 11:59:04 AM1/2/18
to weewx-user
On Tuesday, January 2, 2018 at 8:19:52 AM UTC-8, Cycle London wrote:
Any chance .. man, I know I'm asking a lot, but how can I get a satellite pic in there?  I've tried the Met office here in London, but they don't seem to make animated gifs available..



go to the weewx map and see if there are any sites registered close to you who've done this, then either screen-scrape the URL from them or contact them directly
Reply all
Reply to author
Forward
0 new messages