#!/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):
'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)
# 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: