本指南将帮助您熟悉ThingsBoard IoT Gateway的SNMP连接器配置。
请使用通用配置指南启用此连接器。
该连接器的用途是从SNMP管理器对象获取数据并向其写入数据。
当您的网络中有SNMP管理器并希望将数据推送至ThingsBoard时,此连接器非常有用。
下面将介绍连接器配置文件的内容。
连接器配置:snmp.json
连接器配置是一个JSON文件,包含有关SNMP管理器及数据处理方式的信息。
让我们通过以下示例来了解配置文件的格式。
SNMP连接器配置文件示例。
以下示例将连接到snmp.live.gambitcommunications.com上的管理器。
然后,连接器将尝试使用attributes和telemetry部分的配置从对象中读取数据。更多信息请参阅下方说明。
通用部分
配置的通用部分包含“devices”列表。每个条目将作为一个独立设备进行处理。 设备条目的主要配置应包含以下参数:
| 参数 | 默认值 | 描述 |
|---|---|---|
| deviceName | SNMP router | ThingsBoard中的设备名称。 |
| deviceType | snmp | ThingsBoard中的设备类型。 |
| ip | snmp.live.gambitcommunications.com | SNMP管理器的IP或主机名。 |
| port | 161 | SNMP端口。 |
| pollPeriod | 5000 | 数据轮询周期。 |
| community | public | 社区类型,public或private。 |
Attributes部分
此配置部分包含一组用于数据处理配置的对象。此处配置的对象将作为设备属性进行处理。
默认情况下,网关使用上行转换器将从SNMP管理器接收到的数据发送至ThingsBoard,但也可以使用自定义转换器。
注意:配置对象中的某些配置参数取决于所使用的方法。您可以在此处了解更多关于各方法的特定配置参数
通用配置参数如下:
| 参数 | 默认值 | 描述 |
|---|---|---|
| key | ReceivedFromGet | ThingsBoard中设备的属性键。 |
| method | get | 数据处理方法。支持的方法请参阅此处。 |
| oid | 1.3.6.1.2.1.1.1.0 | 管理器对象标识符。 |
配置部分条目示例:
1
2
3
4
5
{
"key": "ReceivedFromGet",
"method": "get",
"oid": "1.3.6.1.2.1.1.1.0"
}
Telemetry部分
此配置部分包含一组用于数据处理配置的对象。此处配置的对象将作为设备遥测数据进行处理。
默认情况下,网关使用上行转换器将从SNMP管理器接收到的数据发送至ThingsBoard,但也可以使用自定义转换器。
注意:配置对象中的某些配置参数取决于所使用的方法。您可以在此处了解更多关于各方法的特定配置参数
通用配置参数如下:
| 参数 | 默认值 | 描述 |
|---|---|---|
| key | ReceivedFromTable | ThingsBoard中设备的遥测数据键。 |
| method | table | 数据处理方法。支持的方法请参阅此处。 |
| oid | 1.3.6.1.2.1.1 | 管理器对象标识符。 |
配置部分条目示例:
1
2
3
4
5
{
"key": "ReceivedFromTable",
"method": "table",
"oid": "1.3.6.1.2.1.1"
}
属性更新请求部分
此部分的配置是可选的。
ThingsBoard允许提供设备属性并从设备应用程序中获取其中一些属性。
您可以将其视为设备的远程配置。您的设备可以从ThingsBoard请求共享属性。
详情请参阅用户指南。
“attributeUpdateRequests“配置允许配置相应属性请求和响应消息的格式。
| 参数 | 默认值 | 描述 |
|---|---|---|
| attributeFilter | dataToSet | 共享属性名称。 |
| method | set | 数据处理方法。支持的方法请参阅此处。 |
| oid | 1.3.6.1.2.1.1 | 管理器对象标识符。 |
attributeUpdates部分如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"attributeUpdateRequests": [
{
"attributeFilter": "dataToSet",
"method": "set",
"oid": "1.3.6.1.2.1.1.1.0"
},
{
"attributeFilter": "dataToMultiSet",
"method": "multiset",
"mappings": {
"1.2.3": "10",
"2.3.4": "${attribute}"
}
}
]
注意:在此部分中,value参数中的”${attribute}”将被替换为共享属性值。
服务端RPC部分
ThingsBoard允许直接或通过网关向连接至ThingsBoard的设备发送RPC命令。
此部分提供的配置用于通过网关从ThingsBoard向设备发送RPC请求。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
"serverSideRpcRequests": [
{
"requestFilter": "setData",
"method": "set",
"oid": "1.3.6.1.2.1.1.1.0"
},
{
"requestFilter": "multiSetData",
"method": "multiset"
},
{
"requestFilter": "getData",
"method": "get",
"oid": "1.3.6.1.2.1.1.1.0"
},
{
"requestFilter": "runBulkWalk",
"method": "bulkwalk",
"oid": [
"1.3.6.1.2.1.1.1.0",
"1.3.6.1.2.1.1.2.0"
]
}
]
},
{
"deviceName": "SNMP router",
"deviceType": "snmp",
"ip": "127.0.0.1",
"pollPeriod": 5000,
"community": "public",
"converter": "CustomSNMPConverter",
"attributes": [
{
"key": "ReceivedFromGetWithCustomConverter",
"method": "get",
"oid": "1.3.6.1.2.1.1.1.0"
}
],
"telemetry": [
{
"key": "ReceivedFromTableWithCustomConverter",
"method": "table",
"oid": "1.3.6.1.2.1.1.1.0"
}
]
}
]
}
支持的方法及其配置
支持的方法如下:
-
get
特定配置参数:
oid -对象标识符数组。method -方法名称。
timeout -请求超时时间(秒)。
配置示例:
1 2 3 4 5 6
{ "key": "ReceivedFromGet", "method": "get", "oid": "1.3.6.1.2.1.1.1.0", "timeout": 6 }
-
multiget
特定配置参数:
oid -对象标识符数组。timeout -请求超时时间(秒)。
method -方法名称。
配置示例:
1 2 3 4 5 6 7 8 9
{ "key": "ReceivedFromMultiGet", "method": "multiget", "oid": [ "1.3.6.1.2.1.1.1.0", "1.3.6.1.2.1.1.2.0" ], "timeout": 6 }
-
getnext
特定配置参数:
oid -对象标识符数组。timeout -请求超时时间(秒)。
method -方法名称。
配置示例:
1 2 3 4 5 6
{ "key": "ReceivedFromGetNext", "method": "getnext", "oid": "1.3.6.1.2.1.1.1.0", "timeout": 6 }
-
multiwalk
特定配置参数:
oid -对象标识符数组。method -方法名称。
配置示例:
1 2 3 4 5 6 7 8
{ "key": "ReceivedFromMultiWalk", "method": "multiwalk", "oid": [ "1.3.6.1.2.1.1.1.0", "1.3.6.0.1.2.1" ] }
-
bulkwalk
特定配置参数:
oid -对象标识符数组。method -方法名称。
配置示例:
1 2 3 4 5 6 7 8
{ "key": "ReceivedFromBulkWalk", "method": "bulkwalk", "oid": [ "1.3.6.1.2.1.1.1.0", "1.3.6.1.2.1.1.2.0" ] }
-
bulkget
特定配置参数:
scalardOid -非重复对象标识符数组。repeatingOid -最大重复对象标识符数组。
maxListSize -返回列表的最大大小。
配置示例:
1 2 3 4 5 6 7 8 9 10 11 12 13
{ "key": "ReceivedFromBulkGet", "method": "bulkget", "scalarOid": [ "1.3.6.1.2.1.1.1.0", "1.3.6.1.2.1.1.2.0" ], "repeatingOid": [ "1.3.6.1.2.1.1.1.0", "1.3.6.1.2.1.1.2.0" ], "maxListSize": 10 }
-
walk
特定配置参数:
community -管理器对象社区类型。配置示例:
1 2 3 4 5 6
{ "key": "ReceivedFromWalk", "community": "private", "method": "walk", "oid": "1.3.6.1.2.1.1.1.0" }
-
table
配置示例:
1 2 3 4 5
{ "key": "ReceivedFromTable", "method": "table", "oid": "1.3.6.1.2.1.1" }
-
set 此方法用于通过对象标识符向单个对象写入数据。
配置示例:
1 2 3 4 5
{ "attributeFilter": "dataToSet", "method": "set", "oid": "1.3.6.1.2.1.1.1.0" }
-
multiset 此方法用于通过对象标识符向多个对象写入数据。
特定配置参数:
mapping -包含对象标识符和值的键值对。配置示例:
1 2 3 4 5 6 7 8
{ "attributeFilter": "dataToMultiSet", "method": "multiset", "mappings": { "1.2.3": "10", "2.3.4": "${attribute}" } }
下一步
浏览与ThingsBoard主要功能相关的指南: