Custom Component for Homeassistant Providing Travel Time Information using openrouteservice.org
https://github.com/eifinger/open_route_service.git
waze_travel_time as it needs an account to generate an API keysensor | Show travel time between two places. |
configuration.yaml).custom_components directory (folder) there, you need to create it.custom_components directory (folder) create a new folder called open_route_service.custom_components/open_route_service/ directory (folder) in this repository.text
custom_components/open_route_service/__init__.py
custom_components/open_route_service/manifest.json
custom_components/open_route_service/sensor.py
`
## Setup
You need to register for an API key [here](https://openrouteservice.org/dev).
Openroute Services offers a Free Plan which includes 1.000 free requests (For reverse geocoding) per day. More information can be found [here](https://openrouteservice.org/plans/)
## Configuration
To enable the sensor, add the following lines to your configuration.yaml file:
`yaml
# 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 |
| ------------------------------------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| apikey | string | true | Your application's API key (get one by following the instructions above). |
| originlatitude | 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 |
| originlongitude | 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 |
| destinationlatitude | 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 |
| destinationlongitude | 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 |
| originentityid | 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 |
| destinationentityid | 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. |
| routemode | string | false | You can choose between: fastest, or shortest. The default is fastest |
| unitsystem | string | false | You can choose between metric or imperial. Defaults to metric or imperial based on the Home Assistant configuration. |
| scaninterval | integer | false | "Defines the update interval of the sensor in seconds. Defaults to 300 (5 minutes)." |
| originreversegeocodeenabled | boolean | false | "Whether to resolve the origin coordinates to a geolocation(address). Defaults to true." |
| destinationreversegeocodeenabled | boolean | false | "Whether to resolve the destination coordinates to a geolocation(address). Defaults to true." |
## Dynamic Configuration
Tracking can be set up to track entities of type devicetracker, 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.
`yaml
# 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.updateentity 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:
`yaml
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
``
