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):
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):
<h2>Aktuelle Werte</h2>
<div id="current">
<p id="currentair">
+ {% if airvalue is none %}
+ <strong>Luft: N/A</strong>
+ {% else %}
<strong>Luft: {{ airvalue }}°C</strong><br />
<small>({{ airtime }})</small>
+ {% endif %}
</p>
<p id="currentwater">
<strong>Wasser: {{ watervalue }}°C</strong><br />