🚗 Trips
The Trips
module offers a robust set of functionalities designed for efficient trip data management. This encompasses a range of operations from fetching trip details, updating trip
1. Get started
If you haven't already, install the Damoov-Admin SDK for Python.
pip install damoov-admin
Begin by importing the User management module and finalizing the authentication process.
from damoov_admin import trips
email="[email protected]"
password="YOUR PASSWORD"
trips_mngt = trips.DamoovAuth(email=email, password=password)
2. Methods
The Trips
module offers a robust set of functionalities tailored for managing and fetching trip-related data. Here's a comprehensive breakdown of its methods and their usage:
Syntaxes:
sort_by
: Sort parameter (e.g., "StartDateUtc, StartDateUtc_Desc").unit_system
: Measurement unit system (e.g., "Si" or "Imperial")user_id
: ID of the user/ DeviceToken whose trips are to be fetched.start_date
,end_date
: Date range for the trip in formatYYYY-MM-DDTHH:MM:SS
start_date_timestamp_sec
,end_date_timestamp_sec
: Alternative date range using timestamps.include_details
: Include detailed trip data, like start, end address, transportation type, and tagsinclude_statistics
: Include statistics related to the trip.include_scores
: Include scores associated with the trip.include_waypoints
: Include per-second GPS waypoints of the trip.include_events
: Include events or incidents associated with the trip.include_related
: Include related trip data, including URI for future get requests.tags_included
: Tags to be included in the filtering.tags_excluded
: Tags to be excluded in the filtering.limit
: Limit the number of trips returned.
get_list_trips
get_list_trips
Fetches the list of trips for a specific user, with various optional filters to refine the result set.
- Parameters:
user_id
: Requiredstart_date
,end_date
: Required.start_date_timestamp_sec
,end_date_timestamp_sec
include_details
include_statistics
include_scores
include_related
tags_included
tags_excluded
:unit_system
sort_by
limit
Example:
Request
user_trip_details=trip.get_list_trips(
user_id='user_id',
# start_date='2023-09-09',
# end_date='2023-10-10',
start_date_timestamp_sec=1696704060,
end_date_timestamp_sec=1696713840,
sort_by='StartDateUtc',
include_details=False,
include_statistics=False,
include_scores=False,
include_related=True,
tags_included=None,
tags_excluded=None,
locale="EN",
unit_system="Imperial",
# limit=3
)
Response
{
"Result": {
"Trips": [
{
"Id": "trip_id",
"DateUpdated": "2022-09-10T12:29:25+00:00",
"Identifiers": {
"CompanyId": "company_id",
"ApplicationId": "application_id",
"InstanceId": "instance_id",
"UserId": "user_id"
},
"Data": {
"StartDate": "2022-09-10T12:20:25+00:00",
"EndDate": "2022-09-10T12:29:25+00:00",
"UnitSystem": "Imperial",
"Addresses": {
"Start": {
"Full": "102 Beach St, San Francisco, CA 94133-1101, United States",
"Parts": {
"CountryCode": "USA",
"Country": "United States",
"County": "San Francisco",
"State": "California",
"City": "San Francisco",
"District": "Fisherman's Wharf",
"Street": "Beach St",
"House": "102"
}
},
"End": {
"Full": "E Beach, San Francisco, CA 94129, United States",
"Parts": {
"CountryCode": "USA",
"Country": "United States",
"County": "San Francisco",
"State": "California",
"City": "San Francisco",
"District": "Presidio",
"Street": "E Beach"
}
}
},
"TransportType": {
"Current": "OriginalDriver",
"ConfirmNeeded": false
},
"Tags": []
},
"Statistics": {
"Mileage": 4.143953744168464,
"DurationMinutes": 17.183333333333334,
"AccelerationsCount": 0.0,
"BrakingsCount": 0.0,
"CorneringsCount": 1.0,
"TotalSpeedingMileage": 0.0,
"MidSpeedingMileage": 0.0,
"HighSpeedingMileage": 0.0,
"PhoneUsageDurationMinutes": 11.989366666666665,
"PhoneUsageMileage": 3.5955679069262994,
"PhoneUsageWithSpeedingDurationMinutes": 0.0,
"PhoneUsageWithSpeedingMileage": 0.0,
"DayHours": 17.233333587646484,
"RushHours": 0.0,
"NightHours": 0.0,
"AverageSpeed": 11.416121791501084,
"MaxSpeed": 19.790273235742262
},
"Scores": {
"Safety": 97.0,
"Acceleration": 100.0,
"Braking": 100.0,
"Cornering": 56.0,
"Speeding": 100.0,
"PhoneUsage": 40.0,
"Eco": 77.0,
"EcoBrakes": 100.0,
"EcoDepreciation": 25.0,
"EcoFuel": 100.0,
"EcoTyres": 100.0
},
"Related": [
{
"Type": "Waypoints",
"Uri": "https://api.telematicssdk.com/trips/get/admin/v1/trip_id/waypoints"
},
{
"Type": "Trip",
"Uri": "https://api.telematicssdk.com/trips/get/v1/trip_id"
}
]
}
]
},
"Status": 200,
"Title": "",
"Errors": []
}
get_trip_details
get_trip_details
Retrieves waypoint details of a specific trip by its unique ID.
- Parameters:
trip_id
: (Required)user_id
: (Required)include_details
: Include detailed trip data.include_statistics
: Include statistics related to the trip.include_scores
: Include scores associated with the trip.include_waypoints
: Include waypoints of the trip.include_events
: Include events associated with the trip.include_related
: Include related trip data.locale
: Locale settings (e.g., "EN").unit_system
: Measurement unit system (e.g., "Si" or "Imperial").
Example:
Request
trip_details = trip.get_trip_details(
trip_id="trip_id",
user_id="user_id",
include_details=True,
include_statistics=True,
include_scores=True,
include_waypoints=True,
include_events=True,
include_related=True,
locale="EN",
unit_system="Imperial"
)
Response
{
"Result": {
"Trip": {
"Id": "trip_id",
"DateUpdated": "2023-10-11T07:34:31+00:00",
"Identifiers": {
"CompanyId": "company_id",
"ApplicationId": "application_id",
"InstanceId": "instance_id",
"UserId": "user_id"
},
"Data": {
"StartDate": "2023-10-09T08:19:23+01:00",
"StartDateUnixMilliseconds": 1696835963000,
"EndDate": "2023-10-09T08:36:44+01:00",
"EndDateUnixMilliseconds": 1696837004000,
"UnitSystem": "Imperial",
"Addresses": {
"Start": {
"Full": "Avenida Marechal Gomes da Costa 17, 1800-253 Lisbon, Portugal",
"Parts": {
"CountryCode": "PRT",
"Country": "Portugal",
"County": "Lisbon",
"City": "Lisbon",
"District": "Lisbon",
"Street": "Avenida Marechal Gomes da Costa",
"House": "17"
}
},
"End": {
"Full": "Rua do Arco do Cego 177, 1000-020 Lisbon, Portugal",
"Parts": {
"CountryCode": "PRT",
"Country": "Portugal",
"County": "Lisbon",
"City": "Lisbon",
"District": "Lisbon",
"Street": "Rua do Arco do Cego",
"House": "177"
}
}
},
"TransportType": {
"Current": "OriginalDriver",
"ConfirmNeeded": true
},
"Tags": []
},
"Statistics": {
"Mileage": 3.111590678261461,
"DurationMinutes": 17.35,
"AccelerationsCount": 1.0,
"BrakingsCount": 0.0,
"CorneringsCount": 0.0,
"TotalSpeedingMileage": 0.021650736620396006,
"MidSpeedingMileage": 0.06389130188092126,
"HighSpeedingMileage": 0.0,
"PhoneUsageDurationMinutes": 0.0,
"PhoneUsageMileage": 0.0,
"PhoneUsageWithSpeedingDurationMinutes": 0.0,
"PhoneUsageWithSpeedingMileage": 0.0,
"DayHours": 0.0,
"RushHours": 17.270366668701172,
"NightHours": 0.0,
"AverageSpeed": 20.500146429454027,
"MaxSpeed": 47.186389247420195
},
"Scores": {
"Safety": 79.0,
"Acceleration": 53.0,
"Braking": 100.0,
"Cornering": 100.0,
"Speeding": 48.0,
"PhoneUsage": 100.0,
"Eco": 91.0,
"EcoBrakes": 100.0,
"EcoDepreciation": 75.0,
"EcoFuel": 98.94907,
"EcoTyres": 100.0
},
"Waypoints": [
{
"Index": 0,
"SecSinceStart": 0,
"PointDateUnixMilliseconds": 0,
"Lat": 0,
"Long": 0,
"Speed": 0,
"SpeedLimit": 0,
"Speeding":status ,
"PhoneUsage": true
}
],
"Events": [
{
"Id": "",
"Type": "Acceleration",
"Date": "2023-10-09T08:22:10+01:00",
"Lat": 38.74998,
"Long": -9.10616,
"Value": 3.353325366973877
}
],
"Related": [
{
"Type": "Waypoints",
"Uri": "https://api.telematicssdk.com/trips/get/admin/v1/300665e1-e415-46ab-892f-1cd25afd650d/waypoints"
}
]
}
},
"Status": 200,
"Title": "",
"Errors": []
}
3. Note
- In all methods, if there's a
HTTPError
, the error will be printed, and the response will be handled accordingly. - For daily statistics, scores, and list of trips, the methods automatically modify the requested period to 14 days if the original request spans a period longer than that.
4. Response
The TripsResponse
processes and provides easy access to specific parts of the data returned by the Trips
module. Here's a detailed breakdown of its properties:
result
result
Returns the 'Result' part from the response.
Return Type: dict
trips
trips
Provides the list of 'Trip' items from the response. If the result is not a list, an empty list is returned.
Return Type: list
statistics
statistics
Provides the 'Statistics' information for a trip.
Return Type: dict
details
details
Returns the detailed data for the 'Trip'.
Return Type: dict
transporttype
transporttype
Provides the 'TransportType' information for a trip.
Return Type: dict
scores
scores
Returns the 'Scores' for the trip.
Return Type: dict
events
events
Provides the 'Events' for the trip.
Return Type: dict
waypoints
waypoints
Returns the 'Waypoints' for the trip.
Return Type: dict
paging_info
paging_info
Provides the paging information if available.
Return Type: dict
status
status
Returns the 'Status' from the response.
Return Type: dict
datetime
datetime
Provides the 'Data' (usually representing datetime) from the response.
Return Type: dict
trip_id
trip_id
Returns the unique ID for the trip.
Return Type: Depends on data (e.g., str
, None
)
5. Usage
After making calls to the Trips
module to retrieve trip-related data, you can pass the returned data to TripsResponse
to further process and easily access specific parts of the response.
# Import and initial initialization
from damoov_admin import trips
email="[email protected]"
password="YOUR PASSWORD"
trips_mngt = trips.DamoovAuth(email=email, password=password)
# Method to get a list of trips for selected period of time
user_trip_details=trip.get_list_trips(
user_id='7623f515-b867-4325-bc63-3a0248d4f774',
# start_date='2023-09-09',
# end_date='2023-10-10',
start_date_timestamp_sec=1696704060,
end_date_timestamp_sec=1696713840,
sort_by='StartDateUtc',
tags_included=['Business'],
include_details=True,
include_statistics=True,
include_scores=True,
include_related=True,
locale="EN",
unit_system="Imperial",
limit=1
)
print('status: ', user_trip_details.status)
print('details: ', user_trip_details.details)
print('trips: ',user_trip_details.trips)
print('trip id: ',user_trip_details.trip_id)
print('date and time: ', user_trip_details.datetime)
print(user_trip_details.paging_info)
print(user_trip_details) # prints full response in JSON format
# Methods to fetch trip details, including waypoints, for a specific trip ID.
trip_details = trip_mngt.get_trip_details(
trip_id="trip_id",
user_id="user_id",
include_details=True,
include_statistics=True,
include_scores=True,
include_waypoints=True,
include_events=True,
include_related=True,
locale="EN",
unit_system="Imperial"
)
print(trip_details) # prints full response in JSON format
print('Status: ', trip_details.status)
print('Result: ',trip_details.result)
print('Statistics: ',trip_details.statistics)
print('Scores: ',trip_details.scores)
print('Events: ',trip_details.events)
print('Waypoints: ',trip_details.waypoints)
print('Details: ',trip_details.details)
print('Transportation mode: ',trip_details.transporttype)
Updated about 1 year ago