En esta entrada te enseño a hacer geocodificación con Home Assistant, para convertir coordenadas y direcciones dentro de tu instancia.
¿Qué es la geocodificación y para qué sirve?
La geocodificación es el proceso de asignar coordenadas geográficas (e.g. latitud-longitud) a puntos del mapa (direcciones, puntos de interés, etc.). Las coordenadas geográficas producidas pueden luego ser usadas para localizar el punto del mapa. Por otro lado, la geocodificación inversa es el proceso de asignación a partir de unas coordenadas geográficas conocidas una dirección física o topónimo.
Ambos procesos pueden resultarnos de utilidad en nuestras automatizaciones, por ejemplo para saber la dirección en la que se encuentra un ‘device tracker’ o transformar direcciones en coordenadas para poder situarlas en un mapa.
Mostrar las coordenadas de una dirección
Disponer de las coordenadas de un punto o un dispositivo nos va a permitir convertirlo en un ‘device_tracker’. Esto a su vez nos va a proporcionar funcionalidades como poder situarlo en un mapa, calcular trayectos o distancias, y crear automatizaciones cuando entre o salga de zonas, entre otros.
El problema es que no siempre conocemos las coordenadas, aunque dispongamos de la dirección (como cuando integramos un AirTag en Home Assistant). Sin embargo, podemos obtenerlas haciendo una consulta a una API externa, de la siguiente forma:
- Entra en la web de Geoapify y pulsa en “Get started”. A continuación baja hasta el final de la página, pulsa en “Get api key” y regístrate o accede con tu cuenta de Google.
- Pulsa en el botón de “Create a project” e introduce el nombre que quieras (por ejemplo, “Aguacatec”). Copia y conserva el código que figura en el campo “Key”.
- Copia el siguiente código en tu fichero ‘sensors.yaml’ y haz los siguientes ajustes:
- Sustituye la palabra “SENSOR” por el nombre que prefieras (por ejemplo, “coche”).
- Ajusta el valor del campo ‘scan_interval’ al tiempo en segundos para actualizar las coordenadas del sensor (ten en cuenta que tienes 3000 créditos al día de forma gratuita).
- Sustituye la palabra “DIRECCION” por la dirección completa de la que quieres obtener las coordenadas (por ejemplo, “Calle Alcalá 77, Madrid”). Puede ser un valor fijo o el estado proporcionado por otra entidad.
- Sustituye la palabra “YOURAPYKEY” por el código generado en el paso anterior.
- platform: rest
name: coordenadas_SENSOR
value_template: "{{ value_json.results[0].formatted }}"
json_attributes_path: "$.results[0]"
json_attributes:
- lon
- lat
- district
- city
- postcode
- street
- housenumber
- state
- country
- country_code
verify_ssl: true
scan_interval: 900 # every 15 min
resource_template: >
{% set address = DIRECCION %}
{{
"https://api.geoapify.com/v1/geocode/search?text="
+ address | urlencode
+ "&apiKey=YOURAPYKEY&format=json"
}}
- Reinicia Home Assistant por completo (no es suficiente con recargar).
- Ahora comprobarás que ya tienes como entidad disponible ‘sensor.coordenadas_SENSOR’ cuyo estado es la dirección completa, además de tener otros atributos relativos a su localización. Toda esta información está disponible para que la utilices en tus tarjetas o tus automatizaciones.
Mostrar la dirección de unas coordenadas
También podemos usar la geocodificación con Home Assistant para obtener la dirección de unas coordenadas, de forma que sea legible para una persona. Para ello vamos a utilizar este complemento desarrollado por la comunidad. Para ello sigue estos pasos:
- Ve a HACS > Integraciones > Explorar y descargar repositorios y busca «Places«. Pulsa en «Descargar» y reinicia HA.
- Ahora ve a Ajustes > Dispositivos y servicios > Añadir integración > Places.
- En el asistente de configuración tienes que indicar los siguientes datos:
- Sensor name. Indica el nombre de las coordenadas que quieras traducir (por ejemplo, «Coche»).
- Tracked Entity ID. Aquí tienes que seleccionar la entidad que proporcionará las coordenadas (por ejemplo, ‘device_tracker.coche’).
- Use GPS Accuracy. Desactiva esta opción si tras crear el sensor siempre te reporta el estado «Unknown».
- Puedes dejar el resto de opciones como están, o revisar en su documentación los ajustes que puedes hacer (ahora o más adelante).
- Pulsa en «Enviar».
- Bajo el bloque de la integración de «Places» se habrá creado una entidad que no sólo te mostrará la dirección correspondiente a las coordenadas de la entidad, también podrás encontrar otros datos interesantes entre sus atributos (como a qué distancia te encuentras de casa).

