X-Git-Url: https://wylark.com/src/infoex-autowx.git/blobdiff_plain/d6d73bbe4a45e39636b919cb7a84c6e5d9aa054e..effa07e9874c67963ee70eb0d4a767e04134a19a:/infoex-autowx.py?ds=inline diff --git a/infoex-autowx.py b/infoex-autowx.py index e976c60..a1bcf00 100755 --- a/infoex-autowx.py +++ b/infoex-autowx.py @@ -43,7 +43,7 @@ import zeep import zeep.cache import zeep.transports -__version__ = '3.2.2' +__version__ = '3.2.4' LOG = logging.getLogger(__name__) LOG.setLevel(logging.NOTSET) @@ -128,9 +128,35 @@ def setup_config(config): LOG.critical("%s is not a valid timezone", tz) sys.exit(1) + # HN24 + if 'hn24' in config['station']: + if config['station']['hn24'] not in ['true', 'false']: + raise ValueError("hn24 must be either 'true' or 'false'") + + if config['station']['hn24'] == "true": + station['hn24'] = True + else: + station['hn24'] = False + else: + # default to False + station['hn24'] = False + + # Wind mode + if 'wind_mode' in config['station']: + if config['station']['wind_mode'] not in ['normal', 'average']: + raise ValueError("wind_mode must be either 'normal' or 'average'") + + station['wind_mode'] = config['station']['wind_mode'] + else: + # default to False + station['wind_mode'] = "normal" + except KeyError as err: LOG.critical("%s not defined in configuration file", err) sys.exit(1) + except ValueError as err: + LOG.critical("%s", err) + sys.exit(1) # all sections/values present in config file, final sanity check try: @@ -528,6 +554,10 @@ def get_mesowest_data(begin, end, station): # we want mph if element_cd in ('wind_speed', 'wind_gust'): remote_data[element_cd] = kn_to_mph(remote_data[element_cd]) + + # mesowest provides HS in mm, not cm; we want cm + if element_cd == 'snow_depth' and station['units'] == 'metric': + remote_data[element_cd] = mm_to_cm(remote_data[element_cd]) else: remote_data[element_cd] = None else: @@ -625,5 +655,9 @@ def kn_to_mph(kn): """convert knots to miles per hour""" return kn * 1.150779 +def mm_to_cm(mm): + """convert millimeters to centimetrs""" + return mm / 10.0 + if __name__ == "__main__": sys.exit(main())