更新时间:2024-08-21 GMT+08:00
分享

设备代理

概述

在网关和子设备的拓扑关系不是固定的场景下,平台目前的固定的拓扑关系难以适配。基于此情况,平台目前推出设备代理功能。

将设备拓扑与数据转发能力解耦,子设备可以选择非拓扑关系的设备进行数据转发。

图1 子设备数据上报示意图

使用场景

  • 网关高可用方案中,主备网关的切换。如在隧道场景,设置主网关和备用网关,可在主网关网络不好或者故障时切换至备用网关进行数据传输,达到不影响数据传输,保障及时可靠的传输数据的目的。
  • 网关故障导致更换,子设备迁移至新网关进行数据转发。目前平台当网关故障时需要将子设备删除并重新注册到新网关,使用该功能后,无需删除原网关,即可通过新网关进行数据传输。
  • 可移动设备与网关不存在稳定的从属关系,由子设备自行选择网关进行数据转发。如:诊疗车搭载了医疗设备传感器,病床完成诊疗后需尽快将数据传输到医疗中心系统。为了保证信息实时传输,每个病房配置IoT网关用于上传设备中的数据。由诊疗车自主选择当前病房网关进行数据上报。

功能介绍

  1. 物联网平台将设备拓扑与数据转发能力解耦,对于数据转发能力支持通过一种设备代理策略来进行描述。即在台注册设备时已经固定拓扑关系,但是可以通过其他网关进行数据转发。这种设备代理策略需要在平台进行定义,和管理。代理授权主要分为两个部分:
    • 时间维度:可为代理设备的转发权限设定一定的时限,一旦过期该设备便不再具备代理能力。
    • 空间维度:只有加入该设备代理的设备才能转发彼此的数据(设备代理内的网关可共同转发子设备数据)。
  2. 在同一时刻,子设备只能存在一个确定的网关,且只能通过这个网关进行数据转发,因此在对子设备进行数据转发前需要提前确定代理关系。子设备代理网关的切换必须通过网关上报子设备状态来实现,当上报子设备状态为在线时,平台会根据用户在平台定义好的代理策略进行校验,校验通过后平台就会在该子设备与当前网关之间建立代理关系,之后才会允许通过该代理网关进行数据转发。当上报子设备状态为离线后,会清除代理关系,禁止通过该网关进行数据转发。
  • 设备切换代理网关后,只能通过该代理网关进行数据上报等操作,通过其他网关(包括创建设备时指定的网关)上报时会校验失败。
  • 平台下发子设备消息时,如果存在有效的代理关系,下发的消息将会发送到代理设备,当不存在代理关系时,会发送到子设备创建设备时指定的网关上。
  • 如果您的业务需要使用该功能,请提交工单提交工单说明您的需求。

使用限制

  • 单账号调用该接口的TPS限制最大为1/S(每秒1次请求数)。
  • 单实例最大支持创建10个设备代理。
  • 一个设备代理中最多能添加10个设备。
  • 仅支持直连/网关设备加入设备代理,子设备不允许添加至设备代理中。
  • 一个设备仅允许加入一个设备代理中。

样例演示

  1. 访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。
  2. 在左侧导航栏选择设备 > 所有设备,单击“注册设备”,填写相关参数,创建两个网关设备:网关一(deviceproxy-gateway1),网关二(deviceproxy-gateway2),与他们对应的4个子设备gateway1-subdevice-1,gateway1-subdevice-2,gateway2-subdevice-1, gateway2-subdevice-2。

    图2 设备-注册设备代理设备

  3. 选择“设备代理”标签,单击“创建设备代理”,创建时选择第一步创建好的两个网关设备。

    图3 设备代理-详情

  4. 通过代理网关上报子设备状态,演示通过网关一上报网关二的子设备状态(gateway2-subdevice-2,gateway2-subdevice-1)。填入参数时请填入设备标识对应的设备id。

    Topic: $oc/devices/{device_id}/sys/events/up
    数据格式: 
    {
            "object_device_id": "********_deviceproxy-gateway1",
    	"services": [{
    		"service_id": "$sub_device_manager",
    		"event_type": "sub_device_update_status",
    		"event_time": "20151212T121212Z",
    		"paras": {
    			"device_statuses": [{
    					"device_id": "********_gateway2-subdevice-2",
    					"status": "ONLINE"
    				},
    				{
    					"device_id": "********_gateway2-subdevice-1",
    					"status": "ONLINE"
    				}
    			]
    		}
    	}]
    }

  5. 网关一收到上报子设备状态响应。

    Topic: $oc/devices/{device_id}/sys/events/down  
    数据格式: 
    {
       "object_device_id": "********_deviceproxy-gateway1",
       "services": [
        {
          "service_id": "$sub_device_manager",
          "event_type": "sub_device_update_status_response",
          "event_time": "20151212T121212Z",
          "event_id": "********",
          "paras": {
              "successful_devices": [
              {
                "device_id": "********_gateway2-subdevice-2",
                "status": "ONLINE"
              },
              {
                "device_id": "********_gateway2-subdevice-1",
                "status": "ONLINE"
              }
            ],
            "failed_devices": [
            ]
          }
        }
      ]
    }

  6. 在控制台“所有设备”查看两个子设备为在线,表明两个子设备的代理网关已切换至deviceproxy-gateway1。后续可通过代理网关上报对子设备进行操作,此处以数据上报作为样例。

    图4 设备代理-设备状态

  7. 通过网关一上报网关二两个子设备数据。

    Topic:  $oc/devices/{device_id}/sys/gateway/sub_devices/properties/report  
    数据格式: 
    { 
        "devices":[ 
            { 
                "device_id":"********_gateway2-subdevice-2", 
                "services":[ 
                    { 
                        "service_id":"BasicData", 
                        "properties":{ 
                            "luminance":"12" 
                        }, 
                        "event_time":"20200702T121212Z" 
                    }
                ] 
            }, 
            { 
                "device_id":"********_gateway2-subdevice-1", 
                "services":[ 
                    { 
                        "service_id":"BasicData", 
                        "properties":{ 
                            "luminance":"66" 
                        }, 
                        "event_time":"20200702T121212Z" 
                    } 
                ] 
            } 
        ] 
    }

  8. 在“设备详情”查看设备上报数据。

    图5 设备详情-设备代理子设备

相关文档