Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- from flask import Flask, render_template
- app = Flask(__name__)
- import os
- import json
- import nest
- from nest import utils as nest_utils
- import subprocess
- allowable_humidity=90
- evaluate_hours=12
- rain_signs=["Light Rain", "Rain", "Drizzle"]
- nest_username = 'nestusername@email.com'
- nest_password = 'password'
- @app.route('/')
- def check_weather():
- output=subprocess.check_output(["weather-cli", "-h","--format","json"])
- parsed_output=json.loads(output)
- napi = nest.Nest(nest_username, nest_password)
- for structure in napi.structures:
- current_temp=nest_utils.c_to_f(structure.devices[1].target)
- #Running Max(es)
- max_temp=-100
- max_humidity=0
- rain=False
- full_output=[]
- count = 0
- for row in parsed_output['table']:
- count +=1
- if count == 1: continue
- elif count == evaluate_hours+2: break
- temp = (1.8 * float(row[3][:-2])) + 32
- # print " time: " + row[0] +" conditions: " + row[1] + " feels like: " + str(temp) + " humidity: " + row[4]
- full_output.append({"time":row[0],"conditions":row[1],"temp":str(temp),"humidity":row[4]})
- if row[1] in rain_signs: rain=True
- if temp > max_temp: max_temp = temp
- if int(row[4][:-1]) > max_humidity: max_humidity = int(row[4][:-1])
- # print "\nMax Temp: " + str(max_temp)
- # print "Max Humidity: " + str(max_humidity)
- # print "Rain?: " + str(rain)
- window_open = True
- if max_temp > current_temp: window_open=False
- if max_humidity > allowable_humidity: window_open=False
- if rain: window_open=False
- return render_template('index.html',
- window_open=window_open,
- current_temp=current_temp,
- max_temp=max_temp,
- max_humidity=max_humidity,
- rain=rain,
- evaluate_hours=evaluate_hours,
- full_output=full_output,)
- if __name__ == "__main__":
- app.run(host='0.0.0.0', port=80)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement