예제 #1
0
class WeatherHourly(object):

    url_base = "http://api.wunderground.com/api/"
    url_service = {"hourly": "/hourly/q/"}

    def __init__(self, api_key):
        super(WeatherHourly, self).__init__()
        self.api_key = api_key
        self.result = []
        self.pp = Prediction()

    def hourly(self, location, country):
        url = WeatherHourly.url_base + self.api_key + \
            WeatherHourly.url_service["hourly"] + country + "/" + location + ".json"
        f = requests.get(url)
        data_json = json.loads(f.text)

        return self.process_data(data_json)

    def process_data(self, data_json):
        for values in data_json["hourly_forecast"]:
            listatemp = []
            listatemp.append("Date: " + values["FCTTIME"]["pretty"])
            listatemp.append("Temperature: " + values["temp"]["metric"] +
                             " Celsius" + " / " + values["temp"]["english"] +
                             " fahrenheit")
            listatemp.append("Sensation of temperature: " +
                             values["feelslike"]["metric"] + " Celsius" +
                             " / " + values["feelslike"]["english"] +
                             " fahrenheit")
            listatemp.append("Weather Condition: " + values["condition"])
            listatemp.append("Humidity: " + values["humidity"] + "%")
            listatemp.append("Liquid precipitation: " +
                             values["qpf"]["metric"] + "mm")
            listatemp.append("Advice: " +
                             self.pp.get_prediction(values["condition"]))

            self.result.append(listatemp)

        return self.result
예제 #2
0
    values = '[ "' + str(temperature) + '" ]'

    request_str = 'http://' + server_addr + ':' + port + \
        '/' + auth_token + '/update/' + SET_TEMP_PIN

    request = Request(request_str, data=values, headers=HEADERS)
    request.get_method = lambda: 'PUT'

    print 'Temperature', str(temperature), 'sent to', request_str

    response_body = urlopen(request).read()
    print response_body + '\n'


prediction = Prediction()
prediction.load_backup()

while True:
    # Get the predicted temperature
    set_point = prediction.get_prediction(False)

    # Tell the server about it
    update_temperature(set_point)

    # Backup the model
    prediction.backup()

    # Sleep for 30min
    print 'Sleeping for 30min...'
    time.sleep(60 * 30)