33 lines
994 B
Python
33 lines
994 B
Python
#!/usr/home/homeassistant/bin/python3
|
|
|
|
import sys
|
|
import json
|
|
import requests
|
|
|
|
mappings = {
|
|
'temperature': 'watertemp',
|
|
'streamflow': 'flow',
|
|
'height': 'height',
|
|
}
|
|
if __name__ == '__main__':
|
|
exit_code = 1
|
|
for i in range(4):
|
|
try:
|
|
result = dict()
|
|
station = sys.argv[1]
|
|
url = f'https://waterservices.usgs.gov/nwis/iv/?format=json&sites={station}&siteStatus=all'
|
|
req = requests.get (url, timeout=3)
|
|
if req.ok:
|
|
j = req.json()
|
|
for v in j['value']['timeSeries']:
|
|
variable_name = v['variable']['variableName'].lower()
|
|
for k in mappings.keys():
|
|
if k in variable_name:
|
|
result[mappings[k]] = float(v['values'][0]['value'][0]['value'])
|
|
print (json.dumps ({'data': result}))
|
|
exit_code = 0
|
|
break
|
|
except:
|
|
pass
|
|
sys.exit (exit_code)
|