123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/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)
-
|