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 }