Icono del sitio Home Assistant Fácil

GTFS integración de Home Assistant

gtfs horarios transporte público en Home Assistant
Horarios de transporte público en Home Assistant

Lo mismo te estás preguntando qué es GTFS. Pues espera que ahora te lo cuento.

Imagínate que todos los días coges el tren de Cercanías para salir al curro y siempre vas con la hora pegada al culo. ¿A qué estaría bien que desde Alexa te dijera?

«A ver alma de cántaro, termina el café cagando leches porque como no salgas dentro de 5 minutos tu jefe te va a dar para el pelo«

Pues de eso trata este tutorial, de poder integrar los horarios de transporte público en Home Assistant gracias a la integración oficial GTFS.

Esto, por sí solo, puede ser muy útil para integrar los horarios del transporte público en Home Assistant, pero si lo combinas con otras integraciones como Waze para conocer el estado del tráfico, puede ser muy útil en tu día a día.

De eso trata este tutorial, de utilizar la integración GTFS de Home Assistant para integrar los horarios de transporte público en tu sistema domótico.

Capítulos GTFS en Home Assistant

Por si quieres ir a tiro hecho en el vídeo, aquí te dejo los capítulos:

00:00 Introducción y mini curso gratuito de Home Assistant

01:45 Qué significa tener una casa «inteligente»

03:28 Qué es GTFS

04:22 Portal del Ministerio de Transporte para obtener archivos GTFS transporte público

05:25 Integración GTFS de Home Assistant

06:00 Configuración integración GTFS

08:28 Editor GTFS online para arreglar fallos en el formato

10:28 Integración horarios Cercanías Renfe en Home Assistant

Dos cosas antes de empezar

La primera es que esto de la domótica está bien, me refiero a que automatizar las luces, poder controlar las persianas con un comando de voz o que la puerta del garaje se abra de forma automática es mucho mejor que no tenerlo.

Pero para que una casa sea un poco más inteligente que los ladrillos con la que está hecha hay que hacer algo más. No basta con esto. Y este tutorial pretende ser un ejemplo de ello.

La idea es poder combinar dispositivos con servicios para que tu sistema domótico vaya un pasito más. Porque eso de que una casa sea inteligente, la verdad, es una gilipollez. Aquí los inteligentes tenemos que ser nosotros.

Y esto se consigue cuando integramos servicios como el que vamos a ver aquí. Pero esto tampoco es suficiente.

Y me explico.

Eso de que Home Assistant te avise cuándo sale el próximo tren de cercanías está bien, pero que te avise y te diga que salgas 5 minutos antes porque además hay atasco de camino a la estación está mucho mejor.

Lo que puedes ver en este tutorial es una parte de tu sistema, el resto te lo dejo a ti y a tu imaginación.

Y lo segundo es que como verás no vivimos en gominolandia donde crecen nubes de caramelo de los árboles. Cuando hablamos de datos y administración pública la cosa se complica y mucho.

Porque una cosa es que un político salga en la foto diciendo que ha publicado los datos de su ciudad o comunidad en abierto y otra cosa bien distinta es que esos datos estén bien y sirvan para algo.

Ya verás tú la que tienen liada algunos organismos con los datos del transporte público y los archivos GTFS.

Qué es GTFS

Para poder integrar los horarios del transporte público vamos a utilizar la integración GTFS. GTFS son las siglas General Transit Feed Specification que originalmente se conocía como Google Transit Feed Specification.

Es un formato creado por Google que define los horarios de transporte público y la información geográfica asociada, es decir, nos permite saber a qué hora pasará un autobús por una parada determinada.

Ojo, este formato no da información en tiempo real, para ello existe otro formato que se llama GTFS Realtime que actualmente muy pocos transportes públicos lo ofrecen.

Por lo tanto, la información que vamos a utilizar es los horarios de transporte público lo que significa que si hay cualquier anomalía por tráfico o por lo que sea, estos datos pueden no ser exactos aunque en la gran mayoría de situaciones es válido.

De dónde sacar los archivos GTFS en España

El Ministerio de Transporte publica los datos de transporte en el Punto de Acceso Nacional de datos del transporte. Aquí encontrarás los datos en formato GTFS de forma abierta y donde podemos encontrar información sobre autobuses, trenes, transporte marítimo y aviones.

Están clasificados por tipo de transporte, regiones y área. Por ejemplo, desde aquí tenemos acceso a la red de trenes y tranvías de Alicante y Costa Blanca.

Es importante fijarse que los datos estén en formato GTFS y en la última actualización. También debes fijarte en la validación para que no contenga ningún error.

Para poder descargar el archivo con los datos tienes que darte de alta y luego descargar los datos. Esto te dará acceso a un archivo comprimido ZIP con toda la información porque el formato GTFS es un conjunto de datos relacionados. Una vez descargado descomprímelo para ver los archivos que hay dentro.

Vamos a ver cómo integrar este conjunto de datos en Home Assistant.

Integración GTFS de Home Assistant

La integración que nos va a permitir esto se llama GTFS, en la documentación oficial tienes toda la información.

Lo primero es que esta integración se añade de forma manual a Home Assistant, es decir, no se puede añadir a través de la interfaz gráfica. Tranquilo que es bastante sencillo porque solo hay que copiar un trozo de código YAML al archivo de configuración principal de Home Assistant.

Para ello necesitas tener acceso a este archivo que dependerá del método de instalación. Con Home Assistant OS puedes acceder a través del complemento File Editor. Abres el archivo de configuración y copia el código YAML.

Los parámetros que vamos a necesitar son los identificadores de la estación de origen y de la estación de destino y la ruta del archivo ZIP donde están los datos.

Los identificadores de la estación de origen y de destino los obtenemos descomprimiendo el archivo ZIP que hemos descargado y abriendo el archivo stops.txt Este archivo contiene todas las paradas del sistema de transporte público que hayas descargado.

Dependiendo del tamaño de los datos aparecerán más o menos paradas. En mi caso quiero saber los horarios el tranvía que va de Sant Vicente del Raspeig a Luceros en Alicante. Busco estas dos paradas en los datos y copio los identificadores en la configuración del sensor.

Origen 124 y destino 2.

El siguiente paso es subir el archivo ZIP al servidor. Esto también se puede hacer a través del File Editor. Crea una carpeta que se llame gtfs.

Luego sube el archivo dentro ZIP con los datos GTFS.

Vamos a necesitar el nombre del archivo ZIP para copiarlo en el parámetro data del sensor.

Por último pon un nombre para poder identificar al sensor dentro de Home Assistant.

Y en principio ya estaría listo, lo único que nos queda es reiniciar Home Assistant. Una vez se reinicie accede a las entidades y busca por el nombre que has puesto. Debería aparecer una entidad con la información del próximo tranvía que va a salir de Sant Vicent a Luceros.

Pero ohhh, sorpresa, no hay ninguno. Y aquí es donde empieza a fallar el sistema porque si miramos el archivo calendar.txt donde indica para cada servicio que día de la semana está operativo muestra que ninguno de los días de la semana hay tranvía en Alicante.

A esto me refería con lo de juntar en la misma frase datos en abierto y administración pública porque hay un error en los datos. Este caso concreto se resuelve de una forma muy sencilla utilizando un editor GTFS online como es GTFS Studio.

GTFS Studio

GTFS Studio es una herramienta gratuita para la edición de archivos GTFS de transporte público.

Lo único que tienes que hacer es subir el archivo ZIP para que lo analice y lo arregle. Desde aquí vas a poder explorar los datos GTFS de una forma más visual. Puedes ver las líneas, las paradas y las rutas.

Pero lo mejor es que este editor de GTFS te permite corregir los posibles errores que pueda tener el conjunto de datos.

Si descargo el archivo ZIP, lo descomprimo y miro el archivo calendar.txt, veo que ha rellenado los datos en base a la información que tenía el conjunto de datos.

Con los datos correctos vamos a actualizar el archivo GTFS en Home Assistant.

Para actualizar un archivo GTFS en Home Assistant hay que eliminar todo lo que haya dentro de la carpeta GTFS, el archivo ZIP y los archivos que haya generado Home Assistant de forma automática.

Vuelve a subir de nuevo el archivo con los datos corregidos y reinicia Home Assistant. Una vez haya reiniciado, si accedo al sensor, ahora sí me dice que en breve sale un tranvía en la ruta que he seleccionado.

Cercanías Renfe en Home Assistant

Un caso especial es el archivo GTFS de la red de Cercanías Renfe. Si entras en la web del Ministerio de Transporte donde facilitan el archivo GTFS vas a ver varias cosas.

Lo primero es que no está filtrado por comunidad autónoma y en el archivo GTFS de Cercanías está toda la red de España. Esto hace que haya un número de rutas, paradas y viajes muy elevado.

En principio esto no debería ser ningún problema pero si lo único que quieres saber son los horarios de los Cercanías de Madrid, el resto de información es totalmente irrelevante.

Y el problema está aquí, porque al intentar importar el archivo GTFS en Home Assistant se produce un time out debido a que tiene demasiada información. Tampoco se puede editar con GTFS Studio debido a este mismo problema.

La solución pasa por purgar todos los datos innecesarios de forma manual, puedes utilizar una hoja de Excel por ejemplo. De hecho Fernando, un seguidor del canal, ha creado un script para poder segmentar el GTFS del Cercanías por núcleos y lo puedes descargar desde aquí.

Y hasta aquí este tutorial donde hemos visto cómo añadir los horarios del transporte público a Home Assistant utilizando los archivos GTFS.

Gracias a Depositphotos por ceder los derechos de algunas imágenes.

Salir de la versión móvil