diff --git a/bin/weewx/__init__.py b/bin/weewx/__init__.py index f9d1648b..8c5caf19 100644 --- a/bin/weewx/__init__.py +++ b/bin/weewx/__init__.py @@ -6,7 +6,7 @@ """Package weewx, containing modules specific to the weewx runtime engine.""" import time -__version__="3.7.0b3" +__version__="3.7.0" # Holds the program launch time in unix epoch seconds: # Useful for calculating 'uptime.' diff --git a/bin/weewx/engine.py b/bin/weewx/engine.py index 9b054852..a011ed14 100644 --- a/bin/weewx/engine.py +++ b/bin/weewx/engine.py @@ -517,6 +517,7 @@ class StdArchive(StdService): self.end_archive_period_ts = \ (int(self.engine._get_console_time() / self.archive_interval) + 1) * self.archive_interval self.end_archive_delay_ts = self.end_archive_period_ts + self.archive_delay + self.old_accumulator = None def new_loop_packet(self, event): """Called when A new LOOP record has arrived.""" @@ -555,8 +556,8 @@ class StdArchive(StdService): """The main packet loop has ended, so process the old accumulator.""" # If weewx happens to startup in the small time interval between the end of # the archive interval and the end of the archive delay period, then - # there will be no old accumulator. - if hasattr(self, 'old_accumulator'): + # there will be no old accumulator. Check for this. + if self.old_accumulator: # If the user has requested software generation, then do that: if self.record_generation == 'software': self._software_catchup() diff --git a/docs/changes.txt b/docs/changes.txt index 2a251156..7eba7961 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -118,16 +118,14 @@ chance of data spikes caused by RS232 line contention. Thanks lionel.sylvie! The observation windGustDir has been removed from wmr100, wmr200, te923, and fousb drivers. These drivers were simply assigning windGustDir to windDir, -since none of the hardware reports an actual windGustDir. For hardware that -does not report a windGustDir, weewx will calculate windGustDir at each archive -interval when it accumulates an archive record. +since none of the hardware reports an actual windGustDir. Calculation of aggregates over a period of one day or longer can now respect any change in archive interval. To take advantage of this feature, you will have to apply an update to your daily summaries. This can be done using the tool wee_database, option ---update. The only reason to do this is you plan on changing your -archive interval. Otherwise, you can ignore. Fixes issue #61. +--update. Refer to the ‘Changes to daily summaries’ section in the +Upgrade Guide to determine whether you should update or not. Fixes issue #61. Max value of windSpeed for the day is now the max archive value of windSpeed. Formerly, it was the max LOOP value. If you wish to patch your older diff --git a/docs/customizing.htm b/docs/customizing.htm index a9a870ca..17c2e619 100644 --- a/docs/customizing.htm +++ b/docs/customizing.htm @@ -1,4 +1,4 @@ - @@ -4357,7 +4357,7 @@ UV = UV Index This is the list of search list objects that will be scanned by the template engine, looking for tags. See the section Defining new tags and the Cheetah + href="http://pythonhosted.org/Cheetah/users_guide">Cheetah documentation for details on search lists. If no search_list is specified, a default list will be used. The default list is: diff --git a/docs/debian.htm b/docs/debian.htm index 0ad7aff2..ac295f60 100644 --- a/docs/debian.htm +++ b/docs/debian.htm @@ -77,7 +77,7 @@ sudo rm -r /var/www/html/weewx

Layout

The installation will result in the following layout:

- +
diff --git a/docs/devnotes.htm b/docs/devnotes.htm index 8ff0857e..210b15ff 100644 --- a/docs/devnotes.htm +++ b/docs/devnotes.htm @@ -108,7 +108,7 @@ Version: 3.7 go in the code to go instead in a configuration file.
  • A powerful templating engine. The - Cheetah module + Cheetah module was chosen for generating html and other types of files from templates. Cheetah allows search list extensions to be defined, making it easy to extend weeWX with new template diff --git a/docs/macos.htm b/docs/macos.htm index 2145317b..c1d9af7e 100644 --- a/docs/macos.htm +++ b/docs/macos.htm @@ -95,7 +95,7 @@ sudo rm /Library/LaunchDaemons/com.weewx.weewxd.plist

    Layout

    The instructions above will result in the following layout:

    -
  • executable: /usr/bin/weewxd
    +
    diff --git a/docs/readme.htm b/docs/readme.htm index bd6daf67..e2c1a001 100644 --- a/docs/readme.htm +++ b/docs/readme.htm @@ -25,15 +25,19 @@ Version: 3.7
    -
    -
    Quick-Start
    -
    - If you use a Debian-based system, such as Ubuntu, Mint, or - Raspian, then you may want to follow this "quick start" guide. - It will help you do a basic install to get you started, which - you can then refine. Alternatively, you can follow the more - complete directions in the User's Guide. -
    +
    +
    Quick-Start
    +
    + Follow the installation instructions for a basic install, which + you can then refine. For detailed instructions, see the + User's Guide. +

    + Instructions for Debian, Ubuntu, Mint, Raspbian
    + Instructions for Redhat, Centos, Fedora
    + Instructions for SUSE, OpenSUSE
    + Instructions for MacOS
    +

    +
    User's Guide
    @@ -93,8 +97,8 @@ Version: 3.7
    List of the changes in each release.
    Hardware Comparison
    -
    Are you looking for a weather station? Are you considering - building your own station? This table lists the sensors, +
    Are you looking for a weather station? Would you like to + build your own station? This table lists the sensors, configurations, and specifications for various types of weather-related hardware.
    diff --git a/docs/redhat.htm b/docs/redhat.htm index 930426a9..2bde6ae5 100644 --- a/docs/redhat.htm +++ b/docs/redhat.htm @@ -96,7 +96,7 @@ sudo rm -r /var/www/html/weewx

    Layout

    The installation will result in the following layout:

    -
    executable: /Users/Shared/weewx/bin/weewxd
    +
    diff --git a/docs/setup.htm b/docs/setup.htm index 134b8f65..d38dd0f0 100644 --- a/docs/setup.htm +++ b/docs/setup.htm @@ -238,7 +238,7 @@ sudo rm /etc/init.d/weewx

    The installation will place weeWX in the /home/weewx directory with the following layout:

    -
    executable: /usr/bin/weewxd
    +
    diff --git a/docs/suse.htm b/docs/suse.htm index 9a39d4e5..b24f03ce 100644 --- a/docs/suse.htm +++ b/docs/suse.htm @@ -93,7 +93,7 @@ sudo rm -r /var/www/html/weewx

    Layout

    The installation will result in the following layout:

    -
    executable: /home/weewx/bin/weewxd
    +
    diff --git a/docs/utilities.htm b/docs/utilities.htm index df3eba3e..74f16edd 100644 --- a/docs/utilities.htm +++ b/docs/utilities.htm @@ -340,13 +340,13 @@ Usage: wee_database --help wee_database --check-strings wee_database --fix-strings [--dry-run] wee_database --drop-daily - wee_database --rebuild-daily - [--date=YYYY-mm-dd | --from=YYYY-mm-dd --to=YYYY-mm-dd] + wee_database --rebuild-daily [--date=YYYY-mm-dd | + --from=YYYY-mm-dd --to=YYYY-mm-dd] Description: -Manipulate the weeWX database. Most of these operations are handled automatically -by weeWX, but they may be useful in special cases. +Manipulate the weeWX database. Most of these operations are handled +automatically by weeWX, but they may be useful in special cases. Options: -h, --help show this help message and exit diff --git a/makefile b/makefile index cc7db3bd..1de7391f 100644 --- a/makefile +++ b/makefile @@ -6,7 +6,7 @@ SIGN=1 # destination for uploading releases -RELDIR=weewx.com:/downloads/development_versions/ +UPLOADDIR=weewx.com:/downloads/development_versions/ # destination for uploading docs DOCDST=weewx.com:/ @@ -63,7 +63,7 @@ info: @echo " VERSION: $(VERSION)" @echo " MMVERSION: $(MMVERSION)" @echo " CWD: $(CWD)" - @echo " RELDIR: $(RELDIR)" + @echo " UPLOADDIR: $(UPLOADDIR)" @echo " DOCDST: $(DOCDST)" @echo " USER: $(USER)" @@ -113,7 +113,7 @@ src-package $(DSTDIR)/$(SRCPKG): MANIFEST.in ./setup.py sdist upload-src: - (cd $(DSTDIR); ftp -u $(USER)@$(RELDIR) $(SRCPKG)) + (cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(SRCPKG)) # upload docs to the weewx web site upload-docs: @@ -148,7 +148,7 @@ readme: docs/changes.txt pkg/mkchangelog.pl --ifile docs/changes.txt >> $(DSTDIR)/README.txt upload-readme: readme - (cd $(DSTDIR); ftp -u $(USER)@$(RELDIR) README.txt) + (cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) README.txt) # update the version in all relevant places VDOCS=readme.htm customizing.htm devnotes.htm hardware.htm usersguide.htm upgrading.htm utilities.htm @@ -208,7 +208,7 @@ check-deb: lintian -Ivi $(DSTDIR)/$(DEBPKG) upload-deb: - (cd $(DSTDIR); ftp -u $(USER)@$(RELDIR) $(DEBPKG)) + (cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(DEBPKG)) RPMREVISION=1 RPMVER=$(VERSION)-$(RPMREVISION) @@ -262,16 +262,18 @@ check-rpm: rpmlint $(DSTDIR)/$(RPMPKG) upload-rpm: - (cd $(DSTDIR); ftp -u $(USER)@$(RELDIR) $(RPMPKG)) + (cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(RPMPKG)) -# move files from development_versions to previous_versions and set up the +# move files from the upload directory to the release directory and set up the # symlinks to them from the download root directory +DEVDIR=$(WEEWX_DOWNLOADS)/development_versions +RELDIR=$(WEEWX_DOWNLOADS)/released_versions ARTIFACTS=weewx-$(RPMVER).rhel.noarch.rpm weewx-$(RPMVER).suse.noarch.rpm weewx-$(VERSION).tar.gz weewx_$(DEBVER)_all.deb release: - ssh $(USER)@weewx.com "for f in $(ARTIFACTS); do mv $(WEEWX_DOWNLOADS)/development_versions/$$f $(WEEWX_DOWNLOADS)/previous_versions; done" - ssh $(USER)@weewx.com "rm $(WEEWX_DOWNLOADS)/weewx*" - ssh $(USER)@weewx.com "for f in $(ARTIFACTS); do ln -s $$f $(WEEWX_DOWNLOADS); done" - ssh $(USER)@weewx.com "mv $(WEEWX_DOWNLOADS)/README.txt $(WEEWX_DOWNLOADS)" + ssh $(USER)@weewx.com "for f in $(ARTIFACTS); do if [ -f $(DEVDIR)/$$f ]; then mv $(DEVDIR)/$$f $(RELDIR); fi; done" + ssh $(USER)@weewx.com "rm -f $(WEEWX_DOWNLOADS)/weewx*" + ssh $(USER)@weewx.com "for f in $(ARTIFACTS); do if [ -f $(RELDIR)/$$f ]; then ln -s released_versions/$$f $(WEEWX_DOWNLOADS); fi; done" + ssh $(USER)@weewx.com "if [ -f $(DEVDIR)/README.txt ]; then mv $(DEVDIR)/README.txt $(WEEWX_DOWNLOADS); fi" # run perlcritic to ensure clean perl code. put these in ~/.perlcriticrc: # [-CodeLayout::RequireTidyCode] diff --git a/pkg/changelog.rpm b/pkg/changelog.rpm index 8464177a..8cd20836 100644 --- a/pkg/changelog.rpm +++ b/pkg/changelog.rpm @@ -1,3 +1,5 @@ +* Fri Mar 10 2017 Matthew Wall (weewx) - 3.7.0-1 +- new upstream release * Sat Mar 04 2017 Matthew Wall (weewx) - 3.7.0b3-1 - new upstream release * Sat Feb 18 2017 Matthew Wall (weewx) - 3.7.0b2-1 diff --git a/pkg/debian/changelog b/pkg/debian/changelog index d1aab89f..b7947915 100644 --- a/pkg/debian/changelog +++ b/pkg/debian/changelog @@ -1,3 +1,6 @@ +weewx (3.7.0-1) unstable; urgency=low + * new upstream release + -- Matthew Wall (weewx) Fri, 10 Mar 2017 15:48:50 -0500 weewx (3.7.0b3-1) unstable; urgency=low * new upstream release -- Matthew Wall (weewx) Sat, 04 Mar 2017 23:06:41 -0500 diff --git a/util/init.d/weewx-multi b/util/init.d/weewx-multi index cf5f0873..d6d78c6f 100755 --- a/util/init.d/weewx-multi +++ b/util/init.d/weewx-multi @@ -148,7 +148,9 @@ count_procs() { } CMD=$1 -shift +if [ "$1" != "" ]; then + shift +fi INSTANCES="$@" if [ "$INSTANCES" = "" ]; then INSTANCES=$WEEWX_INSTANCES diff --git a/util/logwatch/scripts/services/weewx b/util/logwatch/scripts/services/weewx index f27a018a..b749f422 100755 --- a/util/logwatch/scripts/services/weewx +++ b/util/logwatch/scripts/services/weewx @@ -16,9 +16,9 @@ my $KBD_INTERRUPTS = 'engine: keyboard interrupts'; my $RESTARTS = 'engine: restarts'; my $GARBAGE = 'engine: garbage collected'; my $ARCHIVE_RECORDS_ADDED = 'archive: records added'; -my $IMAGES_GENERATED = 'genimages: images generated'; +my $IMAGES_GENERATED = 'imagegenerator: images generated'; my $FILES_GENERATED = 'filegenerator: files generated'; -my $FILES_COPIED = 'reportengine: files copied'; +my $FILES_COPIED = 'copygenerator: files copied'; my $RECORDS_PUBLISHED = 'restful: records published'; my $RECORDS_SKIPPED = 'restful: records skipped'; my $RECORDS_FAILED = 'restful: publish failed'; @@ -135,18 +135,18 @@ while(defined($_ = )) { $clockmin = $1 if $1 < $clockmin; $clockmax = $1 if $1 > $clockmax; $clockcount += 1; - } elsif (/manager: added record/ || /archive: added record/) { + } elsif (/manager: Added record/ || /archive: added record/) { $counts{$ARCHIVE_RECORDS_ADDED} += 1; - } elsif (/genimages: Generated (\d+) images/) { + } elsif (/imagegenerator: Generated (\d+) images/) { $counts{$IMAGES_GENERATED} += $1; - } elsif (/genimages: aggregate interval required for aggregate type/ || - /genimages: line type \S+ skipped/) { + } elsif (/imagegenerator: aggregate interval required for aggregate type/ || + /imagegenerator: line type \S+ skipped/) { $errors{$_} = $errors{$_} ? $errors{$_} + 1 : 1; } elsif (/cheetahgenerator: Generated (\d+)/ || /cheetahgenerator: generated (\d+)/ || /filegenerator: generated (\d+)/) { $counts{$FILES_GENERATED} += $1; - } elsif (/reportengine: copied (\d+) files/) { + } elsif (/copygenerator: copied (\d+) files/) { $counts{$FILES_COPIED} += $1; } elsif (/restful: Skipped record/) { $counts{$RECORDS_SKIPPED} += 1; @@ -250,9 +250,9 @@ while(defined($_ = )) { /archive: Created and initialized/ || /reportengine: Running reports for latest time/ || /reportengine: Found configuration file/ || - /reportengine: FTP upload not requested/ || + /ftpgenerator: FTP upload not requested/ || /reportengine: Running report / || # only when debug=1 - /reportengine: rsync upload not requested/ || + /rsyncgenerator: rsync upload not requested/ || /restful: station will register with/ || /restful: Registration interval/ || /\*\*\*\* Registration interval/ || diff --git a/weewx.conf b/weewx.conf index 300f50e2..b81178a2 100644 --- a/weewx.conf +++ b/weewx.conf @@ -17,7 +17,7 @@ WEEWX_ROOT = /home/weewx socket_timeout = 20 # Do not modify this. It is used when installing and updating weewx. -version = 3.7.0b3 +version = 3.7.0 ##############################################################################
    executable: /usr/bin/weewxd