Skip to content

Fleet Telematics API

FleetTelematicsApi

A python interface into the HERE Fleet Telematics API

__init__(self, api_key=None, timeout=None) special

Returns a FleetTelematicsApi instance.

Parameters:

Name Type Description Default
api_key str

API key taken from HERE Developer Portal.

None
timeout int

Timeout limit for requests.

None

Returns:

Type Description

FleetTelematicsApi instance.

Source code in herepy/fleet_telematics_api.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
def __init__(self,
             api_key: str=None,
             timeout: int=None):
    """Returns a FleetTelematicsApi instance.
    Args:
      api_key (str):
        API key taken from HERE Developer Portal.
      timeout (int):
        Timeout limit for requests.
    Returns:
      FleetTelematicsApi instance.
    """

    super(FleetTelematicsApi, self).__init__(api_key, timeout)
    self._base_url = 'https://wse.ls.hereapi.com/2/'

find_pickups(self, modes, start, departure, capacity, vehicle_cost, driver_cost, max_detour, rest_times, intermediate_destinations, end)

Finds cheaper route by picking up some additional goods along the route.

Parameters:

Name Type Description Default
modes List[herepy.here_enum.RouteMode]

Route modes.

required
start str

Starting point. str.format('{0};{1},{2}', text, latitude, longitude)

required
departure str

Time when travel is expected to start. The format is as xsd type xs:datetime [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]

required
capacity int

Amount of payload the vehicle including trailers can carry, volume and/or weight. No unit is specified, but the value must be in the same unit as the waypoint pickup load values.

required
vehicle_cost float

Cost per kilometer. No currency is specified, but the value must be in the same currency as the driverCost and the waypoint drop-off values.

required
driver_cost int

Cost per hour. No currency is specified, but the value must be in the same currency as the vehicleCost and the waypoint drop-off values.

required
max_detour int

Overall maximum additional seconds spent to pickup and drop-off items along the route, compared to the time without picking up anything.

required
rest_times str

The parameter restTimes can be set to disabled rest times are not considered. This is equivalent to omitting the parameter restTimes default Use internal default. The default are simplified European rules: After 4.5h driving 45min rest and after 9h driving 11h rest. durations:... and serviceTimes:... You can provide values for driving and rest periods and define if service times at waypoints can be used for resting. You must provide both parameters.

required
intermediate_destinations List[str]

Intermediate destinations, at least one. If no end parameter is provided, one of these values is selected as end of the sequence. str.format('{0},{1};{2}:{3},value:{4}', latitude, longitude, param_type, item, value) or str.format('{0},{1};{2}:{3}', latitude, longitude, param_type, item)

required
end str

End of the journey. str.format('{0};{1},{2}', text, latitude, longitude)

required

Returns:

Type Description
Optional[herepy.models.WaypointSequenceResponse]

WaypointSequenceResponse

Source code in herepy/fleet_telematics_api.py
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
def find_pickups(self,
        modes: List[RouteMode],
        start: str,
        departure: str,
        capacity: int,
        vehicle_cost: float,
        driver_cost: int,
        max_detour: int,
        rest_times: str,
        intermediate_destinations: List[str],
        end: str) -> Optional[WaypointSequenceResponse]:
    """Finds cheaper route by picking up some additional goods along the route.
    Args:
      modes (List[RouteMode]):
        Route modes.
      start (str):
        Starting point. `str.format('{0};{1},{2}', text, latitude, longitude)`
      departure (str):
        Time when travel is expected to start. The format is as xsd type xs:datetime `[-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]`
      capacity (int):
        Amount of payload the vehicle including trailers can carry, volume and/or weight.
        No unit is specified, but the value must be in the same unit as the waypoint pickup load values.
      vehicle_cost (float):
        Cost per kilometer. No currency is specified, but the value must be in the same currency as the driverCost and
        the waypoint drop-off values.
      driver_cost (int):
        Cost per hour. No currency is specified, but the value must be in the same currency as the vehicleCost and
        the waypoint drop-off values.
      max_detour (int):
        Overall maximum additional seconds spent to pickup and drop-off items along the route, compared to the time
        without picking up anything.
      rest_times (str):
        The parameter restTimes can be set to
        `disabled`
           rest times are not considered. This is equivalent to omitting the parameter restTimes
        `default`
           Use internal default. The default are simplified European rules: After 4.5h driving 45min rest and after 9h driving 11h rest.
        `durations:...` and `serviceTimes:...`
           You can provide values for driving and rest periods and define if service times at waypoints can be used for resting. You must provide both parameters.
      intermediate_destinations (List[DestinationPickupParam]):
        Intermediate destinations, at least one. If no end parameter is provided, one of these values is
        selected as end of the sequence.
        `str.format('{0},{1};{2}:{3},value:{4}', latitude,
              longitude, param_type,
              item, value)`
        or
        `str.format('{0},{1};{2}:{3}', latitude, longitude,
              param_type, item)`
      end (str):
        End of the journey. `str.format('{0};{1},{2}', text, latitude, longitude)`
    Returns:
      WaypointSequenceResponse
    Raises:
      HEREError
    """

    data = self.__create_find_pickup_parameters(modes=modes,
                start=start,
                departure=departure,
                capacity=capacity,
                vehicle_cost=vehicle_cost,
                driver_cost=driver_cost,
                max_detour=max_detour,
                rest_times=rest_times,
                intermediate_destinations=intermediate_destinations,
                end=end)
    response = self.__get(self._base_url + 'findpickups.json', data, WaypointSequenceResponse)
    return response

find_sequence(self, start, departure, intermediate_destinations, end, modes)

Finds time-optimized waypoint sequence route.

Parameters:

Name Type Description Default
start str

Starting point. str.format('{0};{1},{2}', text, latitude, longitude)

required
departure str

Time when travel is expected to start. The format is as xsd type xs:datetime [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]

required
intermediate_destinations List[str]

Intermediate points between start and end points. List of str.format('{0};{1},{2}', text, latitude, longitude).

required
end str

End point. str.format('{0};{1},{2}', text, latitude, longitude)

required
modes List[herepy.here_enum.RouteMode]

Route modes.

required

Returns:

Type Description
Optional[herepy.models.WaypointSequenceResponse]

WaypointSequenceResponse

Source code in herepy/fleet_telematics_api.py
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
def find_sequence(self,
        start: str,
        departure: str,
        intermediate_destinations: List[str],
        end: str,
        modes: List[RouteMode]) -> Optional[WaypointSequenceResponse]:
    """Finds time-optimized waypoint sequence route.
    Args:
      start (str):
        Starting point. `str.format('{0};{1},{2}', text, latitude, longitude)`
      departure (str):
        Time when travel is expected to start. The format is as xsd type xs:datetime `[-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]`
      intermediate_destinations (List[str]):
        Intermediate points between start and end points. List of `str.format('{0};{1},{2}', text, latitude, longitude)`.
      end (str):
        End point. `str.format('{0};{1},{2}', text, latitude, longitude)`
      modes (List[RouteMode]):
        Route modes.
    Returns:
      WaypointSequenceResponse
    Raises:
      HEREError
    """

    data = self.__create_find_sequence_parameters(start=start,
                                                  departure=departure,
                                                  intermediate_destinations=intermediate_destinations,
                                                  end=end,
                                                  modes=modes)
    response = self.__get(self._base_url + 'findsequence.json', data, WaypointSequenceResponse)
    return response

UnauthorizedError

Unauthorized Error Type. This error is returned if the specified token was invalid or no contract could be found for this token.

error_from_fleet_telematics_service_error(json_data)

Return the correct subclass for sequence errors

Source code in herepy/fleet_telematics_api.py
219
220
221
222
223
224
225
226
227
228
229
def error_from_fleet_telematics_service_error(json_data: dict):
    """Return the correct subclass for sequence errors"""

    if 'Type' in json_data:
        error_type = json_data['error']
        message = json_data['error_description']

        if error_type == 'Unauthorized':
            return UnauthorizedError(message)
    # pylint: disable=W0212
    return HEREError('Error occured on ' + sys._getframe(1).f_code.co_name)