网关与子设备

不具备IP地址的设备可以挂载在网关上,作为网关的子设备,通过网关直连的方式接入物联网平台,实现与物联网平台通信。本文介绍配置Python Link SDK,使没有IP能力的设备通过网关接入物联网平台。

前提条件

  • 已创建网关和子设备。具体操作,请参见创建产品创建设备

    • 为网关创建对应的产品和设备,创建产品时,节点类型选择为网关设备

    • 为子设备创建对应的产品和设备,创建产品时,节点类型选择为网关子设备

  • 已完成环境要求与配置认证与连接步骤。

背景信息

版本要求

Aliyun IoT Python SDK 1.2.4及以上版本。

API说明

  1. 网关添加子设备拓扑关系及其响应回调。

    #网关批量添加子设备拓扑,返回请求的request_id
    def gateway_add_subdev_topo(self, subdevList)
    
    #监听回调,用户需将其中的request_id与gateway_add_subdev_topo返回的request_id匹配
    def on_gateway_add_subdev_topo_reply(self, request_id, code, data, msg, user_data)
  2. 子设备登录及其响应回调。

    #网关批量对子设备进行登录 
    def gateway_login_subdev(self, subdevList)
    
    #监听回调,用户需将其中的request_id与gateway_login_subdev返回的request_id匹配
    def on_gateway_login_subdev_reply(self, request_id, code, data, msg, user_data)
    
  3. 网关删除子设备拓扑关系及其响应回调。

    #网关批量删除子设备拓扑 
    def gateway_delete_subdev_topo(self, subdevList)
    
    #监听回调,用户需将其中的request_id与gateway_delete_subdev_topo返回的request_id匹配
    def on_gateway_delete_subdev_topo_reply(self, request_id, code, data, msg, user_data)
  4. 子设备退出登录及其响应回调。

    #网关批量对子设备进行退出登录
    def gateway_logout_subdev(self, subdevList)
    
    #监听回调,用户需将其中的request_id与gateway_logout_subdev返回的request_id匹配
    def on_gateway_logout_subdev_reply(self, request_id, code, data, msg, user_data)
  5. 子设备动态注册及其响应回调。

    #网关批量对子设备进行动态注册(需要productSecret)
    def gateway_product_register_subdev(self, subdevList)
    
    #监听带产品的动态注册结果的回调,用户需将其中的request_id与gateway_batch_product_register返回的request_id匹配
    def on_gateway_product_register_subdev_reply(self, request_id, code, data, msg, user_data)
  6. 子设备拓扑关系变化通知。

    #监听topo关系变化的回调
    def on_gateway_topo_change(self, request_id, params, userdata)

Demo说明

网关上线后,需要先添加子设备的拓扑关系并进行子设备登录操作,子设备才能收发消息。在Demo的gateway_demo.py文件中(在 环境要求与配置中可以下载Demo),需进行的操作步骤如下:

  1. demo_get_subdev_list函数中,通过数组方式,添加子设备的设备证书(ProductKey、DeviceName、DeviceSecret)。

  2. 在网关设备连接物联网云平台成功的on_connect回调中执行self.__linkkit.gateway_add_subdev_topo,对子设备添加拓扑关系。

  3. 拓扑关系添加成功后,进入on_gateway_add_subdev_topo_reply回调,在这个回调中进行子设备登录操作self.__linkkit.gateway_login_subdev

  4. 子设备登录成功后,进入on_gateway_login_subdev_reply回调,即可以进行单个子设备的收发消息的操作。