X-Git-Url: https://wylark.com/src/infoex-autowx.git/blobdiff_plain/2423f448cf625a9dcd980faa32c83bbdef1c7da2..9eb3f3d88ae216472fdcf6db4bcf1d2542477686:/infoex-autowx.py?ds=inline diff --git a/infoex-autowx.py b/infoex-autowx.py index a953cec..4f6c9dc 100755 --- a/infoex-autowx.py +++ b/infoex-autowx.py @@ -1,37 +1,42 @@ -#!/usr/bin/python3 +#!/usr/bin/env python +# -*- coding: utf-8 -*- -# -# InfoEx <-> NRCS Auto Wx implementation -# Alexander Vasarab -# Wylark Mountaineering LLC -# 2020-04-22 -# -# Version 0.8 -# -# This program fetches data from an NRCS SNOTEL site and pushes it to -# InfoEx using the new automated weather system implementation. -# -# It is designed to be run hourly, and it asks for the last three hours -# of data of each desired type, and selects the most recent one. This -# lends some resiliency to the process and helps ensure that we have a -# value to send, but it can lead to somewhat inconsistent/untruthful -# data if e.g. the HS is from the last hour but the tempPres is from two -# hours ago because the instrumentation had a hiccup. It's worth -# considering if this is a bug or a feature. -# +""" +InfoEx <-> NRCS Auto Wx implementation +Alexander Vasarab +Wylark Mountaineering LLC + +Version 1.0.0 + +This program fetches data from an NRCS SNOTEL site and pushes it to +InfoEx using the new automated weather system implementation. + +It is designed to be run hourly, and it asks for the last three hours +of data of each desired type, and selects the most recent one. This +lends some resiliency to the process and helps ensure that we have a +value to send, but it can lead to somewhat inconsistent/untruthful +data if e.g. the HS is from the last hour but the tempPres is from two +hours ago because the instrumentation had a hiccup. It's worth +considering if this is a bug or a feature. + +For more information, see file: README +For licensing, see file: LICENSE +""" import configparser import csv import datetime import logging import time -import zeep -import zeep.cache -import zeep.transports + from collections import OrderedDict from ftplib import FTP from optparse import OptionParser +import zeep +import zeep.cache +import zeep.transports + log = logging.getLogger(__name__) log.setLevel(logging.DEBUG) @@ -219,11 +224,11 @@ with open(infoex['csv_filename'], 'w') as f: writer.writerow(final_data) f.close() -#with open(infoex['csv_filename'], 'rb') as f: -# log.debug("uploading FTP file '%s'" % (infoex['host'])) -# ftp = FTP(infoex['host'], infoex['uuid'], infoex['api_key']) -# ftp.storlines('STOR ' + infoex['csv_filename'], f) -# ftp.close() -# f.close() +with open(infoex['csv_filename'], 'rb') as f: + log.debug("uploading FTP file '%s'" % (infoex['host'])) + ftp = FTP(infoex['host'], infoex['uuid'], infoex['api_key']) + ftp.storlines('STOR ' + infoex['csv_filename'], f) + ftp.close() + f.close() log.debug('DONE')