|
@@ -51,7 +51,7 @@ class Device(object):
|
|
|
self.switch(v, switch)
|
|
|
|
|
|
|
|
|
- def switch(self, device_id, switch=1, mul=False):
|
|
|
+ def switch(self, device_id, switch=1, mul=False, queue=False):
|
|
|
model = Demeter.model('device_info')
|
|
|
model.id = device_id
|
|
|
info = model.select(type='fetchone')
|
|
@@ -64,10 +64,18 @@ class Device(object):
|
|
|
queue_model.value = switch
|
|
|
queue_model.insert()
|
|
|
return
|
|
|
+
|
|
|
if info and info['status'] == True:
|
|
|
+ """
|
|
|
+ if queue:
|
|
|
+ oper = self.msg(info['type_id'], switch)
|
|
|
+ queue_model = Demeter.model('device_mul_queue')
|
|
|
+ queue_model.id = queue
|
|
|
+ queue_model.update(oper='正在' + oper + info['name'])
|
|
|
+ """
|
|
|
|
|
|
model.id = device_id
|
|
|
- model.update(exp='-1', cxnum=switch, oper=True)
|
|
|
+ model.update(exp='-1', cxnum=switch, oper=True, operdate=Demeter.time())
|
|
|
|
|
|
model = Demeter.model('device_gateway')
|
|
|
model.id = info['gateway_id']
|
|
@@ -94,8 +102,8 @@ class Device(object):
|
|
|
else:
|
|
|
msg = self.notice('offline')
|
|
|
model.id = device_id
|
|
|
- model.update(exp=msg, cxnum=switch)
|
|
|
- self.mul(info['id'], info['type_id'], info['name'], switch, '失败:' + msg, False)
|
|
|
+ model.update(exp=msg, cxnum=switch, oper=True, operdate=Demeter.time())
|
|
|
+ self.mul(info, info['name'] + '失败:' + msg, False)
|
|
|
|
|
|
|
|
|
|
|
@@ -110,19 +118,19 @@ class Device(object):
|
|
|
if msg == 'ok':
|
|
|
model = Demeter.model('device_info')
|
|
|
model.id = info['id']
|
|
|
- model.update(value=param['switch'], exp='1', oper=False)
|
|
|
+ model.update(value=param['switch'], exp='1', oper=False, operdate=Demeter.time())
|
|
|
|
|
|
|
|
|
- self.mul(info['id'], info['type_id'], info['name'], param['switch'], '成功', True)
|
|
|
+ self.mul(info, info['name'] + '成功', True)
|
|
|
else:
|
|
|
msg = self.notice(msg)
|
|
|
model = Demeter.model('device_info')
|
|
|
model.id = info['id']
|
|
|
- model.update(exp=msg, oper=False)
|
|
|
+ model.update(exp=msg, oper=True, operdate=Demeter.time())
|
|
|
|
|
|
|
|
|
- oper = self.mul(info['id'], info['type_id'], info['name'], param['switch'], '失败:' + msg, False)
|
|
|
-
|
|
|
+ self.mul(info, info['name'] + '失败:' + msg, False)
|
|
|
+ oper = self.msg(info['type_id'], param['switch'])
|
|
|
content = oper + gateway['name'] + '下的'+ info['name'] + '失败,错误提示:' + msg
|
|
|
Demeter.service('record').msg(info['id'], content, info['farm_id'], 3)
|
|
|
|
|
@@ -136,54 +144,38 @@ class Device(object):
|
|
|
msg = info['name']
|
|
|
return msg
|
|
|
|
|
|
- def mul(self, id, type_id, name, switch, msg, state):
|
|
|
+ def msg(self, type_id, switch):
|
|
|
+ oper = ''
|
|
|
+ type_model = Demeter.model('device_type')
|
|
|
+ type_model.id = type_id
|
|
|
+ type_info = type_model.select(type='fetchone')
|
|
|
+ if type_info['unit'] == 'button':
|
|
|
+ if switch == 1:
|
|
|
+ oper = '升起'
|
|
|
+ elif switch == 2:
|
|
|
+ oper = '降下'
|
|
|
+ elif switch == 5:
|
|
|
+ oper = '停止'
|
|
|
+ else:
|
|
|
+ if switch == 1:
|
|
|
+ oper = '开启'
|
|
|
+ else:
|
|
|
+ oper = '关闭'
|
|
|
+ return oper
|
|
|
+
|
|
|
+ def mul(self, info, msg, state):
|
|
|
model = Demeter.model('device_mul_queue')
|
|
|
- model.device_id = id
|
|
|
+ mul_model = Demeter.model('device_mul')
|
|
|
+ model.device_id = info['id']
|
|
|
model.status = 1
|
|
|
queue = model.select()
|
|
|
+
|
|
|
if queue:
|
|
|
- model.device_id = id
|
|
|
+ for v in queue:
|
|
|
+ model.status = 1
|
|
|
+ model.device_id = info['id']
|
|
|
+ oper = self.msg(info['type_id'], v['value']) + msg
|
|
|
if state:
|
|
|
- model.update(status=2)
|
|
|
-
|
|
|
-
|
|
|
- else:
|
|
|
- model.update(status=3)
|
|
|
- mul_model = Demeter.model('device_mul')
|
|
|
- type_model = Demeter.model('device_type')
|
|
|
- type_model.id = type_id
|
|
|
- type_info = type_model.select(type='fetchone')
|
|
|
- if type_info['unit'] == 'button':
|
|
|
- if switch == '1':
|
|
|
- oper = '升起'
|
|
|
- elif switch == '2':
|
|
|
- oper = '降下'
|
|
|
- elif switch == '5':
|
|
|
- oper = '停止'
|
|
|
+ model.update(status=2, oper=oper, operdate=Demeter.time())
|
|
|
else:
|
|
|
- if switch == '1':
|
|
|
- oper = '开启'
|
|
|
- else:
|
|
|
- oper = '关闭'
|
|
|
- if msg:
|
|
|
- for v in queue:
|
|
|
-
|
|
|
- old = False
|
|
|
- if state == False:
|
|
|
- mul_model.id = v['mul_id']
|
|
|
- info = mul_model.select(type='fetchone')
|
|
|
- model.mul_id = v['mul_id']
|
|
|
- model.status = 3
|
|
|
- queueMulNum = len(model.select())
|
|
|
- devicesNum = len(tuple(eval(info['devices'])))
|
|
|
- if queueMulNum == devicesNum:
|
|
|
- old = info['old']
|
|
|
-
|
|
|
- mul_model.id = v['mul_id']
|
|
|
-
|
|
|
- oper = oper + name + msg
|
|
|
- if old:
|
|
|
- mul_model.update(oper=oper, value=old)
|
|
|
- else:
|
|
|
- mul_model.update(oper=oper)
|
|
|
- return oper
|
|
|
+ model.update(status=3, oper=oper, operdate=Demeter.time())
|