前言
相关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
博主地址是:https://blog.csdn.net/freewebsys
|