389 lines
No EOL
15 KiB
HTML
389 lines
No EOL
15 KiB
HTML
<!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>Public Transit (GTFS) - Home Assistant</title>
|
|
<meta name="author" content="Home Assistant">
|
|
<meta name="description" content="Instructions on how to use public transit open data in Home Assistant.">
|
|
|
|
<meta name="viewport" content="width=device-width">
|
|
<link rel="canonical" href="https://home-assistant.io/components/sensor.gtfs/">
|
|
|
|
<meta property="fb:app_id" content="338291289691179">
|
|
<meta property="og:title" content="Public Transit (GTFS)">
|
|
<meta property="og:site_name" content="Home Assistant">
|
|
<meta property="og:url" content="https://home-assistant.io/components/sensor.gtfs/">
|
|
<meta property="og:type" content="article">
|
|
<meta property="og:description" content="Instructions on how to use public transit open data in 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="Public Transit (GTFS)">
|
|
<meta name="twitter:description" content="Instructions on how to use public transit open data in 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='/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">
|
|
Public Transit (GTFS)
|
|
</h1>
|
|
</header>
|
|
<hr class="divider">
|
|
|
|
|
|
<p>The <code>gtfs</code> sensor will give you the next departure time and associated data from your public transit station/stop. The data comes from your chosen public transit authority and is formatted as <a href="https://developers.google.com/transit/gtfs/">General Transit Feed Specification</a> data, commonly known as GTFS.</p>
|
|
|
|
<p>You need to find a valid GTFS data set, which you can usually find just by searching the internet. Most public transit authorities have GTFS available somewhere, as Google requires public transit authorities to provide the data if they wish to appear on Google Maps. You may also be able to find data at either <a href="http://transitfeeds.com/feeds">TransitFeeds</a> or <a href="http://www.gtfs-data-exchange.com/">GTFS Data Exchange</a>.</p>
|
|
|
|
<p>Here are some examples:</p>
|
|
|
|
<ul>
|
|
<li><a href="http://www.bart.gov/schedules/developers/gtfs">Bay Area Rapid Transit (BART)</a> - The light rail system for the San Francisco Bay Area.</li>
|
|
<li><a href="http://www.bart.gov/schedules/developers/gtfs">Metropolitan Transit Authority of New York City (MTA)</a> - Provides separate data feeds for subway, bus, LIRR and Metro-North of the greater New York City metropolitan region.</li>
|
|
<li><a href="http://www.gbrail.info/">GBRail.info</a> - Provides data feeds for most if not all rail companies in Britain.</li>
|
|
</ul>
|
|
|
|
<p>You need to download a GTFS ZIP file and put it into a folder named <code>gtfs</code> in your configuration directory. For ease of use, it is suggested that you rename the file to just the agency/data source name (i.e. <code>bart.zip</code> instead of <code>google_transit_20160328_v1.zip</code>). You can also unzip and place a folder in the <code>gtfs</code> folder.</p>
|
|
|
|
<p>The data will be converted into a queryable format and saved as a SQLite3 database alongside the source data. The sensor will check for the existence of this SQLite3 data at every startup and will re-import the ZIP/Folder if none is found.</p>
|
|
|
|
<p>To update the data, delete the SQLite3 file and restart Home Assistant.</p>
|
|
|
|
<p>To find your stop ID, open the <code>stops.txt</code> file inside the ZIP file/unzipped folder. The format of the ID is different for every transit agency but will be the first “column” (meaning the string before the first comma) in a row.</p>
|
|
|
|
<p>The sensor attributes will contain all related information for the specific trip, such as agency information, origin and destination stop information, origin and destination stop time and the route information.</p>
|
|
|
|
<p>Your mileage may vary depending on the transit agency used. Most agencies respect the GTFS format but some will do weird things like adding extra columns or using different data formatting. If you have any data specific issues, please report them to the <a href="https://github.com/jarondl/pygtfs">PyGTFS</a> project, which is what the GTFS sensor uses to parse data.</p>
|
|
|
|
<p><strong>Please note</strong>: This is a <em>static</em> data source. Currently, there is no GTFS Realtime support in this sensor due to issues surrounding parsing the protocol buffer format in Python 3. Once those issues have been fixed Realtime support will be added. Once added, the sensor will check for any delays and advisories and report them in the sensor as needed.</p>
|
|
|
|
<div class="highlighter-coderay"><div class="CodeRay">
|
|
<div class="code"><pre><span class="comment"># Example configuration.yaml entry</span>
|
|
<span class="key">sensor</span>:
|
|
<span class="key">platform</span>: <span class="string"><span class="content">gtfs</span></span>
|
|
<span class="key">origin</span>: <span class="string"><span class="content">STOP_ID</span></span>
|
|
<span class="key">destination</span>: <span class="string"><span class="content">STOP_ID</span></span>
|
|
<span class="key">data</span>: <span class="string"><span class="content">DATA_SOURCE</span></span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
|
|
<p>Configuration variables:</p>
|
|
|
|
<ul>
|
|
<li><strong>origin</strong> (<em>Required</em>): The stop ID of your origin station.</li>
|
|
<li><strong>destination</strong> (<em>Required</em>): The stop ID of your destination station.</li>
|
|
<li><strong>data</strong> (<em>Required</em>): The name of the ZIP file or folder containing the GTFS data. It must be located inside the <code>gtfs</code> folder of your configuration directory.</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.io/tree/master/source/_components/sensor.gtfs.markdown'>Edit this page on GitHub</a></div>
|
|
<div class='brand-logo-container section'>
|
|
<img src='/images/supported_brands/train.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>: Local Polling
|
|
</div>
|
|
<div class='section'>
|
|
Introduced in release: 0.17
|
|
</div>
|
|
<div class='section'>
|
|
<h1 class="title delta">Category Sensor</h1>
|
|
<ul class='divided'>
|
|
<li>
|
|
<a href='/components/sensor.apcupsd/'>APCUPSd Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.bitcoin/'>Bitcoin</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.bloomsky/'>BloomSky Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.cpuspeed/'>CPU speed</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.command_line/'>Command line Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.dte_energy_bridge/'>DTE Energy Bridge</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.deutsche_bahn/'>Deutsche Bahn</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.dweet/'>Dweet.io</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.ecobee/'>Ecobee Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.efergy/'>Efergy</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.eliqonline/'>Eliqonline</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.enocean/'>EnOcean Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.fitbit/'>Fitbit</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.fixer/'>Fixer.io</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.glances/'>Glances</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.google_travel_time/'>Google Maps Travel Time</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.http/'>HTTP Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.homematic/'>Homematic Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.imap/'>IMAP Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.lastfm/'>Last.fm</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.loop_energy/'>Loop Energy</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.mqtt/'>MQTT Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.modbus/'>Modbus Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.moldindicator/'>Mold Indicator</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.mysensors/'>MySensors Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.nzbget/'>NZBGet</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.nest/'>Nest Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.neurio_energy/'>Neurio</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.octoprint/'>OctoPrint Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.onewire/'>One wire Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.openexchangerates/'>Open Exchange Rates</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.plex/'>Plex Sensor</a>
|
|
</li>
|
|
<li>
|
|
Public Transit (GTFS)
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.rest/'>RESTful Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.rfxtrx/'>RFXtrx Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.sabnzbd/'>SABnzbd</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.snmp/'>SNMP</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.speedtest/'>Speedtest.net</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.steam_online/'>Steam</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.supervisord/'>Supervisord</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.swiss_hydrological_data/'>Swiss Hydrological Data</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.swiss_public_transport/'>Swiss Public Transport</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.systemmonitor/'>System Monitor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.tcp/'>TCP Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.temper/'>TEMPer Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.tellstick/'>TellStick Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.tellduslive/'>Telldus Live sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.template/'>Template Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.thinkingcleaner/'>Thinking Cleaner sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.time_date/'>Time & Date</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.torque/'>Torque (OBD2)</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.transmission/'>Transmission Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.twitch/'>Twitch</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.uber/'>Uber</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.vera/'>Vera Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.envisalink/'>Vera Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.verisure/'>Verisure Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.wink/'>Wink Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.worldclock/'>Worldclock</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.zwave/'>Z-Wave Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.zigbee/'>ZigBee Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.arest/'>aREST Sensor</a>
|
|
</li>
|
|
<li>
|
|
<a href='/components/sensor.mfi/'>mFi Sensor</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> |