TRAFFIC: Unterschied zwischen den Versionen
Jmike (Diskussion | Beiträge) (neue Seite erstellt für Modul 98_TRAFFIC) |
Krikan (Diskussion | Beiträge) K (fehlerhafte Hervorhebung korrigiert) |
||
(16 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
|ModForumArea=Unterstützende Dienste | |ModForumArea=Unterstützende Dienste | ||
|ModTechName=98_TRAFFIC.pm | |ModTechName=98_TRAFFIC.pm | ||
|ModOwner=jmike <br />( | |ModOwner=jmike <br />({{Link2Forum|Topic=56045|LinkText=Forum}} / [[Benutzer:Jmike|Wiki]]) | ||
}} | }} | ||
Dieses Modul erfasst Fahrzeiten in aktueller Verkehrslage mittels Google Maps Directions API. | |||
== Features / Funktionen == | == Features / Funktionen == | ||
Zeile 23: | Zeile 23: | ||
* Strecke kann zusätzlich in gegengesetzte Richtung ausgelesen werden | * Strecke kann zusätzlich in gegengesetzte Richtung ausgelesen werden | ||
* Ankunfszeit bei Abfahrt zum Update-Zeitpunkt | * Ankunfszeit bei Abfahrt zum Update-Zeitpunkt | ||
* verschiedene Travel Modes (driving, walking, bicycling und transit) | |||
* flexibler Update Schedule für Stosszeiten | |||
* integrierte, konfigurierbare Google Map zum Visualisieren der konfigurierten Route | |||
* Kurzbeschreibung der Alternativen Routen und Anzeige auf der Karte (optional) | |||
* DBLog Integration | |||
== Voraussetzungen == | == Voraussetzungen == | ||
Erstmal muss ein eigener API Key angefordert werden. | Erstmal muss ein eigener API Key angefordert werden. | ||
Das geht über Googles [https://console.developers.google.com/apis/ API Manager]<br> | Das geht über Googles [https://console.developers.google.com/apis/ API Manager]<br> | ||
Dort | Dort "Google Maps Directions API" suchen und ein neues Projekt erstellen, anschliessend API aktivieren. | ||
Für die Karte ist zusätzlich der "Google Maps JavaScript API" notwendig und sollte an dieser Stelle auch aktiviert werden. | |||
{{Hinweis| | |||
Google stellt die API nicht mehr unbegrenzt kostenlos zur Verfügung (https://cloud.google.com/maps-platform/pricing/) sondern nur noch über ein gratis Kontingent, welches derzeit 300€ auf 365 Tage ist. Ist das Kontingent aufgebraucht, werden die Abfragen Seitens Google gedrosselt (bis zu 1x pro Tag) solange man keine kostenpflichtige Abrechnung einrichtet.<br> | |||
Weiteres dazu im Foreneintrag ab hier: https://forum.fhem.de/index.php/topic,56045.msg830728.html#msg830728 | |||
}} | |||
Je nach FHEM Installation zusätzlich die Perl Module LWP::Simple, JSON und MIME::Base64 nach installieren:<br> | |||
<code>sudo apt-get install libwww-perl</code><br> | |||
<code>sudo apt-get install libjson-perl</code><br> | |||
oder<br> | |||
<code>sudo cpan -i LWP::Simple</code><br> | |||
<code>sudo cpan -i JSON</code><br> | |||
<code>sudo cpan -i MIME::Base64</code> | |||
== Definition == | == Definition == | ||
Zeile 37: | Zeile 54: | ||
<code>define muc2berlin TRAFFIC ABCDEFGHIJKLMNOPQRSTVWYZ 600</code> | <code>define muc2berlin TRAFFIC ABCDEFGHIJKLMNOPQRSTVWYZ 600</code> | ||
Der API Key muss selbstverständlich mit dem Key | Der API Key muss selbstverständlich mit dem eigenen Key aus dem API Manager ersetzt werden.<br> | ||
Das | Das Intervall in Sekunden ist optional, der default beträgt 3600 (1 Stunde).<br> | ||
Attribute start_address und end_address definieren. | |||
== Readings == | == Readings == | ||
* [alternatives] | |||
* average_delay_min | * average_delay_min | ||
* average_duration_in_traffic_min | * average_duration_in_traffic_min | ||
Zeile 57: | Zeile 76: | ||
* state | * state | ||
* status | * status | ||
* summary | |||
== Befehle == | == Befehle == | ||
Zeile 65: | Zeile 85: | ||
- zweiter Wert gibt an wie viele Sekunden zwischen den Updates gewartet wird<br> | - zweiter Wert gibt an wie viele Sekunden zwischen den Updates gewartet wird<br> | ||
Beispiel um für 1 Stunde alle | Beispiel um für 1 Stunde alle 5 Minuten zu aktualisieren:<br> | ||
<code>set <device> update 12 300</code> | <code>set <device> update 12 300</code> | ||
Zeile 107: | Zeile 127: | ||
| | | | ||
|de, en, etc. | |de, en, etc. | ||
|Google ermittelt die Sprache automatisch falls nicht fest definiert | |Google ermittelt die Sprache automatisch, falls nicht fest definiert | ||
|de | |de | ||
|- | |- | ||
Zeile 114: | Zeile 134: | ||
|lat, long<nowiki>|</nowiki>lat, long | |lat, long<nowiki>|</nowiki>lat, long | ||
|fixe Wegpunkte auf der Strecke, mehrere Werte per pipe <nowiki>(|)</nowiki> trennen, LAT, LONG Koordinaten angeben | |fixe Wegpunkte auf der Strecke, mehrere Werte per pipe <nowiki>(|)</nowiki> trennen, LAT, LONG Koordinaten angeben | ||
|48.187918, 11.590514 | |||
|- | |||
!align="right" |returnWaypoints | |||
| | |||
|lat, long<nowiki>|</nowiki>lat, long | |||
|fixe Wegpunkte für den Rückweg, mehrere Werte per pipe <nowiki>(|)</nowiki> trennen, LAT, LONG Koordinaten angeben, wenn leer werden "waypoints" in umgekehrter Reihenfolge verwendet | |||
|48.187918, 11.590514 | |48.187918, 11.590514 | ||
|- | |- | ||
Zeile 125: | Zeile 151: | ||
| | | | ||
|<beliebiges-Reading> | |<beliebiges-Reading> | ||
|Name eines Readings dessen | |Name eines Readings, dessen Wert in den STATE des Devices geschrieben wird | ||
|delay_min | |delay_min | ||
|- | |- | ||
Zeile 131: | Zeile 157: | ||
|text | |text | ||
|text,min,sec,average | |text,min,sec,average | ||
| | |Konfiguration, welche Readings erstellt werden sollen, eine oder mehrere möglich | ||
|text min | |text min | ||
|- | |- | ||
Zeile 137: | Zeile 163: | ||
|0 | |0 | ||
|0:1 | |0:1 | ||
|aktiviert/deaktiviert ob die gleiche Strecke in umgekehrter Richtung hinzugefügt werden soll | |aktiviert/deaktiviert, ob die gleiche Strecke in umgekehrter Richtung hinzugefügt werden soll<br>Readings werden mit return_* angegeben | ||
|1 | |1 | ||
|- | |- | ||
Zeile 143: | Zeile 169: | ||
|1 | |1 | ||
|0:1:2:3:4:5 | |0:1:2:3:4:5 | ||
|gibt vor wie ausführlich geloggt wird | |gibt vor, wie ausführlich geloggt wird | ||
|5 | |5 | ||
|- | |||
!align="right" |travelMode | |||
|driving | |||
|driving:walking:bicycling:transit | |||
|Fortbewegungsmethode für Kalkulation | |||
|walking | |||
|- | |||
!align="right" |updateSchedule | |||
| | |||
|<Beginn-volle-Stunde>-<Ende-volle-Stunde> [<Tag>] <update-Intervall-in-Sekunden> | |||
|definiert einen flexiblen Zeitraum für feinere Updates, Tag als Zahl (Sonntag 0, Montag 1 etc.), mehrere Definitionen per <nowiki>(|)</nowiki> getrennt | |||
| 6-8 1 60|6-8 2 60|6-8 3 60|6-8 4 60|6-8 5 60 | |||
|- | |||
!align="right" |GoogleMapsStyle | |||
|default | |||
|default,silver,dark,night | |||
|definiert einen der vorgegebenen Map Styles | |||
|<i>dropdown</i> | |||
|- | |||
!align="right" |GoogleMapsSize | |||
|800,600 | |||
|<Breite>,<Höhe> | |||
|definiert die Breite und Höhe der Karte | |||
| 600,300 | |||
|- | |||
!align="right" |GoogleMapsCenter | |||
|<i>auto-generiert</i> | |||
|<lat>,<lang> | |||
|definiert den Mittelpunkt der Karte | |||
| 48.2322157,11.6867434 | |||
|- | |||
!align="right" |GoogleMapsZoom | |||
|10 | |||
|<Zoom wert> | |||
|definiert den Zoom Wert der Karte | |||
| 14 | |||
|- | |||
!align="right" |GoogleMapsStroke | |||
|#4cde44,6,100,#FF0000,1,100 | |||
|<#-6-digit-hex-code>,[<weight>[,<opacity>],]<#-6-digit-hex-code>,[<weight>,[<opacity>]] | |||
|definiert die Farbe der Wegstrecken im HEX Format, Dicke der Linie und Transparenz. Getrennte Angabe von Hin- und Rückweg sind möglich. | |||
| #019cdf,#ffeb19<br>#019cdf,15,50,#ffeb19,15,50<br>#019cdf,20,80,#ffeb19 | |||
|- | |||
!align="right" |GoogleMapsTrafficLayer | |||
|0 | |||
|0:1 | |||
|schaltet den Standard Google Maps Traffic Overlay ein/aus | |||
| 1 | |||
|- | |||
!align="right" |GoogleMapsDisableUI | |||
|0 | |||
|0:1 | |||
|Dropdown um die Map Controls zu deaktivieren | |||
| 1 | |||
|- | |||
!align="right" |GoogleMapsFixedMap | |||
|0 | |||
|0:1 | |||
|verhindert das verschieben/zoomen der Karte | |||
| 1 | |||
|- | |||
!align="right" | alternatives | |||
|0 | |||
|0:1 | |||
|aktiviert das Reading alternatives, welches Alternative Routen (Kurzbeschreibung + Wegzeit) anzeigt | |||
| 1 | |||
|- | |- | ||
|} | |} | ||
== Integrierte Karte == | |||
* Zum Überprüfen der verwendeten Wegstrecke können der Hin- und Rückweg für ein TRAFFIC-Device auf einer Karte angezeigt werden. | |||
* Um die Karte anzuzeigen einfach oben auf "toggle Map" klicken | |||
* Für Einbindung in andere Anwendungen (TabletUI z.b) kann die Karte zusätzlich über den eingeblendeten Link erreicht werden: <nowiki>http://fhem-ip:port/fhem/TRAFFIC?name=<TRAFFIC-DEVICE></nowiki> | |||
* Karte anpassen: | |||
** Die Karte lässt sich über folgende Attribute anpassen: | |||
** GoogleMapsStyle, GoogleMapsSize, GoogleMapsCenter, GoogleMapsZoom, GoogleMapsStroke, GoogleMapsTrafficLayer und GoogleMapsFixedMap | |||
** GoogleMapsZoom und GoogleMapsCenter können direkt in der Kartenansicht gespeichert werden. Dazu die Karte verschieben/zoomen und anschliessend auf die Buttons "save Zoom" bzw. "save Center" klicken | |||
** weitere Beispiele bitte dem Forum entnehmen | |||
== Bekannte Probleme == | == Bekannte Probleme == | ||
* STATE: "REQUEST DENIED" | * STATE: "REQUEST DENIED" | ||
* Reading error_message: "This API project is not authorized to use this API" | * Reading error_message: "This API project is not authorized to use this API" | ||
** => | ** => API Key ist nicht aktiviert. Google API > API Manager > Google Maps Directions API > AKTIVIEREN | ||
* STATE: "UNKNOWN_ERROR" | * STATE: "UNKNOWN_ERROR" | ||
Zeile 161: | Zeile 261: | ||
* STATE: "OVER_QUERY_LIMIT" | * STATE: "OVER_QUERY_LIMIT" | ||
** | ** Es wurden mehr als 2500 requests pro Tag abgesetzt. Abhilfe: Update Intervalle der TRAFFIC Devices erhöhen und "burst" zu den Stosszeiten nutzen. | ||
* STATE: "ZERO_RESULTS" | |||
** Die Waypoint Definition kann Google nicht realisieren. Statt Städtenamen besser exakte Koordinaten verwenden. | |||
* Karte zeigt nur ein graues Bild "Ops..." | |||
** checkt eure Javascript Konsole nach dem exakten Fehler | |||
** Google Maps API error: ApiNotActivatedMapError https://developers.google.com/maps/documentation/javascript/error-messages#api-not-activated-map-error | |||
** => Google Maps JavaScript API aktivieren | |||
== Tips == | == Tips == | ||
* täglicher Burst Update zum Feierabend, 1 Stunde alle 5 Minuten updaten: | * täglicher Burst Update zum Feierabend, 1 Stunde alle 5 Minuten updaten: | ||
<code>define FeierabendCheck AT *17:00 set <device> update 12 300</code> | ** <code>define FeierabendCheck AT *17:00 set <device> update 12 300</code> | ||
* komplette Reisezeit, also Hin- und Rückweg, im STATE anzeigen: | * komplette Reisezeit, also Hin- und Rückweg, im STATE anzeigen: | ||
<code>attr <device> stateFormat {int(ReadingsVal($name,"delay_min",0)) + int(ReadingsVal($name,"return_delay_min",0))}</code> | ** <code>attr <device> stateFormat {int(ReadingsVal($name,"delay_min",0)) + int(ReadingsVal($name,"return_delay_min",0))}</code> | ||
* updateSchedule einsetzen um default update Intervall zu verfeinern | |||
** Montag bis Freitag von 6 bis 8 Uhr alle 60 Sekunden | |||
** <code>attr <device> updateSchedule 6-8 1 60|6-8 2 60|6-8 3 60|6-8 4 60|6-8 5 60</code> | |||
** jeden Tag von 17 bis 19 Uhr alle 2 Minuten | |||
** <code>attr <device> updateSchedule 17-19 120</code> | |||
* Waypoints definieren (Tip von erdo_king) | * Waypoints definieren (Tip von erdo_king) | ||
** In Google-Maps die gewünschte Route auswählen | ** In Google-Maps die gewünschte Route auswählen (am PC) | ||
** Auf eine signifikante Stelle der Route klicken - hierbei auf die Fahrtrichtung achten! | ** Auf eine signifikante Stelle der Route klicken - hierbei auf die Fahrtrichtung achten! | ||
** Hier auf die Koordinaten klicken, diese können dann aus dem Suchfeld kopiert werden | ** Hier auf die Koordinaten klicken, diese können dann aus dem Suchfeld kopiert werden | ||
** Im Browser | ** Im Browser zurückgehen, bis die Route wieder sichtbar ist (zum späteren Datenabgleich) | ||
** Waypoints in FHEM deklarieren, Daten aktualisieren (set update) | ** Waypoints in FHEM deklarieren, Daten aktualisieren (set <device> update) | ||
** distance + duration mit den Daten von Google-Maps am PC | ** distance + duration mit den Daten von Google-Maps am PC abgleichen | ||
== to Do == | == to Do == | ||
* deutsche Commandref | * deutsche Commandref | ||
== Weblinks == | == Weblinks == | ||
* | * {{Link2Forum|Topic=56045|LinkText=Modul Vorstellung und Diskussionen}} | ||
* | * {{Link2CmdRef|Anker=#TRAFFIC}} | ||
* [https://console.developers.google.com/apis Google API Manager] | * [https://console.developers.google.com/apis Google API Manager] |
Aktuelle Version vom 7. November 2018, 15:15 Uhr
TRAFFIC | |
---|---|
Zweck / Funktion | |
Verkehrsdaten zu fest definierten Routen ermitteln | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Unterstützende Dienste |
Modulname | 98_TRAFFIC.pm |
Ersteller | jmike (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Dieses Modul erfasst Fahrzeiten in aktueller Verkehrslage mittels Google Maps Directions API.
Features / Funktionen
- Distanz einer Route
- Fahrzeit ohne Verkehr
- Fahrzeit mit Verkehr
- Verzögerung der geplanten Route
- Waypoints definieren
- Ausgabesprache festlegen
- Outputs in Sekunden / Meter (raw)
- Ausgabe als Text, in Minuten, Sekunden oder als Durchschnitt
- Device STATE frei wählbar
- einstellbares Update Interval
- update-burst für Stosszeiten
- Strecke kann zusätzlich in gegengesetzte Richtung ausgelesen werden
- Ankunfszeit bei Abfahrt zum Update-Zeitpunkt
- verschiedene Travel Modes (driving, walking, bicycling und transit)
- flexibler Update Schedule für Stosszeiten
- integrierte, konfigurierbare Google Map zum Visualisieren der konfigurierten Route
- Kurzbeschreibung der Alternativen Routen und Anzeige auf der Karte (optional)
- DBLog Integration
Voraussetzungen
Erstmal muss ein eigener API Key angefordert werden.
Das geht über Googles API Manager
Dort "Google Maps Directions API" suchen und ein neues Projekt erstellen, anschliessend API aktivieren.
Für die Karte ist zusätzlich der "Google Maps JavaScript API" notwendig und sollte an dieser Stelle auch aktiviert werden.
Google stellt die API nicht mehr unbegrenzt kostenlos zur Verfügung (https://cloud.google.com/maps-platform/pricing/) sondern nur noch über ein gratis Kontingent, welches derzeit 300€ auf 365 Tage ist. Ist das Kontingent aufgebraucht, werden die Abfragen Seitens Google gedrosselt (bis zu 1x pro Tag) solange man keine kostenpflichtige Abrechnung einrichtet.
Weiteres dazu im Foreneintrag ab hier: https://forum.fhem.de/index.php/topic,56045.msg830728.html#msg830728
Je nach FHEM Installation zusätzlich die Perl Module LWP::Simple, JSON und MIME::Base64 nach installieren:
sudo apt-get install libwww-perl
sudo apt-get install libjson-perl
oder
sudo cpan -i LWP::Simple
sudo cpan -i JSON
sudo cpan -i MIME::Base64
Definition
define <devicename> TRAFFIC <API-KEY> [update-interval]
Beispiel:
define muc2berlin TRAFFIC ABCDEFGHIJKLMNOPQRSTVWYZ 600
Der API Key muss selbstverständlich mit dem eigenen Key aus dem API Manager ersetzt werden.
Das Intervall in Sekunden ist optional, der default beträgt 3600 (1 Stunde).
Attribute start_address und end_address definieren.
Readings
- [alternatives]
- average_delay_min
- average_duration_in_traffic_min
- average_duration_min
- delay
- delay_min
- distance
- duration
- duration_in_traffic
- duration_in_traffic_min
- duration_in_traffic_sec
- duration_min
- duration_sec
- [error_message]
- eta
- state
- status
- summary
Befehle
update [burst-update-count] [burst-update-interval]
Readings manuell aktualisieren, der optionale Burst kann wie folgt genutzt werden:
- erster Wert gibt an wie viele Updates abgearbeitet werden
- zweiter Wert gibt an wie viele Sekunden zwischen den Updates gewartet wird
Beispiel um für 1 Stunde alle 5 Minuten zu aktualisieren:
set <device> update 12 300
STATE
- Initialized - modul initialisiert
- OK - update war erfolgreich
- incomplete configuration - Konfigurationsfehler (start_address oder end_address leer)
- <APIRETURN> - Fehlermeldung von Google Maps, falls vorhanden (siehe Reading error_message)
- <Reading> - der Wert des Readings welches mit Attribut stateReading ausgewählt wurde
- disabled - das Device wurde über das Attribut disable deaktiviert
Attribute
Attribut | Default Wert | mögliche Werte | Beschreibung | Beispiel |
---|---|---|---|---|
start_address | <text> | die vollständige Startadresse (erforderlich!) | Startstr 1, 12345 Startcity | |
end_address | <text> | die vollständige Zieladresse (erforderlich!) | Zielstr 99, 99099 Zielstadt | |
raw_data | 0 | 0:1 | legt Readings an mit allen unbearbeiteten Werten | |
language | de, en, etc. | Google ermittelt die Sprache automatisch, falls nicht fest definiert | de | |
waypoints | lat, long|lat, long | fixe Wegpunkte auf der Strecke, mehrere Werte per pipe (|) trennen, LAT, LONG Koordinaten angeben | 48.187918, 11.590514 | |
returnWaypoints | lat, long|lat, long | fixe Wegpunkte für den Rückweg, mehrere Werte per pipe (|) trennen, LAT, LONG Koordinaten angeben, wenn leer werden "waypoints" in umgekehrter Reihenfolge verwendet | 48.187918, 11.590514 | |
disable | 0 | 0:1 | Modul deaktivieren | 1 |
stateReading | <beliebiges-Reading> | Name eines Readings, dessen Wert in den STATE des Devices geschrieben wird | delay_min | |
outputReadings | text | text,min,sec,average | Konfiguration, welche Readings erstellt werden sollen, eine oder mehrere möglich | text min |
includeReturn | 0 | 0:1 | aktiviert/deaktiviert, ob die gleiche Strecke in umgekehrter Richtung hinzugefügt werden soll Readings werden mit return_* angegeben |
1 |
verbose | 1 | 0:1:2:3:4:5 | gibt vor, wie ausführlich geloggt wird | 5 |
travelMode | driving | driving:walking:bicycling:transit | Fortbewegungsmethode für Kalkulation | walking |
updateSchedule | <Beginn-volle-Stunde>-<Ende-volle-Stunde> [<Tag>] <update-Intervall-in-Sekunden> | definiert einen flexiblen Zeitraum für feinere Updates, Tag als Zahl (Sonntag 0, Montag 1 etc.), mehrere Definitionen per (|) getrennt | 6-8 2 60|6-8 3 60|6-8 4 60|6-8 5 60 | |
GoogleMapsStyle | default | default,silver,dark,night | definiert einen der vorgegebenen Map Styles | dropdown |
GoogleMapsSize | 800,600 | <Breite>,<Höhe> | definiert die Breite und Höhe der Karte | 600,300 |
GoogleMapsCenter | auto-generiert | <lat>,<lang> | definiert den Mittelpunkt der Karte | 48.2322157,11.6867434 |
GoogleMapsZoom | 10 | <Zoom wert> | definiert den Zoom Wert der Karte | 14 |
GoogleMapsStroke | #4cde44,6,100,#FF0000,1,100 | <#-6-digit-hex-code>,[<weight>[,<opacity>],]<#-6-digit-hex-code>,[<weight>,[<opacity>]] | definiert die Farbe der Wegstrecken im HEX Format, Dicke der Linie und Transparenz. Getrennte Angabe von Hin- und Rückweg sind möglich. | #019cdf,#ffeb19 #019cdf,15,50,#ffeb19,15,50 #019cdf,20,80,#ffeb19 |
GoogleMapsTrafficLayer | 0 | 0:1 | schaltet den Standard Google Maps Traffic Overlay ein/aus | 1 |
GoogleMapsDisableUI | 0 | 0:1 | Dropdown um die Map Controls zu deaktivieren | 1 |
GoogleMapsFixedMap | 0 | 0:1 | verhindert das verschieben/zoomen der Karte | 1 |
alternatives | 0 | 0:1 | aktiviert das Reading alternatives, welches Alternative Routen (Kurzbeschreibung + Wegzeit) anzeigt | 1 |
Integrierte Karte
- Zum Überprüfen der verwendeten Wegstrecke können der Hin- und Rückweg für ein TRAFFIC-Device auf einer Karte angezeigt werden.
- Um die Karte anzuzeigen einfach oben auf "toggle Map" klicken
- Für Einbindung in andere Anwendungen (TabletUI z.b) kann die Karte zusätzlich über den eingeblendeten Link erreicht werden: http://fhem-ip:port/fhem/TRAFFIC?name=<TRAFFIC-DEVICE>
- Karte anpassen:
- Die Karte lässt sich über folgende Attribute anpassen:
- GoogleMapsStyle, GoogleMapsSize, GoogleMapsCenter, GoogleMapsZoom, GoogleMapsStroke, GoogleMapsTrafficLayer und GoogleMapsFixedMap
- GoogleMapsZoom und GoogleMapsCenter können direkt in der Kartenansicht gespeichert werden. Dazu die Karte verschieben/zoomen und anschliessend auf die Buttons "save Zoom" bzw. "save Center" klicken
- weitere Beispiele bitte dem Forum entnehmen
Bekannte Probleme
- STATE: "REQUEST DENIED"
- Reading error_message: "This API project is not authorized to use this API"
- => API Key ist nicht aktiviert. Google API > API Manager > Google Maps Directions API > AKTIVIEREN
- STATE: "UNKNOWN_ERROR"
- => Es liegt ein Fehler bei Google vor.
- => "UNKNOWN_ERROR indicates a directions request could not be processed due to a server error. The request may succeed if you try again." [1]
- STATE: "OVER_QUERY_LIMIT"
- Es wurden mehr als 2500 requests pro Tag abgesetzt. Abhilfe: Update Intervalle der TRAFFIC Devices erhöhen und "burst" zu den Stosszeiten nutzen.
- STATE: "ZERO_RESULTS"
- Die Waypoint Definition kann Google nicht realisieren. Statt Städtenamen besser exakte Koordinaten verwenden.
- Karte zeigt nur ein graues Bild "Ops..."
- checkt eure Javascript Konsole nach dem exakten Fehler
- Google Maps API error: ApiNotActivatedMapError https://developers.google.com/maps/documentation/javascript/error-messages#api-not-activated-map-error
- => Google Maps JavaScript API aktivieren
Tips
- täglicher Burst Update zum Feierabend, 1 Stunde alle 5 Minuten updaten:
define FeierabendCheck AT *17:00 set <device> update 12 300
- komplette Reisezeit, also Hin- und Rückweg, im STATE anzeigen:
attr <device> stateFormat {int(ReadingsVal($name,"delay_min",0)) + int(ReadingsVal($name,"return_delay_min",0))}
- updateSchedule einsetzen um default update Intervall zu verfeinern
- Montag bis Freitag von 6 bis 8 Uhr alle 60 Sekunden
attr <device> updateSchedule 6-8 1 60|6-8 2 60|6-8 3 60|6-8 4 60|6-8 5 60
- jeden Tag von 17 bis 19 Uhr alle 2 Minuten
attr <device> updateSchedule 17-19 120
- Waypoints definieren (Tip von erdo_king)
- In Google-Maps die gewünschte Route auswählen (am PC)
- Auf eine signifikante Stelle der Route klicken - hierbei auf die Fahrtrichtung achten!
- Hier auf die Koordinaten klicken, diese können dann aus dem Suchfeld kopiert werden
- Im Browser zurückgehen, bis die Route wieder sichtbar ist (zum späteren Datenabgleich)
- Waypoints in FHEM deklarieren, Daten aktualisieren (set <device> update)
- distance + duration mit den Daten von Google-Maps am PC abgleichen
to Do
- deutsche Commandref