Beispiel #1
0
    def on_get(self, req, resp, name=None):
        try:
            if name:
                result = list(
                    Measurement.select(
                        Measurement.timestamp,
                        Measurement.temperature,
                        Measurement.pressure,
                        Measurement.humidity,
                        Measurement.light,
                        Measurement.CO2,
                        Measurement.rain,
                        Measurement.snow,
                        Measurement.battery,
                        Station.name,
                        Station.id,
                    ).join(Station).where(Station.name == name).order_by(
                        Measurement.timestamp.desc()).limit(100).dicts())[::-1]
            else:
                result = list(
                    Measurement.select(
                        Measurement.timestamp,
                        Measurement.temperature,
                        Measurement.pressure,
                        Measurement.humidity,
                        Measurement.light,
                        Measurement.CO2,
                        Measurement.rain,
                        Measurement.snow,
                        Measurement.battery,
                        Station.name,
                        Station.id,
                    ).join(Station).order_by(
                        Measurement.timestamp.desc()).limit(200).dicts())[::-1]
        except Exception as ex:
            self.logger.error(ex)
            print ex
            description = ('Aliens have attacked our base! We will '
                           'be back as soon as we fight them off. '
                           'We appreciate your patience.')

            raise falcon.HTTPServiceUnavailable('Service Outage', description,
                                                30)

        resp.context['result'] = result
        resp.status = falcon.HTTP_200
Beispiel #2
0
def get_reply(measured):
    # get last ts from DB
    last = Measurement.select().where(
        Measurement.station == measured.station,
        Measurement.timestamp < measured.timestamp).order_by(
            Measurement.timestamp.desc()).first()
    ts = int(time.time())
    if last:
        ts = last.timestamp
    return ctypes.c_ulong(ts)
Beispiel #3
0
def json( ):
  from_date = request.args.get('from')
  to_date = request.args.get('to')

  q = Measurement.select()

  if from_date:
    from_date = datetime.strptime( request.args.get('from'), DATE_FORMAT_PY )
    q = q.where( Measurement.created_at > from_date )

  if to_date:
    to_date = datetime.strptime( request.args.get('to'), DATE_FORMAT_PY )
    q = q.where( Measurement.created_at < to_date )

  raw_data = format_query( q )

  return jsonify( raw_data )
Beispiel #4
0
def index():
  q = Measurement.select()

  raw_data = format_query( q )

  return render_template('index.html', raw_data = raw_data, DATE_FORMAT = DATE_FORMAT_JS )