123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- demeter web
- name:pub.py
- author:rabin
- """
- from demeter.mqtt import *
- from demeter.tcp import *
- import ConfigParser
- import random
- import time
- import base64
- """
- pub = Pub()
- key = 'status/valve/10086/100107'
- value = 'ok'
- state = pub.push(key, value)
- """
- pub = Pub()
- key = 'control/airdryer/10011/1001151'
- value = '0'
- state = pub.push(key, value)
- print state
- """
- def callback(param, client, userdata, mid):
- print mid
- pub = Pub()
- key = 'update/test/222/222'
- value = 2
- state = pub.push(key, value, 2, callback=callback, param='ttt')
- print state
- """
- def push():
- # 模拟传感器设备数据
- gateway = 10086
- def device(min):
- max = min + 9
- return str(random.randint(min, max))
- def val(min, max):
- return str(round(random.uniform(min, max), 2))
- def switch():
- return str(random.randint(0, 1))
- hard = 'sensor'
- pubType = (
- {'hard':'sensor','type':'temprature','device':100000,'value':(-20, 30)}
- ,{'hard':'sensor','type':'humidity','device':100010,'value':(30, 80)}
- ,{'hard':'sensor','type':'light','device':100020,'value':(3000, 13000)}
- ,{'hard':'power','type':'power','device':100090,'value':(1, 50)}
- ,{'hard':'control','type':'valve','device':100100}
- ,{'hard':'control','type':'blower','device':100110}
- ,{'hard':'power','type':'power','device':10086,'value':(1, 50)}
- )
- pub = Pub()
- while True:
- config = Demeter.temp()
- for v in pubType:
- if v['device'] == gateway:
- id = v['device']
- else:
- id = device(v['device'])
- key = v['hard']+'/'+v['type']+'/'+str(gateway)+'/'+str(id)
- if 'value' in v:
- value = val(v['value'][0], v['value'][1])
- else:
- value = config[v['type']][id]
- print 'key:' + key + ' value:' + value
- pub.push(key, value)
- time.sleep(1)
- def pic():
- gateway = '10086'
- pub = Pub()
- key = 'pic/pic_'
- gateway = '/' + gateway + '/200001'
- with open('front/static/pc/images/376a00e6.tmp2.jpg', 'rb') as f:
- data = f.readlines()
- total = len(data)
- key = key + str(total) + '_'
- i = 0
- print key
- for value in data:
- k = key + str(i) + gateway
- pub.push(k, value)
- print k
- i = i+1
- #push()
- #pic()
- def tcp_sensor():
- # 模拟设备数据
- gateway = '10086'
- def device():
- return str(random.randint(100000, 100010))
- def val():
- return str(random.randint(1, 50))
- hard = 'sensor'
- pubType = ('temperature', 'humidity')
- client = Client('0.0.0.0', 8000)
- while True:
- for v in pubType:
- key = hard+'/'+v+'/'+gateway+'/'+device()
- value = val()
- print 'key:' + key + ' value:' + value
- client.send(key+'|:|'+value)
- time.sleep(1)
- def tcp_pic():
- gateway = '10086'
- client = Client('0.0.0.0', 8000)
- key = 'pic/'
- key = 'pic/pic_'
- gateway = '/' + gateway + '/200001'
- with open('admin/static/images/banner.png', 'rb') as f:
- data = f.readlines()
- total = len(data)
- key = key + str(total) + '_'
- i = 0
- #print key
- for value in data:
- k = key + str(i) + gateway
- #print value
- #print value
- print k
- client.send(k + '|:|' +value)
- #print k
- i = i+1
- client.close()
- #tcp_sensor()
- #tcp_pic()
|