EdgeX: 使用最新的 edgex2.0干啥,硬件是一方面,重要的另外一方面是软件的匹配,也要做好相关的开发,新的API V2接口学习,实现设备的注册服务的注册
Posted freewebsys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EdgeX: 使用最新的 edgex2.0干啥,硬件是一方面,重要的另外一方面是软件的匹配,也要做好相关的开发,新的API V2接口学习,实现设备的注册服务的注册相关的知识,希望对你有一定的参考价值。
前言
相关EdgeX Foundry 全部分类:
https://blog.csdn.net/freewebsys/category_9437788.html
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/120615729
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys
1,关于edgex2.0
上次讲了 edgex 2.0 如何本地进行按照使用,这次开始研究具体的 API 接口了。
之前1.0 的版本的 python 脚本不管用了需要升级 API了。
两年前,edgex 还是 1.0 的时候就有人通过 python 的程序进行使用 api的方式注册设备。
但是2.0 开始这个接口都不好用了。需要升级下。:
https://github.com/jonas-werner/EdgeX_Foundry-Device_Creation
2,使用2.0 http api 注册
第一个改变就是端口的升级。
从 48081 修改成了 59881,api 接口路径 从 v1 变成 v2 了。
还有就是 profile 的定义变了,结构变了。
def createDeviceService():
url = 'http://%s:59881/api/v2/deviceservice' % edgex_ip
# new payload v2 body.
payload = [
"apiVersion": "v2",
"service":
"name": "sensor cluster control device service",
"description": "Manage sensor clusters delivering humidity and temperature readings",
"adminState": "UNLOCKED",
"labels": [
"Raspberry Pi",
"Sensor cluster"
],
"baseAddress": "humidity-device-service:59990"
]
headers = 'content-type': 'application/json'
response = requests.post(url, data=json.dumps(payload), headers=headers, verify=False)
print("Result of create device service: %s with message %s" % (response, response.text))
def addNewDevice():
url = 'http://%s:59881/api/v2/device' % edgex_ip
# new payload v2 body.
payload = [
"apiVersion": "v2",
"device":
"name": "Temp_and_Humidity_sensor_cluster_01",
"description": "Raspberry Pi sensor cluster",
"adminState": "UNLOCKED",
"operatingState": "UP",
"labels": [
"camera","counter"
],
"location": "lat:45.45,long:45.45",
"serviceName": "sensor cluster control device service",
"profileName": "Manage sensor clusters delivering humidity and temperature readings",
"protocols":
"camera-protocol":
"camera-address": "localhost",
"port": "1234",
"unitID": "1"
,
"notify": False
]
headers = 'content-type': 'application/json'
response = requests.post(url, data=json.dumps(payload), headers=headers, verify=False)
print("Result of creating the device: %s with message %s" % (response, response.text))
3,swagger HTTP API
上面的接口信息的具体参数,都可以通过下面的API 接口文档找到。
有标准的SDK 可以使用,同时也可以有 API 接口文档可以使用。
core-data event 事件
https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-data/2.0.0
core-command 设备控制
https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-command/2.0.0
core-metadata 设备,服务注册
https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-metadata/2.0.0
其他 API 说明
https://docs.edgexfoundry.org/2.0/api/Ch-APIIntroduction/
4,总结
edgex 是个不错的和设备打交道的服务。
要同时慢慢的也有越来越多的设备厂商开始支持,加入到edgex中了。
edgex设计的比较好的就是 profile 定义设备的类型、参数。
可以把不同的设备的定义都规定好。大家都按照一套标准去执行。
一直有个想法,edgex 可以在边缘端做服务器,其实也可以在云端做服务。
然后暴露相关的服务,都是可以的。
可以修改下做成个 IOT的设备云服务。
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/120615729
以上是关于EdgeX: 使用最新的 edgex2.0干啥,硬件是一方面,重要的另外一方面是软件的匹配,也要做好相关的开发,新的API V2接口学习,实现设备的注册服务的注册的主要内容,如果未能解决你的问题,请参考以下文章
EdgeX: 使用最新的 edgex2.0 在 ubuntu 上进行部署,替换私服地址nexus3.edgexfoundry.org 成 docker官方地址,解决下载问题。有了新UI界面
EdgeX(15) :在EdgeX环境下配置eKuiper规则引擎服务,配置规则处理device-virtual发送的数据,并转发给HTTP服务
Androidgradlegradle Offline work是干啥的?
EdgeX(10) :Xubuntu-22 linux系统安装EdgeX2.1相关服务,服务都比较小,下载启动速度快。