Someone found openrouteservice.org in this post.
I added it as a custom component for you to use.
To make things easier you can install it as a custom repo using HACS
You can find all the information and the code itself here:
Homeassistant Custom Component sensor provides travel time from openrouteservices.org.
This component will set up the following platforms.
Platform | Description |
---|---|
sensor |
Show travel time between two places. |
Setup
You need to register for an API key here.
Openroute Services offers a Free Plan which includes 1.000 free requests (For reverse geocoding) per day. More information can be found here
Configuration
To enable the sensor, add the following lines to your configuration.yaml
file:
# Example entry for configuration.yaml
sensor:
- platform: open_route_service
api_key: "YOUR_API_KEY"
origin_latitude: "51.222975"
origin_longitude: "9.267577"
destination_latitude: "51.257430"
destination_longitude: "9.335892"
Configuration options
Key | Type | Required | Description |
---|---|---|---|
api_key |
string |
true |
Your application’s API key (get one by following the instructions above). |
origin_latitude |
string |
true |
The starting latitude for calculating travel distance and time. Must be used in combination with origin_longitude. Cannot be used in combination with origin_entity_id |
origin_longitude |
string |
true |
The starting longitude for calculating travel distance and time. Must be used in combination with origin_latitude. Cannot be used in combination with origin_entity_id |
destination_latitude |
string |
true |
The finishing latitude for calculating travel distance and time. Must be used in combination with destination_longitude. Cannot be used in combination with destination_entity_id |
destination_longitude |
string |
true |
The finishing longitude for calculating travel distance and time. Must be used in combination with destination_latitude. Cannot be used in combination with destination_entity_id |
origin_entity_id |
string |
true |
The entity_id holding the starting point for calculating travel distance and time. Cannot be used in combination with origin_latitude / origin_longitude |
destination_entity_id |
string |
true |
The entity_id holding the finishing point for calculating travel distance and time. Cannot be used in combination with destination_latitude / destination_longitude |
name |
string |
false |
A name to display on the sensor. The default is “HERE Travel Time”. |
mode |
string |
false |
You can choose between: cycling-regular , driving-car or foot-walking . The default is driving-car . |
route_mode |
string |
false |
You can choose between: fastest , or shortest . The default is fastest
|
unit_system |
string |
false |
You can choose between metric or imperial . Defaults to metric or imperial based on the Home Assistant configuration. |
scan_interval |
integer |
false |
“Defines the update interval of the sensor in seconds. Defaults to 300 (5 minutes).” |
Dynamic Configuration
Tracking can be set up to track entities of type device_tracker
, zone
, sensor
and person
. If an entity is placed in the origin or destination then every 5 minutes when the platform updates it will use the latest location of that entity.
# Example entry for configuration.yaml
sensor:
# Tracking entity to entity
- platform: open_route_service
api_key: "YOUR_API_KEY"
name: Phone To Home
origin_entity_id: device_tracker.mobile_phone
destination_entity_id: zone.home
Entity Tracking
-
device_tracker
- If the state is a zone, then the zone location will be used
- If the state is not a zone, it will look for the longitude and latitude attributes
-
zone
- Uses the longitude and latitude attributes
-
sensor
- If the state is a zone, then will use the zone location
- All other states will be passed directly into the HERE API
- This includes all valid locations listed in the Configuration Variables
Updating sensors on-demand using Automation
You can also use the homeassistant.update_entity
service to update the sensor on-demand. For example, if you want to update sensor.morning_commute
every 2 minutes on weekday mornings, you can use the following automation:
automation:
- id: update_morning_commute_sensor
alias: "Commute - Update morning commute sensor"
initial_state: 'on'
trigger:
- platform: time_pattern
minutes: '/2'
condition:
- condition: time
after: '08:00:00'
before: '11:00:00'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: homeassistant.update_entity
entity_id: sensor.morning_commute