Giter VIP home page Giter VIP logo

open_route_service's Introduction

open_route_service

GitHub Release GitHub Activity hacs_badge License

Project Maintenance BuyMeCoffee

Community Forum

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.

example

Installation

HACS

The easiest way to add this to your Homeassistant installation is using HACS. And then follow the instructions under Configuration below.

Manual

  1. Using the tool of choice open the directory (folder) for your HA configuration (where you find configuration.yaml).
  2. If you do not have a custom_components directory (folder) there, you need to create it.
  3. In the custom_components directory (folder) create a new folder called open_route_service.
  4. Download all the files from the custom_components/open_route_service/ directory (folder) in this repository.
  5. Place the files you downloaded in the new directory (folder) you created.
  6. Follow the instructions under Configuration below.

Using your HA configuration directory (folder) as a starting point you should now also have this:

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.

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

Buy Me A Coffee

open_route_service's People

Contributors

eifinger avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.