update_device_everyday.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # -*- coding: utf-8 -*-
  2. #!/usr/bin/env python
  3. import os, sys,datetime
  4. from os.path import abspath, join
  5. import ConfigParser
  6. from apps.web.constant import Const, DeviceCmdCode
  7. from apps.web.core.networking import MessageSender
  8. try:
  9. configParser = ConfigParser.ConfigParser()
  10. configParser.read('./settings.ini')
  11. settingModuleName = configParser.get('CORE', 'setting')
  12. except Exception:
  13. settingModuleName = 'staging'
  14. settingModuleIdentifier = "configs.production"
  15. PROJECT_ROOT = abspath(os.path.split(os.path.realpath(__file__))[0] + "/..")
  16. sys.path.insert(0, PROJECT_ROOT)
  17. sys.path.insert(0, join(PROJECT_ROOT, "apps"))
  18. os.environ.update({"DJANGO_SETTINGS_MODULE": settingModuleIdentifier})
  19. from apps.web.device.models import Device, DeviceDict
  20. print 'nowtime = %s start update device now.....' % datetime.datetime.now()
  21. objs = Device.get_collection().find({'softVer':{'$in':['v1.5','v1.7','v1.7.3','v1.7.5','v1.7.1']}})
  22. devNoList = [obj['devNo'] for obj in objs]
  23. for devNo in devNoList:
  24. try:
  25. dev = Device.get_dev(devNo) # type: DeviceDict
  26. if (not dev.online) or dev.groupId == '':
  27. continue
  28. if dev['softVer'] == 'v1.5':
  29. cmdPara = {"IMEI":devNo,"ota_set":{"fw_url":"http://www.washpayer.com/uploaded/SMARTBOX_1.0.0_Luat_V0014_8955_SSL.bin"}}
  30. else:
  31. cmdPara = {"IMEI":devNo,"ota_set":{"fw_url":"http://www.washpayer.com/uploaded/SMARTBOX_1.0.0_Luat_V0016_8955_SSL.bin"}}
  32. result = MessageSender.send(device = dev, cmd = DeviceCmdCode.SET_DEVINFO, payload = cmdPara)
  33. if result['rst'] != 0:
  34. print 'send updating cmd error,imei=%s' % devNo
  35. else:
  36. print 'success for imei=%s,send the message' % devNo
  37. nowHour = datetime.datetime.now().hour
  38. if nowHour > 5:
  39. print 'finished in morning'
  40. break
  41. except Exception,e:
  42. print 'some exception =%s' % e