Skip to content

Commit 49fc0c4

Browse files
authored
Update configs, add, additional helper fields (#1752)
* chore: update configs, add, additional helper fields * chore: change configs for bacnet and socket * chore: update opcua config * refactor: remove extra lines from opcua config, add whitespace at the end * refactor: remove some extra fields, change mqtt timeseries data types * Updated default configuration for BACnet
1 parent 957b757 commit 49fc0c4

6 files changed

Lines changed: 345 additions & 240 deletions

File tree

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,51 @@
11
{
22
"application": {
33
"objectName": "TB_gateway",
4-
"address": "0.0.0.0",
4+
"host": "0.0.0.0",
5+
"port": "47808",
6+
"mask": "24",
57
"objectIdentifier": 599,
68
"maxApduLengthAccepted": 1476,
79
"segmentationSupported": "segmentedBoth",
810
"vendorIdentifier": 15,
9-
"deviceDiscoveryTimeoutInSec": 5
11+
"deviceDiscoveryTimeoutInSec": 5,
12+
"networkNumber": 0,
13+
"networkNumberQuality": "configured",
14+
"devicesDiscoverPeriodSeconds": 30
1015
},
1116
"devices": [
1217
{
1318
"deviceInfo": {
14-
"deviceNameExpressionSource": "expression",
1519
"deviceNameExpression": "BACnet Device ${objectName}",
16-
"deviceProfileExpressionSource": "constant",
17-
"deviceProfileExpression": "default"
20+
"deviceProfileExpression": "default",
21+
"deviceNameExpressionSource": "expression",
22+
"deviceProfileExpressionSource": "constant"
1823
},
19-
"address": "192.168.1.160:49644",
24+
"altResponsesAddresses": [],
25+
"host": "192.168.2.110",
26+
"port": "47808",
27+
"mask": "24",
2028
"pollPeriod": 10000,
2129
"attributes": [
2230
{
2331
"key": "temperature",
2432
"objectType": "analogInput",
25-
"objectId": "0",
33+
"objectId": "1",
2634
"propertyId": "presentValue"
2735
}
2836
],
2937
"timeseries": [
3038
{
31-
"key": "water_temp",
32-
"objectType": "analogInput",
39+
"key": "state",
40+
"objectType": "binaryValue",
3341
"objectId": "1",
3442
"propertyId": "presentValue"
35-
},
36-
{
37-
"key": "temp_outdoor",
38-
"objectType": "analogInput",
39-
"objectId": "2",
40-
"propertyId": "presentValue"
4143
}
4244
],
4345
"attributeUpdates": [
4446
{
4547
"key": "brightness",
46-
"objectType": "analogInput",
48+
"objectType": "analogOutput",
4749
"objectId": "1",
4850
"propertyId": "presentValue"
4951
}
@@ -61,11 +63,11 @@
6163
"method": "get_state",
6264
"requestType": "readProperty",
6365
"requestTimeout": 10000,
64-
"objectType": "analogInput",
65-
"objectId": "0",
66+
"objectType": "analogOutput",
67+
"objectId": "2",
6668
"propertyId": "presentValue"
6769
}
6870
]
6971
}
7072
]
71-
}
73+
}

thingsboard_gateway/config/modbus.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@
77
"type": "tcp",
88
"method": "socket",
99
"timeout": 35,
10+
"baudrate": 19200,
11+
"stopbits": 1,
12+
"bytesize": 8,
13+
"parity": "N",
14+
"strict": true,
15+
"repack": false,
16+
"delay_between_requests_ms": 0,
1017
"byteOrder": "LITTLE",
1118
"wordOrder": "LITTLE",
1219
"retries": true,
Lines changed: 111 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,31 @@
11
{
22
"broker": {
3-
"name": "Default Local Broker",
43
"host": "127.0.0.1",
54
"port": 1883,
65
"clientId": "ThingsBoard_gateway",
76
"version": 5,
87
"maxMessageNumberPerWorker": 10,
98
"maxNumberOfWorkers": 100,
109
"sendDataOnlyOnChange": false,
10+
"cleanSession": true,
11+
"cleanStart": true,
12+
"sessionExpiryInterval": 0,
1113
"security": {
12-
"type": "basic",
13-
"username": "user",
14-
"password": "password"
14+
"type": "anonymous"
1515
}
1616
},
1717
"mapping": [
1818
{
1919
"topicFilter": "sensor/data",
20+
"subscriptionQos": 1,
2021
"converter": {
2122
"type": "json",
22-
"deviceNameJsonExpression": "${serialNumber}",
23-
"deviceTypeJsonExpression": "${sensorType}",
23+
"deviceInfo": {
24+
"deviceNameExpressionSource": "message",
25+
"deviceNameExpression": "${serialNumber}",
26+
"deviceProfileExpressionSource": "message",
27+
"deviceProfileExpression": "${sensorType}"
28+
},
2429
"sendDataOnlyOnChange": false,
2530
"timeout": 60000,
2631
"attributes": [
@@ -56,10 +61,15 @@
5661
},
5762
{
5863
"topicFilter": "sensor/+/data",
64+
"subscriptionQos": 1,
5965
"converter": {
6066
"type": "json",
61-
"deviceNameTopicExpression": "(?<=sensor\/)(.*?)(?=\/data)",
62-
"deviceTypeTopicExpression": "Thermometer",
67+
"deviceInfo": {
68+
"deviceNameExpressionSource": "topic",
69+
"deviceNameExpression": "(?<=sensor/)(.*?)(?=/data)",
70+
"deviceProfileExpressionSource": "constant",
71+
"deviceProfileExpression": "Thermometer"
72+
},
6373
"sendDataOnlyOnChange": false,
6474
"timeout": 60000,
6575
"attributes": [
@@ -76,7 +86,7 @@
7686
"value": "${temp}"
7787
},
7888
{
79-
"type": "double",
89+
"type": "string",
8090
"key": "humidity",
8191
"value": "${hum}"
8292
}
@@ -85,10 +95,15 @@
8595
},
8696
{
8797
"topicFilter": "sensor/raw_data",
98+
"subscriptionQos": 1,
8899
"converter": {
89100
"type": "bytes",
90-
"deviceNameExpression": "[0:4]",
91-
"deviceTypeExpression": "default",
101+
"deviceInfo": {
102+
"deviceNameExpressionSource": "message",
103+
"deviceNameExpression": "[0:4]",
104+
"deviceProfileExpressionSource": "constant",
105+
"deviceProfileExpression": "default"
106+
},
92107
"sendDataOnlyOnChange": false,
93108
"timeout": 60000,
94109
"attributes": [
@@ -109,71 +124,97 @@
109124
},
110125
{
111126
"topicFilter": "custom/sensors/+",
127+
"subscriptionQos": 1,
112128
"converter": {
113129
"type": "custom",
114130
"extension": "CustomMqttUplinkConverter",
115131
"cached": true,
116-
"extension-config": {
117-
"temperatureBytes": 2,
118-
"humidityBytes": 2,
119-
"batteryLevelBytes": 1
132+
"extensionConfig": {
133+
"temperature": 2,
134+
"humidity": 2,
135+
"batteryLevel": 1
120136
}
121137
}
122138
}
123139
],
124-
"connectRequests": [
125-
{
126-
"topicFilter": "sensor/connect",
127-
"deviceNameJsonExpression": "${serialNumber}"
128-
},
129-
{
130-
"topicFilter": "sensor/+/connect",
131-
"deviceNameTopicExpression": "(?<=sensor\/)(.*?)(?=\/connect)"
132-
}
133-
],
134-
"disconnectRequests": [
135-
{
136-
"topicFilter": "sensor/disconnect",
137-
"deviceNameJsonExpression": "${serialNumber}"
138-
},
139-
{
140-
"topicFilter": "sensor/+/disconnect",
141-
"deviceNameTopicExpression": "(?<=sensor\/)(.*?)(?=\/disconnect)"
142-
}
143-
],
144-
"attributeRequests": [
145-
{
146-
"retain": false,
147-
"topicFilter": "v1/devices/me/attributes/request",
148-
"deviceNameJsonExpression": "${serialNumber}",
149-
"attributeNameJsonExpression": "${versionAttribute}, ${pduAttribute}",
150-
"topicExpression": "devices/${deviceName}/attrs",
151-
"valueExpression": "${attributeKey}: ${attributeValue}"
152-
}
153-
],
154-
"attributeUpdates": [
155-
{
156-
"retain": true,
157-
"deviceNameFilter": ".*",
158-
"attributeFilter": "firmwareVersion",
159-
"topicExpression": "sensor/${deviceName}/${attributeKey}",
160-
"valueExpression": "{\"${attributeKey}\":\"${attributeValue}\"}"
161-
}
162-
],
163-
"serverSideRpc": [
164-
{
165-
"deviceNameFilter": ".*",
166-
"methodFilter": "echo",
167-
"requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
168-
"responseTopicExpression": "sensor/${deviceName}/response/${methodName}/${requestId}",
169-
"responseTimeout": 10000,
170-
"valueExpression": "${params}"
171-
},
172-
{
173-
"deviceNameFilter": ".*",
174-
"methodFilter": "no-reply",
175-
"requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
176-
"valueExpression": "${params}"
177-
}
178-
]
140+
"requestsMapping": {
141+
"connectRequests": [
142+
{
143+
"topicFilter": "sensor/connect",
144+
"deviceInfo": {
145+
"deviceNameExpressionSource": "message",
146+
"deviceNameExpression": "${serialNumber}",
147+
"deviceProfileExpressionSource": "constant",
148+
"deviceProfileExpression": "Thermometer"
149+
}
150+
},
151+
{
152+
"topicFilter": "sensor/+/connect",
153+
"deviceInfo": {
154+
"deviceNameExpressionSource": "topic",
155+
"deviceNameExpression": "(?<=sensor/)(.*?)(?=/connect)",
156+
"deviceProfileExpressionSource": "constant",
157+
"deviceProfileExpression": "Thermometer"
158+
}
159+
}
160+
],
161+
"disconnectRequests": [
162+
{
163+
"topicFilter": "sensor/disconnect",
164+
"deviceInfo": {
165+
"deviceNameExpressionSource": "message",
166+
"deviceNameExpression": "${serialNumber}"
167+
}
168+
},
169+
{
170+
"topicFilter": "sensor/+/disconnect",
171+
"deviceInfo": {
172+
"deviceNameExpressionSource": "topic",
173+
"deviceNameExpression": "(?<=sensor/)(.*?)(?=/connect)"
174+
}
175+
}
176+
],
177+
"attributeRequests": [
178+
{
179+
"retain": false,
180+
"topicFilter": "v1/devices/me/attributes/request",
181+
"deviceInfo": {
182+
"deviceNameExpressionSource": "message",
183+
"deviceNameExpression": "${serialNumber}"
184+
},
185+
"attributeNameExpressionSource": "message",
186+
"attributeNameExpression": "${versionAttribute}, ${pduAttribute}",
187+
"topicExpression": "devices/${deviceName}/attrs",
188+
"valueExpression": "${attributeKey}: ${attributeValue}"
189+
}
190+
],
191+
"attributeUpdates": [
192+
{
193+
"retain": true,
194+
"deviceNameFilter": ".*",
195+
"attributeFilter": "firmwareVersion",
196+
"topicExpression": "sensor/${deviceName}/${attributeKey}",
197+
"valueExpression": "{\"${attributeKey}\":\"${attributeValue}\"}"
198+
}
199+
],
200+
"serverSideRpc": [
201+
{
202+
"type": "twoWay",
203+
"deviceNameFilter": ".*",
204+
"methodFilter": "echo",
205+
"requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
206+
"responseTopicExpression": "sensor/${deviceName}/response/${methodName}/${requestId}",
207+
"responseTopicQoS": 1,
208+
"responseTimeout": 10000,
209+
"valueExpression": "${params}"
210+
},
211+
{
212+
"type": "oneWay",
213+
"deviceNameFilter": ".*",
214+
"methodFilter": "no-reply",
215+
"requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
216+
"valueExpression": "${params}"
217+
}
218+
]
219+
}
179220
}

0 commit comments

Comments
 (0)