Telemetry concept
Several different kinds of telemetry are available varying by vehicle type. For traditional busses, FMS is the standard that defines what data about the vehicle is published on the FMS bus and further on by ITxPT FMStoIP service.
In addition, electrical and hydrogen buses as well as trams have proprietary data not captured by FMS.
Ruter desires to follow a data centric approach to telemetry data, and supports a current initiative in ITxPT to utilize self-explaining MQTT topics for individual data types like “odometer”, “doorsignal” etc.
As an intermediate step, our current telemetry topic generalizes all such data as telemetry defined by unique, 32 bit, identifiers. Data caught from the FMS bus retain their PGN numbers as the last 16 bits of the ID. Data not coming from the FMS bus follow a separate addressing scheme, with addresses allocated by Ruter on request. Please note that PTOs are free to decide if they want to use FMS or a non-FMS data source to provide the data.
The identifiers are constructed this way:
Bytes | Description |
1 | Source identifier (0x00 FMS, 0x01 Non-FMS) |
2-4 | Source-specific id, e.g. FMS PGNs |
All FMS PGNs become "0000" + 4-digit hex PGN, i.e. “0000FE4E” for PGN FE4E..
FMS standard data identifiers in use
ID | Subid | Name | Unit/Value | Recommended refresh interval | Example payload | Remarks
|
0000FE4E |
| Door Control 1 |
| On change |
|
|
0000FDA5 |
| Door Control 2 |
| On change |
|
|
0000FEC1 |
| High Resolution Vehicle Distance | Meter | 1/sec |
|
|
0000FEF5 | 171 | Ambient Air Temperature | Celsius | 1/min |
|
|
0000FEF2 | 183 | Fuel Rate | L/hour | 1/min |
|
|
0000FEF2 | 184 | Instantaneous Fuel Economy | Km/L | 1/min |
|
|
0000FEFC | 96 | Fuel Level 1 | % | 1/min |
|
|
0000FEEE | 110 | Engine Temperature | Celsius | 1/min |
|
|
0000F004 | 190 | Engine Speed | rpm | 1/min |
|
|
Non-FMS standard data identifiers in use
Note: IDs in the range 00010000-0001FFFF are non-standard FMS IDs in use for TaaS.
ID | Subid | Name | Unit/Value | Recommended refresh interval | Example payload | Remarks
|
0001FF25 (HVMS1_ZR) | 10002 | High Voltage System |
| On change |
|
|
0001FF25 | 10003 | Wall Charger connected |
| On change |
|
|
0001FF25 | 10004 | Fast Charger connected |
| On change |
|
|
0001FF25 | 10005 | Charging Active |
| On change |
|
|
0001FF26 (HVMS2_ZR) | 10006 | SOC traction battery/Battery State of Charge | % | 1/min |
|
|
0001FF26 | 10007 | Battery Voltage | Volt | 1/min |
|
|
0001FF26 | 10008 | Battery Current | Ampere | 1/min |
|
|
0001FF64 (ENERGY_INFO) | 10009 | Average Energy Consumption | Wh/km | 1/min |
|
|
0001FF10 (HVAC1_FMS) | 10010 | Preheater Status |
| On change |
|
|
0001FF10 | 10011 | Heatpump compressor Status |
| On change |
|
|
0001FF10 | 10012 | Heatpump compressor Slave Status: |
| On change |
|
|
0001FF10 | 10013 | Indoor temperature front part bus/Inside Temperature Roof Master | Celsius | 1/min |
|
|
0001FF10 | 10014 | Indoor temperature rear part bus/Inside Temperature Roof Slave: |
|
|
|
|
01000001 |
| All doors closed | True/false | onChange |
|
|
01000002 |
| Temperature inside front | float | 1/min |
|
|
01000003 |
| Temperature inside middle | float | 1/min |
|
|
01000004 |
| Temperature inside back | float | 1/min |
|
|
01000005 |
| SOC | float | 1/min |
|
|
01000006 |
| Transmission mode | combustion/electric | onChange |
| Intended for hybrid vehicles |
01000007 |
| Windscreen wiper active | True/false | onChange |
| Taken to represent a measurement of the ground truth binary rainfall state, given that it is a better predictor of the binary rainfall state than radar- or gage-based measurements |
01000008 |
| Accelerometry |
| 1/min |
|
|
| xmin | Min x value last minute | g |
|
|
|
| xmax | Max x value last minute | g |
|
|
|
| xavg | Average x value last minute | g |
|
|
|
| ymin | Min y value last minute | g |
|
|
|
| ymax | Max y value last minute | g |
|
|
|
| yavg | Average y value last minute | g |
|
|
|
| zmin | Min z value last minute | g |
|
|
|
| zmax | Max z value last minute | g |
|
|
|
| zavg | Average z value last minute | g |
|
|
|
01000009 |
| Outdoor temperature | float | 1/min |
|
|
0100000A |
| Energy consumption last minute | float | 1/min |
|
|
Telemetric data in the vehicle are often refreshed at a very high rate and are originally intended to be consumed directly in the vehicle. Ruter’s enterprise architecture requires the same data to be consumed by Ruter’s back office. This requirement, along with constrains related to mobile networks, doesn’t allow us to use the same refresh rates as are ideal onboard vehicles. We will come back to our recommendations for data updates below.
FMS specific issues
To utilize FMS data in Ruter’s architecture, Operators can either set up an FMS2IP service or use any other means to subscribe to the FMS bus data. The data must then be published – along with any non-FMS data, to the vehicle’s MQTT broker either onChange or at a specific interval, which should be agreed with Ruter. Note that there must be one separate MQTT message per FMS PGN.
Guidelines for telemetry data update intervals over MQTT
The following table specifies recommended data update frequencies for specific data categories, regardless of their origin in the vehicle.
Data | Frequency | Notes |
Door status | onChange |
|
Stop signal | onChange | Currently as separate topic |
Odometer | Every second |
|
Temparatures | Every 10 minutes |
|
State of Charge (SOC) | 1/min |
|
Transmission mode | onChange |
|
MQTT JSON structure
Fields
Telemetry
Name | Type | Description |
eventTimestamp | String | ISO 8601, UTC |
Id | String | Eight digit hex as defined above |
payloads | Array of Payload | If FMS data or accelerometry, one payload per SPN. Else, one payload |
Payload
Name | Type | Description |
subid | string | Optional. Only to be used for SPN |
name | string | Optional |
unit | string | Optional |
value | any |
|
Examples
Temperature (non-FMS):
{
"eventTimestamp": "2019-10-31T12:45:50Z",
"id": "01000004",
"payloads":
[
{
"name": "Temperature inside back",
"value": "17.2"
}
]
}
Speed (FMS-based with two SPNs)
{
"eventTimestamp": "2017-10-31T12:45:50Z",
"id": "0000FEF1",
"payloads":
[
{
"subid": 84,
"name": "Wheel-Based Vehicle Speed",
"unit": "km/h",
"value": 55.3
},
{
"subid": 597,
"name": "Wheel-Based Vehicle Speed",
"value": "released"
}
]
}
Accelerometry (Non-FMS)
{
"eventTimestamp": "2019-10-31T12:45:50Z",
"id": "01000008",
"payloads":
[
{
“name": "xmin",
"value": 0.1
},
{
“name": "xmax",
"value": 0.2
},
{
“name": "xavg",
"value": 0.15
},
{
“name": "ymin",
"value": -0.1
},
{
“name": "ymax,
"value": 0.2
},
{
“name": "yavg",
"value": 0.1
},
{
“name": "zmin",
"value": 0.01
},
{
“name": "zmax",
"value": 0.03
},
{
“name": "zavg",
"value": 0.02
}
]
}