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

博主地址是:https://blog.csdn.net/freewebsys

以上是关于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相关服务,服务都比较小,下载启动速度快。

EdgeX(10) :Xubuntu-22 linux系统安装EdgeX2.1相关服务,服务都比较小,下载启动速度快。

EdgeX(10) :Xubuntu-22 linux系统安装EdgeX2.1相关服务,服务都比较小,下载启动速度快。