1{
2    "interface": "socketcan",
3    "channel": "vcan0",
4    "backend": {
5      "fd": true
6    },
7    "reconnectPeriod": 5,
8    "devices": [
9      {
10        "name": "Car",
11        "sendDataOnlyOnChange": false,
12        "enableUnknownRpc": true,
13        "strictEval": false,
14        "attributes": [
15          {
16            "key": "isDriverDoorOpened",
17            "nodeId": 41,
18            "command": "2:2:big:8717",
19            "value": "4:1:int",
20            "expression": "bool(value & 0b00000100)",
21            "polling": {
22              "type": "once",
23              "dataInHex": "AB CD AB CD"
24            }
25          }
26        ],
27        "timeseries": [
28          {
29            "key": "rpm",
30            "nodeId": 1918,
31            "isExtendedId": true,
32            "command": "2:2:big:48059",
33            "value": "4:2:big:int",
34            "expression": "value / 4",
35            "polling": {
36              "type": "always",
37              "period": 5,
38              "dataInHex": "aaaa bbbb aaaa bbbb"
39            }
40          },
41          {
42            "key": "milliage",
43            "nodeId": 1918,
44            "isExtendedId": true,
45            "value": "4:2:little:int",
46            "expression": "value * 10",
47            "polling": {
48              "type": "always",
49              "period": 30,
50              "dataInHex": "aa bb cc dd ee ff aa bb"
51            }
52          }
53        ],
54        "attributeUpdates": [
55          {
56            "attributeOnThingsBoard": "softwareVersion",
57            "nodeId": 64,
58            "isExtendedId": true,
59            "dataLength": 4,
60            "dataExpression": "value + 5",
61            "dataByteorder": "little"
62          }
63        ],
64        "serverSideRpc": [
65          {
66            "method": "sendSameData",
67            "nodeId": 4,
68            "isExtendedId": true,
69            "isFd": true,
70            "bitrateSwitch": true,
71            "dataInHex": "aa bb cc dd ee ff    aa bb aa bb cc d ee ff"
72          },
73          {
74            "method": "setLightLevel",
75            "nodeId": 5,
76            "dataLength": 2,
77            "dataByteorder": "little",
78            "dataBefore": "00AA"
79          },
80          {
81            "method": "setSpeed",
82            "nodeId": 16,
83            "dataAfter": "0102",
84            "dataExpression": "userSpeed if maxAllowedSpeed > userSpeed else maxAllowedSpeed"
85          }
86        ]
87      }
88    ]
89  }