neues Modul: TRAFFIC - google maps directions

Begonnen von jmike, 27 Juli 2016, 10:51:23

Vorheriges Thema - Nächstes Thema

jmike

Hi.

Update vom Modul oder von FHEM?

Bei mir läuft TRAFFIC 1.2 derzeit auf fhem Version 12717/2016-12-05, 12804/2016-12-17 und 12911/2016-12-30.

Die Subroutine FW_fC ist teil vom FHEMWEB, welches so ziemlich als erstes Modul geladen wird. FHEM/01_FHEMWEB.pm hast du ja nehm ich an!?

benkler

TRAFFIC ist bei mir momentan:
98_TRAFFIC.pm 12838 2016-12-19 20:59:43Z

Ja FHEMWEB habe ich, und dort ist FW_fC auch vorhanden, habe erstmal alles angeschaut, und kann mir den Fehler nicht wirklich erklären.

habe einfach über den befehlt UPDATE, fhem aktuallisiert mit allem, und da wurde FHEMWEB und auch 98_TRAFFIC upgedated
FHEM (Docker), Homebridge (Docker), Homematic IP, nanoCUL 433 + 868 a-culfw, jeeLink Clone, Diverse IT Sensoren, ems-esp, Netatmo und noch einiges mehr

gent

#152
Hi Mike,

wie ich in der PM bereits geschrieben hatte, muss in Zeile 510 folgende Änderung vorgenommen werden, damit die Karte angzeigt wird:

my $web = '<script type="text/javascript" src="https://maps.google.com/maps/api/js?key=<hier muss mein APIKEY rein>&libraries=geometry"></script>


1. https
2. key=APIKEY
3. &sensor=false rausnehmen

Leider bekomme ich den APIKEY nicht dynamisch in die Variable. Muss mal wieder ein wenig perl Kenntnisse auffrischen.

Viele Grüße vom gent
fhem auf rPi3 mit USB boot und M2, cul866 (hm), homebridge, FlowerSens, Shelly, Harmony, WemosD1, Sonoff/Tasmota, grafana, mqtt/mosquitto

gent

Hi Mike,

mir ist noch etwas aufgefallen, bzw. etwas unklar.

Das Reading duration_in_traffic ist immer kleiner, als das Reading duration

Könnte es sein, dass hier etwas vertauscht ist oder verstehe ich die Readings nicht richtig?

Viele Grüße vom Gent
fhem auf rPi3 mit USB boot und M2, cul866 (hm), homebridge, FlowerSens, Shelly, Harmony, WemosD1, Sonoff/Tasmota, grafana, mqtt/mosquitto

sinus61

Ist mir auch schon aufgefallen, allerdings nicht immer. Teilweise passt es, aber dann ist mal wieder der in_traffic Wert kleiner, meist sind es 1-2 Minuten. Der delay bleibt aber auf 0.

jmike

Hi.

Zitat von: benkler am 02 Januar 2017, 15:59:26
habe einfach über den befehlt UPDATE, fhem aktuallisiert mit allem, und da wurde FHEMWEB und auch 98_TRAFFIC upgedated

Hm, hab spontan so keine Idee was das sein könnte. Hast du FHEM neu gestartet nach dem update?


Zitat von: gent am 02 Januar 2017, 20:24:12
...
1. https
2. key=APIKEY
3. &sensor=false rausnehmen
Leider bekomme ich den APIKEY nicht dynamisch in die Variable. Muss mal wieder ein wenig perl Kenntnisse auffrischen.

Das könnte ich mit ins nächste Update pushen, komisch nur, dass entweder nur du das Problem hast oder keiner die Karte nutzt (oder das Issue nicht reported).
Bei mir gehts auf jedenfall ohne, selbst der Code den du mir geschickt hast lief ja.

Ich werde deinen Vorschlag mal testen und wenn nichts dagegen spricht kommt es ins Modul.


Zitat von: gent am 02 Januar 2017, 20:54:31
Das Reading duration_in_traffic ist immer kleiner, als das Reading duration
Könnte es sein, dass hier etwas vertauscht ist oder verstehe ich die Readings nicht richtig?

Dann hast du wohl wenig Stau ;)

Ich hab das auch schon öfter gesehen, aber es ist im return von Google auch so angegeben.
Ich vermute "duration" ist ein "üblicher Wert" oder Durchschnitt oder sowas. Und wenn wenig Verkehr ist, bist du laut Google sogar schneller.
Bei mir ist es meist 1 Minute, und nur wenn Delay 0 ist.



benkler

Zitat von: jmike am 05 Januar 2017, 13:53:14
Hi.

Hm, hab spontan so keine Idee was das sein könnte. Hast du FHEM neu gestartet nach dem update?

habe den Fehler gestern abend gefunden.
Ich habe TRAFFIC in eine eigene cfg datei ausgelagert, und es scheint so, als würde er nun diese vor FHEMWEB einbinden und somit fehlt im die funktion.

gruß
benkler
FHEM (Docker), Homebridge (Docker), Homematic IP, nanoCUL 433 + 868 a-culfw, jeeLink Clone, Diverse IT Sensoren, ems-esp, Netatmo und noch einiges mehr

Amenophis86

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

benkler

habe das für viele devices gemacht, und nur die wichtigsten sachen in der fhem.cfg selbst mit drin, ich lade den rest mit include
FHEM (Docker), Homebridge (Docker), Homematic IP, nanoCUL 433 + 868 a-culfw, jeeLink Clone, Diverse IT Sensoren, ems-esp, Netatmo und noch einiges mehr

Amenophis86

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

benkler

FHEM (Docker), Homebridge (Docker), Homematic IP, nanoCUL 433 + 868 a-culfw, jeeLink Clone, Diverse IT Sensoren, ems-esp, Netatmo und noch einiges mehr

Amenophis86

Naja ich verfolge da die klare Meinung, dass es keinen Sinn macht in der CFG irgendetwas selbst zu verändern. Dafür gibt es einfach keinen Grund. Die CFG wird von FHEM, wenn benötigt, selbst geändert und sollte normal auch in Ruhe gelassen werden. Gibt genügend Beiträge dazu, wo es zu Problemen kam, weil die Leute in der CFG rumgeschrieben haben. Aber natürlich darf das jeder selbst entscheiden, jedoch zeigt dein Beispiel ja wieder, dass es einfach keinen Sinn macht in der CFG zu schreiben.

Aber gut, zurück zum Topic :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

jnewton957

#162
Hallo,

ich bin gerade dabei, die Karte in FTUI für meine mobile Seite einzubauen.

Klappt grundsätzlich mit:
<div data-type="iframe"
    data-src="http://192.168.2.31:8083/fhem/TRAFFIC_debug?name=<NAME DES DEVICE>f&return=0"
data-height="360"
    data-width="360"
></div>


Aber die Karte ist natürlich jetzt nicht "zentriert", wo die Wegstrecke ist sondern als Karte natürlich viel zu groß. Ich muss also selber scrollen.

Hat jemand eine Idee, wie ich das Bild darin im coding "verschieben" kann ?
Letztlich müsste es ja entweder in der traffic.pm eine Möglichkeit (Attribut xy Koordinaten) oder eben in der url mitgegeben werden können.

Grüße
Jörg
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

Sommer68

Guten Morgen,
vorab: Es ist ein tolles Modul und ich habe es auch schon in FT UI eingebunden, um mir die Fahrtzeit zur Arbeit anzeigen zu lassen. Auch ich hatte die Idee, die Karte als kleines Bild einzubinden - nur um zu sehen, ob ich den "normalen" Weg nehmen kann, oder ob sich die berechnete Fahrtzeit auf eine Umleitung bezieht.

Klasse wäre es deshalb, wenn sowohl die Kartengröße, der Zoomfaktor und auch der Punkt, an dem die Karte zentriert wird mit Parametern festzulegen wäre. So wäre man ziemlich flexibel beim Einbinden der Karte. Das Zentrum könnte man z.B. ähnlich wie Waypoints parametrisieren.

Nun zur Frage, denn derzeit behelfe ich mich auch durch eingriff in den Code:

Zitat von: jnewton957 am 07 Januar 2017, 08:04:49
Hallo,

ich bin gerade dabei, die Karte in FTUI für meine mobile Seite einzubauen.

Klappt grundsätzlich mit:
<div data-type="iframe"
    data-src="http://192.168.2.31:8083/fhem/TRAFFIC_debug?name=<NAME DES DEVICE>f&return=0"
data-height="360"
    data-width="360"
></div>


Aber die Karte ist natürlich jetzt nicht "zentriert", wo die Wegstrecke ist sondern als Karte natürlich viel zu groß. Ich muss also selber scrollen.

Hat jemand eine Idee, wie ich das Bild darin im coding "verschieben" kann ?
Letztlich müsste es ja entweder in der traffic.pm eine Möglichkeit (Attribut xy Koordinaten) oder eben in der url mitgegeben werden können.

Grüße
Jörg

Die Stelle, an die du ran musst, ist im Modul (98_TRAFFIC.pm) ungefähr bei Zeile 520:

<div id="map"></div>
<style>
    #map {width:800px;height:800px;}
</style>
<script type="text/javascript">
function initialize() {
    var myLatlng = new google.maps.LatLng('.ReadingsVal($name, "$debugLocation", undef ).');


Mit "map {width:800px;height:800px;}" definierst du die Größe der Karte. Dort einfach deine Werte eintragen.

Zentriert wird die Karte bei 
var myLatlng = new google.maps.LatLng('.ReadingsVal($name, "$debugLocation", undef ).');.

Zuerst musst du dir dein "persönliches" Kartenzentrum auf einer Karte bestimmen und die Koordinaten kopieren. Dann änderst du die Zeile und trägst sie direkt ein:
var myLatlng = new google.maps.LatLng(51.234567, 11.234567)

...flexibler wären natürlich "Parameter im Modul"...  ;)

Grüsse - Thomas

jnewton957

Zitat von: Sommer68 am 07 Januar 2017, 09:48:33

Die Stelle, an die du ran musst, ist im Modul (98_TRAFFIC.pm) ungefähr bei Zeile 520:


Hallo,

DANKE. Das hat geholfen.

Hast du in EINER Karte mehrere Strecken/Meldungen ??

Jörg
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP