home-assistant.github.io/components/sensor.google_travel_time/index.html
2017-01-15 17:48:30 +00:00

268 lines
No EOL
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Google Maps Travel Time - Home Assistant</title>
<meta name="author" content="Home Assistant">
<meta name="description" content="Instructions on how to add Google Maps travel time to Home Assistant.">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/components/sensor.google_travel_time/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Google Maps Travel Time">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/components/sensor.google_travel_time/">
<meta property="og:type" content="article">
<meta property="og:description" content="Instructions on how to add Google Maps travel time to Home Assistant.">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:title" content="Google Maps Travel Time">
<meta name="twitter:description" content="Instructions on how to add Google Maps travel time to Home Assistant.">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/ecosystem/">Ecosystem</a></li>
<li><a href="/cookbook/">Examples</a></li>
<li><a href="/developers/">Developers</a></li>
<li><a href="/blog/">Blog</a></li>
<li><a href="/help/">Need help?</a></li>
</ul>
</nav>
</div>
</div>
</div>
</header>
<div class="grid-wrapper">
<div class="grid grid-center">
<div class="grid__item two-thirds lap-one-whole palm-one-whole">
<article class="page">
<header>
<h1 class="title indent">
Google Maps Travel Time
</h1>
</header>
<hr class="divider">
<p>Sensor to provide travel time from the <a href="https://developers.google.com/maps/documentation/distance-matrix/">Google Distance Matrix API</a>.</p>
<p>You need to register for an API key by following the instructions <a href="https://github.com/googlemaps/google-maps-services-python#api-keys">here</a>. You only need to turn on the Distance Matrix API.</p>
<p>A free API Key allows 2500 requests per day. The sensor will update the travel time every 5 minutes.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example entry for configuration.yaml</span>
<span class="s">sensor</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">google_travel_time</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">XXXX_XXXXX_XXXXX</span>
<span class="s">origin</span><span class="pi">:</span> <span class="s">Trondheim, Norway</span>
<span class="s">destination</span><span class="pi">:</span> <span class="s">Paris, France</span>
</code></pre>
</div>
<p>Configuration variables:</p>
<ul>
<li><strong>api_key</strong> (<em>Required</em>): Your applications API key (get one by following the instructions above). This key identifies your application for purposes of quota management.</li>
<li><strong>origin</strong> (<em>Required</em>): The starting point for calculating travel distance and time. You can supply one or more locations separated by the pipe character, in the form of an address, latitude/longitude coordinates, or a <a href="https://developers.google.com/places/place-id">Google place ID</a>. When specifying the location using a Google place ID, the ID must be prefixed with <code class="highlighter-rouge">place_id:</code>.</li>
<li><strong>destination</strong> (<em>Required</em>): One or more locations to use as the finishing point for calculating travel distance and time. The options for the destinations parameter are the same as for the origins parameter, described above.</li>
<li><strong>name</strong> (<em>Optional</em>): A name to display on the sensor. The default is “Google Travel Time - <Transit Mode="">" where transit mode is the mode set in options for the sensor (if no mode is set, the default is driving).</Transit></li>
<li><strong>options</strong> (<em>Optional</em>): A dictionary containing parameters to add to all requests to the Distance Matrix API. A full listing of available options can be found <a href="https://developers.google.com/maps/documentation/distance-matrix/intro#RequestParameters">here</a>.
<ul>
<li><strong>departure_time</strong> (<em>Optional</em>): Can be <code class="highlighter-rouge">now</code>, a Unix timestamp, or a 24 hour time string like <code class="highlighter-rouge">08:00:00</code>. If you provide a time string, it will be combined with the current date to get travel time for that moment.</li>
<li><strong>arrival_time</strong> (<em>Optional</em>): See notes above for <code class="highlighter-rouge">departure_time</code>. <code class="highlighter-rouge">arrival_time</code> can not be <code class="highlighter-rouge">now</code>, only a Unix timestamp or time string. You can not provide both <code class="highlighter-rouge">departure_time</code> and <code class="highlighter-rouge">arrival_time</code>. If you do provide both, <code class="highlighter-rouge">arrival_time</code> will be removed from the request.</li>
<li><strong>units</strong> (<em>Optional</em>): Set the unit for the sensor in metric or imperial, otherwise the default unit the same as the unit set in <code class="highlighter-rouge">unit_system:</code>.</li>
</ul>
</li>
</ul>
<h5><a class="title-link" name="dynamic-configuration" href="#dynamic-configuration"></a> Dynamic Configuration</h5>
<p>Tracking can be setup to track entities of type device_tracker, zone, and sensor. If an entity is placed in the origin or destination then every 5 minutes when the component updates it will use the latest location of that entity.</p>
<div class="language-yaml highlighter-rouge"><pre class="highlight"><code><span class="c1"># Example entry for configuration.yaml</span>
<span class="s">sensor</span><span class="pi">:</span>
<span class="c1"># Tracking entity to entity</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">google_travel_time</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Phone To Home</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">XXXX_XXXXX_XXXXX</span>
<span class="s">origin</span><span class="pi">:</span> <span class="s">device_tracker.mobile_phone</span>
<span class="s">destination</span><span class="pi">:</span> <span class="s">zone.home</span>
<span class="c1"># Tracking entity to zone friendly name</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">google_travel_time</span>
<span class="s">name</span><span class="pi">:</span> <span class="s">Home To Eddie's House</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">XXXX_XXXXX_XXXXX</span>
<span class="s">origin</span><span class="pi">:</span> <span class="s">zone.home</span>
<span class="s">destination</span><span class="pi">:</span> <span class="s">Eddies House</span> <span class="c1"># Friendly name of a zone</span>
<span class="c1"># Tracking entity in imperial unit</span>
<span class="pi">-</span> <span class="s">platform</span><span class="pi">:</span> <span class="s">google_travel_time</span>
<span class="s">api_key</span><span class="pi">:</span> <span class="s">XXXX_XXXXX_XXXXX</span>
<span class="s">destination</span><span class="pi">:</span> <span class="s">zone.home</span>
<span class="s">options</span><span class="pi">:</span>
<span class="s">units</span><span class="pi">:</span> <span class="s">imperial</span> <span class="c1"># 'metric' for Metric, 'imperial' for Imperial</span>
</code></pre>
</div>
<h4><a class="title-link" name="entity-tracking" href="#entity-tracking"></a> Entity Tracking</h4>
<ul>
<li><strong>device_tracker</strong>
<ul>
<li>If state is a zone then the zone location will be used</li>
<li>If state is not a zone it will look for the longitude and latitude attributes</li>
</ul>
</li>
<li><strong>zone</strong>
<ul>
<li>Uses the longitude and latitude attributes</li>
<li>Can also be referenced by just the zones friendly name found in the attributes.</li>
</ul>
</li>
<li><strong>sensor</strong>
<ul>
<li>If state is a zone or zone friendly name then will use the zone location</li>
<li>All other states will be passed directly into the google API
<ul>
<li>This includes all valid locations listed in the <em>Configuration Variables</em></li>
</ul>
</li>
</ul>
</li>
</ul>
</article>
</div>
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
<div class="grid">
<section class="aside-module grid__item one-whole lap-one-half">
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_components/sensor.google_travel_time.markdown'>Edit this page on GitHub</a></div>
<div class='brand-logo-container section'>
<img src='/images/supported_brands/google_maps.png' />
</div>
<div class='section'>
IoT class<sup><a href='/blog/2016/02/12/classifying-the-internet-of-things/#classifiers'><i class="icon-info-sign"></i></a></sup>: Cloud Polling
</div>
<div class='section'>
Introduced in release: 0.19
</div>
<div class='section'>
<h1 class="title delta">Category Transport</h1>
<ul class='divided'>
<li>
<a href='/components/sensor.deutsche_bahn/'>Deutsche Bahn</a>
</li>
<li>
<a href='/components/sensor.dublin_bus_transport/'>Dublin Bus Transport</a>
</li>
<li>
Google Maps Travel Time
</li>
<li>
<a href='/components/sensor.gtfs/'>Public Transit (GTFS)</a>
</li>
<li>
<a href='/components/sensor.swiss_public_transport/'>Swiss Public Transport</a>
</li>
<li>
<a href='/components/sensor.torque/'>Torque (OBD2)</a>
</li>
<li>
<a href='/components/sensor.uber/'>Uber</a>
</li>
<li>
<a href='/components/sensor.vasttrafik/'>Västtrafik Public Transport</a>
</li>
</ul>
</div>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item">
<div class="copyright">
<a rel="me" href='https://twitter.com/home_assistant'><i class="icon-twitter"></i></a>
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a>.<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.
</div>
</div>
</div>
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
</body>
</html>