The Geotab (DeviceStatusInfo) feed type in ArcGIS Velocity periodically polls a Geotab DeviceStatusInfo database table for real-time automatic vehicle location (AVL) data by sending an HTTP request to a specified URL. This feed type differs from the Geotab (LogRecord) feed type by requesting data from the Geotab database's DeviceStatusInfo table. The DeviceStatusInfo table contains more attributes than the LogRecord table, but is generally updated less frequently than the Geotab database's LogRecord table.
Examples
The following are example use cases for the feed:
- A city wants to monitor their fleet of snowplow trucks during the winter season. The Geotab (DeviceStatusInfo) feed is used to observe the real-time location of each truck and gather other ancillary information such as whether the plow blade is engaged or whether the bin storing deicing salt is at a low threshold.
- A waste management company wants to improve the efficiency of their fleet through data-driven analysis. The Geotab (DeviceStatusInfo) feed is used to collect each vehicle's location, driver, load weight, idle time, and fuel level in real time.
Usage notes
Keep the following in mind when working with the feed:
- The Geotab (DeviceStatusInfo) feed constructs events using the data from tables in the Geotab database. For example, location, speed, and bearing attributes are retrieved from the DeviceStatusInfo table. The device table is used to retrieve additional attribute information such as the VIN, vehicle license plate, and so on. Group names and group IDs associated with each device are obtained from the group table. For more information, refer to the Schema section below.
- The data from Geotab is highly normalized, and the Geotab (DeviceStatusInfo) feed follows a fixed schema by default. The feed automatically sets the location, date and time, and track ID. The track ID field can be changed.
- Optional diagnostic IDs can be provided to enhance the schema with additional attribute values. For example, if a vehicle is equipped with a sensor to monitor total fuel usage, providing the DiagnosticDeviceTotalFuelId diagnostic ID causes the feed to collect this specific information in a new attribute field. Diagnostic fields are reflected in the feed schema.
- One or more optional groups can be specified to limit the type of device data that is retrieved from the Geotab (DeviceStatusInfo) feed.
- Additional fields with driver information can be appended to the default schema of the Geotab (DeviceStatusInfo) feed. Only choose fields that have values provided by Geotab. If a field is unknown, the value may be null, an empty string, or contain a predefined string by Geotab. For more information, refer to the Additional fields section below.
- The recommended interval to poll for Geotab data is every 30 seconds or greater.
Schema
The following table lists the schema attributes and their data types for the feed:
| Attribute | Data type |
|---|---|
| device_id | String |
| vehicleName | String |
| vehicleSerialNumber | String |
| vin | String |
| vehicleEngineType | String |
| vehicleLicensePlate | String |
| vehicleLicenseState | String |
| deviceType | String |
| dateTime | String |
| latitude | Float64 |
| longitude | Float64 |
| speed | Float64 |
| bearing | Int32 |
| groupIds | String |
| groupNames | String |
Additional fields
The following are the additional attribute fields and their data types for the feed:
| Attribute | Data type |
|---|---|
firstName | String |
lastName | String |
phoneNumber | String |
phoneNumberExtension | String |
employeeNo | String |
id | String |
name | String |
companyName | String |
Parameters
| Parameter | Description | Data type |
|---|---|---|
| URL | The URL used to authenticate Geotab, for example, https://[myserver].geotab.com/apiv1. | String |
| Database | The name of the Geotab database. | String |
| Username | The username used to authenticate Geotab. | String |
| Password | The password used to authenticate Geotab. | Password |
| Groups (optional) | Optional group names used to filter for entity members. For example, street sweeping vehicles may belong to a group named Sweepers. Only vehicles that are entity members of the Sweepers group are retrieved for real-time processing. Note:Specify multiple groups using a semicolon (;). | String |
| Diagnostic IDs (optional) | Optional diagnostic IDs used to obtain diagnostic values. For example, DiagnosticDeviceTotalFuelId is the diagnostic ID used to retrieve total fuel consumption from vehicles equipped with the correct sensor. A diagnostic value field and a diagnostic time stamp field are added for each diagnostic ID. Note:Specify multiple diagnostic IDs using a semicolon (;). | String |
| Additional fields | A list of additional fields that can be used to enrich the feed schema with driver information. Note:Only choose fields that have values provided by Geotab. Otherwise, the resulting value of the fields may be null, be an empty string, or contain a predefined string by Geotab. | String |
| Additional logging (optional) | Specifies whether logging for raw HTTP requests and responses issued by Velocity to the Geotab API are turned on. Note:Turn this parameter on for troubleshooting purposes and turn it off when troubleshooting is complete. Once turned on, start the feed; the debug level logs are available on the feed logs page. Contact Esri Technical Support for help with troubleshooting if necessary. | Boolean |
Considerations and limitations
Consider the following when using the feed:
- At each polling interval, Geotab provides the data it compiled at the last poll; data compiled after that poll is not included. Provided data may be older than the time stamp of the last poll made by the feed.
- Diagnostic values update at a rate different than other device data. For this reason, each diagnostic field is accompanied by a time stamp field. Consider whether diagnostic values are temporally relevant to the latest time stamp of the other data retrieved from Geotab.
- When specifying unique diagnostic IDs, you can use groups to filter the type of devices coming from Geotab first. Each diagnostic ID enhances the schema for all the vehicles from Geotab. For example, a diagnostic that captures the status of a snowplow blade is appended to all vehicle types from Geotab, not just the snowplow trucks. For vehicles without the sensor, the diagnostic value is null. If a snowplow group is defined first, only snowplow trucks are retrieved from Geotab and include the custom diagnostic field for the relevant snowplow blade status.
- Additional fields only have values if Geotab provides them in the database. Consider the information reported by your organization's Geotab devices before choosing any additional fields. Fields without a value are null, an empty string, or contain a predefined string from Geotab.
- If the user credentials are invalid, the feed retries the connection up to three times. Invalid credentials errors appear in the logs. The feed automatically attempts to restart after a delay, based on the configured recurrence schedule.