azure-iot-hub - OPC Publisher - 发布时从节点过滤值
问题描述
我最近在我们的一台机器上设置了 IoT Edge,并安装了 OPC Publisher 并将其连接到我们的一台 opc-ua 服务器。我让它正确地发布节点并将它们路由到 iot 集线器,这太棒了。虽然我现在遇到了以下问题:
这就是我们的节点结构看起来像 atm 的样子。(匿名):
我们要求 OPC Publisher 发布 OPC-UA_COMM.OUT 节点。发布节点配置如下所示:
[
{
"EndpointUrl": "{opcuaConnectionString}",
...
"OpcNodes": [
{
"Id": "ns=3;s=\"OPC-UA_COMM\".\"OUT\"",
"DisplayName": "OUT Message",
"SkipFirst": false
}
]
}
]
问题是,温度值非常嘈杂,目前并不相关。我希望能够将其过滤掉,这样我就不会在每次该值更改时都发布节点。
我已阅读文档,似乎可以配置发送的 json 消息的内容。似乎可以过滤掉特定的值,尽管我还没有成功。我创建了以下配置文件:
{
"Defaults": {
"EndpointUrl": {
"Publish": true,
"Pattern": "(.*)",
"Name": "EndpointUrl"
},
"NodeId": {
"Publish": true,
"Name": "NodeId"
},
"MonitoredItem": {
"Flat": true,
"ApplicationUri": {
"Publish": true,
"Name": "ApplicationUri"
},
"DisplayName": {
"Publish": true,
"Name": "DisplayName"
}
},
"Value": {
"SourceTimestamp": {
"Publish": true,
"Name": "SourceTimestamp"
},
"StatusCode": {
"Publish": false,
"Name": "StatusCode"
},
"Status": {
"Publish": false,
"Name": "Status"
},
"Value:": {
"Temperature": {
"Publish": false,
"Name": "Temperature"
},
"DoorsOpen": {
"Publish": true,
"Name": "DoorsOpen"
}
}
}
}
}
我将它添加到容器中,验证文件在那里,并确保发布者模块以正确的设置启动。这是容器创建选项的样子:
{
"Hostname": "publisher",
"Cmd": [
"OPCPublisher",
"--tc=/appdata/nodeConfiguration.json",
"--pf=/appdata/opcPublisher.json",
"--tp=/appdata/pki/trusted",
"--rp=/appdata/pki/rejected",
"--ap=/appdata/pki/own",
"--ip=/appdata/pki/issuer",
"--aa",
"--to",
"--di=600"
],
"HostConfig": {
"Binds": [
"/etc/iotedge/storage/publisher:/appdata"
]
}
}
但是,它仍然在发布!我真的很感激一些帮助。
我也明白我可以把它分成多个不同的发布。我尝试过这样的事情:
[
{
"EndpointUrl": "{opcuaConnectionString}",
...
"OpcNodes": [
{
"Id": "ns=3;s=\"OPC-UA_COMM\".\"OUT\".\"DoorsOpen\"",
"DisplayName": "Doors open",
"SkipFirst": false
},
{
"Id": "ns=3;s=\"OPC-UA_COMM\".\"OUT\".\"Speed\"",
"DisplayName": "Speed",
"SkipFirst": false
},
{
"Id": "ns=3;s=\"OPC-UA_COMM\".\"OUT\".\"Weight\"",
"DisplayName": "Weight",
"SkipFirst": false
}
...
]
}
]
它有效!我可以控制哪些子值到达。但是它们每个都是分开的,我更愿意将它们全部放在一个节点中。
解决方案
推荐阅读
- reinforcement-learning - 简而言之,强化学习中的策略梯度算法中的目标网络是什么?
- java - maven 上的线程“main”java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper 中的异常
- ios - SwiftUI 关闭导航项
- java - HTTP POST 方法说在 Android 上找不到 404 文件异常
- javascript - 在向 div 添加/删除背景图像时应用某种动画
- asp.net - 基于 IIS 的 Web 服务
- python - 如何使用具有大量文本文档的 Gensim/Word2Vec/Doc2Vec 进行监督学习?
- wifi - 我可以为 700 MHz Verizon 4G LTE 数据使用额定频率为 2.4 GHz 的抛物面天线吗?
- html5-video - 如何(或可能)将 AVC 编解码器配置文件和级别转换为 MIME 编解码器定义?
- javascript - 多重计算无法正常工作