X-Git-Url: http://git.sven.stormbind.net/?a=blobdiff_plain;f=home%2Fportalmonitor.py;h=c8b732b46afb64181df4c0cc7cefed2e16747209;hb=HEAD;hp=3acd3f1766e677469fff2021e60f853af0b1253a;hpb=a3744e93b3c458726d9eb211a22a52c0fb1c688e;p=sven%2Fscripts.git diff --git a/home/portalmonitor.py b/home/portalmonitor.py index 3acd3f1..c8b732b 100755 --- a/home/portalmonitor.py +++ b/home/portalmonitor.py @@ -1,26 +1,26 @@ #!/usr/bin/env python3 +import argparse import requests import time import sys import configparser from suntime import Sun -from optparse import OptionParser -parser = OptionParser(usage="usage: %prog [options]") -parser.add_option("-s", +parser = argparse.ArgumentParser() +parser.add_argument("-s", "--status", action="store_true", dest="printStatus", help="Print Status Information", default=False) -parser.add_option("-f", +parser.add_argument("-f", "--force", action="store_true", dest="force", help="Force retrieval of Power value", default=False) -(options, args) = parser.parse_args() +args = parser.parse_args() def isDaylight(lat, lon, toleranceSeconds): @@ -45,19 +45,25 @@ def getCurrentPower(userName, password, stationId): 'userName': userName, 'pwd': password }, - timeout=(10, 30)) + timeout=(20, 40)) r = s.post( 'https://www.envertecportal.com/ApiStations/getStationInfo', data={ 'stationId': stationId }, - timeout=(10, 60)).json() + timeout=(20, 60)).json() power = r['Data']['Power'] r = s.post('https://www.envertecportal.com/apiAccount/Logout', - timeout=(10, 30)) + timeout=(20, 40)) + + # connect timeouts occur so frequently since the portal relaunch, + # ignore them for the time beeing completely + except requests.exceptions.ConnectTimeout as eTimeout: + sys.exit(1) except requests.exceptions.RequestException as e: + print(e) raise SystemExit(e) return float(power) @@ -88,12 +94,12 @@ conf.read('portalmonitor.ini') # retrieve current power value as reported by envertecportal if isDaylight(conf['config'].getfloat('lat'), conf['config'].getfloat('lon'), - conf['config'].getint('toleranceSeconds')) or options.force: + conf['config'].getint('toleranceSeconds')) or args.force: currentPower = getCurrentPower(conf['config']['userName'], conf['config']['password'], conf['config']['stationId']) - if options.printStatus: + if args.printStatus: print(f"Current Power: {currentPower}") if currentPower == 0: