# -*- coding: utf-8 -*- # !/usr/bin/env python import os import sys PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..') sys.path.insert(0, PROJECT_ROOT) from script.base import init_env init_env(interactive = True) from apps.web.core.networking import MessageSender from apps.web.device.models import Device from apps.web.constant import DeviceOnlineStatus, DeviceCmdCode url = 'https://resource.washpayer.com/versions/one/V3037_V4013_4gcat1_6.1.161_100259.bin' filter = { "driverCode": "100259", "driverVersion": {"$ne": "v5.1.5"}, 'coreVer': 'Luat_V3037_RDA8910', 'ownerId': {'$nin': [None, '']} } for device in Device.objects(__raw__ = filter): dev = Device.get_dev(device.devNo) if dev.online != DeviceOnlineStatus.DEV_STATUS_ONLINE: print '{} is offline.'.format(device.devNo) continue cmdPara = {'cmd': DeviceCmdCode.SET_DEVINFO, 'IMEI': device.devNo, 'ota_set': {'fw_url': url}} print cmdPara result = MessageSender.send(device = dev, cmd = DeviceCmdCode.SET_DEVINFO, payload = cmdPara, timeout = 15)