FHEM: Fahrzeiten mit Verkehr mittels Google Maps API anzeigen

Inspiriert von einem Artikel, den ich hier gefunden habe, habe ich mir ebenfalls mal HTTPMOD mit der Google Maps Api angesehen. Die Grundzüge hat der Author schon erläutert – ich mache hier lediglich eine Vereinfachung und Update.

Werbung


Achtung: Dieser Beitrag benötigt eine noch experimentelle Version von HTTPMOD aus diesem Forumsthread
Los gehts mit der Erstellung des API-Keys via Google Developer Console. Dort auf „APIs aktivieren und verwalten“:
5535-FHEM-MAPS-API-01
Dann ein neues Projekt erstellen und einen Projektnamen vergeben (z.B. fhem-maps-api):
5535-FHEM-MAPS-API-02
Dann suche in der nächsten Übersicht nach „Google Maps Distance“ und nimm die „Google Maps Distance Matrix API“:
5535-FHEM-MAPS-API-03
Aktiviere diese:
5535-FHEM-MAPS-API-04
Klicke dann links auf „Zugangsdaten“:
5535-FHEM-MAPS-API-05
Wähle „Browser-Schlüssel“:
5535-FHEM-MAPS-API-06
Nimm einen beliebigen Namen, welcher für dich Aussagekraft hat.
5535-FHEM-MAPS-API-07
Nun ist dein API-Schlüssel erstellt. Diesen musst du kopieren.
5535-FHEM-MAPS-API-08

Dann gehts in FHEM. Im untenstehenden Code muss YOURAPIKEY gegen den soeben erstellten API Key getauscht werden, ebenso natürlich dein Abfahrtsort (ORIGIN) und ZIEL (DESTINATION). Um letztere herauszufinden, würde ich eine Google Maps Suche machen und dann das Feld jeweils herauskopieren. Leerzeichen sollten durch %20 ersetzt werden, also beispielsweise wird aus: Robert-Schuman-Straße 8, 68519 Viernheim dann Robert-Schuman-Straße%208,%2068519%20Viernheim. Die definition des Devices folgt wie immer meiner Namenskonvention:

define INF_HTM_FAHRZEIT_HOME_WORK HTTPMOD https://maps.googleapis.com/maps/api/distancematrix/json?origins=ORIGIN&destinations=DESTINATION&mode=driving&language=de-DE&departure_time=now&key=YOURAPIKEY 3600
attr INF_HTM_FAHRZEIT_HOME_WORK reading01Name standard
attr INF_HTM_FAHRZEIT_HOME_WORK reading01JSON rows_01_elements_01_duration_value
attr INF_HTM_FAHRZEIT_HOME_WORK reading01Expr strftime("%T", gmtime $val)
attr INF_HTM_FAHRZEIT_HOME_WORK reading02Name traffic
attr INF_HTM_FAHRZEIT_HOME_WORK reading02JSON rows_01_elements_01_duration_in_traffic_value
attr INF_HTM_FAHRZEIT_HOME_WORK reading02Expr strftime("%T", gmtime $val)
attr INF_HTM_FAHRZEIT_HOME_WORK reading03Name distance
attr INF_HTM_FAHRZEIT_HOME_WORK reading03JSON rows_01_elements_01_distance_value
attr INF_HTM_FAHRZEIT_HOME_WORK reading03Expr sprintf("%.1f", $val/1000)
attr INF_HTM_FAHRZEIT_HOME_WORK stateFormat Normal:standard Aktuell:traffic (distance km)

Vielen Dank nochmals an Jürgen für die Idee – sehr cool 🙂

Veröffentlicht von

Uli

IT-Nerd und Admin

6 Gedanken zu „FHEM: Fahrzeiten mit Verkehr mittels Google Maps API anzeigen“

  1. Kann es sein, dass das aktuelle 98_HTTPMOD.pm aus dem Repository noch nicht das Attribut „reading01JSON“ versteht?

    Ich bekomme leider die Meldung „unknown attribute reading01JSON“

    Woher ist der bei dir verwendete Stand der 98_HTTPMOD.pm?

  2. Hi,

    die Readings von reading01JSON und reading 02JSON sind beide „rows_01_elements_01_duration_in_traffic_value“

    Müsste das reading01JSON nicht „rows_01_elements_01_duration_value“ heißen?

    Gruß
    nico

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.