control.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. demeter web
  5. name:admin.py
  6. author:rabin
  7. """
  8. import time
  9. from demeter.core import *
  10. from gevent import monkey; monkey.patch_socket()
  11. import gevent
  12. from demeter.mqtt import *
  13. # 处理定时命令、周期命令、条件控制、消息、设备状态等
  14. timeSleep = 10
  15. # 更改控制设备的超时状态
  16. def control():
  17. model = Demeter.model('device_info')
  18. cur = Demeter.time() - 10
  19. model.operdate.assgin(cur, '<=')
  20. model.oper = True
  21. model.hardware_type = 3
  22. service = Demeter.service('device')
  23. data = model.select()
  24. if data:
  25. for v in data:
  26. model.id = v['id']
  27. if v['exp'] == '-1':
  28. msg = service.notice('timeout')
  29. service.mul(v, v['name'] + '失败:' + msg, False)
  30. model.update(exp=msg, oper=True, operdate=Demeter.time())
  31. else:
  32. msg = '1'
  33. service.mul(v, '', True)
  34. model.update(exp=msg, oper=False, operdate=Demeter.time())
  35. def handle():
  36. gevent.joinall([
  37. gevent.spawn(control),
  38. ])
  39. handle()