En esta entrada te enseño a integrar cualquier coche en Home Assistant, para incluir automatizaciones en tu conducción.
Índice
Alcance de la integración
La situación ideal para integrar cualquier coche en Home Assistant es utilizar las integraciones oficiales de cada marca, o en su defecto utilizar los sensores que nos proporciona Android Auto o Car Play. Sin embargo, esto no es tan sencillo en tanto que dependemos de que el coche proporcione la información necesaria para alimentar nuestros sensores.
Esta guía está orientada a todos aquellos vehículos que no permiten enviar la información directamente. Con esta guía para integrar cualquier coche en Home Assistant vamos a conseguir lo siguiente:
- Saber si alguno de los usuarios está conduciendo el coche.
- Saber dónde está nuestro coche en todo momento.
- Controlar el nivel de combustible y saber dónde está más barato.
- Disponer de la información del tráfico de las carreteras y trayectos que más frecuentamos.
Requisitos previos
Para poder integrar cualquier coche en Home Assistant necesitas lo siguiente:
- Tener instalada la aplicación de Home Assistant en tu dispositivo móvil y activar los sensores de ubicación.
- Disponer de conexión bluetooth en tu coche.
¿Hay alguien al volante?
Saber si alguno de los usuarios está conduciendo nos va a servir, principalmente, en dos aspectos:
- Lo vamos a utilizar como desencadenante de automatizaciones relacionadas con la conducción.
- Va a servir para que otros usuarios sepan que estás conduciendo (por ejemplo, para que sepan que ya has salido del trabajo o que aún no has llegado a casa de tu viaje).
Si eres usuario de Android
Para saber si un usuario está conduciendo, lo único que necesitas es que tu coche tenga Bluetooth, ya sea de serie o mediante algún reproductor multimedia que hayas añadido, y tener instalada la aplicación de Home Assistant en tu teléfono. De esta forma cuando subas al coche tu dispositivo móvil se vinculará al Bluetooth del coche y podremos detectarlo a través del sensor «Conexión Bluetooth».
Con esta información podemos crear un sensor sencillo en tu fichero ‘sensors.yaml’, que indique si estás en el coche (‘on’) o no (‘off’).
- platform: template
sensors:
coche_usuario:
friendly_name: "Coche (USUARIO)"
value_template: >
{% if 'DIRECCION MAC (COCHE)' in state_attr('sensor.DISPOSITIVO_bluetooth_connection','connected_paired_devices') %} on
{% else %} off
{% endif %}
icon_template: mdi:car
Si eres usuario de iOS
Los usuarios de iOS también pueden detectar cuando están conduciendo a través de la aplicación de Home Assistant en tu iPhone. En este caso tienes que activar y utilizar el sensor ‘Activity’ que tomará el estado «Automotive» cuando te conectes a tu coche con CarPlay o con el bluetooth de tu coche.
En este caso también podemos crear un sensor que indique si estás en el coche (‘on’) o no (‘off’), de la siguiente forma:
- platform: template
sensors:
coche_usuario:
friendly_name: "Coche (USUARIO)"
value_template: >
{% if states('sensor.iphone_activity') == "Automotive" %} on
{% else %} off
{% endif %}
icon_template: mdi:car
Posición GPS de nuestro coche
Vamos a rastrear la posición GPS de nuestro coche creando un ‘device tracker’. De esta forma podrás saber cosas tan útiles como:
- Saber si tu coche está en casa o alguien se lo ha llevado.
- Si está en casa, saber desde cuando está aparcado.
- Si está fuera, saber a qué distancia está de casa y la dirección donde está aparcado.
- Ver el trayecto realizado en las últimas 24 horas (o el periodo que tú quieras).
- Saber si tu coche entra en una zona geográfica concreta.
Creación del ‘device tracker’
Para poder rastrear la posición GPS de tu coche ve a tu fichero ‘known_devices.yaml’ (o créalo si aún no lo tienes) y pega el siguiente código. Puedes modificar el nombre del sensor, el icono y la imagen asociada como prefieras, después reinicia HA. Esto creará la entidad ‘device_tracker.coche’.
coche: name: coche mac: icon: mdi:car picture: local/images/coche.png track: true
Asignar las coordenadas GPS
Ahora tenemos que asignarle las coordenadas GPS a nuestra entidad. Para ello vamos a utilizar las coordenadas del dispositivo móvil del conductor, de forma que siempre que estés conduciendo vayas compartiendo tus coordenadas con las del coche. Este proceso se detendrá cuando salgas del coche, por lo que guardará la última posición transmitida (y sabrás donde está aparcado).
Para ello crea una automatización de la siguiente forma:
- Desencadenante. Utiliza la opción de «Patrón de tiempo» para que la automatización se ejecute cada minuto mientras conduces (o el intervalo que tú prefieras).
- Condición. Selecciona la opción «Estado», busca el sensor creado para detectar si estás conectado al bluetooth del coche y en el campo «Estado» indica ‘on’. De esta forma la automatización sólo se ejecutará cuando estés conduciendo. Si compartes el coche con otros usuarios utiliza la opción «O» para añadir varias condiciones alternativas.
- Acción. Utiliza el servicio ‘device_tracker.see’ para fijar las coordenadas del coche, utilizando como entrada las coordenadas de tu dispositivo. Si compartes el coche con otros usuarios utiliza la opción «Si-entonces» para el dispositivo del usuario correspondiente.
También puedes crear un segundo desencadenante cuando el sensor creado para detectar si estás conectado al bluetooth del coche pase a ‘off’. De esta forma también transmitirá tus coordenadas justo cuando apagues el coche y tendrás con precisión la ubicación donde está aparcado.
A continuación te dejo un ejemplo de automatización con distintos ‘trigger id’, para dos usuarios que utilizan el mismo coche (que puedes adaptar como quieras).
alias: 🚗 Coche
description: ""
trigger:
- alias: Coordenadas GPS
platform: time_pattern
minutes: /1
id: Coordenadas GPS
- platform: state
entity_id:
- sensor.coche_USUARIO1
to: "off"
alias: Aparcado (USUARIO1)
id: Aparcado USUARIO1
- platform: state
entity_id:
- sensor.coche_USUARIO2
to: "off"
alias: Aparcado (USUARIO2)
id: Aparcado USUARIO2
condition: []
action:
- choose:
- conditions:
- condition: trigger
id:
- Coordenadas GPS
sequence:
- if:
- condition: state
entity_id: sensor.coche_USUARIO1
state: "on"
then:
- service: device_tracker.see
data:
dev_id: COCHE
gps:
- "{{ state_attr('device_tracker.USUARIO1', 'latitude') }}"
- "{{ state_attr('device_tracker.USUARIO1', 'longitude') }}"
- if:
- condition: state
entity_id: sensor.coche_USUARIO2
state: "on"
then:
- service: device_tracker.see
data:
dev_id: COCHE
gps:
- >-
{{ state_attr('device_tracker.USUARIO2',
'latitude') }}
- >-
{{ state_attr('device_tracker.USUARIO2',
'longitude') }}
- conditions:
- condition: trigger
id:
- Aparcado USUARIO1
sequence:
- service: device_tracker.see
data:
dev_id: COCHE
gps:
- "{{ state_attr('device_tracker.USUARIO1', 'latitude') }}"
- "{{ state_attr('device_tracker.USUARIO1', 'longitude') }}"
- conditions:
- condition: trigger
id:
- Aparcado USUARIO2
sequence:
- service: device_tracker.see
data:
dev_id: COCHE
gps:
- >-
{{ state_attr('device_tracker.USUARIO2', 'latitude')
}}
- >-
{{ state_attr('device_tracker.USUARIO2', 'longitude')
}}
mode: single
Gestionar las coordenadas
Como cualquier otra entidad del tipo ‘device tracker’, puedes crear automatizaciones con la entidad en función de si entra en alguna zona concreta (por ejemplo, en la zona de tu trabajo), detectar si está en casa o mostrar la entidad en tarjetas de tipo mapa.
Además, a través de la geocodificación inversa también puedes traducir las coordenadas en una dirección legible (por ejemplo, «Calle Aguacate 74»). De esta forma te será mucho más fácil localizar dónde lo has aparcado o calcular y mostrar la distancia a casa.
También puedes localizar la posición de tu coche, incluso si te lo han robado, colocando un AirTag barato.
Creación de la tarjeta
En mi caso he creado la siguiente tarjeta para saber dónde está el coche en cada momento. Esta me indica si está en casa (y desde qué momento) o si está fuera (mostrándome a qué distancia y en qué dirección).

A continuación encontrarás el código de esta tarjeta. Para crearla, además de adaptar tus entidades, necesitarás instalar a través de HACS las tarjetas de Bubble Card, Card Mod y Mushroom Cards.
type: vertical-stack
cards:
- type: custom:bubble-card
card_type: separator
name: Yaris
icon: phu:toyota
card_mod:
style: |
ha-card {
margin-top: 10px!important;
}
- type: custom:mushroom-template-card
primary: ''
secondary: >
🚗 {% if (states('device_tracker.toyota_yaris')) == 'home' %}Aparcado
desde el {{ as_timestamp(state_attr('sensor.direccion_coche',
'last_changed')) | timestamp_custom('%d/%m/%Y a las %H:%Mh') }} {% else
%}{{ state_attr('sensor.direccion_coche','place_name') }}, {{
state_attr('sensor.direccion_coche','street') }} {{
state_attr('sensor.direccion_coche','street_number') }} {% endif %}
icon: ''
layout: vertical
tap_action:
action: none
multiline_secondary: true
card_mod:
style: |
ha-card {
background: #222c40;
}
- square: false
type: grid
columns: 2
cards:
- type: custom:mushroom-template-card
primary: >
{% if (states('device_tracker.toyota_yaris')) == 'home' %}En casa {%
else %}A {{
state_attr('sensor.direccion_coche','distance_from_home_km') | int }}
km{% endif %}
secondary: ''
icon: >
{% if (states('device_tracker.toyota_yaris')) == 'home' %}mdi:home {%
else %}mdi:car-side {% endif %}
icon_color: >
{% if (states('device_tracker.toyota_yaris')) == 'home' %}lime {% else
%}pink {% endif %}
entity: device_tracker.toyota_yaris
layout: vertical
tap_action:
action: none
card_mod:
style: |
ha-card {
background: linear-gradient( rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.8) ), url('/local/images/tyaris.jpg');
background-position: center;
background-size: cover;
height: 97px!important;
}
- type: map
entities:
- entity: device_tracker.toyota_yaris
aspect_ratio: 58%
dark_mode: false
card_mod:
style:
ha-map $ ha-entity-marker $: |
.marker {
border: 0px!important;
background: transparent!important;
}
ha-map$: |
.leaflet-control-attribution {
visibility: hidden;
}
.leaflet-control-zoom {
visibility: hidden;
}
ha-icon-button$: |
mwc-icon-button {
display:none !important
}
Controlar el nivel de combustible
¿Alguna vez vas con prisa y al arrancar el coche te das cuenta de que el depósito está en reserva? Tanto si no te ha avisado otro conductor como si se te ha olvidado, esto es algo que da mucha rabia.
Creación del sensor del depósito
Los coches más modernos proporcionan el sensor del depósito de combustible en sus aplicaciones, pero no es mi caso. En su lugar he creado un ayudante de tipo «alternar» con el nombre «Gasolina coche», creando la entidad ‘input_boolean.coche_gasolina’.
Como tengo Google Assistant integrado en HA, puedo «encender» y «apagar» este ayudante con la voz mientras voy conduciendo. He creado un diálogo natural con Google Assistant, de forma que si le digo «Ok, Google! No queda gasolina» enciende el ayudante. Si le digo «Ok, Google! Depósito lleno», lo apaga.
Además, he creado una automatización para que cuando se encienda este ayudante envíe una notificación a todos los conductores para que sepan que está reserva. Del mismo modo, envía una notificación cuando ya se ha repostado. De esta forma todos estamos informados y a nadie le pilla por sorpresa.
Gasolineras más baratas
Haciendo uso de la integración de gasolineras puedo localizar en todo momento la gasolinera más barata entre mis preferidas. Esto lo utilizo con dos objetivos:
- Cuando voy conduciendo, digo «Ok, Google! No queda gasolina» y enciende el ayudante, este me contesta indicándome cuál es la gasolinera más barata y el precio actual. Puedes conseguirlo mediante una notificación como esta (en dispositivos Android).
service: notify.mobile_app_DISPOSITIVO
data:
message: TTS
data:
tts_text: >
En este momento la gasolinera con mejor precio es la de
{%- set gasoli = states
|selectattr('entity_id', 'contains', 'gasolina')
|rejectattr('state', 'contains', 'off')
|sort(attribute='state')
|list
|first
%} {{ gasoli.name }} con un precio de
{%- set gas = states
|selectattr('entity_id', 'contains', 'gasolina')
|rejectattr('state', 'contains', 'off')
|map(attribute='state')
|list
|sort
|first
%} {{ gas | round(2)}} euros por litro
channel: alarm_stream
priority: high
ttl: 0
- También he creado estos dos ‘widget’ en mi panel de control que indican si el depósito tiene gasolina o está en reserva, y cuál es la gasolinera más barata en ese momento.

A continuación encontrarás el código de esta tarjeta. Para crearla, además de adaptar tus entidades, necesitarás instalar a través de HACS las tarjetas de Bubble Card, Card Mod y Mushroom Cards.
type: vertical-stack
cards:
- type: custom:bubble-card
card_type: separator
name: Gasolina
icon: mdi:gas-station
- square: false
type: grid
columns: 2
cards:
- type: custom:mushroom-template-card
primary: Depósito
secondary: >
{% if (states('input_boolean.coche_gasolina')) == 'on' %}En reserva {%
else %}Lleno {% endif %}
icon: >
{% if (states('input_boolean.coche_gasolina')) == 'on'
%}mdi:gauge-empty {% else %}mdi:gauge-full {% endif %}
icon_color: >
{% if (states('input_boolean.coche_gasolina')) == 'on' %}red {% else
%}lime {% endif %}
entity: input_boolean.coche_gasolina
layout: vertical
tap_action:
action: toggle
card_mod:
style: |
ha-card {
background: #222c40;
}
- type: custom:mushroom-template-card
primary: |
{% set gas = states
|selectattr('entity_id', 'contains', 'gasolina')
|rejectattr('state', 'contains', 'off')
|sort(attribute='state')
|list
|first
%}{{ gas.name }}
secondary: |
{% set gas = states
|selectattr('entity_id', 'contains', 'gasolina')
|rejectattr('state', 'contains', 'off')
|sort(attribute='state')
|list
|first
%}{{ gas.state | round(2) }} €/L
icon: mdi:gas-station
icon_color: lime
layout: vertical
tap_action:
action: none
card_mod:
style: |
ha-card {
background: #222c40;
}
Información del tráfico
Uno de los aspectos más interesantes que afecta a la conducción y que vamos a poder explotar al integrar cualquier coche en Home Assistant es la información del tráfico. Esto hará que sea más eficiente y cómoda.
Lo primero que vamos a poder hacer gracias a la integración con Waze es saber, en función del estado actual del tráfico, a cuánto tiempo nos encontramos de llegar a casa. Esto te va a ser de gran utilidad para decidir si es el momento de empezar tu viaje o te merece la pena esperar un poco. Puedes crear, por ejemplo, una automatización para que HA te avise cuando sea el mejor momento (por ejemplo, cuando el trayecto sea inferior a 20 minutos).
También voy a utilizar esta integración para monitorizar los tramos de algunas carreteras que me interesan de esta forma tan sencilla:
- Voy a crear un sensor que me indique el tiempo del trayecto del tramo que me interese, seleccionando como origen un punto de la carretera y otro como destino (como si fuera un trayecto que quisiera recorrer).
- Este sensor me indicará el tiempo que tardo en recorrerlo en coche. Supongamos que cuando no hay tráfico tardo 10 minutos. Este será el valor que consideraré como «tráfico fluido».
- En base a mi experiencia y mis preferencias voy a establecer otros dos umbrales. Por ejemplo, entre 10 y 20 minutos lo consideraré «trafico lento» y más de 20 minutos supondrá un «atasco» (más tarde puedo ir calibrando estos valores).
Además puedo consultar si hay algún accidente o un control policial, con sólo acceder a la tarjeta donde he integrado el tramo de Waze.
Por otro lado, en esta entrada te enseñé cómo puedes integrar webcams públicas en HA y, en particular, las de la DGT (Dirección General de Tráfico) son de las más fáciles de integrar. Esto nos va a permitir echar un vistazo rápido y saber cómo está el tráfico en nuestras carreteras de paso. Qué duda cabe que esto también resulta de gran utilidad si quieres evitar atascos o decidir cuándo es el mejor momento para salir de viaje.

A continuación encontrarás el código de esta tarjeta. Para crearla, además de adaptar tus entidades, necesitarás instalar a través de HACS las tarjetas de Bubble Card, Card Mod, Mushroom Cards y Bar Card.
type: vertical-stack
cards:
- type: custom:bubble-card
card_type: separator
name: Tráfico
icon: mdi:cctv
- type: custom:stack-in-card
card_mod:
style: |
ha-card {
background: #222c40;
}
cards:
- square: false
type: grid
cards:
- type: custom:mushroom-template-card
primary: En directo
secondary: >
{% if (states('sensor.waze_a_casa') | int) == 0 %} Ver estado {%
else %} Estas a {{ states('sensor.waze_a_casa') }} de casa {%
endif %}
icon: mdi:car-multiple
icon_color: white
multiline_secondary: true
tap_action:
action: navigate
navigation_path: '#trafico'
- type: custom:bar-card
card_mod:
style: |-
ha-card {
border: 0px;
height: 64px;
}
bar-card-name {
margin-left: 10px;
font-size: 9px;
text-shadow: 1px 1px #0005;
opacity: .8
}
bar-card-currentbar {
border-radius: 3px !important;
}
bar-card-backgroundbar {
border-radius: 3px !important;
opacity: 0.7
}
bar-card-value {
visibility: hidden;
}
entities:
- entity: sensor.waze_a5
name: A5
max: 60
severity:
- color: darkseagreen
from: 0
to: 15
- color: orange
from: 15
to: 25
- color: crimson
from: 25
to: 60
height: 13px
decimal: 0
positions:
icon: 'off'
name: inside
indicator: 'off'
- entity: sensor.waze_m503
name: M503
max: 30
severity:
- color: darkseagreen
from: 0
to: 5
- color: orange
from: 5
to: 10
- color: crimson
from: 10
to: 30
height: 13px
decimal: 0
positions:
icon: 'off'
name: inside
indicator: 'off'
columns: 2
- square: false
type: grid
cards:
- type: picture
image: https://infocar.dgt.es/etraffic/data/camaras/788.jpg?t=1711541024661
tap_action:
action: none
- type: picture
image: https://informo.madrid.es/cameras/Camara11306.jpg?rand=1711622226935
tap_action:
action: none
columns: 2
Otras ideas de automatización
Además de todo lo anterior también hay otras formas de integrar cualquier coche en Home Assistant, por ejemplo:
- Lanza tu asistente de voz automáticamente sin tener que llamarlo cuando tu dispositivo móvil se vincule al bluetooth de tu coche para darle instrucciones como “Pon música en spotify”, “Dime como está el tráfico” o “Pon el GPS al trabajo”.
- Pega alguna etiqueta NFC para crear automatizaciones dinámicas (por ejemplo, para lanzar el GPS al trabajo o indicarle a HA que has echado gasolina).
- Crea automatizaciones en función de la zona en la que entres con el coche. Por ejemplo, para alimentar la lista de la compra, indicar a tu personal trainer que has ido al gimnasio o mandar una notificación de Telegram al grupo familiar.
- Avisa que estás de camino a tus clientes, tus amigos o tus familiares.

