aLiYun ====== .. _aliyun-1: aLiYun ------ 模块功能:阿里云物联网套件客户端功能. 目前的产品节点类型仅支持“设备”,设备认证方式支持“一机一密和“一型一密” aLiYun.sleep() ~~~~~~~~~~~~~~ 断开阿里云物联网套件的连接,并且不再重连 - 参数 无 - 返回值 nil - 例子 .. code:: lua aLiYun.sleep() -------------- aLiYun.wakeup() ~~~~~~~~~~~~~~~ 重新打开阿里云物联网套件的连接 - 参数 无 - 返回值 nil - 例子 .. code:: lua aLiYun.wakeup() -------------- aLiYun.sleepStatus() ~~~~~~~~~~~~~~~~~~~~ 查看打开阿里云物联网套件的是否允许连接状态 - 参数 无 - 返回值 bool 是否允许连接阿里云 - 例子 .. code:: lua local ar = aLiYun.sleepStatus() -------------- aLiYun.setup(productKey, productSecret, getDeviceNameFnc, getDeviceSecretFnc, setDeviceSecretFnc) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 配置阿里云物联网套件的产品信息和设备信息 - 参数 +-----------------------------------+-----------------------------------+ | 传入值类型 | 释义 | +===================================+===================================+ | string | productKey,产品标识 | +-----------------------------------+-----------------------------------+ | string | ** | | | 可选参数,默认为\ ``nil``**\ ,pr | | | oductSecret,产品密钥一机一密认证 | | | 方案时,此参数传入nil一型一密认证 | | | 方案时,此参数传入真实的产品密钥 | | | MQTT-TCP直连方案时,此参数传入nil | +-----------------------------------+-----------------------------------+ | function | get | | | DeviceNameFnc,获取设备名称的函数 | +-----------------------------------+-----------------------------------+ | function | getDe | | | viceSecretFnc,获取设备密钥的函数 | +-----------------------------------+-----------------------------------+ | function | **可 | | | 选参数,默认为\ ``nil``**\ ,set | | | DeviceSecretFnc,设置设备密钥的函 | | | 数,一型一密认证方案才需要此参数 | +-----------------------------------+-----------------------------------+ - 返回值 nil - 例子 .. code:: lua aLiYun.setup("b0FMK1Ga5cp",nil,getDeviceNameFnc,getDeviceSecretFnc) aLiYun.setup("a1AoVqkCIbG","7eCdPyR6fYPntFcM",getDeviceNameFnc,getDeviceSecretFnc,setDeviceSecretFnc) -------------- aLiYun.setMqtt(cleanSession, will, keepAlive) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 设置MQTT数据通道的参数 - 参数 +------------+--------------------------------------------------------+ | 传入值类型 | 释义 | +============+========================================================+ | number | **可选参数,默认为\ ``1``**\ ,cleanSession 1/0 | +------------+--------------------------------------------------------+ | table | **可选参数,默认为\ ``nil``**\ ,will | | | 遗嘱参数,格式为{qos=, retain=, topic=, payload=} | +------------+--------------------------------------------------------+ | number | **可选参数,默认为\ ``240``**\ ,keepAlive,单位秒 | +------------+--------------------------------------------------------+ - 返回值 nil - 例子 .. code:: lua aLiYun.setMqtt(0) aLiYun.setMqtt(1,{qos=0,retain=1,topic="/willTopic",payload="will payload"}) aLiYun.setMqtt(1,{qos=0,retain=1,topic="/willTopic",payload="will payload"},120) -------------- aLiYun.setRegion(region) ~~~~~~~~~~~~~~~~~~~~~~~~ 设置地域region id - 参数 +-----------------------------------+-----------------------------------+ | 传入值类型 | 释义 | +===================================+===================================+ | string | regio | | | n,地域id字符串,参考:https://he | | | lp.aliyun.com/document_detail/406 | | | 54.html?spm=a2c4g.11186623.2.16.c | | | 0a63f82Z7qCtA#concept-h4v-j5k-xdb | +-----------------------------------+-----------------------------------+ - 返回值 nil - 例子 .. code:: lua -- 设置华北1:aLiYun.setRegion("cn-qingdao") -- 设置华东1:aLiYun.setRegion("cn-hangzhou") -- 设置华南1:aLiYun.setRegion("cn-shenzhen") -------------- aLiYun.setConnectMode(mode, host, port, getClientIdFnc) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 设置连接方式 - 参数 ========== ========================================================== 传入值类型 释义 ========== ========================================================== string mode,连接方式,支持如下几种方式:“direct”表示MQTT-TCP直连 string host,服务器地址 number port,服务器端口 function getClientIdFnc,获取mqtt client id的函数 ========== ========================================================== - 返回值 nil - 例子 .. code:: lua -- 设置为MQTT-TCP直连:aLiYun.setConnectMode("direct") -------------- aLiYun.subscribe(topic, qos) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 订阅主题 - 参数 +-----------------------------------+-----------------------------------+ | 传入值类型 | 释义 | +===================================+===================================+ | param | topic,string或者table类型, | | | 一个主题时为string类型,多个主题 | | | 时为table类型,主题内容为UTF8编码 | +-----------------------------------+-----------------------------------+ | param | qos,number或者nil,topic为一 | | | 个主题时,qos为number类型(0/1,默 | | | 认0);topic为多个主题时,qos为nil | +-----------------------------------+-----------------------------------+ - 返回值 nil - 例子 .. code:: lua aLiYun.subscribe("/b0FMK1Ga5cp/862991234567890/get", 0) aLiYun.subscribe({["/b0FMK1Ga5cp/862991234567890/get"] = 0, ["/b0FMK1Ga5cp/862991234567890/get"] = 1}) -------------- aLiYun.publish(topic, payload, qos, cbFnc, cbPara) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 发布一条消息 - 参数 +-----------------------------------+-----------------------------------+ | 传入值类型 | 释义 | +===================================+===================================+ | string | topic,UTF8编码的主题 | +-----------------------------------+-----------------------------------+ | string | payload,负载 | +-----------------------------------+-----------------------------------+ | number | **可选参数,默认为\ ``0 | | | ``**\ ,qos,质量等级,0/1,默认0 | +-----------------------------------+-----------------------------------+ | function | **可选参数,默认为\ ` | | | `nil``**\ ,cbFnc,消息发布结果的 | | | 回调函数回调函数的调用形式为:cbF | | | nc(result,cbPara)。result为true表 | | | 示发布成功,false或者nil表示订阅 | | | 失败;cbPara为本接口中的第5个参数 | +-----------------------------------+-----------------------------------+ | param | **可选 | | | 参数,默认为\ ``nil``**\ ,cbPar | | | a,消息发布结果回调函数的回调参数 | +-----------------------------------+-----------------------------------+ - 返回值 nil - 例子 .. code:: lua aLiYun.publish("/b0FMK1Ga5cp/862991234567890/update","test",0) aLiYun.publish("/b0FMK1Ga5cp/862991234567890/update","test",1,cbFnc,"cbFncPara") -------------- aLiYun.on(evt, cbFnc) ~~~~~~~~~~~~~~~~~~~~~ 注册事件的处理函数 - 参数 +-----------------------------------+-----------------------------------+ | 传入值类型 | 释义 | +===================================+===================================+ | string | evt,事 | | | 件“auth”表示鉴权服务器认证结果事 | | | 件“connect”表示接入服务器连接结果 | | | 事件“reconnect”表示重连事件“recei | | | ve”表示接收到接入服务器的消息事件 | +-----------------------------------+-----------------------------------+ | function | cbFnc,事件的处理函数当evt为“a | | | uth”时,cbFnc的调用形式为:cbFnc( | | | result),result为true表示认证成功 | | | ,false或者nil表示认证失败当evt为 | | | “connect”时,cbFnc的调用形式为: | | | cbFnc(result),result为true表示连 | | | 接成功,false或者nil表示连接失败 | | | 当evt为“receive”时,cbFnc的调用形 | | | 式为:cbFnc(topic,qos,payload), | | | topic为UTF8编码的主题(string类型 | | | ),qos为质量等级(number类型),pa | | | yload为原始编码的负载(string类型) | +-----------------------------------+-----------------------------------+ - 返回值 nil - 例子 .. code:: lua aLiYun.on("b0FMK1Ga5cp",nil,getDeviceNameFnc,getDeviceSecretFnc) -------------- aLiYun.setErrHandle(cbFnc, tmout) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 设置阿里云task连续一段时间工作异常的处理程序 - 参数 +------------+--------------------------------------------------------+ | 传入值类型 | 释义 | +============+========================================================+ | function | cbFnc,异常处理函数,cbFnc的调用形式为:cbFnc() | +------------+--------------------------------------------------------+ | number | **可选参数,默认为\ ``150``**\ ,tmout,连续工作 | | | 异常的时间,当连续异常到达这个时间之后,会调用cbFnc() | +------------+--------------------------------------------------------+ - 返回值 nil - 例子 .. code:: lua aLiYun.setErrHandle(function() sys.restart("ALIYUN_TASK_INACTIVE") end, 300) --------------