Weewx... refreshing?!

218 views
Skip to first unread message

Jochem _

unread,
Jan 30, 2023, 10:47:33 AM1/30/23
to weewx-user


I am playing with the Weewx  (https://github.com/martinwiest/WeeWX-Docker) distribution and since I am a sort of stuck I hope someone can help me.

The issues I am facing:
1. HTML pages are not generates (except I force this through ./wee_reports ../weewx.conf 
2. For some reason I can’t link the Public_HTML directory as volume @ local FS (docker-compose.yml : - "/home/weewx/public_html/:home/weewx/public_html/“)


The steps I followed:

1.    Create docker-compose.yml file.

docker-compose.yml *
version: '3.3'
services:
  weewx:
   image: "martinwiest/weewx"
   container_name: weewx
   restart: always
   ports:
    - "80:80"
   volumes:
    - "./config:/home/weewx/config:rw"
   devices:
    - "/dev/ttyUSB0:/dev/ttyUSB0"
   environment:
    - TZ=Europe/Amsterdam
    - WEEWX_UID=weewx
    - WEEWX_GID=dialout
    - DEVICE_PORT=/dev/ttyUSB0
    - WEEK_START=6


NOTE:
1) Tried to add @ Volumes - “./config/public_html:/home/weewx/public_html:rw” 
That doesn’t work. Is there a way to export this to the local File System?


Install:

pi@raspberrypi:/home/weewx $ docker-compose up -d
Pulling weewx (martinwiest/weewx:)...
latest: Pulling from martinwiest/weewx
dc1f00a5d701: Pull complete
cfeb1af30280: Pull complete
8b393d1865ed: Pull complete
0e1c4d45c50e: Pull complete
3b5fbcc85c0d: Pull complete
05bbe9de3bca: Pull complete
dd2f8b247cea: Pull complete
2ba4ca8686bf: Pull complete
a6635ba84832: Pull complete
cdec713ae15f: Pull complete
Digest: sha256:a6e7a45977e8e865a15c13aef8be1b58585c84db109d035a2e7bb9ac8a674543
Status: Downloaded newer image for martinwiest/weewx:latest
Creating weewx ... done
pi@raspberrypi:/home/weewx $



pi@raspberrypi:/home/weewx $ docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                                           NAMES
54ab9b7de7cc   martinwiest/weewx               "/docker-entrypoint.…"   41 seconds ago   Up 25 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp                               weewx


pi@raspberrypi:/home/weewx/config $ ls
archive  plugins  skins  user  weewx.log
pi@raspberrypi:/home/weewx/config $ more weewx.log
Jan 30 15:16:46 54ab9b7de7cc syslog.info syslogd started: BusyBox v1.30.1
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[39] INFO __main__: Initializing weewx version 4.8.0
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[39] INFO __main__: Using Python 3.9.2 (default, Feb 28 2021, 17:03:44)  [GCC 10.2.1 20210110]
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[39] INFO __main__: Platform Linux-5.15.84-v8+-aarch64-with-glibc2.31
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[39] INFO __main__: Locale is 'LC_CTYPE=C.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C'
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[39] INFO __main__: Using configuration file /home/weewx/weewx.conf
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[39] INFO __main__: Debug is 0
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[39] INFO __main__: PID file is /var/run/weewx.pid
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: Loading station type Simulator (weewx.drivers.simulator)
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: StdConvert target unit is 0x1
Jan 30 15:16:46 54ab9b7de7cc user.info weewx[42] INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: Archive will use data binding wx_binding
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: Record generation will be attempted in 'hardware'
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: Using archive interval of 300 seconds (specified in weewx configuration)
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.restx: StationRegistry: Registration not requested.
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.restx: Wunderground: Posting not enabled.
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.restx: PWSweather: Posting not enabled.
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.restx: CWOP: Posting not enabled.
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.restx: WOW: Posting not enabled.
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.restx: AWEKAS: Posting not enabled.
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: 'pyephem' detected, extended almanac data is available
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO __main__: Starting up weewx version 4.8.0
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: Clock error is -0.19 seconds (positive is fast)
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.manager: Starting backfill of daily summaries
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.manager: Daily summaries up to date
Jan 30 15:16:47 54ab9b7de7cc user.info weewx[42] INFO weewx.engine: Starting main packet loop.


At this moment http://<localhost>:80 gives a forbidden error.


Entering Container:
pi@raspberrypi:/home/weewx $ docker exec -it weewx /bin/bash

root@54ab9b7de7cc:/home/weewx/bin# pwd
/home/weewx/bin
root@54ab9b7de7cc:/home/weewx/bin# ./wee_reports ../weewx.conf
Using configuration file ../weewx.conf
Generating for all time
root@54ab9b7de7cc:/home/weewx/bin#

At this moment http://<localhost>:80 gives the simulation page.


Testing output:
root@54ab9b7de7cc:/home/weewx/bin# weewxd
LOOP:   2023-01-30 15:22:18 CET (1675088538) 'altimeter': '31.891835984821956', 'appTemp': '28.46010918752483', 'barometer': '31.099999998967093', 'cloudbase': '1944.323176426526', 'consBatteryVoltage': '12.727596736221205', 'dateTime': '1675088538', 'dewpoint': '27.203560993945757', 'ET': 'None', 'heatindex': '32.67858297022247', 'heatingVoltage': '11.501478543612714', 'humidex': '32.67858297022247', 'inDewpoint': '31.079533828013187', 'inHumidity': '29.999999958683617', 'inTemp': '63.00000002065819', 'inTempBatteryStatus': '0', 'maxSolarRad': '867.1336258327194', 'outHumidity': '79.99999996901272', 'outTemp': '32.67858297022247', 'outTempBatteryStatus': '0', 'pressure': '31.099999998967093', 'radiation': '403.45358657837164', 'rain': '0', 'rainBatteryStatus': '0', 'rainRate': '0.0', 'referenceVoltage': '12.412400390215923', 'rxCheckPercent': '27.260980524942426', 'supplyVoltage': '12.545640335546153', 'txBatteryStatus': '0', 'usUnits': '1', 'UV': '5.648350212097204', 'windBatteryStatus': '0', 'windchill': '32.67858297022247', 'windDir': '359.9999998140763', 'windGust': '6.197456769996279e-09', 'windGustDir': '359.9999998140763', 'windrun': 'None', 'windSpeed': '5.164547900449179e-09'
LOOP:   2023-01-30 15:22:20 CET (1675088540) 'altimeter': '31.89183597638835', 'appTemp': '28.45807365032865', 'barometer': '31.099999990703814', 'cloudbase': '1944.3127063099937', 'consBatteryVoltage': '13.162200203988899', 'dateTime': '1675088540', 'dewpoint': '27.20178958368346', 'ET': 'None', 'heatindex': '32.67676549144743', 'heatingVoltage': '12.0', 'humidex': '32.67676549144743', 'inDewpoint': '31.07953369929752', 'inHumidity': '29.999999628152565', 'inTemp': '63.00000018592372', 'inTempBatteryStatus': '0', 'maxSolarRad': '867.0325553120347', 'outHumidity': '79.99999972111442', 'outTemp': '32.67676549144743', 'outTempBatteryStatus': '0', 'pressure': '31.099999990703814', 'radiation': '403.31088374704626', 'rain': '0', 'rainBatteryStatus': '0', 'rainRate': '0.0', 'referenceVoltage': '12.0', 'rxCheckPercent': '27.260980524942426', 'supplyVoltage': '10.967425046402347', 'txBatteryStatus': '0', 'usUnits': '1', 'UV': '5.646352372458647', 'windBatteryStatus': '0', 'windchill': '32.67676549144743', 'windDir': '359.9999983266865', 'windGust': '5.577711537085861e-08', 'windGustDir': '359.9999983266865', 'windrun': 'None', 'windSpeed': '4.648092932768577e-08’



Updating weewx.conf file / wee_config 

Using configuration file /home/weewx/weewx.conf
Enter a brief description of the station, such as its location.  For example:
Santa's Workshop, North Pole
description [My Little Town, Oregon]: Test Station Joche

Specify altitude, with units 'foot' or 'meter'.  For example:
35, foot
12, meter
altitude [700, foot]: 10, meter

Specify latitude in decimal degrees, negative for south.
latitude [0.00]:
Specify longitude in decimal degrees, negative for west.
longitude [0.00]:

You can register your station on weewx.com, where it will be included
in a map. You will need a unique URL to identify your station (such as a
website, or WeatherUnderground link).
Include station in the station registry (y/n)? [n]: n

Indicate the preferred units for display: ['us', 'metric', 'metricwx']
unit system [us]: metric

Installed drivers include:
  0) AcuRite         (weewx.drivers.acurite)
  1) ?               (weewx.drivers.cc3000)    No module named 'serial'
  2) FineOffsetUSB   (weewx.drivers.fousb)
  3) Simulator       (weewx.drivers.simulator)
  4) TE923           (weewx.drivers.te923)
  5) ?               (weewx.drivers.ultimeter) No module named 'serial'
  6) Vantage         (weewx.drivers.vantage)
  7) WMR100          (weewx.drivers.wmr100)
  8) WMR300          (weewx.drivers.wmr300)
  9) ?               (weewx.drivers.wmr9x8)    No module named 'serial'
 10) WS1             (weewx.drivers.ws1)
 11) WS23xx          (weewx.drivers.ws23xx)
 12) WS28xx          (weewx.drivers.ws28xx)
choose a driver [3]: 6
Specify the hardware interface, either 'serial' or 'ethernet'.
If the station is connected by serial, USB, or serial-to-USB
adapter, specify serial.  Specify ethernet for stations with
WeatherLinkIP interface.
type [serial]:
Specify a port for stations with a serial interface, for
example /dev/ttyUSB0 or /dev/ttyS0.
port [/dev/ttyUSB0]:
Saved backup to /home/weewx/weewx.conf.20230130160509

Copy to weewx.conf to config directory (shared volume):
root@54ab9b7de7cc:/home/weewx# cp weewx.conf config/.


Check if new website will be generated on basis of the weatherstation (Vantage)
root@54ab9b7de7cc:/home/weewx/bin# ./wee_reports ../weewx.conf
Using configuration file ../weewx.conf
Generating for all time

..

This works — but after 5 minutes the info comes from the Simulator

Decided to restart the container.
pi@raspberrypi:/home/weewx $ sudo docker-compose stop
Stopping weewx ... done

Start:
pi@raspberrypi:/home/weewx $ sudo docker-compose up -d
Starting weewx ... done
pi@raspberrypi:/home/weewx $

pi@raspberrypi:/home/weewx $ docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                                           NAMES
54ab9b7de7cc   martinwiest/weewx               "/docker-entrypoint.…"   58 minutes ago   Up 18 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp                               weewx


Nothing happens…

Checking LOG FILE:

pi@raspberrypi:/home/weewx/config $ tail -30 weewx.log
Jan 30 16:06:33 54ab9b7de7cc user.info wee_reports[118] INFO weewx.reportengine: Copied 5 files to /home/weewx/public_html
Jan 30 16:10:17 54ab9b7de7cc user.info weewx[42] INFO weewx.manager: Added record 2023-01-30 16:10:00 CET (1675091400) to database 'weewx.sdb'
Jan 30 16:10:17 54ab9b7de7cc user.info weewx[42] INFO weewx.manager: Added record 2023-01-30 16:10:00 CET (1675091400) to daily summary in 'weewx.sdb'
Jan 30 16:10:18 54ab9b7de7cc user.info weewx[42] INFO weewx.cheetahgenerator: Generated 8 files for report SeasonsReport in 1.09 seconds
Jan 30 16:10:18 54ab9b7de7cc user.info weewx[42] INFO weewx.imagegenerator: Generated 15 images for report SeasonsReport in 0.58 seconds
Jan 30 16:10:18 54ab9b7de7cc user.info weewx[42] INFO weewx.reportengine: Copied 0 files to /home/weewx/public_html
Jan 30 16:14:17 54ab9b7de7cc syslog.info syslogd started: BusyBox v1.30.1
Jan 30 16:14:18 54ab9b7de7cc user.info weewx[34] INFO __main__: Initializing weewx version 4.8.0
Jan 30 16:14:18 54ab9b7de7cc user.info weewx[34] INFO __main__: Using Python 3.9.2 (default, Feb 28 2021, 17:03:44)  [GCC 10.2.1 20210110]
Jan 30 16:14:18 54ab9b7de7cc user.info weewx[34] INFO __main__: Platform Linux-5.15.84-v8+-aarch64-with-glibc2.31
Jan 30 16:14:18 54ab9b7de7cc user.info weewx[34] INFO __main__: Locale is 'LC_CTYPE=C.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C'
Jan 30 16:14:18 54ab9b7de7cc user.info weewx[34] INFO __main__: Using configuration file /home/weewx/weewx.conf
Jan 30 16:14:18 54ab9b7de7cc user.info weewx[34] INFO __main__: Debug is 0
Jan 30 16:14:18 54ab9b7de7cc user.info weewx[34] INFO __main__: PID file is /var/run/weewx.pid
Jan 30 16:14:18 54ab9b7de7cc user.info weewx[37] INFO weewx.engine: Loading station type Vantage (weewx.drivers.vantage)
Jan 30 16:14:18 54ab9b7de7cc user.err weewx[37] ERROR weewx.engine: Import of driver failed: No module named 'serial' (<class 'ModuleNotFoundError'>)
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****  Traceback (most recent call last):
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 119, in setupStation
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****      self.console = loader_function(config_dict, self)
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/drivers/vantage.py", line 40, in loader
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****      return VantageService(engine, config_dict)
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/drivers/vantage.py", line 1916, in __init__
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****      Vantage.__init__(self, **config_dict[DRIVER_NAME])
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/drivers/vantage.py", line 514, in __init__
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****      self.port.openPort()
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/drivers/vantage.py", line 307, in openPort
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****      import serial
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL weewx.engine:     ****  ModuleNotFoundError: No module named 'serial'
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL __main__: Unable to load driver: No module named 'serial'
Jan 30 16:14:18 54ab9b7de7cc user.crit weewx[37] CRITICAL __main__:     ****  Exiting…


Seems an error…

I added:
pi@raspberrypi:/home/weewx/config/plugins $ ls -lart
total 1548
-rw-r--r-- 1 root  root 1426893 Jan 30 12:32 vantage.py
drwxr-xr-x 2 root  root    4096 Jan 30 12:33 .
-rw-r--r-- 1 root  root  145582 Jan 30 12:33 vantage.rules
drwxr-xr-x 6 weewx root    4096 Jan 30 16:13 ..

But no succes.

What is going wrong?
Thanks.

Jim Munro

unread,
Jan 31, 2023, 11:50:11 AM1/31/23
to weewx-user
Html pages get generated if I use the simulator.  You need to wait for an archive interval of 5 minutes.  There did not seem to be any problem exporting the public_html to
 volumes:
    - "./config:/home/weewx/config:rw"
    - "./config/public_html:/home/weewx/public_html:rw"
ensure public_html directory has chmod a+x on the docker host and check after 5 min interval (typical).  You should be able to see the webpage on the localhost

When configuring for the Vantage there was a problem.  The python3-serial package is not installed on the docker image.  You can temporarily install it with apt update and apt install python3-serial.  You can restart the container from portainer and the
the " No module named 'serial' (<class 'ModuleNotFoundError'>)" should go away.  I didnt have a Vantage station to test with but it looks like the driver times out after 4 tries. You can also try setting debug to 1 in the weewx.conf file for a bit more info in the log.

Hope that helps.

Jochem _

unread,
Feb 1, 2023, 8:45:15 AM2/1/23
to weewx-user
seems it works :-).
Now playing with skins... and soft of live Ajax-based website.

Reply all
Reply to author
Forward
0 new messages