<<< macOS WeeWX Guides >>>
Upgrading Weewx
These instructions work on MAC OSX El Capitan, and were written to upgrade from 3.0 to 3.5 of Weewx.
Get the code
First download the latest copy of the WeeWX code from the WeeWX Open Source website and store it in a directory of your choice. I have created a sub directory off of my home directory for this purpose
Installation
Change into the directory you just created, or wherever you want to install Weewx. I have used a test area under my own login area for all my testing, and I then move the installation to a secure area from which the WEB site is delivered. I would recommend that you follow a similar strategy and definitely do not expose your local area to the internet.
$ cd /Users/Mike/Weewx/
Then unzip the archive file and change into the directory that this creates
$ tar xvf weewx-X.Y.Z.tar.gz $ cd weewx-X.Y.Z
Test Build
Unless you are very brave, or maybe have never done this before, you should ALWAYS test the upgrade before overwriting you production installation. Failure to do this may give you the opportunity to test out how good your backup regime is.
I have created a test harness that I use prior to rolling out any new code and the following steps will take you through the process I use
First edit the weewx.conf file in the new directory that you have jsut created and make the following changes
Replace WEEWX_ROOT = /home/weewx With the directory name for your test area WEEWX_ROOT = /Users/Mike/Dropbox/Weewx/new In my case station_type = unspecified Initially to simulator, eventually to your weather station type station_type = Simulator For the initial testing HTML_ROOT = public_html With the name of your website HTML_ROOT = MountWeather In my case archive_interval = 300 This value from your weatherstation which may need modifying archive_interval = 60 In my case record_generation = hardware Retrieves the data from your weatherstation record_generation = software Generates synthetic data, necessary to run the test harness
Then edit the setup.cfg file and point it towards your test area
Replace home = /home/Weewx/ with the name of your test directory home = /Users/Mike/Dropbox/Weewx/new In my case
The next step is to copy all of your production code into your test area, I prefer to do this via a script rather than run the commands manually to reduce the likely hood of errors. Below is an example fo the script I use.
$ vi CopyLiveFilestoNew.sh LIVE_DESTINATION=/Groups/revitt/WebSites/Weewx NEW_LOCATION=/Users/Mike/Dropbox/Weewx/new Echo Clear down test area Echo sudo rm -vfr $NEW_LOCATION/* Echo Copy Production Scripts into $NEW_LOCATION Echo cp -vr $LIVE_DESTINATION/* $NEW_LOCATION Echo Echo Done ..... Echo :x $ chmod 755 CopyLiveFilestoNew.sh $ ./CopyLiveFilestoNew.sh
Then build and install the new version:
$ cd /Users/Mike/Weewx/ $ ./setup.py build $ sudo ./setup.py install
Check that the weewx.conf file in the test area is stil utilising the simulator
$ cd /Users/Mike/Dropbox/Weewx/weewx-3.5.0 $ sudo chmod 777 weewx.conf Edit weewx.conf Replace WEEWX_ROOT = /Groups/revitt/WebSites/Weewx/ This is your live area and needs to be edited WEEWX_ROOT = /Users/Mike/Dropbox/Weewx/new In my case station_type = unspecified Initially to simulator, eventually to your weather station type station_type = Simulator For the initial testing
Test Run
You should now have a test environment with a complete copy of your production environment, ready for testing.
Again I prefer to do this via a script, the commnads for creating and running the script are replicated below
$ cd /Users/Mike/Dropbox/Weewx $ vi runTest.sh echo tail -f /var/log/system.log /Users/Mike/Dropbox/Weewx/new/bin/weewxd /Users/Mike/Dropbox/Weewx/new/weewx.conf $ chmod 755 runTest.sh $ ./runTest.sh tail -f /var/log/system.log LOOP: 2016-03-27 12:04:22 BST (1459076662) altimeter: 32.0998981381, appTemp: 28.4601091875, barometer: 31.099999999, cloudbase: 2136.71162923, dateTime: 1459076662, dewpoint: 27.2035609939, heatindex: 32.6785829702, humidex: 32.6785829702, inDewpoint: 31.079533828, inHumidity: 29.9999999587, inTemp: 63.0000000207, maxSolarRad: 583.160267993, outHumidity: 79.999999969, outTemp: 32.6785829702, pressure: 31.099999999, radiation: 999.642540212, rain: 0, rainRate: 0, usUnits: 1, UV: 13.994995563, windchill: 32.6785829702, windDir: 359.999999814, windGust: 6.19745677e-09, windGustDir: 359.999999814, windSpeed: 5.16454790045e-09 LOOP: 2016-03-27 12:04:24 BST (1459076664) altimeter: 32.0998981296, appTemp: 28.4580736503, barometer: 31.0999999907, cloudbase: 2136.70115911, dateTime: 1459076664, dewpoint: 27.2017895837, heatindex: 32.6767654914, humidex: 32.6767654914, inDewpoint: 31.0795336993, inHumidity: 29.9999996282, inTemp: 63.0000001859, maxSolarRad: 583.193289457, outHumidity: 79.9999997211, outTemp: 32.6767654914, pressure: 31.0999999907, radiation: 999.634244561, rain: 0, rainRate: 0, usUnits: 1, UV: 13.9948794239, windchill: 32.6767654914, windDir: 359.999998327, windGust: 5.57771153709e-08, windGustDir: 359.999998327, windSpeed: 4.64809293277e-08
The tail command shows you that the simulator is generating data.
Now locate index.html in your test are, this will be within the HTML_ROOT that you specified earlier, double click it and keep refreshing to test that the new release is working as expected.
Live Build
If everything worked as expected then it is a simple task to upgrade your system
First stop your background Daemon
$ cd /Groups/revitt/WebSites/Weewx/ $ sudo launchctl unload /Library/LaunchDaemons/com.weewx.weewxd.plist
Then modify weewx.conf and setup.cfg to point to your production area.
$ vi weewx.conf Replace WEEWX_ROOT = /home/weewx With the directory name for your test area WEEWX_ROOT = /Groups/revitt/WebSites/Weewx In my case station_type = unspecified Initially to simulator, eventually to your weather station type station_type = Vantage In my case HTML_ROOT = public_html With the name of your website HTML_ROOT = MountWeather In my case $ vi setup.cfg Replace home = /home/Weewx With the directory name for your production area home = /Groups/revitt/WebSites/Weewx In my case
Being paranoid I still prefer to keep a full backup of my current website before performing the upgrade, as this gives me an easy route back should it all go wrong, so copy the current website into a backup area
$ sudo cp -vfr /Groups/revitt/WebSites/Weewx/ /Users/Mike/Dropbox/Weewx/Backups/Weewx.3.0
Then stop the background Daemon and run the upgrade scripts
$ cd /Users/Mike/Dropbox/Weewx/weewx-3.5.0 $ sudo launchctl unload /Library/LaunchDaemons/com.weewx.weewxd.plist $ ./setup.py build $ sudo ./setup.py install $ sudo launchctl load /Library/LaunchDaemons/com.weewx.weewxd.plist
Now log onto your website and check it out