替换故障网关

更新时间:2024-07-05 08:08:17下载pdf

如果终端用户使用网关时出现硬件故障,只能替换故障网关,网关下子设备和相关联动场景可以同步到新网关下,无需重新配置。

  • 新网关和被替换网关必须是同一品类、且 DP 相同,才可以进行替换。
  • 网关备份信息(子设备数据、联动、场景等信息)的时间间隔周期为 15 分钟。

设备是否支持替换故障网关

接口说明

/**
 * 查询当前网关是否具备替换故障网关的能力
 *
 * @param gwId 新网关的 ID
 * @param listener boolean
 */
fun isSupportedMigrationWithGwId(gwId: String,listener: Business.ResultListener<Boolean>)

参数说明

参数 类型 说明
gwId String 新网关的 ID
listener ResultListener Boolean 回调

调用示例

val manager = DeviceBusinessDataManager.getInstance().getMigrationManager()
manager.isSupportShareByDeviceId(devId, object : Business.ResultListener<Boolean?> {
    override fun onFailure(
        bizResponse: BusinessResponse?,
        bizResult: Boolean?,
        apiName: String?
    ) {

    }

    override fun onSuccess(
        bizResponse: BusinessResponse?,
        bizResult: Boolean?,
        apiName: String?
    ) {

    }

})

查询故障网关列表

接口说明

/**
 * 查询故障网关列表
 *
 * @param gwId 新网关 ID
 * @param gid 当前空间 ID
 * @param listener 返回数据结构:["xxxxx"] 故障网关的设备 ID 或 SN 码
 */
fun getEnableMigratedGatewayList(
    gwId: String,
    gid: Long,
    listener: Business.ResultListener<ArrayList<String>>
)

参数说明

参数 类型 说明
gwId String 新网关的 ID
gid Long 当前空间 ID
listener ResultListener ArrayList<String> 回调

调用示例

val manager = DeviceBusinessDataManager.getInstance().getMigrationManager()
manager.getEnableMigratedGatewayList("devId", gid, object : Business.ResultListener<ArrayList<String?>> {
    override fun onFailure(
        bizResponse: BusinessResponse,
        bizResult: ArrayList<String?>,
        apiName: String
    ) {

    }

    override fun onSuccess(
        bizResponse: BusinessResponse,
        bizResult: ArrayList<String?>,
        apiName: String
    ) {

    }
})

开始替换故障网关

接口说明

/**
 * 开始替换故障网关
 *
 * @param sourcesGwId 新网关的 ID
 * @param targetGwId 故障网关的 ID 或 SN 码
 * @param gid 当前空间 ID
 * @param listener MigrationInfo
 */
fun startMigrateGateway(
    sourcesGwId: String,
    targetGwId: String,
    gid: Long,
    listener: Business.ResultListener<MigrationInfo?>
)

参数说明

参数 类型 说明
sourcesGwId String 新网关的 ID
targetGwId String 故障网关的 ID 或 SN 码
gid Long 当前空间 ID
listener ResultListener MigrationInfo 回调

调用示例

val manager = DeviceBusinessDataManager.getInstance().getMigrationManager()
manager.startMigrateGateway("sourcesGwId", "targetGwId", gid,object : Business.ResultListener<MigrationInfo?> {
    override fun onFailure(
        bizResponse: BusinessResponse,
        bizResult: MigrationInfo?,
        apiName: String
    ) {

    }

    override fun onSuccess(
        bizResponse: BusinessResponse,
        bizResult: MigrationInfo?,
        apiName: String
    ) {

    }
})

返回数据

MigrationInfo

属性 类型 说明
sourceGwId String 新网关的 ID
targetGwId String 故障网关的 ID 或 SN 码

查询故障网关替换状态

接口说明

/**
 * 查询故障网关替换状态
 *
 * @param gwId 新网关 ID
 * @param listener MigrationInfo
 */
fun getMigratedGwState(gwId: String, listener: Business.ResultListener<MigrationInfo?>)

参数说明

参数 类型 说明
sourcesGwId String 新网关的 ID
callback ResultListener MigrationInfo 回调

调用示例

val manager = DeviceBusinessDataManager.getInstance().getMigrationManager()
manager.getMigratedGwState("sourcesGwId", object : Business.ResultListener<MigrationInfo?> {
    override fun onFailure(
        bizResponse: BusinessResponse,
        bizResult: MigrationInfo?,
        apiName: String
    ) {

    }

    override fun onSuccess(
        bizResponse: BusinessResponse,
        bizResult: MigrationInfo?,
        apiName: String
    ) {

    }
})

返回数据

MigrationInfo

属性 类型 说明
status String 替换状态:
  • DEVICE_CONFIG_INIT:配置初始化
  • DEVICE_DATA_INIT:数据初始化
  • OS_CONFIG_INIT:云端初始化
  • FINISH:替换成功
  • FAILED:替换失败
  • NONE:无状态
sourceGwId String 新网关的 ID
targetGwId String 故障网关 ID 或 SN 码
targetGwName String 故障网关的名称
currentTimeMillis long 当前时间戳
failedCode String 错误码

网关替换状态监听器

接口说明

/**
 * 注册故障网关替换状态监听器
 *
 * @param listener IMigratedStateListener
 */
fun addMigratedStateListener(listener: IMigratedStateListener)

/**
 * 注销故障网关替换状态监听器
 *
 * @param listener IMigratedStateListener
 */
fun removeMigratedStateListener(listener: IMigratedStateListener)

参数说明

参数 类型 说明
backupList List 备用网络列表
listener IMigratedStateListener MigrationInfo 回调

调用示例

val manager = DeviceBusinessDataManager.getInstance().getDeviceNetSetManager("deviceId")

val listener = object :IMigratedStateListener{
            override fun onMigratedStateChange(migrationInfo: MigrationInfo?) {

            }
        }

manager.addMigratedStateListener(listener)

manager.removeMigratedStateListener(listener)

返回数据

MigrationInfo

属性 类型 说明
status String 替换状态:
  • DEVICE_CONFIG_INIT:配置初始化
  • DEVICE_DATA_INIT:数据初始化
  • OS_CONFIG_INIT:云端初始化
  • FINISH:替换成功
  • FAILED:替换失败
  • NONE:无状态
sourceGwId String 新网关的 ID
targetGwId String 故障网关 ID 或 SN 码
targetGwName String 故障网关的名称
currentTimeMillis long 当前时间戳
failedCode String 错误码