#!/usr/bin/env python # -*- coding: utf-8 -*- """ demeter service name:record.py 用于记录设备过来的数据 author:rabin """ import time import json from demeter import * class Record(object): def topic(self, key): array = key.split('/') return {'hard':array[0], 'type':array[1], 'gateway':array[2], 'device':array[3]} def push(self, key, value): data = self.topic(key) model = Demeter.model('device_type') model.key = data['type'] device_type = model.select(type='fetchone') if device_type: model = Demeter.model('device_gateway') model.hardware_id = data['gateway'] gateway = model.select(type='fetchone') if gateway: model.id = gateway['id'] model.update(status=True,farm_id=gateway['farm_id']) model = Demeter.model('device_info') model.hardware_id = data['device'] device = model.select(type='fetchone') if device: #update model.id = device['id'] model.update(farm_id=gateway['farm_id'], num=value,show_num=value,status=True,cdate='time') else: hard = json.loads(Demeter.config['hardware']['type']) #insert model.hardware_id = data['device'] model.farm_id = gateway['farm_id'] model.name = device_type['name'] + '#' + str(data['device']) model.hardware_type = hard[data['hard']] model.gateway_id = gateway['id'] model.type_id = device_type['id'] model.num = value model.show_num = value model.status = True id = model.insert() #now = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) #data['farm'] = gateway['farm_id'] #data['time'] = now #data['value'] = value #print data #Demeter.model('data', 'tsdb').insert(data) # 上报数据 #Demeter.up(data)