hass_command_line_scripts/riverconditions.py

33 lines
994 B
Python
Raw Normal View History

2025-01-16 12:06:05 -08:00
#!/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)