添加设备
接口功能
当有新设备接入网关后,通过调用设备添加接口将非直连设备接入物联网平台,并且获得平台分配的唯一设备逻辑ID。
接口描述
1
|
public static boolean addDevice(int cookie, IotaDeviceInfo deviceInfo); |
接口所属类
HubService
参数说明
字段 |
必选/可选 |
类型 |
描述 |
---|---|---|---|
cookie |
可选 |
int |
Cookie有效值为1-65535。 |
deviceInfo |
必选 |
设备信息。 |
字段 |
必选/可选 |
类型 |
描述 |
---|---|---|---|
nodeId |
必选 |
String |
关键参数,对接平台的网关下设备唯一标识,设备填写,平台用于判重。 |
name |
可选 |
String |
设备名称。 |
description |
可选 |
String |
设备描述。 |
manufacturerId |
必选 |
String |
厂商ID。 |
manufacturerName |
可选 |
String |
厂商名。 |
mac |
可选 |
String |
设备MAC地址。 |
location |
可选 |
String |
设备的位置。 |
deviceType |
必选 |
String |
设备类型。 |
model |
必选 |
String |
型号。
|
swVersion |
可选 |
String |
软件版本。 Z-Wave :主版本号.次版本号,如:1.1。 |
fwVersion |
可选 |
String |
固件版本。 |
hwVersion |
可选 |
String |
硬件版本。 |
protocolType |
必选 |
String |
协议类型 :Z-Wave。 |
bridgeId |
可选 |
String |
表示设备通过哪个Bridge接入平台。 |
status |
可选 |
String |
表示设备是否在线。
|
statusDetail |
可选 |
String |
状态详情,如果pcStatus不为空,则该参数必选。 参数值:
|
mute |
可选 |
String |
表示设备是否被屏蔽。
|
接口返回值
返回值 |
描述 |
---|---|
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); |