| 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()
 
 
  |