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

添加设备

接口功能

当有新设备接入网关后,通过调用设备添加接口将非直连设备接入物联网平台,并且获得平台分配的唯一设备逻辑ID。

接口描述

1
public static boolean addDevice(int cookie, IotaDeviceInfo deviceInfo);

接口所属类

HubService

参数说明

字段

必选/可选

类型

描述

cookie

可选

int

Cookie有效值为1-65535。

deviceInfo

必选

IotaDeviceInfo

设备信息。

IotaDeviceInfo:

字段

必选/可选

类型

描述

nodeId

必选

String

关键参数,对接平台的网关下设备唯一标识,设备填写,平台用于判重。

name

可选

String

设备名称。

description

可选

String

设备描述。

manufacturerId

必选

String

厂商ID。

manufacturerName

可选

String

厂商名。

mac

可选

String

设备MAC地址。

location

可选

String

设备的位置。

deviceType

必选

String

设备类型。

model

必选

String

型号。

  • 直连设备:与Profile中定义的model保持一致即可。
  • Z-Wave设备: ProductType + ProductId,格式(使用16 进制): XXXX-XXXX 补0对齐,如:001A-0A12,其他协议再定。

swVersion

可选

String

软件版本。

Z-Wave :主版本号.次版本号,如:1.1。

fwVersion

可选

String

固件版本。

hwVersion

可选

String

硬件版本。

protocolType

必选

String

协议类型 :Z-Wave。

bridgeId

可选

String

表示设备通过哪个Bridge接入平台。

status

可选

String

表示设备是否在线。

  • ONLINE 在线。
  • OFFLINE 离线。

statusDetail

可选

String

状态详情,如果pcStatus不为空,则该参数必选。

参数值:

  • 无:NONE。
  • 配置等待:CONFIGURATION_PENDING。
  • 通信错误:COMMUNICATION_ERROR。
  • 配置错误:CONFIGURATION_ERROR。
  • 桥接器离线:BRIDGE_OFFLINE。
  • 固件升级:FIRMWARE_UPDATING。
  • 循环任务:DUTY_CYCLE。
  • 未激活:NOT_ACTIVE。

mute

可选

String

表示设备是否被屏蔽。

  • TRUE。
  • FALSE。

接口返回值

返回值

描述

true

成功。

false

失败。

此返回值是调用接口的同步返回结果,返回true只是说明接口调用成功,并不说明添加成功,添加成功需要收到HubService发出的通知。

示例

开发者调用设备添加接口。

1
HubService.addDevice(29011, new IotaDeviceInfo("nodeId", "manufacturerId", "deviceType", "model", "protocolType"));

开发者调用添加设备接口前需要实现Agent Lite提供的观察者接口。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class AgentliteHub implements MyObserver {
    public AgentliteHub (Observable hubService) {
        hubService. registerObserver (this);
    }
    // 接收设备添加响应消息
    @Override
    public void update(IotaMessage arg0) {
        // TODO Auto-generated method stub
        System.out.println("收到hubservice通知:" + arg0);
        int mMsgType = arg0.getMsgType();
        switch(mMsgType) {
            //收到添加设备的应答
            case IodevService.IODEV_MSG_ADD_DEVICE_RSP:
            getAddDeviceAnswer(arg0);
            break;
            //收到删除设备的应答
            case IodevService.IODEV_MSG_RMV_DEVICE_RSP:
            getRmvDeviceAnswer(arg0);
            break;
            //收到更新设备信息的应答
            case IodevService.IODEV_MSG_UPDATE_DEVSTATUS_RSP:
            getUpdateStatusAnswer(arg0);
            break;
            case IodevService.IODEV_MSG_RECEIVE_CMD:
            getUnbindAnswer(arg0);
            break;
            default:
            break;
        }
    }

相关文档