1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- demeter web
- name:admin.py
- author:rabin
- """
- import time
- from demeter.core import *
- from gevent import monkey; monkey.patch_socket()
- import gevent
- from pic import pic
- from demeter.mqtt import *
- # 处理定时命令、周期命令、条件控制、消息、设备状态等
- timeSleep = 10
-
- # 更改设备状态(离线)
- def device():
- while 1:
- model = Demeter.model('device_info')
- cur = Demeter.time() - 1800
- model.cdate.assgin(cur, '<=')
- model.status = True
- data = model.select()
- for v in data:
- model.id = v['id']
- if v['hardware_type'] == 5:
- model.update(value='0', status=False)
- #提醒notice
- notice(2, v)
- elif v['hardware_type'] != 7 and v['hardware_type'] != 6:
- model.update(status=False)
- #提醒notice
- notice(2, v)
- gevent.sleep(60)
- def savePic():
- while 1:
- pic()
- gevent.sleep(1800)
- # 同步时间,24小时同步一次
- def timeSync():
- while 1:
- pub = Pub()
- key = 'time/bh'
- value = Demeter.date(Demeter.time())
- pub.push(key, value)
- gevent.sleep(3600*24)
- # 用户一周没有使用的时候提醒
- def userNotice():
- while 1:
- model = Demeter.model('farm_user')
- cur = Demeter.time() - 3600*24*7
- model.cdate.assgin(cur, '<=')
- model.status = True
- data = model.select()
- for v in data:
- notice(1, data)
- # 用户提醒
- def notice(t, data):
- pass
- def handle():
- gevent.joinall([
- gevent.spawn(device),
- gevent.spawn(savePic),
- gevent.spawn(timeSync),
- #gevent.spawn(userNotice),
- ])
- handle()
|