OBD2 Parameter Attributes

Cameron5 years ago

Hello

My Ulbotech OBD device is configured to send through 5 specific parameters. I can see the Hex string of this payload coming through as "command Result" events, but the parameters are not being parsed or recorded against the device. Does Traccar support Parsing OBD Service 01 PIDs (Like RPM and Coolant Temp.), or is this perhaps something that needs to be done with Computed Attributes (or maybe just not supported)? An example of the data coming through the event is:

{result: "STT:242;0,MGR:4056637,ADC:0;15.16;1;28.77;2;3.55,GFS:0;0,OBD:31053F410C12AE310D00312F9941313328,FUL:4069,EGT:970456,EVT:F0;200"}

Thanks in advance.

Ernesto Vallejo5 years ago

Is it possible to provide more information? ie: route report, database base with positions of this device.

Cameron5 years ago

Hi.

When I request positions from the API, I get an array of objects like this:

[{
        "id": 63811553,
        "attributes": {
            "hdop": 163,
            "ignition": true,
            "status": 578,
            "odometer": 4080053,
            "power": 12.80029296875,
            "temp1": 40.361328125,
            "battery": 3.8037109375,
            "geofenceIn": 0,
            "geofenceAlarm": 0,
            "coolantTemp": 101,
            "rpm": 0,
            "obdSpeed": 0,
            "fuel": 51,
            "clearedDistance": 13125,
            "event": 1,
            "distance": 6.37,
            "totalDistance": 15838761.51,
            "motion": false,
            "hours": 2442000
        },
        "deviceId": 10372,
        "type": null,
        "protocol": "ulbotech",
        "serverTime": "2019-03-20T10:43:48.000+0000",
        "deviceTime": "2019-03-20T00:43:07.000+0000",
        "fixTime": "2019-03-20T00:43:07.000+0000",
        "outdated": false,
        "valid": true,
        "latitude": xxx.xxx,
        "longitude": xxx.xxx,
        "altitude": 0,
        "speed": 0,
        "course": 0,
        "address": null,
        "accuracy": 0,
        "network": null
    },
    {
        "id": 63811615,
        "attributes": {
            "hdop": 93,
            "ignition": true,
            "status": 578,
            "odometer": 4080054,
            "power": 12.90771484375,
            "temp1": 40.361328125,
            "battery": 3.8037109375,
            "geofenceIn": 0,
            "geofenceAlarm": 0,
            "event": 1,
            "distance": 2.65,
            "totalDistance": 15838764.16,
            "motion": false,
            "hours": 2452000
        },
        "deviceId": 10372,
        "type": null,
        "protocol": "ulbotech",
        "serverTime": "2019-03-20T10:43:58.000+0000",
        "deviceTime": "2019-03-20T00:43:17.000+0000",
        "fixTime": "2019-03-20T00:43:17.000+0000",
        "outdated": false,
        "valid": true,
        "latitude": xxx.xxx,
        "longitude": xxx.xxx,
        "altitude": 0,
        "speed": 0,
        "course": 0,
        "address": null,
        "accuracy": 0,
        "network": null
    }]

The odd thing about this is that some of the Position objects contain the Parameters I want, and some don't, but this is the only way I've found to get these attributes. Is there a way to have the device model's attributes store the latest value for a given field, such as engineRpm?

It is the same with the route report, some of the objects contain the data, a lot of them don't, but I am unsure how to simply fetch the latest values of these attributes.

Any help would be much appreciated, thanks!

Anton Tananaev5 years ago

You can use attributes copying if you want to keep some attributes from older reports.