| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 | #!/usr/bin/env python# -*- coding: utf-8 -*-"""    demeter web    name:pub.py    author:rabin"""from demeter.mqtt import *from demeter.tcp import *import ConfigParserimport randomimport timeimport 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 midpub = Pub()key = 'update/test/222/222'value = 2state = 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()
 |