#!/usr/bin/env python # -*- coding: utf-8 -*- """ demeter database name:data.py author:rabin """ from __load__ import * class Data(Model): __table__ = 'data' def setTable(self, data): self.table = self.__table__ + '_' + str(data['farm']) + '_' + str(data['device']) + '1' def insert(self, data): self.setTable(data) json = self.insert_json(data) self.db.write_points(json) def insert_json(self, data): json = [ { "measurement": self.table, "tags": { "hard": data['hard'], "type":data['type'], "gateway": data['gateway'] }, #"time": data['time'], "fields": { 'source' : int(data['source']), 'value' : int(data['value']) } }] return json def select(self, farm, device, type=None, hard=None, gateway=None, value=None, search=None): data = {} data['farm'] = farm data['device'] = device self.setTable(data) where = [] if type: where.append('type = \'' + type + '\'') if hard: where.append('hard = \'' + hard + '\'') if gateway: where.append('gateway = \'' + gateway + '\'') if search: for value in search: where.append(value) if where: where = ' where ' + " and ".join(where) #group by time(30m) where time > now() – 1d 30分钟聚合,大于昨天的数据 1d 1h sql = 'select value from ' + self.table + where data = self.db.query(sql) return [value for value in data.raw['series'][0]['values']]