From: Philipp Spitzer Date: Wed, 4 Jul 2018 18:33:27 +0000 (+0200) Subject: Use openweathermap module in web app. X-Git-Url: https://git.toastfreeware.priv.at/chrisu/seepark.git/commitdiff_plain/7089107ff2449e6d62cf0d16bca58a1823ffaf4b Use openweathermap module in web app. --- diff --git a/web/seepark_web.py b/web/seepark_web.py index ce4347f..c0fd440 100644 --- a/web/seepark_web.py +++ b/web/seepark_web.py @@ -3,11 +3,15 @@ import datetime import time import configparser import os +import sys from flask import Flask, render_template, jsonify, request import flask.json from sqlalchemy import create_engine import requests +sys.path.append('..') +from seeparklib.openweathermap import openweathermap_json, OpenWeatherMapError + class JSONEncoder(flask.json.JSONEncoder): def default(self, object): @@ -97,18 +101,12 @@ def select_sensordata(initial_where, initial_sql_args): def currentairtemperature(apikey, cityid): - baseurl = 'http://api.openweathermap.org/data/2.5/weather' - query = baseurl + '?units=metric&APPID={}&id={}&lang=de'.format(apikey, cityid) + """Retruns the tuple temperature, datetime (as float, datetime) in case of success, otherwise None, None.""" try: - response = requests.get(query) - if response.status_code != 200: - response = 'N/A' - return response, datetime.datetime.now().strftime('%Y-%m-%d %H:%M') - else: - weatherdata = response.json() - return weatherdata['main']['temp'], datetime.datetime.fromtimestamp(weatherdata['dt']).strftime('%Y-%m-%d %H:%M') - except requests.exceptions.RequestException as error: - print (error) + weatherdata = openweathermap_json(apikey, cityid) + return weatherdata['main']['temp'], datetime.datetime.fromtimestamp(weatherdata['dt']) + except OpenWeatherMapError: + return None, None def currentwatertemperature(sensorid): diff --git a/web/templates/seepark_web.html b/web/templates/seepark_web.html index fd75b46..7715013 100644 --- a/web/templates/seepark_web.html +++ b/web/templates/seepark_web.html @@ -26,8 +26,12 @@

Aktuelle Werte

+ {% if airvalue is none %} + Luft: N/A + {% else %} Luft: {{ airvalue }}°C
({{ airtime }}) + {% endif %}

Wasser: {{ watervalue }}°C