这个应该是onenet 新推出的一个服务我们可以查看一下这个服务是怎么使用的。

文章主要还是讲解android 手机端是怎样调用onenet Studio这个服务,然后得到我们onenet Studio里面的设备的数据。

主要就是查看onenet Studio的官方文档。文档地址oneNET studio官方文档

1 产品,设备,属性 创建

1 在oneNET Studio里面创建产品

当然文档里面也有教你怎样去创建设备的。
image.png
登录之后进到控制台选择全部产品服务—OneNET Studio
image.png

首先呢我们要知道 OneNET studio里面的 结构也是 创建产品,产品下面有设备,设备下面可以定义一些数据流
image.png

我们点击新建产品,创建了一个 语雀记录这个产品
image.png

image.png

产品已经创建好了,在产品列表里面可以看到我们创建的 语雀记录 这个产品,但是产品名是不太重要的,产品id用的比较多

2 产品下面创建设备

点击设备管理
image.png
点击添加设备
image.png
输入 新添加的设备信息
image.png
可以看到设备已经创建好了。

image.png

3 设备下面的数据点(属性)

首先我们要这道设备 在onenet Studio里面设备的数据点,是在,产品创建创建的时候就指定好的。
刚才我们创建好了一个设备叫做 yuque_test 我们查看一下这个设备里面是否有数据点。

点击详情
image.png

可以看到设备下面已经有了很多属性(数据点),但是我们有没有创建数据点,那么这些数据点是在哪里创建的呢。 原因就是我们在创建产品的时候,选择了 产品类别,那个产品类别里面就已经为我们定义好了一些属性(数据点),所以这个产品下面的所有设备就自动的拥有了 一些属性(数据点)。
image.png

4 自定义属性(数据点)

在3 里面我们知道了,设备的属性(数据点)其实就是产品里面决定的。 我们回到产品里面
image.png
点击语雀记录的 详情,可以看到里面有很多的属性了,我们只用在这里修改属性, 语雀记录这个产品下面的设备的属性就都会跟着改变了。
image.png
点击设置物理模型,我们就可以对属性进行修改了。
image.png
image.png

选中之后将 里面默认添加的属性全部删除了。
image.png

好了我们在点击设置物理模型 开始添加自己想要的属性了。

选择添加自定义功能点
image.png
点击添加之后就可以了。

查看一下 现在产品里面就只有一个我们自己定义的一个属性(数据点)了
image.png

那么现在我们再到设备yuque_test里面去看一下
可以看到里面也只有一个数据这个数据点了。说明设备的属性确实是由产品控制的。
image.png

2 设备的平台调试

这里其实就是进到了运维监控里面的—— 设备调试
这个设备调试 好像就是 模拟一个硬件设备连接上了我们创建的产品, 类似于硬件的调试

可以看到下面还要一个API调试,这个好像就是模拟一个手机软件,模拟一个软件调用平台的接口来得到设备的数据给设备发送数据
image.png

2.1 设备的上线,属性上报

这里是在onenet 平台里面进行 设备调试
我们先看一下我们创建的yuque_test 这个设备,现在是离线的状态
image.png
我们点击一下 详情
右上角有一个在线调试 我们点击在线调试
image.png

看一下,这个时候其实就是跳转到了 运维监控 —-设备调试 这个界面下面去了
可以看看到现在这个设备是 语雀记录产品下面的,yuque_test 这个设备
image.png
我们点击启动调试
然后回到设备 yuque_test 里面,这个时候可以看到设备已近上线了
image.png

除了可以让设备上线之外我们还可以给设备发送数据,回到设备调试界面,在下面输入数据
image.png
点击属性上报。这样属性(数据点)就发送过去了。

去设备详情里面查看一下 数据是否上传过去了。
可以看到设备里面的属性已经更新了。
image.png

2.2 API调试获取,设置设备属性

进入到运维监控 —- API 调试里面
image.png

点击 进入到运维监控 —- API 调试里面——应用开发管理——设备属性最新数据查询
image.png
这个时候你会发现让我们输入 三个参数 ; 项目id , 产品id , 设备名字 。

这个时候可能就会懵逼了,到目前为止 我们并没有得到一个项目id ,啊?????

其实在onenet Studio里面 产品和调试有这样一个关系

image.png
2.1 里面的设备调试其实就是调试 设备接入于管理 里面的设备(设备接入与管理的结构是 产品—-设备 —- 属性)

这里我们的API调试 ,其实应用开发里面的设备进行调试。(应用开发里面的结构是:项目—-产品—设备—属性)

但是呢,应用开发里面的产品—-设备—-属性 都是来自,设备接入与管理 里面的

2.3 OneNET studio里面的 API调试开始

知道了上面这些关系,现在我们要做的就是在应用开发里面创建一个项目,然后将设备接入与管理 里面的产品,设备放到 项目 里面

点击 添加项目

image.pngimage.png

点击进入项目管理
image.png

这个时候就进到了一个新的 项目管理 页面了
可以看到我们新建的项目还没有任何 设备呢 , 点击添加设备

image.png

添加设备,这个时候我们就可以选择 之前在 设备接入于管理里面的, yuque_test 这个产品了。
image.png
image.png

添加之后我们查看一下项目下面的 设备
image.png
查看一下详情 , 可以看到我们之前上传的 数据还在里面呢
image.png

我们在这里来总结一下 这个yuque_test的一些参数
项目名 :语雀项目 项目id:mA7Sej
产品名: 语雀记录 产品id:w9NolG9HD9
设备名: yuque_test

我们用的主要是id值,现在进到 API调试里面
image.png
输入 project_id , product_id, devidce_name ;

这样就得到了数据了,可以看到 返回的json数据里面 就有hello 语雀。
image.png

除了可以得到 设备的属性值,我们还可以调用API 发送 数据到设备的属性里面

需要注意的是上传 属性值的时候,设备一定要在线,不在线的话 数据发送不过去。
image.png

2.4 POstman调试onenet的API

我们观察一下2,3 里面 刚才得到数据点的时候,发送的的json请求体的数据
image.png

  1. {
  2. "url": "https://open.iot.10086.cn/studio/debug/api/application?version=1&action=QueryDeviceProperty&project_id=mA7Sej&product_id=w9NolG9HD9&device_name=yuque_test",
  3. "method": "get",
  4. "header": {
  5. "Accept": "application/json, text/plain, */*",
  6. "authorization": "version=2020-05-29&res=userid%2F274573&et=1680769275&method=sha1&sign=hvwWKeGg5aS0OqECsyr9wXOblkM%3D"
  7. },
  8. "query": {
  9. "version": 1,
  10. "action": "QueryDeviceProperty",
  11. "project_id": "mA7Sej",
  12. "product_id": "w9NolG9HD9",
  13. "device_name": "yuque_test"
  14. }
  15. }

现在我们使用postman软件发送这个请求
主要用到的就是
url和鉴权信息。

将url放到 输入框里面
https://open.iot.10086.cn/studio/debug/api/application?version=1&action=QueryDeviceProperty&project_id=mA7Sej&product_id=w9NolG9HD9&device_name=yuque_test

将鉴权信息放到 Authorization里面
键名值 authorization
值是
version=2020-05-29&res=userid%2F274573&et=1680769275&method=sha1&sign=hvwWKeGg5aS0OqECsyr9wXOblkM%3D

可以看到在postman 这个软件里面我们可以得到 平台的设备数据。
接口调试助手可以用到的话,我们使用手机发送http请求也是可以得到数据的。
image.png

2.5 使用android代码调试onenetAPI

2.4里面,使用postman发送了HTTP请求,其实可以使用android来完全的替代postman发送http请求。
在我的这篇文章里面,讲解了安卓发送http请求的方法,主要就是使用HttpURlconnection对象,或者使用OKhttp这两种方式发送http请求,

具体的呢我们可以查看这个文档安卓发送Http请求

回到这个项目里面,我们使用 post发送请求的url其实是有问题的,虽然我们可以得到设备的信息,但是这种方法并不是onenet官方提供的标准的请求方式。

在02 onenet的 onenet studio 服务02 里面详细的介绍一下onenet官方的一个获取设备属性的方法。