更新时间: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只是说明接口调用成功,并不说明添加成功,设备添加成功需要收到TOPIC_ADDDEV_RSP广播。

返回结果

广播名称

广播参数

成员

描述

TOPIC_ADDDEV_RSP

IotaMessage

(使用intent.getSerializableExtra(HubService.HUB_BROADCAST_IE_IOTAMSG)方法获取)

HUB_IE_RESULT

添加设备结果。

HUB_IE_DEVICEID

设备ID,如果添加成功则返回设备ID。

HUB_IE_COOKIE

Cookie有效值为1-65535。

HUB_IE_RESULT:

枚举项

枚举值

类型

描述

HUB_RESULT_SUCCESS

0

NA

添加/删除执行成功。

HUB_RESULT_DEVICE_EXIST

1

NA

设备已存在。

HUB_RESULT_DEVICE_NOTEXIST

2

NA

设备不存在。

HUB_RESULT_DEVICE_FAILED

255

NA

执行失败。

示例

1
2
//开发者调用该接口进行设备添加 
HubService.addDevice(29011, new IotaDeviceInfo("nodeId", "manufacturerId", "deviceType", "model", "protocolType"));

结果处理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
//java code 
// 开发者注册广播接收器对设备添加结果进行相应的处理 
BroadcastReceiver mAdddeviceRsp;
mAdddeviceRsp = new BroadcastReceiver() {
    @Override 
        public void onReceive(Context context, Intent intent) {
        //Do Something 
        IotaMessage iotaMsg = (IotaMessage)intent.getSerializableExtra(HubService. HUB_BROADCAST_IE_IOTAMSG);
        int result = iotaMsg.getUint(HubService.HUB_IE_RESULT, 0);
        String deviceId = iotaMsg.getString(HubService.HUB_IE_DEVICEID);
        int cookie = iotaMsg.getUint(HubService.HUB_IE_COOKIE, 0);
        return;
    }
};
mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
IntentFilter filterAddDev = new IntentFilter(HubService.TOPIC_ADDDEV_RSP);
mLocalBroadcastManager.registerReceiver(mAdddeviceRsp, filterAddDev);

相关文档