开源.Net Standard版华为物联网北向接口SDK

  • 2019 年 11 月 5 日
  • 笔记

说明

最近用到了华为的物联网平台API,但是官方没有.Net版的SDK,所以就自己封装了一个,开源出来给有需要的朋友,同时也算是为.Net Core的发展做点小贡献~

源码地址:https://github.com/iamoldli/HuaWei.IoT.NorthApi.Sdk

同时包也已经发布到NuGet https://www.nuget.org/packages/HuaWei.IoT.NorthApi.Sdk/

介绍

内部采用一个线程来自动刷新令牌,目前只提供异步方法,并且提供了依赖注入扩展,具体使用方法可参考源码中的Demo

功能列表

获取令牌

刷新令牌

注册设备(验证码方式)

var model = new DeviceRegisterModel  {      EndUserId = "",      Imsi = "",      NodeId = "",      Timeout = 0,      DeviceInfo = new DeviceRegisterInfo      {          DeviceType = "",          ManufacturerId = "",          ManufacturerName = "",          Model = "",          Name = "测试",          ProtocolType = ProtocolType.CoAP      }  };    await _client.DeviceRegister(model);

注册设备(密码方式)

刷新设备密钥

var model = new DeviceRefreshModel  {      DeviceId = _deviceId,      NodeId = ""  };    await _client.DeviceRefresh(model);

修改设备信息

var model = new DeviceModifyModel  {      DeviceId = _deviceId,      Name = "测试"  };    await _client.DeviceModify(model);

删除设备

await _client.DeviceDelete(_deviceId);

查询设备激活状态

await _client.DeviceActivated(_deviceId);

查询单个设备信息

await _client.DeviceGet(_deviceId);

批量查询设备信息

var model = new DeviceInfoQueryModel  {      StartTime = DateTime.Now.AddDays(-7)  };    await _client.DeviceQuery(model);

查询设备历史数据

var model = new DeviceDataHistoryQueryModel  {      DeviceId = _deviceId  };    await _client.DeviceDataHistory(model);

订阅平台业务数据

var model = new SubscribeModel  {      NotifyType = NotifyType.DeviceDataChanged,      CallbackUrl = "http://api.text.com"  };    await _client.Subscribe(model);

查询单个订阅

var model = new SubscribeModel  {      NotifyType = NotifyType.DeviceDataChanged,      CallbackUrl = "http://api.text.com"  };    var result = await _client.Subscribe(model);    await _client.SubscriptionGet(result.Data.SubscriptionId);

批量查询订阅

var model = new SubscriptionQueryModel  {      NotifyType = NotifyType.DeviceDataChanged  };    return (await _client.SubscriptionQuery(model)).Data;

删除单个订阅

await _client.SubscriptionDelete("")

批量删除订阅

订阅平台管理数据

创建设备命令

var model = new CommandCreateModel  {      DeviceId = _deviceId,      Command = new CommandBody      {          ServiceId = "DTU",          Method = "SETCommand",          Paras = new          {              Value = "1111"          }      }  };    await _client.CommandCreate(model);

查询设备命令

await _client.CommandQuery();

撤销设备命令