FHEM Tutorial-Reihe - Part 53: Fahrzeit berechnen mit Google Maps

Mit ** gekennzeichne Links auf dieser Seite sind Affiliatelinks.

In diesem Tutorial möchten wir einmal die Fahrtzeit von A nach B mit Hilfe der Google Maps API herausbekommen. Das heißt, dass wir anhand von Adressdaten Google fragen, wie lange man von A nach B braucht. Das geht natürlich einerseits für Daten mit dem Auto, als auch zu Fuß oder mit den öffentlichen Verkehrsmitteln. Ich zeige hier die Variante mit dem Auto - für die anderen muss einfach nur ein Parameter in der URL abgeändert werden. Diese Funktion ist sehr praktisch um einmal kurz zu prüfen wie die Verkehrslage aktuell ist. So könnte man sich die Infos am Morgen aufs Smartphone liefern lassen, oder den Wecker automatisch weiter nach vorne stellen, wenn die Fahrtzeit sehr lang ist und man pünktlich auf der Arbeit sein muss. All dies ist möglich!

Was wird benötigt?

  • Eine FHEM-Installation
  • Einen Google-Account

Video

FHEM-Kurs

Befehle

Hier müssen wir die API freischalten und einen API-Key generieren: Google Cloud Console

Nachdem die Schritte im Video befolgt wurden, kann man den Aufruf ganz einfach testen.

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Paderborn,Bahnhofstra%C3%9Fe+1&destinations=Hamburg,Jungfernstieg&mode=driving&language=de-DE&departure_time=now&key=AIzaSyC3i_oRByxPuF-P7Y5p1dBscrdmU_2Mi9Y
define WEB_GoogleMaps HTTPMOD https://maps.googleapis.com/maps/api/distancematrix/json?origins=Paderborn,Bahnhofstra%C3%9Fe+1&destinations=Hamburg,Jungfernstieg&mode=driving&language=de-DE&departure_time=now&key=AIzaSyC3i_oRByxPuF-P7Y5p1dBscrdmU_2Mi9Y 1800
attr WEB_GoogleMaps userattr reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name reading04OExpr reading05JSON reading05Name reading05OExpr requestHeader1
attr WEB_GoogleMaps enableControlSet 1
attr WEB_GoogleMaps reading01JSON rows_01_elements_01_duration_text
attr WEB_GoogleMaps reading01Name fahrzeit
attr WEB_GoogleMaps reading02JSON rows_01_elements_01_duration_in_traffic_text
attr WEB_GoogleMaps reading02Name fahrzeit-verkehr
attr WEB_GoogleMaps reading03JSON rows_01_elements_01_distance_text
attr WEB_GoogleMaps reading03Name distanz
attr WEB_GoogleMaps reading04JSON rows_01_elements_01_duration_value
attr WEB_GoogleMaps reading04Name fahrzeit-hhmmss
attr WEB_GoogleMaps reading04OExpr strftime("%T", gmtime($val))
attr WEB_GoogleMaps reading05JSON rows_01_elements_01_duration_in_traffic_value
attr WEB_GoogleMaps reading05Name fahrzeit-verkehr-hhmmss
attr WEB_GoogleMaps reading05OExpr strftime("%T", gmtime($val))
attr WEB_GoogleMaps requestHeader1 Content-Type: application/json

Die komplette Dokumentation für die Maps-API ist hier zu finden. Mit der API kann man außerdem

  • Mehrere Routen mit einer Abfrage auf einmal berechnen lassen
  • Die Fahrtzeit mit der Bahn zu einer bestimmten Uhrzeit berechnen lassen (mode: transit / transit_mode: train)

Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Rabattaktionen für Kurse
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine

Großer Fan und Anhänger von OpenSource-Projekten und erweiterbaren Haus-Automatisierungskomponenten. Je offener und flexibler das System, desto besser. Ich lege mich ungern auf einzelne Protokolle oder Standards fest, sondern probiere aus allen Welten das Beste zu verheiraten. Unterwegs als Softwareentwickler, Trainer und Blogger im Bereich Smart Home.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.