IOTOS物联中台开发驱动支持中安易科智能门锁API 详解

 本文章为原创,转载请注明出处!

登录平台:IOTOS®爱投斯物联中台

账号:iotos_test    密码:iotos123

代码地址:IOTOSDK-Python: IOTOS Python版本SDK,自带原生接口和采集引擎 (gitee.com)

目录

零、前言

一、驱动目的

二、使用前提

三、驱动代码

四、驱动解析

导入相应的包,运行环境为python2.7

URL前缀、起始时间、终止时间定义

获取token接口定义

更新token接口定义

无线门锁列表查询接口定义-中台配置有roomid数据

无线门锁列表查询接口定义传入时-中台配置无roomid数据

获取开门记录接口定义

远程开门接口定义

远程关门接口定义

人脸列表接口定义

操作人脸接口定义

获取存放在中台的数据、设备上线

循环采集平台数据

中台下发操作

五、使用示例

创建网关

创建设备并进行配置

运行

运行结果


零、前言

        API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。

一、驱动目的

        对接智慧物联管理平台的智能门锁操作API接口。并将门锁基本信息、开关门信息上传到爱投斯物联中台,并通过下发操作实现当前智能门锁的远程开关门、对人员数据进行编辑等操作。

二、使用前提

        此次对接的智能门锁操作API接口需要先将智能门锁、智能门锁网关配置好并绑定在智慧物联管理平台上。从而保证此次API接口对接的可行性。

三、驱动代码

#coding=utf-8
import sys
import time
sys.path.append("..")
from driver import *
import datetime
import requests
import json
reload(sys)
sys.setdefaultencoding('utf8')

url = 'https://lock.keenzy.cn:88/info'
edate = datetime.date.today() + datetime.timedelta(days=1)
sdate = str(datetime.datetime.now().strftime('%Y-%m')) + "-01"

#获取token ->传入用户名和密码 ->返回token和刷新token的令牌refreshentoken
def GetToken(self):
    basePath='/login/1/gettoken'
    data={
        'userlogin':self.cq_username,
        'password':self.cq_password
    }
    """print url+basePath+'?userlogin="'+userlogin+'"'+'&password="'+password+'"'
    res = requests.post(url=url+basePath+'?userlogin='+userlogin+'&password='+password)  拼接"""
    res=requests.post(url=url+basePath,data=data)
    r=json.loads(res.text)
    print res
    return r['result']['token'],r['result']['refreshentoken']

#更新token ->传入刷新token的令牌refreshentoken ->返回响应信息
def refToken(refreshentoken):
    basePath='/login/2/refreshentoken'
    data = {
        "refreshentoken":refreshentoken
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    print res
    return r

#无线门锁列表查询 ->传入页码、每页数量、用户token和房间位置或者唯一ID(非必要) ->返回响应信息
def QueryDoor(self, page,rows,token):
    basePath = '/lock/1/getdevicelock'
    data = {
        "page": page,
        "rows": rows,
        "token":token,
        "serch": ''
    }
    try:
        res = requests.post(url=url + basePath, data=data)
        # self.debug(res)
        r = json.loads(res.text)
    except Exception,e:
        pass
    for data in r['result']['data']:
        # 寻找到roomid对应的数据
        if data["roomid"] == self.cq_roomid:
            # 上传数据
            self.cq_roomlocation = data['details']['roomlocation']
            self.setValue(u'门锁号', data['roomid'])
            self.setValue(u'门锁状态', data['roomstate'])
            self.setValue(u'网关通讯ID', data['gatewaycode'])
            self.setValue(u'门锁通讯ID', data['roomcode'])
            self.setValue(u'门锁唯一ID', data['roomcode2'])
            self.setValue(u'门锁位置', data['details']['roomlocation'])
            self.setValue(u'电量', data['details']['roomcharge'])
            self.setValue(u'roomissyso', data['details']['roomissyso'])
            self.setValue(u'门锁强锁状态', data['details']['roomforcelock'])
            self.setValue(u'门锁工作模式', data['details']['roomworkmode'])
            self.setValue(u'最近在线时间', data['details']['lastactivedate'])
            self.setValue(u'门锁类型', data['details']['roommodel'])
            self.setValue(u'建筑号', data['buildid'])
            self.setValue(u'网关类型', data['gatewaytype'])
            self.setValue(u'roomid', "")
            #防止开关状态被重复刷新
            for key, lock_value in self.data2attrs.items():  # 拿出数据点的键和值
                if "private" in lock_value['config']['param']:
                    if lock_value['config']['param']['private'] == 'lock':
                        self.lockkey = key
                        self.debug(self.lockkey)
                        if "memoryvalue" not in self.data2attrs[key]:
                            self.setValue(u'开关门', 0)
                        else:
                            self.setValue(u'开关门', self.data2attrs[key]["memoryvalue"])
                    if lock_value['config']['param']['private'] == 'face':
                        self.facekey = key
                        self.debug(self.facekey)
                        if "memoryvalue" not in self.data2attrs[key]:
                            self.setValue(u'操作人脸', '下发格式为facecode,type')
                        else:
                            self.setValue(u'操作人脸', self.data2attrs[key]["memoryvalue"])
        print "-------------------------------------------"

#无线门锁列表查询 -> 传入时无roomid数据,则默认返回第一条数据,且返回的roomid为全部roomid拼接 ->返回响应信息
def QueryEmptyDoor(self, page,rows,token):
    basePath = '/lock/1/getdevicelock'
    data = {
        "page": page,
        "rows": rows,
        "token":token,
        "serch": ''
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    roomID = ""
    for data in r['result']['data']:
        roomID += data['roomid']
        roomID += "  "
    print "-------------------------------------------"
    # 上传数据
    self.cq_roomlocation = r['result']['data'][0]['details']['roomlocation']
    self.cq_roomid = r['result']['data'][0]['roomid']
    self.setValue(u'门锁号', r['result']['data'][0]['roomid'])
    self.setValue(u'门锁状态', r['result']['data'][0]['roomstate'])
    self.setValue(u'网关通讯ID', r['result']['data'][0]['gatewaycode'])
    self.setValue(u'门锁通讯ID', r['result']['data'][0]['roomcode'])
    self.setValue(u'门锁唯一ID', r['result']['data'][0]['roomcode2'])
    self.setValue(u'门锁位置', r['result']['data'][0]['details']['roomlocation'])
    self.setValue(u'电量', r['result']['data'][0]['details']['roomcharge'])
    self.setValue(u'roomissyso', r['result']['data'][0]['details']['roomissyso'])
    self.setValue(u'门锁强锁状态', r['result']['data'][0]['details']['roomforcelock'])
    self.setValue(u'门锁工作模式', r['result']['data'][0]['details']['roomworkmode'])
    self.setValue(u'最近在线时间', r['result']['data'][0]['details']['lastactivedate'])
    self.setValue(u'门锁类型', r['result']['data'][0]['details']['roommodel'])
    self.setValue(u'建筑号', r['result']['data'][0]['buildid'])
    self.setValue(u'网关类型', r['result']['data'][0]['gatewaytype'])
    self.setValue(u'roomid', roomID)

#获取开门记录
def OpendoorRecord(self, page,rows,token,sdate,edate):
    basePath = '/analysis/lockrecord/1/getlockrecord'
    data = {
        "page": page,
        "rows": rows,
        "token": token,
        "sdate": sdate,
        "edate": edate
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    for data in r['result']['data']:
        if data['roomlocation'] == self.cq_roomlocation:
            self.setValue(u'开门方式', data['unlockingtype'])
            self.setValue(u'开门时间', data['unlockingdate'])
            self.setValue(u'开门者姓名', data['personname'])
            self.setValue(u'开门者编号', data['personcode'])
            self.setValue(u'开门者所属', data['personlocation'])
            self.setValue(u'卡类型', data['cardtype'])
            self.setValue(u'卡编号', data['cardcode'])
            break
        else:
            continue

#远程开门 ->传入房间id、用户token ->返回响应信息
def OpenDoor(roomid,token):
    basePath = '/lockorder/3/remoteopenlock'
    data = {
        "roomid": roomid,
        "token":token,
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    print r['resultMsg']

#远程关门 ->传入房间id、用户token ->返回响应信息
def CloseDoor(roomid,token):
    basePath = '/lockorder/7/remotecloselock'
    data = {
        "roomid": roomid,
        "token":token,
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    print r['resultMsg']

#人脸列表
def ListFace(self,page,rows,token,search):
    basePath = '/face/manage/listFace'
    data = {
        "page": page,
        "rows": rows,
        "search": search,
        "token": token

    }
    res = requests.post(url=url + basePath, json=data)
    r = json.loads(res.text)
    facecode=""
    for data in r['result']['data']:
        facecode+=data['facecode']
        facecode+=','
    # self.debug(facecode)
    self.setValue(u'人脸列表',facecode)

#操作人脸 ->传入人脸编号,用户token和操作类型(1停用,2启用,3删除,4同步)
def ManageFace(facecode,token,type):
    basePath = '/face/manage/manageFace'
    data = {
        "facecode": facecode,
        "type": type,
        "token": token
    }
    res = requests.post(url=url + basePath, json=data)
    # r = json.loads(res.text)

class gatelockDriver(IOTOSDriverI):
    # 1、通信初始化
    def InitComm(self, attrs):
        try:
            self.cq_username = self.sysAttrs['config']['param']['username']
            self.cq_password = self.sysAttrs['config']['param']['password']
            self.cq_roomid = self.sysAttrs['config']['param']['roomid']
        except Exception, e:
            self.online(False)
        self.setPauseCollect(False)
        self.setCollectingOneCircle(False)
        self.online(True)

    # 2、采集引擎回调,可也可以开启,也可以直接注释掉(对于主动上报,不存在遍历采集的情况)
    def Collecting(self, dataId):
        try:
            # 获取token
            token, refreshentoken = GetToken(self)
            # 传输当前门锁数据
            if self.sysAttrs['config']['param']['roomid'] == "":
                QueryEmptyDoor(self, 1, 100, token)
            else:
                QueryDoor(self, 1, 100, token)
            # 获取门锁记录
            OpendoorRecord(self, 1,100,token,sdate, edate)

            #获取人脸的列表
            ListFace(self, 1, 100, token, '')
        except Exception, e:
            self.debug(u'数据上传失败' + e.message)
        time.sleep(18)
        return ()

    # 3、控制
    # 广播事件回调,其他操作访问
    def Event_customBroadcast(self, fromUuid, type, data):
        print("")
        return json.dumps({'code':0, 'msg':'', 'data':''})

    # 4、查询
    # 查询事件回调,数据点查询访问
    def Event_getData(self, dataId, condition):

        return json.dumps({'code':0, 'msg':'', 'data':''})

    # 5、控制事件回调,数据点控制访问
    def Event_setData(self, dataId, value):
        token, refreshentoken = GetToken(self)
        #对门锁进行远程开门和关门
        if dataId==self.lockkey:
            if value==1:
                if self.cq_roomid!="":
                    try:
                        OpenDoor(self.cq_roomid,token)
                        self.setValue(u'开关门',1)
                        self.setValue(u'下发信息提示',"远程开门成功!")
                    except Exception,e:
                        self.setValue(u'下发信息提示', "远程开门失败!")
                else:
                    pass
            else:
                if self.cq_roomid!="":
                    try:
                        CloseDoor(self.cq_roomid,token)
                        self.setValue(u'开关门', 0)
                        self.setValue(u'下发信息提示', "远程关门成功!")
                    except Exception, e:
                        self.setValue(u'下发信息提示', "远程关门失败!")
                else:
                    pass
        #对人脸数据进行操作
        if dataId==self.facekey:
            try:
                ManageFace(value.split(',')[0],token,value.split(',')[1])
                self.setValue(u'操作人脸', value)
                # 操作类型(1停用,2启用,3删除,4同步)
                if value.split(',')[1] == "1":
                    self.setValue(u'下发信息提示', value.split(',')[0] + "停用操作成功!")
                elif value.split(',')[1] == "2":
                    self.setValue(u'下发信息提示', value.split(',')[0] + "启用操作成功!")
                elif value.split(',')[1] == "3":
                    self.setValue(u'下发信息提示', value.split(',')[0] + "删除操作成功!")
                elif value.split(',')[1] == "4":
                    self.setValue(u'下发信息提示', value.split(',')[0] + "同步操作成功!")
                else:
                    self.setValue(u'操作人脸', '下发格式为facecode,type')
                    self.setValue(u'下发信息提示', "人脸操作失败!请检查格式是否正确!")
            except Exception,e:
                self.setValue(u'操作人脸', '下发格式为facecode,type')
                self.setValue(u'下发信息提示', "人脸操作失败!请检查格式是否正确!")
                return json.dumps({'code': 0, 'msg': '', 'data': e.message})


        return json.dumps({'code':0, 'msg':'', 'data':''})

    # 6、本地事件回调,数据点操作访问
    def Event_syncPubMsg(self, point, value):

        return json.dumps({'code':0, 'msg':'', 'data':''})

四、驱动解析

  • 导入相应的包,运行环境为python2.7

        导入sys、datetime、requests、json等基础库,并设置文件编码格式。

#coding=utf-8
import sys
import time
sys.path.append("..")
from driver import *
import datetime
import requests
import json
reload(sys)
sys.setdefaultencoding('utf8')
  • URL前缀、起始时间、终止时间定义

        定义URL前缀、起始时间、终止时间,这些将会在接口里使用到。其中,起始时间与终止时间间隔不超过30天,因此起始时间设置为今天(today)。

url = 'https://lock.keenzy.cn:88/info'
edate = datetime.date.today() + datetime.timedelta(days=1)
sdate = str(datetime.datetime.now().strftime('%Y-%m')) + "-01"
  • 获取token接口定义

        参考API文档获取token ->传入用户名和密码 ->返回token和刷新token的令牌refreshentoken。

def GetToken(self):
    basePath='/login/1/gettoken'
    data={
        'userlogin':self.cq_username,
        'password':self.cq_password
    }
    """print url+basePath+'?userlogin="'+userlogin+'"'+'&password="'+password+'"'
    res = requests.post(url=url+basePath+'?userlogin='+userlogin+'&password='+password)  拼接"""
    res=requests.post(url=url+basePath,data=data)
    r=json.loads(res.text)
    print res
    return r['result']['token'],r['result']['refreshentoken']
  • 更新token接口定义

        参考API文档更新token ->传入刷新token的令牌refreshentoken ->返回响应信息。

def refToken(refreshentoken):
    basePath='/login/2/refreshentoken'
    data = {
        "refreshentoken":refreshentoken
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    print res
    return r
  • 无线门锁列表查询接口定义-中台配置有roomid数据

        参考API文档无线门锁列表查询 ->传入页码、每页数量、用户token和房间位置(roomid)或者唯一ID(非必要) ->返回响应信息。并将对应的数据上传到物联中台。

def QueryDoor(self, page,rows,token):
    basePath = '/lock/1/getdevicelock'
    data = {
        "page": page,
        "rows": rows,
        "token":token,
        "serch": ''
    }
    try:
        res = requests.post(url=url + basePath, data=data)
        # self.debug(res)
        r = json.loads(res.text)
    except Exception,e:
        pass
    for data in r['result']['data']:
        # 寻找到roomid对应的数据
        if data["roomid"] == self.cq_roomid:
            # 上传数据
            self.cq_roomlocation = data['details']['roomlocation']
            self.setValue(u'门锁号', data['roomid'])
            self.setValue(u'门锁状态', data['roomstate'])
            self.setValue(u'网关通讯ID', data['gatewaycode'])
            self.setValue(u'门锁通讯ID', data['roomcode'])
            self.setValue(u'门锁唯一ID', data['roomcode2'])
            self.setValue(u'门锁位置', data['details']['roomlocation'])
            self.setValue(u'电量', data['details']['roomcharge'])
            self.setValue(u'roomissyso', data['details']['roomissyso'])
            self.setValue(u'门锁强锁状态', data['details']['roomforcelock'])
            self.setValue(u'门锁工作模式', data['details']['roomworkmode'])
            self.setValue(u'最近在线时间', data['details']['lastactivedate'])
            self.setValue(u'门锁类型', data['details']['roommodel'])
            self.setValue(u'建筑号', data['buildid'])
            self.setValue(u'网关类型', data['gatewaytype'])
            self.setValue(u'roomid', "")
            #防止开关状态被重复刷新
            for key, lock_value in self.data2attrs.items():  # 拿出数据点的键和值
                if "private" in lock_value['config']['param']:
                    if lock_value['config']['param']['private'] == 'lock':
                        self.lockkey = key
                        self.debug(self.lockkey)
                        if "memoryvalue" not in self.data2attrs[key]:
                            self.setValue(u'开关门', 0)
                        else:
                            self.setValue(u'开关门', self.data2attrs[key]["memoryvalue"])
                    if lock_value['config']['param']['private'] == 'face':
                        self.facekey = key
                        self.debug(self.facekey)
                        if "memoryvalue" not in self.data2attrs[key]:
                            self.setValue(u'操作人脸', '下发格式为facecode,type')
                        else:
                            self.setValue(u'操作人脸', self.data2attrs[key]["memoryvalue"])
        print "-------------------------------------------"
  • 无线门锁列表查询接口定义传入时-中台配置无roomid数据

        参考API文档无线门锁列表查询 -> 传入时无roomid数据(物联中台设备示例配置roomid为空),则默认返回第一条数据,且返回的roomid为全部roomid拼接 ->返回响应信息。并将对应的数据上传到物联中台。

def QueryEmptyDoor(self, page,rows,token):
    basePath = '/lock/1/getdevicelock'
    data = {
        "page": page,
        "rows": rows,
        "token":token,
        "serch": ''
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    roomID = ""
    for data in r['result']['data']:
        roomID += data['roomid']
        roomID += "  "
    print "-------------------------------------------"
    # 上传数据
    self.cq_roomlocation = r['result']['data'][0]['details']['roomlocation']
    self.cq_roomid = r['result']['data'][0]['roomid']
    self.setValue(u'门锁号', r['result']['data'][0]['roomid'])
    self.setValue(u'门锁状态', r['result']['data'][0]['roomstate'])
    self.setValue(u'网关通讯ID', r['result']['data'][0]['gatewaycode'])
    self.setValue(u'门锁通讯ID', r['result']['data'][0]['roomcode'])
    self.setValue(u'门锁唯一ID', r['result']['data'][0]['roomcode2'])
    self.setValue(u'门锁位置', r['result']['data'][0]['details']['roomlocation'])
    self.setValue(u'电量', r['result']['data'][0]['details']['roomcharge'])
    self.setValue(u'roomissyso', r['result']['data'][0]['details']['roomissyso'])
    self.setValue(u'门锁强锁状态', r['result']['data'][0]['details']['roomforcelock'])
    self.setValue(u'门锁工作模式', r['result']['data'][0]['details']['roomworkmode'])
    self.setValue(u'最近在线时间', r['result']['data'][0]['details']['lastactivedate'])
    self.setValue(u'门锁类型', r['result']['data'][0]['details']['roommodel'])
    self.setValue(u'建筑号', r['result']['data'][0]['buildid'])
    self.setValue(u'网关类型', r['result']['data'][0]['gatewaytype'])
    self.setValue(u'roomid', roomID)
  • 获取开门记录接口定义

        参考API文档获取开门记录。

def OpendoorRecord(self, page,rows,token,sdate,edate):
    basePath = '/analysis/lockrecord/1/getlockrecord'
    data = {
        "page": page,
        "rows": rows,
        "token": token,
        "sdate": sdate,
        "edate": edate
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    for data in r['result']['data']:
        if data['roomlocation'] == self.cq_roomlocation:
            self.setValue(u'开门方式', data['unlockingtype'])
            self.setValue(u'开门时间', data['unlockingdate'])
            self.setValue(u'开门者姓名', data['personname'])
            self.setValue(u'开门者编号', data['personcode'])
            self.setValue(u'开门者所属', data['personlocation'])
            self.setValue(u'卡类型', data['cardtype'])
            self.setValue(u'卡编号', data['cardcode'])
            break
        else:
            continue
  • 远程开门接口定义

        参考API文档远程开门 ->传入房间id、用户token ->返回响应信息。

def OpenDoor(roomid,token):
    basePath = '/lockorder/3/remoteopenlock'
    data = {
        "roomid": roomid,
        "token":token,
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    print r['resultMsg']
  • 远程关门接口定义

        参考API文档远程关门 ->传入房间id、用户token ->返回响应信息。

def CloseDoor(roomid,token):
    basePath = '/lockorder/7/remotecloselock'
    data = {
        "roomid": roomid,
        "token":token,
    }
    res = requests.post(url=url + basePath, data=data)
    r = json.loads(res.text)
    print r['resultMsg']
  • 人脸列表接口定义

        参考API文档获取所有人脸编号。

def ListFace(self,page,rows,token,search):
    basePath = '/face/manage/listFace'
    data = {
        "page": page,
        "rows": rows,
        "search": search,
        "token": token

    }
    res = requests.post(url=url + basePath, json=data)
    r = json.loads(res.text)
    facecode=""
    for data in r['result']['data']:
        facecode+=data['facecode']
        facecode+=','
    # self.debug(facecode)
    self.setValue(u'人脸列表',facecode)
  • 操作人脸接口定义

        参考API文档操作人脸 ->传入人脸编号,用户token和操作类型(1停用,2启用,3删除,4同步)。

def ManageFace(facecode,token,type):
    basePath = '/face/manage/manageFace'
    data = {
        "facecode": facecode,
        "type": type,
        "token": token
    }
    res = requests.post(url=url + basePath, json=data)
  • 获取存放在中台的数据、设备上线

        获取物联中台设备示例的配置属性:用户名(username)、密码(password)、房间号(roomid)。

def InitComm(self, attrs):
    try:
        self.cq_username = self.sysAttrs['config']['param']['username']
        self.cq_password = self.sysAttrs['config']['param']['password']
        self.cq_roomid = self.sysAttrs['config']['param']['roomid']
    except Exception, e:
        self.online(False)
    self.setPauseCollect(False)
    self.setCollectingOneCircle(False)
    self.online(True)
  • 循环采集平台数据

        循环获取token、访问智慧物联管理平台获取数据、并上传数据。

def Collecting(self, dataId):
    try:
        # 获取token
        token, refreshentoken = GetToken(self)
        # 传输当前门锁数据
        if self.sysAttrs['config']['param']['roomid'] == "":
            QueryEmptyDoor(self, 1, 100, token)
        else:
            QueryDoor(self, 1, 100, token)
        # 获取门锁记录
        OpendoorRecord(self, 1,100,token,sdate, edate)

        #获取人脸的列表
        ListFace(self, 1, 100, token, '')
    except Exception, e:
        self.debug(u'数据上传失败' + e.message)
    time.sleep(18)
    return ()
  • 中台下发操作

        在物联中台数据点按要求下发指令,即可触发回调函数。

def Event_setData(self, dataId, value):
    token, refreshentoken = GetToken(self)
    #对门锁进行远程开门和关门
    if dataId==self.lockkey:
        if value==1:
            if self.cq_roomid!="":
                try:
                    OpenDoor(self.cq_roomid,token)
                    self.setValue(u'开关门',1)
                    self.setValue(u'下发信息提示',"远程开门成功!")
                except Exception,e:
                    self.setValue(u'下发信息提示', "远程开门失败!")
            else:
                pass
        else:
            if self.cq_roomid!="":
                try:
                    CloseDoor(self.cq_roomid,token)
                    self.setValue(u'开关门', 0)
                    self.setValue(u'下发信息提示', "远程关门成功!")
                except Exception, e:
                    self.setValue(u'下发信息提示', "远程关门失败!")
            else:
                pass
    #对人脸数据进行操作
    if dataId==self.facekey:
        try:
            ManageFace(value.split(',')[0],token,value.split(',')[1])
            self.setValue(u'操作人脸', value)
            # 操作类型(1停用,2启用,3删除,4同步)
            if value.split(',')[1] == "1":
                self.setValue(u'下发信息提示', value.split(',')[0] + "停用操作成功!")
            elif value.split(',')[1] == "2":
                self.setValue(u'下发信息提示', value.split(',')[0] + "启用操作成功!")
            elif value.split(',')[1] == "3":
                self.setValue(u'下发信息提示', value.split(',')[0] + "删除操作成功!")
            elif value.split(',')[1] == "4":
                self.setValue(u'下发信息提示', value.split(',')[0] + "同步操作成功!")
            else:
                self.setValue(u'操作人脸', '下发格式为facecode,type')
                self.setValue(u'下发信息提示', "人脸操作失败!请检查格式是否正确!")
        except Exception,e:
            self.setValue(u'操作人脸', '下发格式为facecode,type')
            self.setValue(u'下发信息提示', "人脸操作失败!请检查格式是否正确!")
            return json.dumps({'code': 0, 'msg': '', 'data': e.message})
    return json.dumps({'code':0, 'msg':'', 'data':''})

五、使用示例

        基础网关、模板、设备、数据点创建可点击>>采集引擎SDK的使用过程<<查看。

  • 创建网关

        填写网关名称 -> 点击确定。

  • 创建设备并进行配置

        填写设备名称 -> 选择gatelock_cq模板 -> 填写配置(智慧物联管理平台用户名、密码、及一个房间号【可为空】) -> 确定。

  • 运行

        在SDK的_examples文件夹里创建.bat文件,并运行。

py -2 iotosEngine.py --u 物联中台用户名 --p 物联中台密码 --i 网关全局标识 --h http://sys.aiotos.net
  • 运行结果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IOTOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值