PARTAGE

Le 27 mars 2025 | Update 16 juillet 2025 | - 1 min read

Temps de Trajet avec l'Api Google Maps

TripTime est un script très simple sans prétention écrit en Python qui permet de récupérer des temps de trajet en voiture depuis l'API de Google Maps et d'intégrer ces données dans Home Assistant via son API REST. Ces données me seront très utiles à des moments chronophages de ma journée. On utilisera en sus des automations dans Home Assistant pour notifier l'information et la rendre utile.

Fonctionnalités

  1. Récupération des temps de trajet en voiture pour des itinéraires prédéfinis.
  2. Intégration automatique des données dans Home Assistant.
  3. Notification sur smartphone via des automations dans Home Assistant.

Prérequis

Avant d'utiliser TripTime, assurez-vous de disposer des éléments suivants :

  • Une clé API valide pour Google Maps. (Attention à la facturation !)
  • Une instance de Home Assistant ouverte sur Internet + un token d'authentification pour son Api.
  • Un environnement capable d'exécuter Python 3 (Un Vps, Un Nas, Un Serveur, ...) ayant acces à internet.

Installation

Clonez le dépôt GitHub sur votre machine :

git clone https://github.com/NicoDupont/TripTime.git


Accédez au répertoire du script :

cd TripTime

Packages python à installer dans votre environnement python3 :

from dataclasses import dataclass
import json
import asyncio
from typing import List
import googlemaps
import aiohttp

config.json

Renommez le fichier config.sample.json en config.json et renseignez les informations suivantes :

{
  "google_maps_api_key": "sdqgfdmlqbjhjqbjldfKDSQGQSJQS65uw",
  "home_assistant_url": "https://HA_URL/",
  "home_assistant_token": "sqidfhkjknmc.jeqhiOIBNJlfdqsf54qs"
}

travels.json

Renommez le fichier travels.sample.json en travels.json et ajoutez y vos trajets personnalisés.

[
  {
    "name": "Maison -> Travail",
    "origin": "Av. Gustave Eiffel, 75007 Paris, France",
    "destination": "1 Av. des Champs-Élysées, 75008 Paris, France",
    "entity_id": "triptime_home_work"
  },
  {
    "name": "Travail -> Maison",
    "origin": "1 Av. des Champs-Élysées, 75008 Paris, France",
    "destination": "Av. Gustave Eiffel, 75007 Paris, France",
    "entity_id": "triptime_work_home"
  }
]

Une fois la configuration terminée, exécutez le script principal pour récupérer les temps de trajet et les envoyer à Home Assistant :

python3 main.py

Automatisation

Ajouter une tache ou plusieurs taches cron :

chmod +x launcher_triptime.sh
crontab -e

0 7 * * 1-5 sh /home/nicolas/launcher_triptime.sh

Home Assistant

Pas grand chose à faire de ce coté, la création des entités se fait automatiquement. Il faudra prévoir quelques automations pour être alerté comme des notification directes sur smartphone. On peut imager d'autres scénarios d'alerting, comme allumer une ampoule d'une couleur spécifique ou la faire clignoter avec une fréquence plus ou moins rapide pour notifier un temps de trajet plus ou moins long... Ici seul notre imagination est la limite mais il faut savoir rester simple !

Exemple d'automation :

alias: Notifier TripTime Work -> Home
description: ""
triggers:
  - trigger: time
    at: "17:50:00"
conditions:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  - condition: state
    entity_id: input_select.planning_nicolas
    state: Travail
actions:
  - action: notify.mobile_app_iphone_de_nicolas
    metadata: {}
    data:
      title: 🚗 Travail -> Maison @ {{now().strftime('%H:%M')}}
      message: >-
        {% set t = states('sensor.triptime_work_home') | int %} {% if t < 25
        %}🚀{% elif t <= 35 %}😐{% else %}😡{% endif %} Temps de trajet estimé
        -> {{ t }} minutes
mode: single

Résumé

TripTime me simplifie la vie matin et soir. Plus besoin d'ouvrir google maps ou waze pour m'afficher le temps de trajet estimé selon la circulation. Plus de surprise sur mes trajets si j'ai oublié de regarder la circulation. Le script est simple, basique, exécutable un peu partout et l'intégration dans home assistant est ultra simple.