Hi.
Habe ein kleines Modul geschrieben um Routen aus Google Maps in FHEM darzustellen.
Wie auch schon bei der HTTPMOD Lösung (https://forum.fhem.de/index.php/topic,20151.0.html) braucht ihr euren eigenen Google Maps API Key.
Mein dev-FHEM hat bisher alles sauber verkraftet, hoffe es läuft auch bei euch.
Das Modul ist ab heute über die Update Funktion und das SVN verfügbar.
Auch der Wiki Eintrag ist online: http://www.fhemwiki.de/wiki/TRAFFIC
initiale Beschreibung:
Hier die Fakten, [b]v0.42[/b]:
Perl module (die möglicherweise fehlen z.B. mit #> cpan -i <packet> nachinstallieren):
LWP::Simple
JSON
Installation:
98_TRAFFIC in /FHEM kopieren, dann reload 98_TRAFFIC ausführen
Attribute start_address und end_address ausfüllen.
z.b. attr <device> start_address Winzererstraße 140, 80797 München
Define:
define <devicename> TRAFFIC <API-KEY> [update-interval]
Features:
Distanz
Fahrzeit ohne Verkehr
Fahrzeit mit Verkehr
Verzögerung
Waypoints
Sprache
Outputs in Sekunden / Meter
Werte zusätzlich in Minuten
Readings können angepasst werden über Attribut outputReadings (text min)
state kann per Attribut ein Reading anzeigen, Attribut stateReading
update-burst
Strecke kann zusätzlich umgedreht werden, Attribut includeReturn
Set/Commands:
[i]"update" [burst-count] [burst-interval-sec][/i] - aktualisiert Werte automatisch (Readings)
Readings:
delay
distance
duration
duration_in_traffic
state
error_message
delay_min (optional)
duration_in_traffic_min (optional)
duration_min (optional)
eta
State:
"Initialized" - modul initialisiert
"OK" - update hat geklappt
"config_error" - Konfigurationsfehler (start_address oder end_address leer)
"<APIRETURN>" - Fehlermeldung von Google Maps, falls vorhanden (siehe Reading error_message)
custom Attribute:
"start_address" - Startadresse
"end_address" - Zieladresse
"raw_data" - Outputs in Sekunden / Meter, optional
"language" - Sprache festlegen, optional
"waypoints" - Zusätzliche Waypoints angeben, mit | getrennt, optional
"stateReading" - Name eines Readings welches state überschreibt
"outputReadings" - zum Filter der Readings, mögliche Werte "text min"
"includeReturn" - erstellt zusätzliche Readings für eine umgedrehte Strecke
"disable" - Modul deaktivieren
Der Umfang des Moduls ist noch relativ klein. Wenn ihr Wünsche / Feedback habt immer her damit.
Werde dann wie immer die Version hier im ersten Thread aktualisieren.
grüße
Mike
0.1-13
0.2-20
0.3-12
0.41-28
0.42-60
Bitte noch die Ankunftszeit mit aufnehmen. Also aktuelle Zeit + duration_in_traffic. Und die aktuelle Zeit bitte unterBerücksichtigung von Sommer- / Winterzeit.... :D
Bitte noch die Option von Waypoints einbauen. Habe zB eine Strecke so definiert:
https://maps.googleapis.com/maps/api/directions/json?origin=XXXXX&destination=XXXX&waypoints=via:Berliner%20Stra%C3%9Fe,%20Offenbach&language=de-DE&departure_time=now&key=XXXX 1800
:) Danke
gibt es einen grund das du LWP verwendest und nicht das FHEM eigene HttpNonBlockingGet?
gruss
andre
Zitat von: RaspiCOC am 27 Juli 2016, 12:49:37
Bitte noch die Ankunftszeit mit aufnehmen....
gute Idee, werde ich einbauen.
Zitat von: Amenophis86 am 27 Juli 2016, 14:24:58
Bitte noch die Option von Waypoints einbauen.
Ist bereits drin, siehe oben bzw. commandref.
Über Attribut waypoints einfach die Strecke mit | angeben. z.b.
attr device waypoints nürnberg|würzburg|fulda
Zitat von: justme1968 am 27 Juli 2016, 14:26:58
gibt es einen grund das du LWP verwendest und nicht das FHEM eigene HttpNonBlockingGet?
Nicht wirklich, die LWP calls sind zwar non-blocking umgesetzt aber ich werde mir die FHEM sub mal ansehen.
gruss
mike
Zitat von: jmike am 27 Juli 2016, 14:43:48
Ist bereits drin, siehe oben bzw. commandref.
Über Attribut waypoints einfach die Strecke mit | angeben. z.b.
attr device waypoints nürnberg|würzburg|fulda
Sry überlesen. Danke :)
Und noch ein Reading, das benötigt wird: duration_min
Also Fahrtzeit in Minuten. Nicht hh:mm sondern nur mmm. Dann kann man auch schöne Plots machen. (Ich versuche jetzt schon seit 8 Jahren das Muster hinter dem Verkehr auf der A99 zu verstehen... :'()
Hi.
v0.0.2 mit mehr Readings ist im ersten Thread.
estimated time of arrival (eta) ist leider statisch mit Startzeit "jetzt", ist also in 10min veraltet. Mal überlegen ob man irgendwie ein "live" Wert bauen kann.
Also immer aktuelle Uhrzeit + delay.
Für delay, duration und duration_in_traffic jetzt zusätzlich Minutenwerte.
Wenn die original Werte unter 1 Stunde sind, sind die Werte nun natürlich doppelt gelistet.
lg
mike
Schon klar, dass ETA immer auf jetzt bezogen ist. Sonst wäre es ja auch ein Blick in die Kristallkugel.
Über ETA könnte ich dann aber ein Abfahrsignal triggern im Sinne von, wenn Du jetzt losfährst, kommst Du zur gewünschten Zeit an.
Man könnte natürlich auch auf Basis eines Trends (z.B. die Fahrtzeit wird immer länger über die letzten Abrufintervalle) eine Prognose wagen. Also aus historischen Werten (Monat / Tag / Stunde / Minute) die erwartete Verkehrsentwicklung berechnen und die ETA dann auf einen beliebige Zeit in der Zukunft gleitend berechnen. (siehe auch beigefügtes Chart der Entwicklung der Fahrzeit in Minuten)
Ich glaube aber, dass man damit einen RPi dann wohl doch etwas überfordert.... :D
Moin,
danke für das Modul. :D
Bei device update kommt diese Fehlermeldung: Undefined subroutine &main::from_json called at ./FHEM/98_TRAFFIC.pm line 249.
Der Aufruf über den Browser fkt. liegt also nicht an den Adressen.
Die o.g. PERL Pakete möchte ich nicht über CPAN installieren, sondern über apt-get install. Welche Pakete werden denn benötigt?
Installiert habe ich schon: libjson-perl libwww-perl
Danke vorab.
Hi.
Puuh. from_json ist definitiv im Perlpaket JSON beinhaltet. Das solltest du eigentlich über "apt-get install libjson-perl" bekommen.
Du kannst mal noch libjson-any-perl probieren, macht aber eigentlich keinen Sinn.
Kannst ja eventuell mal gucken welche JSON.pm du in deiner perl extlib hast. Vielleicht kommen wir so weiter.
Moin,
Danke.
Auch ein FHEM-Neustart & FHEM-Update brachten nichts, ausser daß jetzt der Status "initialized" lautet, war zuvor "config Error", aber die o.g. Fehlermeldung kommt nach wie vor.
Installiert ist libjson-perl 2.61-1 (libjson-any-perl habe ich auch installiert).
Ansonsten: perl 5, version 20, subversion 2 (v5.20.2) unter Jessie
Hm...
was passiert wenn du auf der cli ausführst:
perl -e "use JSON;"
Bei mir läuft perl 5.14.2, JSON.pm liegt deshalb hier: /usr/local/share/perl/5.14.2/JSON.pm
version 2.90.
head /usr/local/share/perl/5.14.2/JSON.pm
package JSON;
...
BEGIN {
$JSON::VERSION = '2.90';
was hast du?
Danke für die Hilfe bei der Fehlersuche.
perl -e "use JSON;" -> Kommt garnichts zurück. Ist aber dann ein Zeichen, daß das Modul installiert ist (nehme ich an :o)
Verwende ich instmodsh -> wird reportet:
ZitatInstalled modules are:
JSON
JSON::XS
Perl
Types::Serialiser
common::sense
Liegt bei mir unter: /usr/share/perl5/JSON.pm und ist $JSON::VERSION = '2.61';
Was ich noch nicht verstehe, meine Perl-Kenntnisse sind aber auch rudiemtentär,
auch andere FHEM-Module (Philips Hue Bridge und SYSMON) verwenden m.E. die Fkt. from_json
und hier erhalte ich keine Fehlermeldung.
Ah. 2.61 hattest du oben schon gepostet.
Laut repo ist from_json dort auch schon vorhanden.
Nun gehen mir die Ideen aus. Änder mal bei deinem 98_TRAFFIC.pm die Zeile 249 auf:
my $json = decode_json($body->decoded_content);
Falls decode_json bei dir läuft werde ich es in 0.3 ändern, kommt aufs selbe raus.
Hurra, ein Schritt nun weiter, aber mit neuer Meldung:
Zitat2016.07.31 10:18:51 3: TRAFFIC: (MG_Work) duration = 1538 - 1612
Undefined subroutine &main::encode_json called at ./FHEM/98_TRAFFIC.pm line 282.
Müssten diese Zeilen sein:
ZitatLog3 $hash, 5, "TRAFFIC: ($name) returning from TRAFFIC_DoUpdate: ".encode_json($returnJSON);
Log3 $hash, 3, "TRAFFIC: ($name) TRAFFIC_DoUpdate done";
return "$name;;;".encode_json($returnJSON);
Verstehe ich nicht... :o "encode_json" existiert doch in meiner Version des JSON Moduls.
Okay..
Sehr strange.
Mir ist aufgefallen dass ich JSON nicht inkludiert habe. Vielleicht hast du irgendeine "Randkonfiguration" bei der das was ausmacht.
Mach mal bei Zeile 42 folgendes rein:
use JSON;
Wenn das auch nicht geht, lass uns per PN weitermachen damit wir den Thread nicht mit Troubleshooting "zumüllen". Die Lösung reicht ja dann hier.
Zitat von: jmike am 28 Juli 2016, 12:01:28
Für delay, duration und duration_in_traffic jetzt zusätzlich Minutenwerte.
Wenn die original Werte unter 1 Stunde sind, sind die Werte nun natürlich doppelt gelistet.
Das halte ich für überflüssig. Das Umrechnen von hh:mm in mmm sollte man bei Bedarf auch selbst hinbekommen, das kann man sich - wenn man es wirklich haben möchte - jederzeit per userReading hinzufügen.
Das wars. Nun geht es. Dankeschön.
Ich hab eine Standard-Config (Igors Image für den Cubie).
HUEBridge verwendet auch explizit "use JSON".
Zitat von: jmike am 31 Juli 2016, 12:15:23
Mach mal bei Zeile 42 folgendes rein:
use JSON;
@Raven: Sehr gut, nächstes Update kommt.
@betateilchen: Ich weiß was du meinst, wenn die Werte nicht sowieso in dem API return stehen würden, hätte ich bestimmt einen anderen Lösungsweg gesucht. Vielleicht mach ich die Readings konfigurierbar z.b. "attr readings hms min". Dann kann sich jeder das Modul zusammenklicken wie er möchte.
Ich häng mich mal dran. Danke für das Modul. Insbesondere die bereits andiskutierte Zeitreihenanalyse und Prognose finde ich hochinteressant.
Hi.
Ich schieb gleich das nächste Update nach.
Die Änderungen umfassen zwei neue Attribute und ein paar kleine Code Optimierungen / Fehlerbehebungen.
Am besten macht ihr nach dem reload ein defmod auf das Device bzw. ein re-def vom API Key.
Danach wird ein neues Attribut, outputReadings, erstellt mit Wert "text".
"text" definiert dass wir nur noch Readings bekommen für returns aus der Google API (sowie eta und state).
2016-08-01 12:23:44 delay 19 min
2016-08-01 12:23:44 distance 119 km
2016-08-01 12:23:44 duration 1 hour 18 mins
2016-08-01 12:23:44 duration_in_traffic 1 hour 37 mins
2016-08-01 12:23:44 eta 14:00:54
2016-08-01 12:23:44 state OK
Neben text gibt es auch noch min (und sec - was vermutlich kein Mensch braucht).
Wer z.b. nur minuten sehen will macht "attr device outputReadings min" und bekommt:
2016-08-01 12:28:38 delay_min 17
2016-08-01 12:28:38 duration_in_traffic_min 96
2016-08-01 12:28:38 duration_min 78
2016-08-01 12:28:38 eta 14:04:47
2016-08-01 12:28:38 state OK
Und wer alles sehen will setzt eben "attr device outputReadings text min".
Das zweite Attribut definiert den Namen eines Readings und überschreibt damit den device state.
Wer also z.b. duration_in_traffic als state haben möchte setzt:
"attr device stateReading duration_in_traffic"
Das File ist wieder im ersten Thread. Vermutlich lohnt sich langsam ein Wiki Eintrag + SVN /contrib
ich hab mir ein Google Maps Distance Matrix API Key generiert, leider kommt trotz allem REQUEST DENIED
This API project is not authorized to use this API. Please ensure this API is activated in the Google Developers Console: https://console.developers.google.com/apis/api/directions_backend?project=_
Ist dies die falsche API ? Aus dem verlinkten Thread werde ich auch nicht ganz schlau.
Danke
Ist die API denn aktiviert?
Google API > API Manager > Google Maps Directions API
da sollte oben "DEAKTIVIEREN" stehen. Falls es bei dir "AKTIVIEREN" ist, draufklicken :)
Kann es sein, dass Du in der Google Console die Distance Matrix nicht aktiviert hast. Schau doch noch mal nach, ob Du I der Google Console Fehlermeldungen findest. Das Gleiche passiert, wenn Du die 2500 Requests pro Tag überschreitet. Dann musst Du Dich anmelden und das wieder aktivieren.
Jacke war schneller.... Dennoch vielleicht von mir auch noch ein sinnvoller Hinweis gewesen...
Danke hat geholfen. Aktiviert war die Google Distance Matrix API aber nun habe ich noch die Google Maps Directions API aktiviert, nun funktioniert es.
Vielen Dank!
Mal so ein Gedanke: Die meisten defines werden ja wohl den Weg zum Arbeitsplatz oder so betreffen.
Ich lass mich auch gern per Nachricht erinnern, wenn der Heimweg länger dauert.
Könnte man nicht statt 2 defines da gleich den Hin- und auch Rückweg auswerten im TRAFFIC?
lg, Stefan
Hi Stefan.
Ich mag die Idee und nehme mal ein Attribut "wayBack" auf die 2do Liste.
gruß
Mike
Dankeschön für die neue Version! :)
Bin ich der einzige, bei den es Abweichungen gibt zw. den Minuten- und Text-Angaben?
Zitat
delay 0
delay_min -1
duration_min 26
duration 27 mins
duration_in_traffic_min 24
duration_in_traffic 25 mins
Hab ich auch.
Liegt wohl daran dass Google anders rundet als perl wenn ich Sekunden/60 rechne.
Wenn ich genug Werte gesammelt habe versuche ich was draus zu lernen, im Zweifel werde ich zwangsweise aufrunden.
Auch das delay_min mit negativem Wert hab ich bereits gesehen und in meiner pre-release version schon gefixt.
Liegt daran dass man bei Google manchmal trotz Verkehr schneller ist ;)
Frei nach "release-early, release often" ein weiteres Update.
Habe die Zeit Berechnungen überarbeitet, hatte bisher keine Diskrepanz mehr.
Dann ein neues Attribut "includeReturn", welches die Strecke inkl. Waypoints umdreht und zusätzlich alle Readings mit vorgestelltem "return_*" erstellt.
Das command "update" unterstützt nun ein Burst-Mode:
set <device> update [burst-update-count] [burst-update-interval-in-sec]
Ich wollte etwas haben womit ich in einer bestimmten Zeit das Abfrageintervall temporär erhöhen kann.
Anfangs wollte ich dass direkt im DEF zu integrieren, ähnlich wie ein cron Eintrag, war mir aber dann zu fummelig.
Mit dem Burst könnte man .z.b in einem DOIF oder AT für eine Stunde das Intervall auf 5min verkürzen:
(12x alle 300 Sekunden checken = 3600 Sekunden Burst = 1 Stunde)
define FeierabendCheck AT *17:00 set <traffic> update 12 300
Die Burst definition wird als Internal gespeichert bis sie abgearbeitet ist.
Ehrlich gesagt fühlte sich die Idee besser an als das Feature nun geworden ist, bin gespannt ob jemand einen Nutzen dafür hat.
Ich habe noch die Version 0.3 drauf und heute folgenden Fehler bekommen:
2016.08.05 12:18:35 1: PERL WARNING: Use of uninitialized value $duration_in_traffic_sec in addition (+) at ./FHEM/98_TRAFFIC.pm line 269.
2016.08.05 12:18:35 1: TRAFFIC: (VK.Friedberg) did not receive duration_in_traffic, not able to calculate delay
2016.08.05 12:18:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 309.
Hier ein List des Device:
Internals:
APIKEY XXXXXXXXXXXXXXXX
DEF XXXXXXXXXXXXXXX
Interval 3600
NAME VK.Friedberg
NR 563
STATE UNKNOWN_ERROR
TRIGGERTIME 1470395910.67005
TRIGGERTIME_FMT 2016-08-05 13:18:30
TYPE TRAFFIC
VERSION 0.3
Readings:
2016-08-05 11:18:31 delay 0 min
2016-08-05 11:18:31 distance 25.5 km
2016-08-05 11:18:31 duration 23 mins
2016-08-05 11:18:31 duration_in_traffic 23 mins
2016-08-05 12:18:36 eta 12:18:35
2016-08-05 12:18:36 state UNKNOWN_ERROR
Helper:
Bm:
Traffic_set:
cnt 6
dmx 0
mAr
max 0
tot 0
Attributes:
DbLogExclude .*
end_address 61169 Friedberg
group Verkehr
outputReadings text
room S_Info
start_address Scheidstrasse 4, 60320 Frankfurt am Main
userattr DbLogExclude end_address outputReadings start_address verbose waypoints
verbose 1
waypoints 50.253462%208.662963
Werde mir jetzt auch gleich die neue Version installieren, vielleicht hat es sich ja damit erledigt. Dachte mir aber die Info kann nicht schaden.
EDIT:
Mit der neuen Version kommt folgender Fehler beim Update des Device:
2016.08.05 12:51:34 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/98_TRAFFIC.pm line 228.
2016.08.05 12:51:35 1: PERL WARNING: Use of uninitialized value in numeric lt (<) at ./FHEM/98_TRAFFIC.pm line 330.
2016.08.05 12:51:35 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 331.
...
2016.08.05 13:18:31 1: PERL WARNING: Use of uninitialized value in numeric lt (<) at ./FHEM/98_TRAFFIC.pm line 330.
2016.08.05 13:18:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 331.
2016.08.05 13:51:35 1: PERL WARNING: Use of uninitialized value in numeric lt (<) at ./FHEM/98_TRAFFIC.pm line 330.
2016.08.05 13:51:35 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 331.
Hi.
state "UNKNOWN_ERROR" muss von der API kommen.
Die uninitialized Meldungen kann/sollte ich weg machen.
Kannst du mal verbose auf 5 setzen, update machen und list sowie logs posten?
Im Log steht dann zusätzlich auch die URL (apikey!). Das JSON dort wäre auch interessant.
Ich noch mal, war vorher kurz angebunden.
Die 3 perl warnings auf 228,330 und 331 kann ich mit deiner Device Definition reproduzieren und hab sie gefixt.
Mal noch ein paar Tage warten ob für die nächste Version noch mehr zusammen kommt.
UNKOWN_ERROR ist wie gesagt ein API Fehler:
UNKNOWN_ERROR indicates a directions request could not be processed due to a server error. The request may succeed if you try again.
siehe: https://developers.google.com/maps/documentation/javascript/directions?hl=de
Also brauchst du kein Log etc mehr? Danke für den Fix.
Den Error würde ich dann mit einem notify abfangen, wenn du es nicht im Modul umsetzen willst, dass die Anfrage nochmal neu gestellt wird :)
Zitat von: jmike am 05 August 2016, 18:05:34
Die 3 perl warnings auf 228,330 und 331 kann ich mit deiner Device Definition reproduzieren und hab sie gefixt.
Mal noch ein paar Tage warten ob für die nächste Version noch mehr zusammen kommt.
Kannst du mir den Fix sagen, dann kann ich es schon mal ändern. Aktuell wird nämlich mein Log voll geschrieben damit. Dann kann ich es schon mal ändern, bis du die neue Version raus bringst.
Hab die Version im ersten Thread aktualisiert.
Der API Return wird allerdings noch nicht ausgewertet und automatisch darauf reagiert. Ich will mir erst noch die anderen query-status anschauen.
Btw, wer nutzt eigentlich Waypoints und hatte damit beim Setup Probleme.
Google Maps sucht ja automatisch die kürzeste Route. Das hat in meinem Fall dazu geführt dass eine Strecke über Autobahn die normalerweise 1 Stunde dauert, im Modul als 1:35 angezeigt wurde.
Ich hatte (noch) keine Waypoints definiert und da wurde die Strecke einfach über Landstrasse berechnet, Autobahn wären nämlich > 2 Stunden gewesen.
In meinem Fall unerwünscht da man im Modul ja nicht wirklich sieht ob die Route verändert wurde (ausser distance).
Das setzen der Waypoints ist allerdings für eine Autobahnroute nicht ganz so leicht weil Google sehr schnell "ZERO_RESULTS" zurück gibt oder die Strecke unrealistisch lang wird.
Hat jemand Tips, die kommen dann auch in einen Wiki Artikel.
Ich habe mir die Route in Google Maps anzeigen lassen und mir den Waypoint dann über die Geokoordinaten eines Autobahnpunktes angelegt. Hatte nämlich am Anfang das Gleiche Problem.
Danke für die Aktualisierung.
Zitat von: Amenophis86 am 09 August 2016, 13:39:44
... und mir den Waypoint dann über die Geokoordinaten eines Autobahnpunktes angelegt...
Das hatte ich auch probiert, in Google Maps ganz nah ranzoomen und dann über Rechtsklick > "Was ist hier" die Lat/Lng Koordinaten abrufen.
Allerdings hat es bei 3-4 Waypoints nicht mehr funktioniert bzw. die Route wurde immer länger. Wenn man den Details im JSON folgt sieht man auch wo er die Route verlässt bzw. von der Route aus maps.google.com abweicht.
Vielleicht muss ich einfach noch mehr "rumfummeln" bis die Strecke akzeptabel ist.
Da hatte ich bei meiner Glück, ich musste nur einmal auf die Autobahn, dann ist er dort geblieben.
Huhu, ich hatte das gleiche Problem mit meinem Arbeitsweg. Da Google mit Start-Ziel nicht den Weg anzeigt, den ich fahre, habe ich einen Wegpunkt dazwischen gesetzt. Das hat in die eine Richtung funktioniert, aber auf dem Rückweg war das Ergebnis leider länger und weiter. Ich habe auch lange gesucht, unterschiedliche Wegpunkte getestet, im JSON nachgesehen und den Weg Schritt für Schritt verglichen.
Bei mir war es oft so, dass er irgendwo vorm Ziel vom Weg abgebogen ist, auf einer anderen Straße quasi am Ziel vorbei und dann von "hinten durch die Brust" kam. Der Grund dafür ist meiner Meinung nach, dass das Zwischenziel auf der "falschen" Straßenseite liegt. Anders als bei einer Eingabe in Google-Maps, scheint dies für die API wichtig zu sein.
Ich habe jetzt zwei Traffic-Devices angelegt mit unterschiedlichen Wegpunkten, so dass beide Strecken stimmen.
Zitat von: jmike am 01 August 2016, 13:04:53
Das zweite Attribut definiert den Namen eines Readings und überschreibt damit den device state.
Wer also z.b. duration_in_traffic als state haben möchte setzt:
"attr device stateReading duration_in_traffic"
Ich habe das Modul gerade installiert und finde es echt toll! Vielen Dank für die Bereitstellung!
Kann ich bei stateReading auch 2 Readings addieren (delay_min + return_delay_min) ?
Aktuell habe ich noch gelegentlich Unterschiede zwischen delay und (duration_in_traffic_min - duration_min). Wird delay intern berechnet oder von Google ausgelesen?
Zitat von: jmike am 02 August 2016, 14:31:20
Das command "update" unterstützt nun ein Burst-Mode:
Ich wollte etwas haben womit ich in einer bestimmten Zeit das Abfrageintervall temporär erhöhen kann.
Heißt das, die Werte aktualisieren sich schon jetzt automatisch nach einer gewissen Zeit? Oder muss ich ein At verwenden und set TRAFFICDEIVCE update ausführen?
Hintergrund ist, dass uns eine farbige LED im Statusdisplay immer den Staustatus signalisieren soll.
Schönen Gruß
Ronny
Hi Ronny.
stateReading kann derzeit keine Kalkulation.
Das kannst du aber mittels userReadings lösen, probier mal folgendes:
attr <trafficDevice> userReadings state {int(ReadingsVal("<trafficDevice>","delay_min",0) + ReadingsVal("<trafficDevice>","return_delay_min",0))}
Und dann Attribut stateReading löschen.
Zur Aktualisierung.
Per default ist das automatische Update Interval 3600 Sekunden (siehe Internal "Interval").
Du kannst das in deiner Definition statisch ändern wenn du z.b. hinter deinen API Key noch ein Interval in Sekunden angibst.
Wenn du aber nur zu einer bestimmten Uhrzeit, z.b. zum Feierabend, das Interval erhöhen möchtest, kannst du mit einem AT und "set <trafficDevice> update 10 30" zum Beispiel 10mal alle 30 Sekunden ein update machen.
Danach übernimmt wieder das Update Interval das du konfiguriert hast bzw. 3600 falls nicht.
Einfach mal ein FileLog definieren und ausprobieren ;)
Hoffe das hilft.
grüße
mike
Hallo zusammen,
Ich hatte gestern fuer ein Staumodul einen Wikiartikel angefangen und als Varianten auch die GoogleMaps aufgenommen.
Da ich hier ein paar Posts vorher gelesen hatte, dass hier ein Wiki noch offen ist hilft vielleicht schon mal der Artikel um dort auch das Modul zu beschreiben.
http://www.fhemwiki.de/wiki/Staumelder
Da ich die Google Variante nicht nutze, kann ich aktuell auch noch nichts beisteuern.
Falls ich aber etwas aufnehmen soll, bräuchte ich etwas Input ;)
Viele Gruesse,
Dirk
Hallo zusammen,
das Modul funktioniert wirklich super :-)
Ich versuche jetzt mir die aktuellen Daten mit Hilfe des Telegram Moduls zuschicken zu lassen. Wenn ich jetzt allerdings in meiner Funktion ein "set ... update" ausführe und mir danach eine Nachricht mit den Readings zuschicken lasse, habe ich leider nicht die aktuellen Werte :-( Irgendwie müsste ich wohl hier auf die Abarbeitung des Updates warten... Leider scheint ein einfaches "sleep" nicht zu funktionieren.
Kann mir jemand vielleicht einen Tipp geben wie ich das umgehen könnte?
Gruß Firetic
Super Modul ...vielen Dank dafür.
Aber ... ich hätte da noch einen Wunsch ;D
Kannst du noch eine Start/Stop Funktion hinzufügen?
Wenn ich "disable" dafür verwende aktualisiert das Modul nach einem "attr Verkehr disable 0" die Daten nicht mehr.
(oder mach ich da was falsch?)
Ich benötige die Informationen zum Verkehr eigentlich nur Morgens und da mach es keinen Sinn 24x7 Google mit den Abfragen alle fünf Minuten zu belasten.
Daher schalte ich mit einem "at" die Abfrage zum Bahnverkehr und jetzt auch zum Autoverkehr :D nur zwischen 8 und 10 Uhr ein.
EDIT: Bei dem DB-Fahrplanmodul ist so eine Funktion eingebaut: https://forum.fhem.de/index.php/topic,36057.0/topicseen.html (https://forum.fhem.de/index.php/topic,36057.0/topicseen.html)
Hat sich erledigt.
Nach einem kompletten Neustart von FHEM funktioniert es auf einmal.
Hi mike,
Zitat von: jmike am 18 September 2016, 14:59:04
stateReading kann derzeit keine Kalkulation.
Das kannst du aber mittels userReadings lösen
OK, ich hatte ich es jetzt via stateFormat gelöst:
{int(ReadingsVal($name,"delay_min",0)) + int(ReadingsVal($name,"return_delay_min",0))}
Per Userreading setze ich mir noch ein Reading stau, welches die Werte 0,1,2,3 annehmen kann abhängig von der Staulänge. So kann ich mich bei Änderung benachrichtigen lassen (ohne Nachrichtenflut bei jeder Änderung der Delays).
Zitat
Zur Aktualisierung.
Per default ist das automatische Update Interval 3600 Sekunden (siehe Internal "Interval").
Du kannst das in deiner Definition statisch ändern wenn du z.b. hinter deinen API Key noch ein Interval in Sekunden angibst.
Das ist super. Hatte ich irgendwie überlesen. Und die Idee mit dem geänderten Intervall zur Rushhour ist auch top. Schön ressourcenschonend :)
Von meiner Seite nochmal vielen Dank für das coole Modul!
Ich hänge mich mal mit hier rein. Momentan läuft das Modul noch nciht bei mir:
beide CPAN Pakete installiert und 90_TRAFFIC ins FHEM Verzeichnis.
Nach reload wird mir config_error angegeben --> okay start und end definiert und boing fhem nicht mehr erreichbar.
Log sagt:
Undefined subroutine &main::BlockingCall called at ./FHEM/98_TRAFFIC.pm line 233
Kennt er den Funktionsaufruf nicht ?
Ahoi.
@Dirk: Ich schau mir den Wiki Artikel bei Gelegenheit an und melde mich.
Ich bin derzeit privat und beruflich extrem eingespannt. Daher hat es das Modul auch immer noch nicht ins SVN gepackt (und damit werden euch ein paar kleine neue Features wie durchschnittliche Werte vorenthalten ;) )
@FHEMAN: stateFormat... hatte ich nicht auf dem Schirm, tolle Lösung!
@Axel: Auch wenn du dein Problem gelöst hast, kann man einen Timer sicherlich mit einbauen :)
@Firetic: Ein "sleep" lässt ganz FHEM stehen, das willst du sicher nicht.
Du musst entsprechend Events erstellen (siehe event-on-change-reading / event-on-update-reading) und dann darauf mit einem Notify/DOIF reagieren.
Also z.b. attr traffic event-on-change-reading delay_min.*
Und dann per DOIF auffangen wenn der Wert höher als z.b. 5min ist:
define trafficDelayMsg DOIF ([traffic:delay_min] > 5 )(set Telegram message aktuelle Verzögerung [traffic:delay_min])
(...alles nicht getestet)
@tuppertasse:
Interessant, da BlockingCall eine FHEM Routine ist. Ist dein FHEM aktuell?
...andere Idee, editier mal dein 98_TRAFFIC.pm und füge bei Zeile 45 noch "use Blocking" dazu.
Möglich, dass ich das vergessen habe und du der erste bist der kein anderes Modul nutzt, welches Blocking vorher läd :)
Zitat von: jmike am 24 September 2016, 13:43:25
@tuppertasse:
Interessant, da BlockingCall eine FHEM Routine ist. Ist dein FHEM aktuell?
...andere Idee, editier mal dein 98_TRAFFIC.pm und füge bei Zeile 45 noch "use Blocking" dazu.
Möglich, dass ich das vergessen habe und du der erste bist der kein anderes Modul nutzt, welches Blocking vorher läd :)
Hi,
habs es hinzugefügt und es klappt :-) Danke hatte ich mir schon gedacht, dass da der Funktionsaufruf fehlt.
DAHER EIN DANKE !
Nur zur Info. Habe ein Testsystem welche immer nur die Funktionalitäten bekommt die ich gerade haben möchte. Wenn es läuft wie ich es möchte kommt es rüber in mein Produktivsystem und wird auf dem testsystem gelöscht :-) daher ist da wirklich nur gaaaaaaanz wenig drauf :-)
Zitat von: jmike am 27 Juli 2016, 14:43:48
Über Attribut waypoints einfach die Strecke mit | angeben. z.b.
attr device waypoints nürnberg|würzburg|fulda
Moin,
ich muss nochmal nachfragen:
Mein Arbeitsweg hat 3 verschiedene Wegmöglichkeiten.
Ich würde dazu gerne 3 Variablen erstellen um zu sehen welches der kürzeste Weg ist von der Fahrzeit her gesehen.
Wie kann ich über waypoints denn die Wege definieren. Momentan bekomme ich das Ergebnis zurück ZERO_RESULTS
Ich habe es so probiert
Straße 1, PLZ1 STADT1|Straße 2, PLZ2 STADT2|Straße 3, PLZ3 STADT3
wobei Straße2 zB eine Bundesstraße sein kann
Wollte das Modul gerade testen, bekomme aber immer folgende Fehler:
Im state: config_error
und im Log:
2016.09.25 10:39:19.590 1: TRAFFIC: (Verkehr.Arbeit) is not configured correctly
Hier ein List (der Key stimmt ;):
Internals:
APIKEY APIKEY
CFGFN
DEF APIKEY 1800
Interval 1800
NAME Verkehr.Arbeit
NR 6913
STATE config_error
TRIGGERTIME 1474794630.1729
TRIGGERTIME_FMT 2016-09-25 11:10:30
TYPE TRAFFIC
VERSION 0.42
Readings:
2016-09-25 10:40:30 state config_error
Attributes:
outputReadings text
verbose 1
Zitat von: Mitch am 25 September 2016, 10:42:30
Hier ein List (der Key stimmt ;):
Internals:
DEF APIKEY 1800
verbose 1
Welcher KEY stimmt ?
in der DEF steht kein APIKEY sondern nur das Wort. Da muss der korrekte Key hin, der aus Zahlen und Buchstaben besteht und man sich aus dem Google developer holen muss
Deswegen habe ich geschrieben, der Key stimmt ;D
Habe ihn halt unkenntlich gemacht
@Mitch:
Okay verstanden.
Bei mir ging es erst als ich eine korrekt end_adress und start_adress gesetzt habe. Dann ging der Status auf OK
Das wars wohl.
Jetzt habe ich noch ein API Rechteproblem: REQUEST_DENIED
Browser API keys cannot have referer restrictions when used with this API.
Mhhhh,
hast du den Key aktiviert ?
In dem Projekt in dem API MAnager bei Google kann man auch Rechte setzen.
Mal prüfen wo die drauf stehen:
/
HTTP-Verweis-URLs (Websites)
IP-Adressen (Webserver, Cronjobs usw.)
Android-Apps
iOS-Apps
Bei mir ist "/" aktiviert also alles
Eigentlich stimmt alles.
Hab jetzt ein neues Projekt angelegt.
Mal sehen, dauert ja ein paar Minuten.
kannste auch selber triggern mit set VARIABLE update (ganz oben ist das)
@tuppertasse:
ZitatMein Arbeitsweg hat 3 verschiedene Wegmöglichkeiten. ...
Ja da ist Google Maps etwas zickiger als in meiner Doku beschrieben. Hatte das Problem auch, siehe: https://forum.fhem.de/index.php/topic,56045.msg480064.html#msg480064
Am besten ganz genau Latitude & Longitude angeben. Dabei kann es nur Probleme beim return_* geben :/
#notiz-an-mich-selbst: Doku muss detaillierter bei Waypoints werden@Mitch:
Hast ja schon rausbekommen was es mit dem config_error auf sich hat.
Siehe auch in der Doku im ersten Post ("config_error" - Konfigurationsfehler (start_address oder end_address leer) ) ;)
#notiz-an-mich-selbst: Fehelrmeldung für invalide Config überarbeitenIch schätze mit
Zitat von: Mitch am 25 September 2016, 12:01:21
Mal sehen, dauert ja ein paar Minuten.
meintest du dein Google Maps API Key oder?
Läuft nun alles?
Also, nachdem ich dann endlich gefunden habe, wie und wo ich die API auch noch aktivieren muss, geht es, Danke!
Früher war die API Console um ein vielfaches besser und leichter zu bedienen >:(
@jmike:
Zitat von: jmike am 25 September 2016, 19:40:27
@tuppertasse:
Ja da ist Google Maps etwas zickiger als in meiner Doku beschrieben. Hatte das Problem auch, siehe: https://forum.fhem.de/index.php/topic,56045.msg480064.html#msg480064
Am besten ganz genau Latitude & Longitude angeben. Dabei kann es nur Probleme beim return_* geben :/
Mhhhhh,
ich steh da momentan auf dem Schlauch.
Ich habe es ja so eingegeben ohne Erfolg --> Straße 1, PLZ1 STADT1|Straße 2, PLZ2 STADT2|Straße 3, PLZ3 STADT3
Wo gebe ich denn da jetzt LA & LO an und wie sieht der Syntax dann aus ?
@Mitch:
Zitat von: Mitch am 26 September 2016, 09:04:28
Früher war die API Console um ein vielfaches besser und leichter zu bedienen
Da gebe ich dir vollkommen Recht !
Zitat von: tuppertasse am 26 September 2016, 09:14:09
Wo gebe ich denn da jetzt LA & LO an und wie sieht der Syntax dann aus ?
Für mich hat es am besten funktioniert wenn man in Google Maps ganz genau auf die Strasse zoomst die man fahren möchte und dann "rechte Maustaste" -> "Was ist hier?" anklickst.
Unten bekommst du dann die Koordinaten eingeblendet. Bei Autobahnen sollte man sogar die korrekte Richtungs-Spur wählen.
Dann die Koordinaten mit Komma getrennt eintragen:
Zitat48.187083,11.556913|48.241531,11.601545
Könnte man noch ein Reading anlegen, welches die Zeit des letzten Updates (damit die Abfahrtzeit) speichert?
Zitat von: Mitch am 26 September 2016, 09:54:20
Könnte man noch ein Reading anlegen, welches die Zeit des letzten Updates (damit die Abfahrtzeit) speichert?
Reicht nicht der Timestamp der Readings selber aus? Den kann man z.b. mit ReadingsTimestamp($DEVICE,"<reading>","") leicht auslesen.
Zitat von: jmike am 26 September 2016, 09:51:06
Dann die Koordinaten mit Komma getrennt eintragen:
Supi vielen Dank, klappt jetzt mit waypoints. Ich musste allerdings zwischen den Koordinaten also zwischen LA und LO ein Leerzeichen einfügen!
LO, LA und nicht LO,LA
Warum auch immer.
Zitat von: jmike am 26 September 2016, 09:56:10
Reicht nicht der Timestamp der Readings selber aus? Den kann man z.b. mit ReadingsTimestamp($DEVICE,"<reading>","") leicht auslesen.
reicht, vielen Dank!
Mhhhh,
habe mal grad ins Log geschaut und habe dort anscheinend ein Warning:
PERL WARNING: Argument "6 min" isn't numeric in numeric
Anscheinend wird da irgendwo mit 6 min und nicht mit 6 gerechnet oder ?
Gilt übrigens auch für jede andere Zahl auch für 0.
Moin,
kleine Info - vielleicht mit aufnehmen in die error Liste ?
Ich bekomme die message "OVER_QUERY_LIMIT" --> nach nachforschen scheint die free Version der API 2500 requests pro Tag zu akzeptieren mehr nicht. Entsprechend muß die Zeit eingestellt sein je nachdem wieviele Strecken man sich da hinein gebastelt hat :-)
Frage ist ob man das hinbekommt, dass die Zeit "flexibel" ist, also nur angestoßen wird wenn die Wegzeit sich ändert ? Allerdings besteht die Möglichkeit auch da die Limits zu erreichen denke ich.
Also zeit hochsetzen
Hi.
Komisch, die Perl Warnings bekomme ich nicht. Eigentlich kann der Wert auch nur aus "delay" oder "return_delay" kommen und die werden eigentlich nicht weiterverarbeitet.
Kannst du mir mehr Input liefern? Mal ein List vom device und die volle Fehlermeldung dazu?
Zu deinem API Limit... 2500 API Calls pro Tag sind alle 35 Sekunden ein API Call ?!
Selbst bei einem 5-Minuten Interval könntest du 8 TRAFFIC devices laufen lassen ohne das Limit zu erreichen.
Wenn das nicht reicht erhöhe das Interval grundsätzlich und nutze die Burst Funktion für die "Stosszeiten" wo du eine feinere Abtastung brauchst.
Wie gesagt, ich denke über eine art Scheduler nach. von 6-9Uhr alle 5min, sonst 1 Stunde oder sowas.
Ich werte jetzt beide Richtungen der wichtigsten Straße meiner Arbeitsroute aus. Dabei summiere ich einfach die Delays und vergebe "Staupunkte": 0 (0-4 min Delay), 1 (5-9 min Delay), 2 (10-14 min Delay), ... Ausgehend davon (da eine Änderung hier nicht so häufig erfolgt, quasi als Hysterese) schalte ich im Haus eine farbige Status-LED und sende mir eine Pushover Nachricht. Und auf Arbeit erfahre ich, wann es Zeit wird, die Biege zu machen, bevor es sich staut.
Hier mal ein Screenshot von meinem einfachen Plot:
(https://picload.org/image/rddadcdc/citytraffic.jpg) (https://picload.org/image/rddadcdc/citytraffic.jpg)
Wie man sieht ist, das Thema Stau für unser verschlafenes Städtchen zumindest meistens ein wenig overkill, das Modul aber doch ein schönes Beispiel, wie man ohne teure Hardwareanschaffungen alleine durch die Community sein Zuhause smarter machen kann. Von meiner Seite daher nochmal danke für deine Arbeit, jmike!
Zitat von: jmike am 28 September 2016, 11:47:57
Wie gesagt, ich denke über eine art Scheduler nach. von 6-9Uhr alle 5min, sonst 1 Stunde oder sowas.
TOP kann ich nur auch nochmal sagen ! Super arbeit jmike.
Werde mal das List und Log schicken.
Zitat von: jmike am 28 September 2016, 11:47:57
Kannst du mir mehr Input liefern? Mal ein List vom device und die volle Fehlermeldung dazu?
So hier das List:
Internals:
DEF <Bezeichnung>,<Weglänge [km]>,<Zeit>,<Zeit>,<Verspätung>,<Ankunftszeit> INF_HTM_FAHRZEIT_HOME_WORK.*:distance,duration,duration_in_traffic,delay,eta
NAME ReadingsGroup_Traffic
NR 228
NTFY_ORDER 50-ReadingsGroup_Traffic
STATE Initialized
TYPE readingsGroup
mayBeVisible 1
Content:
INF_HTM_FAHRZEIT_HOME_WORK_B236 1
INF_HTM_FAHRZEIT_HOME_WORK_B54 1
INF_HTM_FAHRZEIT_HOME_WORK_Stadt 1
Content2:
DEVICES:
ARRAY(0x32c0470)
ARRAY(0x35e29e0)
ARRAY(0x35e5b60)
ARRAY(0x35eda18)
Fhem:
lastDefChange 48
last_update 1475060549.93354
Helper:
DEF
valueStyle {if($READING eq "delay") {
if($VALUE > 9.9) { 'style="color:red"' }
elsif($VALUE > 4.9) { 'style="color:orange"' }
elsif($VALUE > 2) { 'style="color:yellow"' }
else { 'style="color:green"' }
}
}
Positions:
INF_HTM_FAHRZEIT_HOME_WORK_B236.delay 2:4
INF_HTM_FAHRZEIT_HOME_WORK_B236.distance 2:1
INF_HTM_FAHRZEIT_HOME_WORK_B236.duration 2:2
INF_HTM_FAHRZEIT_HOME_WORK_B236.duration_in_traffic 2:3
INF_HTM_FAHRZEIT_HOME_WORK_B236.eta 2:5
INF_HTM_FAHRZEIT_HOME_WORK_B54.delay 3:4
INF_HTM_FAHRZEIT_HOME_WORK_B54.distance 3:1
INF_HTM_FAHRZEIT_HOME_WORK_B54.duration 3:2
INF_HTM_FAHRZEIT_HOME_WORK_B54.duration_in_traffic 3:3
INF_HTM_FAHRZEIT_HOME_WORK_B54.eta 3:5
INF_HTM_FAHRZEIT_HOME_WORK_Stadt.delay 4:4
INF_HTM_FAHRZEIT_HOME_WORK_Stadt.distance 4:1
INF_HTM_FAHRZEIT_HOME_WORK_Stadt.duration 4:2
INF_HTM_FAHRZEIT_HOME_WORK_Stadt.duration_in_traffic 4:3
INF_HTM_FAHRZEIT_HOME_WORK_Stadt.eta 4:5
Values:
formated:
ARRAY(0x36e0dd0)
ARRAY(0x3619930)
ARRAY(0x31d4430)
ARRAY(0x379e380)
ARRAY(0x369ff08)
orig:
ARRAY(0x3642a10)
ARRAY(0x35daca0)
ARRAY(0x36e12c8)
ARRAY(0x3573bb0)
ARRAY(0x36a2330)
prefixsuffix:
ARRAY(0x35d7818)
ARRAY(0x356c2e8)
ARRAY(0x316b248)
ARRAY(0x375c728)
ARRAY(0x36a1ef8)
Attributes:
alias @Home2Work
group 01 Wegzeiten von @Home zur Arbeit
room 80_Traffic
valueStyle {if($READING eq "delay") {
if($VALUE > 9.9) { 'style="color:red"' }
elsif($VALUE > 4.9) { 'style="color:orange"' }
elsif($VALUE > 2) { 'style="color:yellow"' }
else { 'style="color:green"' }
}
}
verbose 5
Und hier das Log:
2016.09.28 13:02:09 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 96917) line 2.
2016.09.28 13:02:09 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 96922) line 2.
2016.09.28 13:02:09 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 96927) line 2.
2016.09.28 13:02:09 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 96932) line 2.
2016.09.28 13:02:09 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 96937) line 2.
2016.09.28 13:02:09 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 96942) line 2.
2016.09.28 13:02:09 1: PERL WARNING: Argument "13 min " isn't numeric in numeric gt (>) at (eval 96947) line 2.
2016.09.28 13:02:09 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 96952) line 2.
2016.09.28 13:02:09 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 96957) line 2.
2016.09.28 13:02:09 5: TRAFFIC: (INF_HTM_FAHRZEIT_HOME_WORK_B236) set INF_HTM_FAHRZEIT_HOME_WORK_B236 ?
2016.09.28 13:02:16 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 96972) line 2.
2016.09.28 13:02:16 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 96977) line 2.
2016.09.28 13:02:16 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 96982) line 2.
2016.09.28 13:02:29 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 96998) line 2.
2016.09.28 13:02:29 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97003) line 2.
2016.09.28 13:02:29 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 97008) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97030) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97035) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 97040) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 97045) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97050) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 97055) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "13 min " isn't numeric in numeric gt (>) at (eval 97060) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97065) line 2.
2016.09.28 13:03:01 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97070) line 2.
2016.09.28 13:03:01 5: TRAFFIC: (INF_HTM_FAHRZEIT_HOME_WORK_B236) set INF_HTM_FAHRZEIT_HOME_WORK_B236 ?
2016.09.28 13:03:08 5: TRAFFIC: (INF_HTM_FAHRZEIT_HOME_WORK_B236) set INF_HTM_FAHRZEIT_HOME_WORK_B236 ?
2016.09.28 13:03:08 5: TRAFFIC: (INF_HTM_FAHRZEIT_HOME_WORK_B236) set INF_HTM_FAHRZEIT_HOME_WORK_B236 ?
2016.09.28 13:03:22 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97077) line 2.
2016.09.28 13:03:22 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97082) line 2.
2016.09.28 13:03:22 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 97087) line 2.
2016.09.28 13:03:22 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 97092) line 2.
2016.09.28 13:03:22 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97097) line 2.
2016.09.28 13:03:22 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 97102) line 2.
2016.09.28 13:03:22 1: PERL WARNING: Argument "13 min " isn't numeric in numeric gt (>) at (eval 97107) line 2.
2016.09.28 13:03:22 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97112) line 2.
2016.09.28 13:03:22 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97117) line 2.
2016.09.28 13:03:22 5: TRAFFIC: (INF_HTM_FAHRZEIT_HOME_WORK_B236) set INF_HTM_FAHRZEIT_HOME_WORK_B236 ?
2016.09.28 13:03:26 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97122) line 2.
2016.09.28 13:03:26 1: PERL WARNING: Argument "0 min" isn't numeric in numeric gt (>) at (eval 97127) line 2.
2016.09.28 13:03:26 1: PERL WARNING: Argument "1 min " isn't numeric in numeric gt (>) at (eval 97132) line 2.
2016.09.28 13:04:44 1: PERL WARNING: Use of uninitialized value $v in sprintf at fhem.pl line 2126.
Klare Sache :)
valueStyle {if($READING eq "delay") {
Der Wert in Reading "delay" wird aus Sekunden berechnet und in eine "schöne" Zeit umgerechnet, also Minuten oder Stunden falls >60 min usw.
Da musst du das Reading "delay_min" verwenden. Dort stehen immer nur die Minuten drin.
Hi ich habe mal eine ganz bescheidene Anfängerfrage:
Wo kann bekomme ich denn eigentlich die "98_TRAFFIC" her?
Danke für die Hilfe
Zitat von: jmike am 28 September 2016, 13:24:41
Da musst du das Reading "delay_min" verwenden. Dort stehen immer nur die Minuten drin.
Ok verstanden !
Wie komme ich denn an die optionalen readings dran ?
delay_min (optional)
duration_in_traffic_min (optional)
duration_min (optional)
@Kassard:
Ist im ersten Beitrag verlinkt ;)
Zitat von: Kassard am 28 September 2016, 13:35:34
Hi ich habe mal eine ganz bescheidene Anfängerfrage:
Wo kann bekomme ich denn eigentlich die "98_TRAFFIC" her?
Danke für die Hilfe
Vielen Dank.
Wer lesen kann ..... :-X
ich habe mir das Modul jetzt auch mal eingerichtet und bin bisher sehr zufrieden damit.
Vielen Dank :)
Zitat von: Kassard am 28 September 2016, 13:35:34Wo kann bekomme ich denn eigentlich die "98_TRAFFIC" her?
Ich muss echt endlich mein SVN commit machen ;D
Zitat von: tuppertasse am 28 September 2016, 13:42:24
Ok verstanden !
Wie komme ich denn an die optionalen readings dran ?
delay_min (optional)
duration_in_traffic_min (optional)
duration_min (optional)
... und eine umfassende Doku/Wiki machen, siehe erster Post:
Zitatcustom Attribute:
"outputReadings" - zum Filter der Readings, mögliche Werte "text min"
Also:
attr <TRAFFIC> outputReadings min
Zitat von: jmike am 28 September 2016, 17:24:37
Also: attr <TRAFFIC> outputReadings min
um beide bzw alle Readings zu bekommen ist wohl folgendes zu setzen oder ?
attr <TRAFFIC> outputReadings text min
ansonsten bekommt man entweder das eine oder andere :-)
@jmike: Erstmal danke für dein SUPER! Modul ...
Ich hatte zuvor 2 andere Möglichkeiten durchgetestet, deins war das Erste, welches auf Anhieb geklappt hat UND waypoints unterstützt ...
Ich habe insg. 5 Möglichekiten wie ich täglich nach Hause fahren kann, nun sehe ich die schnellste :)
Was mir leider noch fehlt ist ein Autoupdate ...
Andere (externe) Module wie FTUI oder den Müllkalender habe ich über git eingebunden ... (controls.txt).
Gibt es bei ebenfalls diese Möglichkeit, beziehungsweise würdest du diese Bereitstellen? ;D
Tipp an Kommunity bezüglich Waypoints:
- In Google-Maps die gewünschte Route auswählen. (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ück bis die Route wieder sichtbar ist (zum späteren Datenabgleich)
- Waypoints in FHEM deklarieren, Daten aktualisieren (set update)
- distance + duration mit den Daten von Google-Maps am PC vergleichen, dann kann man sicher sein, dass die Strecke dieselbe ist!
Zitat von: erdo_king am 07 Oktober 2016, 10:31:21
Was mir leider noch fehlt ist ein Autoupdate ...
Hi.
Danke für die Blumen.
Was genau meinst du mit autoupdate?
Das TRAFFIC device verfügt doch über ein eigenes Update Interval, 3600 Sekunden ist der default (1 Stunde).
Ändern kannst du es beim define:
define <devicename> TRAFFIC <API-KEY> [update-interval]
Was genau vermisst du?
Er meint, wann du es in ein github einfügst, dass es beim update von FHEM automatisch die neuste Version holt, oder, wann es offiziell in FHEM eingecheckt wird.
Zitat von: Amenophis86 am 07 Oktober 2016, 13:38:13
Er meint, wann du es in ein github einfügst, dass es beim update von FHEM automatisch die neuste Version holt, oder, wann es offiziell in FHEM eingecheckt wird.
Oh, ich bin dran. Hoffentlich kommt es am Wochenende ins SVN :)
#_ update 98_TRAFFIC
RMDIR: ./restoreDir/2016-08-22
UPD FHEM/98_TRAFFIC.pm
...
Version 1.0 ab jetzt übers update/SVN verfügbar.
Neben den gesammelten Fixes ist auch ein neues outputReading "average" verfügbar, für alle Statistik Junkies :)
Wiki Eintrag folgt...
Hallo,
ich finde das Modul super! Es spart einem sehr viel Arbeit im Vergleich zum HTTPMOD.
Ein Verbesserungsvorschlag:
Die Error_Message aus den Readings kann gelöscht werden, wenn ein Call erfolgreich gewesen ist, oder?
Hallo SofB.
Im Prinzip eine gute Idee wobei der Timestamp sich ja nicht weiter aktualisiert.
Also könnte man in v1.0 auch nachvollziehen wann es zum letzten Mal einen Fehler gab.
Mal drüber nachdenken, auch ein "null" in das Reading schreiben bei erfolgreichem Update wäre denkbar.
btw, Wiki Eintrag ist fertig, c&c welcome: http://www.fhemwiki.de/wiki/TRAFFIC
Ich habe etliche Ideen von Euch übernommen, danke dafür :)
Zitat von: jmike am 08 Oktober 2016, 14:51:15
btw, Wiki Eintrag ist fertig, c&c welcome: http://www.fhemwiki.de/wiki/TRAFFIC
Ich habe etliche Ideen von Euch übernommen, danke dafür :)
Sehr schön geschrieben. Vielen Dank :)
Zitat von: jmike am 08 Oktober 2016, 14:51:15
btw, Wiki Eintrag ist fertig, c&c welcome: http://www.fhemwiki.de/wiki/TRAFFIC
DICKES FETTES LOB nochmal für die super Modul und dem Wiki !!!
Zitat von: jmike am 28 September 2016, 11:47:57
Wie gesagt, ich denke über eine art Scheduler nach. von 6-9Uhr alle 5min, sonst 1 Stunde oder sowas.
Arbeitest du noch hierdran ?
Super Teil!! Danke!!!
Nur ne kleine Bescheidene Frage.. wie bekomme ich aus dem Reading "eta" die Sekunden weg?
:-)
Danke
Ich bekomm eine einfache Search/Replace Regex mit userReadings nicht ans fliegen.
Nachher noch mal mit etwas mehr Zeit schauen...
Das geht, sieht aber hässlich aus:
attr userReadings eta { my ( $eta ) = ReadingsVal($name,"eta","") =~ m/(\d+:\d+):\d+/;return $eta}
nachtrag.... so gehts auch, leider auch nicht schöner:
eta { my $eta = ReadingsVal($name,"eta",""); $eta =~ s/:\d+$//; $eta; }
Zitat von: tuppertasse am 09 Oktober 2016, 09:06:35
Arbeitest du noch hierdran ?
Hatte vergessen hierzu zu Antworten. Ja, habe es bereits umgesetzt und teste derzeit Intern.
Aktuell läuft es über ein Attribut "updateSchedule" welches Zeitangaben mit einem Interval definiert.
attr updateSchedule 6-8 300|16-18 300
Das wäre zum Beispiel 5-minütige Updates von 6-8 und 16-18 Uhr. Ansonsten greift das DEF Interval und der Burst überschreibt alles.
Ideen/Ergänzungen?
Hi,
Modul Idee ist super.
Kann man das Modul um das Attribute Verkehrsmittel("mode") erweitern? Ich fahre eher Bus und Bahn. :)
Verzögerungen werden dort zwar glaube ich nicht berücksichtigt, aber ich versuche momentan über Tasker die Heizung zu Hause z.B. eine Halbe Stunde vor Ankunft einzuschalten.
Momentan kann ich mit Tasker meine Position ermitteln und entweder direkt zu fhem übertragen oder auch als google maps link mit der Position in Koordinaten als "origin".
Der Task soll dann bei WLAN Verlust oder Außerhalb des Bereichs gestartet werden. Gleiches kann man vielleicht auch beim Einsteigen in ein Auto mit Bootooth Verbindung umsetzen, wer den "Drive" Modus verwendet wird.
Sinvoll wäre dann natürlich noch eine periodische Aktualisierung, wenn man sich bewegt, und einem minütlichen Counter, da in der UBahn kein Empfang ist.
Wie ich eine Bedingung bei meinem Fitness Studio Besuch einbaue, das auf dem Heimweg liegt und näher als 30min ist, weiß ich noch nicht, aber dort wird sich auch noch eine Lösung finden(Kalender, manuell, etc)
Gruß .. Maxl
Zusatz:
Ich bekomme beim Modul einen REQUEST_DENIED, obwohl der gleiche Key mit HTTPMOD funktioniert. Ich habe aber festgestellt, dass die Links sich unterscheiden:
TRAFFIC:
https://maps.googleapis.com/maps/api/directions/json?origin=Stadt,Straße+HN&destination=Stadt,Straße+HN&mode=driving&language=de&departure_time=now&key=KEY_xxxx
HTTPMOD:
https://maps.googleapis.com/maps/api/distancematrix/json?origins=Stadt,Straße+HN&destinations=Stadt,Straße+HN&mode=driving&language=de-DE&departure_time=now&key=KEY_xxxx
Durch manuelles bearbeiten des http Link in der 98_TRAFFIC.pm sehe ich, dass man wohl doch noch mehr ändern müsste
Fehler:
2016.12.08 21:22:36 1: PERL WARNING: Use of uninitialized value $duration_in_traffic_sec in addition (+) at ./FHEM/98_TRAFFIC.pm line 316.
2016.12.08 21:22:36 1: TRAFFIC: (Fahrzeit) did not receive duration_in_traffic, not able to calculate delay
2016.12.08 21:22:36 5: TRAFFIC: (Fahrzeit) returning from TRAFFIC_DoUpdate: {"eta":"21:22:36","distance":null,"status":"OK","duration_in_traffic":null,"duration":null,"state":"OK"}
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) TRAFFIC_DoUpdate done
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) TRAFFIC_FinishUpdate start
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) ReadingsUpdate: eta - 21:22:36
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) ReadingsUpdate: distance -
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) ReadingsUpdate: status - OK
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) ReadingsUpdate: duration -
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) ReadingsUpdate: duration_in_traffic -
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) ReadingsUpdate: state - OK
2016.12.08 21:22:36 5: TRAFFIC: (Fahrzeit) set Fahrzeit ?
2016.12.08 21:22:36 3: TRAFFIC: (Fahrzeit) TRAFFIC_FinishUpdate done
JSON Output von mode="transit":
{
"destination_addresses" : [ "Street NR, PLZ City, Deutschland" ],
"origin_addresses" : [ "Street NR, PLZ City, Deutschland" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "11,3 km",
"value" : 11282
},
"duration" : {
"text" : "32 Minuten",
"value" : 1927
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
JSON Output von mode="driving":
{
"destination_addresses" : [ "Street NR, PLZ City, Deutschland" ],
"origin_addresses" : [ "Street NR, PLZ City, Deutschland" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "8,7 km",
"value" : 8710
},
"duration" : {
"text" : "22 Minuten",
"value" : 1313
},
"duration_in_traffic" : {
"text" : "20 Minuten",
"value" : 1201
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
Mir ist auch aufgefallen, das in das attr start/end_adress ein "+" zwischen Strasse und Hausnummer muss. Ansonsten wird der Link mit einem Leerzeichen generiert. Fehlt noch in der Beschreibung ;)
Hi Max.
Zuerst zum REQUEST_DENIED.
"directions" und "distancematrix" haben unterschiedliche API Keys. Einfach im API Manager für directions einen Key anfordern.
Die directions-API unterstützt ja verschiedene Travelmodes (driving (Standard), walking, bicycling und transit).
Dazu werde ich gerne im nächsten Release ein Attribut einbauen.
Der ist eh schon lange überfällig damit tuppertasse endlich seinen flexiblen update-schedule bekommt :)
Danke für die Info. Das JSON liefert scheinbar genau die gleichen Informationen, nur anders aufgebaut. Dann ändere ich das heute Abend gleich mal.
Was mir im Code auch gefehlt hat oder ich übersehen habe war distance als value. Vielleicht kannst den dann auch gleich mit rein nehmen.
Danke dir auf alle fälle. Was mir bisher Angezeigt wurde hat mir schon sehr gefallen.
Zitat von: mkriegl am 09 Dezember 2016, 15:11:32
Was mir im Code auch gefehlt hat oder ich übersehen habe war distance als value.
Distance wird nur als string angegeben, wenn du die Meter als Zahl haben willst geht das derzeit nur über das Attribut "raw_data".
Dann bekommst du bei allen Werten auch "value" als Reading.
lg
mike
Ah, okay, der "raw_data" ist mir neu und die distance value Rückgabe hatte ich dann im Code nicht gesehen.
Hallo,
vielen Dank für das Modul!
Eine Frage: Zwecks Einbindung in tablet UI:
Wie kann ich ein Reading im Format "hh:min" bereitstellen?
Danke und Gruß
Mittels stateFormat zum Beispiel
Guten Morgen
Ich habe gerade das Traffic-Modul bei mir eingerichtet, habe aber ein kleines Problem.
Wenn ich stateReading = delay_min setze bekomme ich im state = OK und im Log die Meldung "stateReading delay_min not found"
obwohl er es mir in den Readings auch aktualisiert.
stateReading = delay funktioniert. Ich wollte es aber ohne die Minuten.
Hier mal das list und das Log bei verbose = 5
Internals:
APIKEY xxxxxxxx
CFGFN
DEF xxxxxxxx
Interval 3600
NAME xx.Verkehr.Conti
NR 781187
STATE OK
TRIGGERTIME 1481525969.60648
TRIGGERTIME_FMT 2016-12-12 07:59:29
TYPE TRAFFIC
VERSION 1.0
Readings:
2016-12-12 06:59:30 delay 0 min
2016-12-12 06:59:30 delay_min 0
2016-12-12 06:59:30 distance 4,5 km
2016-12-12 06:59:30 duration 7 Minuten
2016-12-12 06:59:30 duration_in_traffic 7 Minuten
2016-12-12 06:59:30 duration_in_traffic_min 7
2016-12-12 06:59:30 duration_min 7
2016-12-12 06:59:30 eta 07:06:50
2016-12-12 06:59:30 return_delay 0 min
2016-12-12 06:59:30 return_delay_min 0
2016-12-12 06:59:30 return_distance 4,5 km
2016-12-12 06:59:30 return_duration 7 Minuten
2016-12-12 06:59:30 return_duration_in_traffic 7 Minuten
2016-12-12 06:59:30 return_duration_in_traffic_min 7
2016-12-12 06:59:30 return_duration_min 7
2016-12-12 06:59:30 return_eta 07:06:26
2016-12-12 06:59:30 return_state OK
2016-12-12 06:59:30 return_status OK
2016-12-12 06:59:30 state OK
2016-12-12 06:59:30 status OK
Attributes:
alias Fahrzeit auf Arbeit
end_address xxxxxxx
includeReturn 1
language de
outputReadings min text
raw_data 0
room hidden
start_address xxxxxxx
stateReading delay_min
userattr end_address includeReturn language outputReadings raw_data start_address stateFormat stateReading verbose
verbose 5
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti update
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) update command recieved
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) no update burst set
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:28 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) internal interval timer set to call StartUpdate again in 3600 seconds
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_DoUpdate start
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) internal interval timer set to call GetUpdate again in 3600 seconds
2016.12.12 06:59:29 5: TRAFFIC: (xx.Verkehr.Conti) no waypoints specified
2016.12.12 06:59:29 2: TRAFFIC: (xx.Verkehr.Conti) using https://maps.googleapis.com/maps/api/directions/json?origin=xxxxxxx&destination=xxxxxxx&mode=driving&language=de&departure_time=now&key=xxxxxxxx
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_DoUpdate start
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) internal interval timer set to call GetUpdate again in 3600 seconds
2016.12.12 06:59:29 5: TRAFFIC: (xx.Verkehr.Conti) no waypoints specified
2016.12.12 06:59:29 2: TRAFFIC: (xx.Verkehr.Conti) using https://maps.googleapis.com/maps/api/directions/json?origin=xxxxxx&destination=xxxxxx&mode=driving&language=de&departure_time=now&key=xxxxxxxxx
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) delay in seconds = 441 - 443
2016.12.12 06:59:29 5: TRAFFIC: (xx.Verkehr.Conti) delay_min was negative or less than 1min (-2), set to 0
2016.12.12 06:59:29 5: TRAFFIC: (xx.Verkehr.Conti) returning from TRAFFIC_DoUpdate: {"eta":"07:06:50","delay_min":0,"duration_min":7,"distance":"4,5 km","status":"OK","duration_in_traffic_min":7,"state":"OK","delay":"0 min","duration_in_traffic":"7 Minuten","duration":"7 Minuten"}
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_DoUpdate done
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) delay in seconds = 417 - 419
2016.12.12 06:59:29 5: TRAFFIC: (xx.Verkehr.Conti) delay_min was negative or less than 1min (-2), set to 0
2016.12.12 06:59:29 5: TRAFFIC: (xx.Verkehr.Conti) returning from TRAFFIC_DoUpdate: {"duration_in_traffic":"7 Minuten","delay":"0 min","duration":"7 Minuten","duration_min":7,"delay_min":0,"eta":"07:06:26","duration_in_traffic_min":7,"state":"OK","status":"OK","distance":"4,5 km"}
2016.12.12 06:59:29 3: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_DoUpdate done
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate start
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration - 7 Minuten
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_in_traffic - 7 Minuten
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: delay - 0 min
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: status - OK
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_in_traffic_min - 7
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: state - OK
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: distance - 4,5 km
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_min - 7
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: delay_min - 0
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: eta - 07:06:50
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) stateReading defined, override state
2016.12.12 06:59:30 1: TRAFFIC: (xx.Verkehr.Conti) stateReading delay_min not found
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate done
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate start
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: delay - 0 min
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_in_traffic - 7 Minuten
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration - 7 Minuten
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: delay_min - 0
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: eta - 07:06:26
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_min - 7
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: distance - 4,5 km
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_in_traffic_min - 7
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: status - OK
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: state - OK
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) stateReading defined, override state
2016.12.12 06:59:30 1: TRAFFIC: (xx.Verkehr.Conti) stateReading delay_min not found
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2016.12.12 06:59:30 3: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate done
Gruss Brause
Hi Brause.
Kann ich so reproduzieren, liegt offensichtlich an meiner Prüfung und dem Wert 0.
Fix kommt mit in den nächsten Release (eta ~Ende der Woche).
Zitat von: Amenophis86 am 11 Dezember 2016, 10:10:38
Mittels stateFormat zum Beispiel
Danke für den Tip, das Modul gibt ja mindestens zwei relevante Werte zurück, duration und duration_in_traffic.
Kann man direkt neue attribute hinzufügen, die das gewünschte Format zurückgeben?
Version 1.1 liegt im SVN für euch bereit, ab morgen dann auch übers update.
Ein paar Hilfen und Beispiele zum Attribut updateSchedule in der commandref oder im Wiki https://wiki.fhem.de/wiki/TRAFFIC
Grüße
Ich konnte es nicht abwarten und hab mir die neue Version aus dem svn geholt.
Läuft wie gewünscht.
DANKE
Zitat von: awex102 am 13 Dezember 2016, 07:48:37
Danke für den Tip, das Modul gibt ja mindestens zwei relevante Werte zurück, duration und duration_in_traffic.
Kann man direkt neue attribute hinzufügen, die das gewünschte Format zurückgeben?
Wenn ich dich richtig verstehe, dann meinst du so etwas wie userReadings. Allerdings habe ich nicht genau verstanden was du möchtest :)
Ich habe jetzt eine grundsätzliche Lösung:
Habe mir einen Dummy angelegt.
Per notfiy rufe ich eine eigene Hilfsfunktion zum umformatieren auf, die die readings ausliest und formatiert.
Einzige offene Frage die ich noch habe: Auf welches "Ereignis" muss ich das notfiy einschränken? Wenn ich auf "Traffic update" gehe, wird das notify aufgrufen, bevor die Werte / Readings geupdatet werden.
Hallo,
device ist Initialized, Start und Ziel Adressen sind gesetzt. Ich bekomme beim updaten folgenden Fehler:
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "LWP will support htt...") at ./FHEM/98_TRAFFIC.pm line 306.
Weiss jmd. Rat?
Grüße
Dir fehlen noch weitere Perl Module.
Für mal folgende Befehle aus:
$ perl -e "use Net::SSL;"
$ perl -e "use LWP::UserAgent;"
$ perl -e "use JSON;"
und natürlich
perl -e "use IO::Socket::SSL;"
Zitat von: jmike am 13 Dezember 2016, 16:01:08
Dir fehlen noch weitere Perl Module.
Für mal folgende Befehle aus:
$ perl -e "Net::SSL;"
$ perl -e "use LWP::UserAgent;"
$ perl -e "use JSON;"
und natürlich
perl -e "use IO::Socket::SSL;"
Die ersten drei habe ich nach installiert. Beim Modul IO::Socket::SSL bekomme ich folgende Fehlermeldung beim installieren:
C:\Fhem\perl\bin>cpan -i Net::SSL
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
Net::SSL is up to date (2.86).
C:\Fhem\perl\bin>cpan -i LWP::UserAgent
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
LWP::UserAgent is up to date (6.15).
C:\Fhem\perl\bin>cpan -i JSON
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
JSON is up to date (2.90).
C:\Fhem\perl\bin>cpan -i IO::Socket::SSL
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
Running install for module 'IO::Socket::SSL'
CPAN: Digest::SHA loaded ok (v5.95)
CPAN: Compress::Zlib loaded ok (v2.069)
Checksum for C:\Fhem\cpan\sources\authors\id\S\SU\SULLR\IO-Socket-SSL-2.039.tar.gz ok
CPAN: Archive::Tar loaded ok (v2.06)
CPAN: File::Temp loaded ok (v0.2304)
CPAN: YAML::XS loaded ok (v0.62)
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v1.4417)
CPAN: CPAN::Meta loaded ok (v2.150005)
CPAN: Module::CoreList loaded ok (v5.20160507)
Configuring S/SU/SULLR/IO-Socket-SSL-2.039.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for IO::Socket::SSL
Writing MYMETA.yml and MYMETA.json
SULLR/IO-Socket-SSL-2.039.tar.gz
C:\Fhem\perl\bin\perl.exe Makefile.PL -- OK
Running make for S/SU/SULLR/IO-Socket-SSL-2.039.tar.gz
cp lib/IO/Socket/SSL/Utils.pm blib\lib\IO\Socket\SSL\Utils.pm
cp lib/IO/Socket/SSL/PublicSuffix.pm blib\lib\IO\Socket\SSL\PublicSuffix.pm
cp lib/IO/Socket/SSL.pod blib\lib\IO\Socket\SSL.pod
cp lib/IO/Socket/SSL.pm blib\lib\IO\Socket\SSL.pm
cp lib/IO/Socket/SSL/Intercept.pm blib\lib\IO\Socket\SSL\Intercept.pm
SULLR/IO-Socket-SSL-2.039.tar.gz
C:\Fhem\c\bin\dmake.exe -- OK
Running make test
"C:\Fhem\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/external/*.t
t/01loadmodule.t ..................
t/01loadmodule.t .................. 1/3 # Failed test 'loaded'
# at t/01loadmodule.t line 8.
Out of memory!
# Looks like you planned 3 tests but ran 1.
# Looks like you failed 1 test of 1 run.
# Looks like your test exited with 1 just after 1.
t/01loadmodule.t .................. Dubious, test returned 1 (wstat 256, 0x100)
Failed 3/3 subtests
t/acceptSSL-timeout.t ............. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/acceptSSL-timeout.t line 4.
BEGIN failed--compilation aborted at t/acceptSSL-timeout.t line 4.
t/acceptSSL-timeout.t ............. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/alpn.t .......................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/alpn.t line 7.
Compilation failed in require at t/alpn.t line 7.
BEGIN failed--compilation aborted at t/alpn.t line 7.
t/alpn.t .......................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/auto_verify_hostname.t .......... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/auto_verify_hostname.t line 5.
Compilation failed in require at t/auto_verify_hostname.t line 5.
BEGIN failed--compilation aborted at t/auto_verify_hostname.t line 5.
t/auto_verify_hostname.t .......... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/cert_formats.t .................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/cert_formats.t line 4.
BEGIN failed--compilation aborted at t/cert_formats.t line 4.
t/cert_formats.t .................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/cert_no_file.t .................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/cert_no_file.t line 16.
Compilation failed in require at t/cert_no_file.t line 16.
BEGIN failed--compilation aborted at t/cert_no_file.t line 16.
t/cert_no_file.t .................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/compatibility.t ................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/compatibility.t line 7.
BEGIN failed--compilation aborted at t/compatibility.t line 7.
t/compatibility.t ................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/connectSSL-timeout.t ............ Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/connectSSL-timeout.t line 3.
BEGIN failed--compilation aborted at t/connectSSL-timeout.t line 3.
t/connectSSL-timeout.t ............ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/core.t .......................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/core.t line 7.
Compilation failed in require at t/core.t line 7.
BEGIN failed--compilation aborted at t/core.t line 7.
t/core.t .......................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/dhe.t ........................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/dhe.t line 9.
Compilation failed in require at t/dhe.t line 9.
BEGIN failed--compilation aborted at t/dhe.t line 9.
t/dhe.t ........................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/ecdhe.t ......................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/ecdhe.t line 7.
Compilation failed in require at t/ecdhe.t line 7.
BEGIN failed--compilation aborted at t/ecdhe.t line 7.
t/ecdhe.t ......................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/external/ocsp.t ................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/external/ocsp.t line 6.
BEGIN failed--compilation aborted at t/external/ocsp.t line 6.
t/external/ocsp.t ................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/external/usable_ca.t ............ Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/external/usable_ca.t line 4.
BEGIN failed--compilation aborted at t/external/usable_ca.t line 4.
t/external/usable_ca.t ............ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/io-socket-inet6.t ............... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/io-socket-inet6.t line 14.
Compilation failed in require at t/io-socket-inet6.t line 14.
BEGIN failed--compilation aborted at t/io-socket-inet6.t line 14.
t/io-socket-inet6.t ............... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/io-socket-ip.t .................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/io-socket-ip.t line 10.
Compilation failed in require at t/io-socket-ip.t line 10.
BEGIN failed--compilation aborted at t/io-socket-ip.t line 10.
t/io-socket-ip.t .................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/memleak_bad_handshake.t ......... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/memleak_bad_handshake.t line 7.
Compilation failed in require at t/memleak_bad_handshake.t line 7.
BEGIN failed--compilation aborted at t/memleak_bad_handshake.t line 7.
t/memleak_bad_handshake.t ......... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/mitm.t .......................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/mitm.t line 5.
Compilation failed in require at t/mitm.t line 5.
BEGIN failed--compilation aborted at t/mitm.t line 5.
t/mitm.t .......................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/nonblock.t ...................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/nonblock.t line 8.
Compilation failed in require at t/nonblock.t line 8.
BEGIN failed--compilation aborted at t/nonblock.t line 8.
t/nonblock.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/npn.t ........................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/npn.t line 7.
Compilation failed in require at t/npn.t line 7.
BEGIN failed--compilation aborted at t/npn.t line 7.
t/npn.t ........................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/plain_upgrade_downgrade.t ....... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/plain_upgrade_downgrade.t line 4.
BEGIN failed--compilation aborted at t/plain_upgrade_downgrade.t line 4.
t/plain_upgrade_downgrade.t ....... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/protocol_version.t .............. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/protocol_version.t line 7.
BEGIN failed--compilation aborted at t/protocol_version.t line 7.
t/protocol_version.t .............. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/public_suffix_lib_encode_idn.t .. ok
t/public_suffix_lib_libidn.t ...... ok
t/public_suffix_lib_uri.t ......... ok
t/public_suffix_ssl.t ............. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/public_suffix_ssl.t line 3.
BEGIN failed--compilation aborted at t/public_suffix_ssl.t line 3.
t/public_suffix_ssl.t ............. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/readline.t ...................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/readline.t line 16.
Compilation failed in require at t/readline.t line 16.
BEGIN failed--compilation aborted at t/readline.t line 16.
t/readline.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/session_ticket.t ................ Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/session_ticket.t line 3.
BEGIN failed--compilation aborted at t/session_ticket.t line 3.
t/session_ticket.t ................ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/sessions.t ...................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/sessions.t line 7.
Compilation failed in require at t/sessions.t line 7.
BEGIN failed--compilation aborted at t/sessions.t line 7.
t/sessions.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/signal-readline.t ............... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/signal-readline.t line 5.
Compilation failed in require at t/signal-readline.t line 5.
BEGIN failed--compilation aborted at t/signal-readline.t line 5.
t/signal-readline.t ............... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/sni.t ........................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/sni.t line 5.
Compilation failed in require at t/sni.t line 5.
BEGIN failed--compilation aborted at t/sni.t line 5.
t/sni.t ........................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/sni_verify.t .................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/sni_verify.t line 5.
Compilation failed in require at t/sni_verify.t line 5.
BEGIN failed--compilation aborted at t/sni_verify.t line 5.
t/sni_verify.t .................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/start-stopssl.t ................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/start-stopssl.t line 6.
BEGIN failed--compilation aborted at t/start-stopssl.t line 6.
t/start-stopssl.t ................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/startssl-failed.t ............... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/startssl-failed.t line 5.
Compilation failed in require at t/startssl-failed.t line 5.
BEGIN failed--compilation aborted at t/startssl-failed.t line 5.
t/startssl-failed.t ............... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/startssl.t ...................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/startssl.t line 7.
Compilation failed in require at t/startssl.t line 7.
BEGIN failed--compilation aborted at t/startssl.t line 7.
t/startssl.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/sysread_write.t ................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/sysread_write.t line 11.
Compilation failed in require at t/sysread_write.t line 11.
BEGIN failed--compilation aborted at t/sysread_write.t line 11.
t/sysread_write.t ................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/verify_fingerprint.t ............ Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/verify_fingerprint.t line 4.
BEGIN failed--compilation aborted at t/verify_fingerprint.t line 4.
t/verify_fingerprint.t ............ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/verify_hostname.t ............... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/verify_hostname.t line 5.
Compilation failed in require at t/verify_hostname.t line 5.
BEGIN failed--compilation aborted at t/verify_hostname.t line 5.
t/verify_hostname.t ............... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/verify_hostname_standalone.t .... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qb_2iB\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/verify_hostname_standalone.t line 4.
BEGIN failed--compilation aborted at t/verify_hostname_standalone.t line 4.
t/verify_hostname_standalone.t .... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
Test Summary Report
-------------------
t/01loadmodule.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
Parse errors: Bad plan. You planned 3 tests but ran 1.
t/acceptSSL-timeout.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/alpn.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/auto_verify_hostname.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/cert_formats.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/cert_no_file.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/compatibility.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/connectSSL-timeout.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/core.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/dhe.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/ecdhe.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/external/ocsp.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/external/usable_ca.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/io-socket-inet6.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/io-socket-ip.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/memleak_bad_handshake.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/mitm.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/nonblock.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/npn.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/plain_upgrade_downgrade.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/protocol_version.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/public_suffix_ssl.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/readline.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/session_ticket.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/sessions.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/signal-readline.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/sni.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/sni_verify.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/start-stopssl.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/startssl-failed.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/startssl.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/sysread_write.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/verify_fingerprint.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/verify_hostname.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/verify_hostname_standalone.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
Files=38, Tests=238, 27 wallclock secs ( 0.27 usr + 0.08 sys = 0.34 CPU)
Result: FAIL
Failed 35/38 test programs. 1/238 subtests failed.
dmake.exe: Error code 130, while making 'test_dynamic'
SULLR/IO-Socket-SSL-2.039.tar.gz
C:\Fhem\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports SULLR/IO-Socket-SSL-2.039.tar.gz
Stopping: 'install' failed for 'IO::Socket::SSL'
Danke und Grüße
Martin
Hi Martin.
Das ist keine Installation von Modulen, -e steht für execute.
Die Befehle laden nur die Module, und geben eben einen Fehler aus falls das Modul nicht vorhanden ist.
Zitat von: jmike am 13 Dezember 2016, 17:49:39
Hi Martin.
Das ist keine Installation von Modulen, -e steht für execute.
Die Befehle laden nur die Module, und geben eben einen Fehler aus falls das Modul nicht vorhanden ist.
Hi jmike,
das -e scheint er nicht zu kennen, allerdings scheint er die Installation trotzdem auszuführen, jedoch mit folgenden Fehlern:
C:\Fhem\perl\bin>cpan -e Net::SSL
Loading internal null logger. Install Log::Log4perl for logging messages
Unknown option: e
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
Net::SSL is up to date (2.86).
C:\Fhem\perl\bin>cpan -e use LWP::UserAgent
Loading internal null logger. Install Log::Log4perl for logging messages
Unknown option: e
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
use is up to date (0.05).
LWP::UserAgent is up to date (6.15).
C:\Fhem\perl\bin>cpan -e use JSON
Loading internal null logger. Install Log::Log4perl for logging messages
Unknown option: e
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
use is up to date (0.05).
JSON is up to date (2.90).
C:\Fhem\perl\bin>cpan -e use IO::Socket::SSL
Loading internal null logger. Install Log::Log4perl for logging messages
Unknown option: e
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
use is up to date (0.05).
Running install for module 'IO::Socket::SSL'
CPAN: Digest::SHA loaded ok (v5.95)
CPAN: Compress::Zlib loaded ok (v2.069)
Checksum for C:\Fhem\cpan\sources\authors\id\S\SU\SULLR\IO-Socket-SSL-2.039.tar.gz ok
CPAN: Archive::Tar loaded ok (v2.06)
CPAN: File::Temp loaded ok (v0.2304)
CPAN: YAML::XS loaded ok (v0.62)
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v1.4417)
CPAN: CPAN::Meta loaded ok (v2.150005)
Configuring S/SU/SULLR/IO-Socket-SSL-2.039.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for IO::Socket::SSL
Writing MYMETA.yml and MYMETA.json
SULLR/IO-Socket-SSL-2.039.tar.gz
C:\Fhem\perl\bin\perl.exe Makefile.PL -- OK
Running make for S/SU/SULLR/IO-Socket-SSL-2.039.tar.gz
cp lib/IO/Socket/SSL/Intercept.pm blib\lib\IO\Socket\SSL\Intercept.pm
cp lib/IO/Socket/SSL/PublicSuffix.pm blib\lib\IO\Socket\SSL\PublicSuffix.pm
cp lib/IO/Socket/SSL.pm blib\lib\IO\Socket\SSL.pm
cp lib/IO/Socket/SSL/Utils.pm blib\lib\IO\Socket\SSL\Utils.pm
cp lib/IO/Socket/SSL.pod blib\lib\IO\Socket\SSL.pod
SULLR/IO-Socket-SSL-2.039.tar.gz
C:\Fhem\c\bin\dmake.exe -- OK
Running make test
"C:\Fhem\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/external/*.t
t/01loadmodule.t ..................
t/01loadmodule.t .................. 1/3 # Failed test 'loaded'
# at t/01loadmodule.t line 8.
Out of memory!
# Looks like you planned 3 tests but ran 1.
# Looks like you failed 1 test of 1 run.
# Looks like your test exited with 1 just after 1.
t/01loadmodule.t .................. Dubious, test returned 1 (wstat 256, 0x100)
Failed 3/3 subtests
t/acceptSSL-timeout.t ............. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/acceptSSL-timeout.t line 4.
BEGIN failed--compilation aborted at t/acceptSSL-timeout.t line 4.
t/acceptSSL-timeout.t ............. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/alpn.t .......................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/alpn.t line 7.
Compilation failed in require at t/alpn.t line 7.
BEGIN failed--compilation aborted at t/alpn.t line 7.
t/alpn.t .......................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/auto_verify_hostname.t .......... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/auto_verify_hostname.t line 5.
Compilation failed in require at t/auto_verify_hostname.t line 5.
BEGIN failed--compilation aborted at t/auto_verify_hostname.t line 5.
t/auto_verify_hostname.t .......... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/cert_formats.t .................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/cert_formats.t line 4.
BEGIN failed--compilation aborted at t/cert_formats.t line 4.
t/cert_formats.t .................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/cert_no_file.t .................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/cert_no_file.t line 16.
Compilation failed in require at t/cert_no_file.t line 16.
BEGIN failed--compilation aborted at t/cert_no_file.t line 16.
t/cert_no_file.t .................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/compatibility.t ................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/compatibility.t line 7.
BEGIN failed--compilation aborted at t/compatibility.t line 7.
t/compatibility.t ................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/connectSSL-timeout.t ............ Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/connectSSL-timeout.t line 3.
BEGIN failed--compilation aborted at t/connectSSL-timeout.t line 3.
t/connectSSL-timeout.t ............ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/core.t .......................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/core.t line 7.
Compilation failed in require at t/core.t line 7.
BEGIN failed--compilation aborted at t/core.t line 7.
t/core.t .......................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/dhe.t ........................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/dhe.t line 9.
Compilation failed in require at t/dhe.t line 9.
BEGIN failed--compilation aborted at t/dhe.t line 9.
t/dhe.t ........................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/ecdhe.t ......................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/ecdhe.t line 7.
Compilation failed in require at t/ecdhe.t line 7.
BEGIN failed--compilation aborted at t/ecdhe.t line 7.
t/ecdhe.t ......................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/external/ocsp.t ................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/external/ocsp.t line 6.
BEGIN failed--compilation aborted at t/external/ocsp.t line 6.
t/external/ocsp.t ................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/external/usable_ca.t ............ Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/external/usable_ca.t line 4.
BEGIN failed--compilation aborted at t/external/usable_ca.t line 4.
t/external/usable_ca.t ............ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/io-socket-inet6.t ............... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/io-socket-inet6.t line 14.
Compilation failed in require at t/io-socket-inet6.t line 14.
BEGIN failed--compilation aborted at t/io-socket-inet6.t line 14.
t/io-socket-inet6.t ............... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/io-socket-ip.t .................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/io-socket-ip.t line 10.
Compilation failed in require at t/io-socket-ip.t line 10.
BEGIN failed--compilation aborted at t/io-socket-ip.t line 10.
t/io-socket-ip.t .................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/memleak_bad_handshake.t ......... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/memleak_bad_handshake.t line 7.
Compilation failed in require at t/memleak_bad_handshake.t line 7.
BEGIN failed--compilation aborted at t/memleak_bad_handshake.t line 7.
t/memleak_bad_handshake.t ......... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/mitm.t .......................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/mitm.t line 5.
Compilation failed in require at t/mitm.t line 5.
BEGIN failed--compilation aborted at t/mitm.t line 5.
t/mitm.t .......................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/nonblock.t ...................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/nonblock.t line 8.
Compilation failed in require at t/nonblock.t line 8.
BEGIN failed--compilation aborted at t/nonblock.t line 8.
t/nonblock.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/npn.t ........................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/npn.t line 7.
Compilation failed in require at t/npn.t line 7.
BEGIN failed--compilation aborted at t/npn.t line 7.
t/npn.t ........................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/plain_upgrade_downgrade.t ....... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/plain_upgrade_downgrade.t line 4.
BEGIN failed--compilation aborted at t/plain_upgrade_downgrade.t line 4.
t/plain_upgrade_downgrade.t ....... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/protocol_version.t .............. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/protocol_version.t line 7.
BEGIN failed--compilation aborted at t/protocol_version.t line 7.
t/protocol_version.t .............. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/public_suffix_lib_encode_idn.t .. ok
t/public_suffix_lib_libidn.t ...... ok
t/public_suffix_lib_uri.t ......... ok
t/public_suffix_ssl.t ............. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/public_suffix_ssl.t line 3.
BEGIN failed--compilation aborted at t/public_suffix_ssl.t line 3.
t/public_suffix_ssl.t ............. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/readline.t ...................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/readline.t line 16.
Compilation failed in require at t/readline.t line 16.
BEGIN failed--compilation aborted at t/readline.t line 16.
t/readline.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/session_ticket.t ................ Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/session_ticket.t line 3.
BEGIN failed--compilation aborted at t/session_ticket.t line 3.
t/session_ticket.t ................ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/sessions.t ...................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/sessions.t line 7.
Compilation failed in require at t/sessions.t line 7.
BEGIN failed--compilation aborted at t/sessions.t line 7.
t/sessions.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/signal-readline.t ............... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/signal-readline.t line 5.
Compilation failed in require at t/signal-readline.t line 5.
BEGIN failed--compilation aborted at t/signal-readline.t line 5.
t/signal-readline.t ............... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/sni.t ........................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/sni.t line 5.
Compilation failed in require at t/sni.t line 5.
BEGIN failed--compilation aborted at t/sni.t line 5.
t/sni.t ........................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/sni_verify.t .................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/sni_verify.t line 5.
Compilation failed in require at t/sni_verify.t line 5.
BEGIN failed--compilation aborted at t/sni_verify.t line 5.
t/sni_verify.t .................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/start-stopssl.t ................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/start-stopssl.t line 6.
BEGIN failed--compilation aborted at t/start-stopssl.t line 6.
t/start-stopssl.t ................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/startssl-failed.t ............... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/startssl-failed.t line 5.
Compilation failed in require at t/startssl-failed.t line 5.
BEGIN failed--compilation aborted at t/startssl-failed.t line 5.
t/startssl-failed.t ............... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/startssl.t ...................... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/startssl.t line 7.
Compilation failed in require at t/startssl.t line 7.
BEGIN failed--compilation aborted at t/startssl.t line 7.
t/startssl.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/sysread_write.t ................. Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/sysread_write.t line 11.
Compilation failed in require at t/sysread_write.t line 11.
BEGIN failed--compilation aborted at t/sysread_write.t line 11.
t/sysread_write.t ................. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/verify_fingerprint.t ............ Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/verify_fingerprint.t line 4.
BEGIN failed--compilation aborted at t/verify_fingerprint.t line 4.
t/verify_fingerprint.t ............ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/verify_hostname.t ............... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at t/verify_hostname.t line 5.
Compilation failed in require at t/verify_hostname.t line 5.
BEGIN failed--compilation aborted at t/verify_hostname.t line 5.
t/verify_hostname.t ............... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/verify_hostname_standalone.t .... Can't load 'C:/Fhem/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Fhem/perl/lib/DynaLoader.pm line 193.
at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at C:\Fhem\cpan\build\IO-Socket-SSL-2.039-qwnu9P\blib\lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at t/verify_hostname_standalone.t line 4.
BEGIN failed--compilation aborted at t/verify_hostname_standalone.t line 4.
t/verify_hostname_standalone.t .... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
Test Summary Report
-------------------
t/01loadmodule.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
Parse errors: Bad plan. You planned 3 tests but ran 1.
t/acceptSSL-timeout.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/alpn.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/auto_verify_hostname.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/cert_formats.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/cert_no_file.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/compatibility.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/connectSSL-timeout.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/core.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/dhe.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/ecdhe.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/external/ocsp.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/external/usable_ca.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/io-socket-inet6.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/io-socket-ip.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/memleak_bad_handshake.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/mitm.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/nonblock.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/npn.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/plain_upgrade_downgrade.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/protocol_version.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/public_suffix_ssl.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/readline.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/session_ticket.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/sessions.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/signal-readline.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/sni.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/sni_verify.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/start-stopssl.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/startssl-failed.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/startssl.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/sysread_write.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/verify_fingerprint.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/verify_hostname.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/verify_hostname_standalone.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
Files=38, Tests=238, 33 wallclock secs ( 0.23 usr + 0.08 sys = 0.31 CPU)
Result: FAIL
Failed 35/38 test programs. 1/238 subtests failed.
dmake.exe: Error code 130, while making 'test_dynamic'
SULLR/IO-Socket-SSL-2.039.tar.gz
C:\Fhem\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports SULLR/IO-Socket-SSL-2.039.tar.gz
Stopping: 'install' failed for 'IO::Socket::SSL'.
Grüße
Martin
Bitte sowas in code-tags packen...
Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden
probiers erstmal mit
cpan -i Net::SSLeay
@l05443: bitte UNBEDINGT code Tags nutzen für so lange Ausgaben. Das macht das Lesen einfacher und man muss nicht ewig scrollen. Die bekommst du mittels [ code ][ /code ] ohne Leerzeichen.
@awex102:
Du kannst mit einem DOIF arbeiten und dir ein wait attr setzen, damit der Befehl verzögert ausgegeben wird. Aber ich denke immer noch, dass userReadings einfach ist. Schau mal im Wiki oder in der CommandRef danach. Ist nämlich genau dafür dar um Formatierungen durchzuführen :)
Zitat von: jmike am 13 Dezember 2016, 18:18:06
Bitte sowas in code-tags packen...
Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden
probiers erstmal mit
cpan -i Net::SSLeay
Sry habs geändert :-). Wenn ich
cpan -i Net::SSLeay
ausführe bekomme ich folgenden Fehler:
C:\Fhem\perl\bin>cpan -i Net::SSLeay
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Tue, 13 Dec 2016 13:41:47 GMT
Running install for module 'Net::SSLeay'
CPAN: LWP::UserAgent loaded ok (v6.15)
CPAN: Time::HiRes loaded ok (v1.9733)
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/M/MI/MIKEM/Net-SSLeay-1.78.tar.gz
CPAN: YAML::XS loaded ok (v0.62)
CPAN: Digest::SHA loaded ok (v5.95)
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/M/MI/MIKEM/CHECKSUMS
CPAN: Compress::Zlib loaded ok (v2.069)
Checksum for C:\Fhem\cpan\sources\authors\id\M\MI\MIKEM\Net-SSLeay-1.78.tar.gz ok
CPAN: Archive::Tar loaded ok (v2.06)
CPAN: File::Temp loaded ok (v0.2304)
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v1.4417)
CPAN: CPAN::Meta loaded ok (v2.150005)
CPAN: Module::CoreList loaded ok (v5.20160507)
Configuring M/MI/MIKEM/Net-SSLeay-1.78.tar.gz with Makefile.PL
Unresolvable missing external dependency.
This package requires a C compiler.
NA: Unable to build distribution on this platform.
No 'Makefile' created MIKEM/Net-SSLeay-1.78.tar.gz
C:\Fhem\perl\bin\perl.exe Makefile.PL -- NOT OK
Stopping: 'install' failed for 'Net::SSLeay'.
Grüße
Ich denke es macht Sinn dass du das Problem auf einen eigenen Thread auslagerst. Irgendwas mit "FHEM auf Windows"...
Das Problem ist Windows und Perl... siehe:
This package requires a C compiler.
Vermutlich musst du über cygwin gehen...
Zitat von: jmike am 13 Dezember 2016, 19:41:04
Ich denke es macht Sinn dass du das Problem auf einen eigenen Thread auslagerst. Irgendwas mit "FHEM auf Windows"...
Das Problem ist Windows und Perl... siehe:
This package requires a C compiler.
Vermutlich musst du über cygwin gehen...
Ok danke mache ich.
Grüße
Wer das "kosmetische Problem" hat, dass zwei Internals gelistet werden, - nämlich "Interval" und "INTERVAL" - kann es wie folgt lösen ohne das Device neu anlegen zu müssen.
{delete($defs{'<devicename>'}{'Interval'})}
Ich vermute es ist eine Leiche einer älteren Version, "Interval" wurde zwar gesetzt aber intern wird "INTERVAL" genutzt.
Wenn kein "INTERVAL" gelistet wird einfach noch mal die DEF editieren und abspeichern. Bei mir wurde teilweise "Interval" mit 3600 und dann "INTERVAL" mit dem Wert aus der DEF angezeigt.
Korrekt wäre es dann z.b. wie folgt:
Internals:
APIKEY abcdefghijklmnopqrst1234567
DEF abcdefghijklmnopqrst1234567
INTERVAL 3600
NAME <devicename>
NR 170
STATE 22 Minuten
TRIGGERTIME 1481711107.0327
TRIGGERTIME_FMT 2016-12-14 11:25:07
TYPE TRAFFIC
VERSION 1.1
Hallo,
jetzt habe auch ich mir dieses super Tool in FHEM eingerichtet. Jetzt würde ich gerne ab einer bestimmten Zeit zB 16 Uhr bis 18 Uhr per Telegram Nachrichten auf Handy senden lassen wenn die return_delay zeit sich ändert.
Kann mir da einer mit den Befehlen weiterhelfen? Ich bekomme das einfach nicht hin.
:-X :-\
Danke Euch
Anfangen solltest du mit:
attr <traffic> event-on-change-reading return_delay.*
So dass nur ein Event erstellt wird, wenn der Wert sich auch ändert.
Dann könntest du dieses Event mit einem DOIF abfangen, z.b.
define returnDelayMsg DOIF ([16-18] and [<traffic>:"return_delay"])(set telegram message rückreise dauert nun [<traffic>:return_delay])
attr returnDelayMsg do always
Möglicherweise musst du noch den ein oder anderen Syntax Fehler beheben, hab es nicht getestet.
Zitat von: jmike am 13 Dezember 2016, 19:41:04
Ich denke es macht Sinn dass du das Problem auf einen eigenen Thread auslagerst. Irgendwas mit "FHEM auf Windows"...
Das Problem ist Windows und Perl... siehe:
This package requires a C compiler.
Vermutlich musst du über cygwin gehen...
Hallo jmike,
update der Module funktioniert (Fehler war cpan nicht aus dem cmd auszuführen sondern die portableshell.bat starten und in dem cmd Fenster dann die updates starten).
C:\Fhem>cpan use Net::SSL
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
use is up to date (0.05).
Net::SSL is up to date (2.86).
C:\Fhem>cpan use LWP::UserAgent
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
use is up to date (0.05).
LWP::UserAgent is up to date (6.15).
C:\Fhem>cpan use JSON
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
use is up to date (0.05).
JSON is up to date (2.90).
C:\Fhem>cpan use IO::Socket::SSL
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
use is up to date (0.05).
IO::Socket::SSL is up to date (2.039).
Allerdings bleibt die Fehlermeldung beim aktualisieren des Traffic device:
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "LWP will support htt...") at ./FHEM/98_TRAFFIC.pm line 352.
Ne Idee woran es jetzt liegen könnte?
Grüße
Martin
Hi Martin.
Ok, kurz eine Grundsätzliche Sache.
Bei cpan nimmst du "install" um die Module zu installieren. z.b. cpan install Net::SSL
"use" nimmst du bei den Perl Befehlen. z.b. perl -e "use Net::SSL"
Das führt dazu, dass Perl versucht das Net::SSL Modul zu laden. Wenn es klappt, passiert nichts. Wenn du eine Fehlermeldung bekommst, ist das Modul nicht installiert und muss mit z.b. mit CPAN nachinstalliert werden.
Deine Fehlermeldung sagt mir momentan nur dass es ein Problem mit LWP gibt, vermutlich weil dein LWP kein HTTPS kann.
Diese Meldung versucht das TRAFFIC-Modul zu parsen und daher der JSON Fehler.
Check mal bitte ob die Module LWP::Protocol::https und Crypt::SSLeay installiert sind:
perl -e "use LWP::Protocol::https"
perl -e "use Crypt::SSLeay"
Dann, wo Fehler auftreten, die Module mittels "cpan install <Modul-Name>" installieren und nochmal testen.
Hi,
in der commandref steht folgendes:
Zitat"updateSchedule" - define a flexible update schedule, syntax <starthour>-<endhour> [<day>] <seconds> , multiple entries by sparated by |
example: 7-9 1 120 - Monday between 7 and 9 every 2minutes
example: 17-19 120 - every Day between 17 and 19 every 2minutes
example: 6-8 1 60|6-8 2 60|6-8 3 60|6-8 4 60|6-8 5 60 - Monday till Friday, 60 seconds between 6 and 8 am
"travelMode" - default: driving, options walking, bicycling or transit
Allerdings finde ich beide Attribute nicht in der Auswahlliste...
Edit: Nach update isses da... also erledigt
Hi jmike,
danke für den Hinweis, bin noch neu in der Materie und froh über solche Infos!
Ich habe alle Module mit cpan install nochmal durchlaufen lassen auch die neuen beiden. Waren aber schon installiert.
C:\Fhem>cpan install Net::SSL
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
Net::SSL is up to date (2.86).
C:\Fhem>cpan install LWP::UserAgent
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
LWP::UserAgent is up to date (6.15).
C:\Fhem>cpan install JSON
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
JSON is up to date (2.90).
C:\Fhem>cpan install IO::Socket::SSL
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
IO::Socket::SSL is up to date (2.039).
C:\Fhem>cpan install LWP::Protocol::https
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
LWP::Protocol::https is up to date (6.06).
C:\Fhem>cpan install Crypt::SSLeay
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Wed, 14 Dec 2016 13:22:58 GMT
CPAN: Module::CoreList loaded ok (v5.20160507)
Crypt::SSLeay is up to date (0.72).
Selber Fehler weiterhin....
Grüße
Martin
Hi Martin.
Hast du dazu was in deinem FHEM Log?
Eventuell taucht etwas auf wenn du "reload 98_TRAFFIC" in der FHEM Befehlszeile ausführst.
Falls nichts kommt bitte mal stacktrace 1 und verbose 5 auf dem global Device setzen, eventuell bekommen wir da mehr raus.
Wenn ich Traffic reload mache bekomme ich:
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_Initialize redefined at ./FHEM/98_TRAFFIC.pm line 58.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_Define redefined at ./FHEM/98_TRAFFIC.pm line 72.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_Undef redefined at ./FHEM/98_TRAFFIC.pm line 123.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_Attr redefined at ./FHEM/98_TRAFFIC.pm line 134.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_Set redefined at ./FHEM/98_TRAFFIC.pm line 160.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_StartUpdate redefined at ./FHEM/98_TRAFFIC.pm line 208.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_AbortUpdate redefined at ./FHEM/98_TRAFFIC.pm line 290.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_DoUpdate redefined at ./FHEM/98_TRAFFIC.pm line 295.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine TRAFFIC_FinishUpdate redefined at ./FHEM/98_TRAFFIC.pm line 415.
2016.12.14 17:18:04 1: PERL WARNING: Subroutine prettySeconds redefined at ./FHEM/98_TRAFFIC.pm line 454.
Bringt dich das weiter?
Grüße
Ne, wir suchen sowas wie...
ZitatCan't locate some/module.pm......
BEGIN failed--compilation aborted at -e line 1.
Ich habe stacktrace und verbose mal umgestellt. Allerdings kommen zum Traffic Modul nicht mehr Meldungen immer nur diese zwei wenn das Update anläuft:
2016.12.14 19:14:35 4: BlockingCall (TRAFFIC_DoUpdate): created child (-1728), uses telnetForBlockingFn_1481738674.937 to connect back
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "LWP will support htt...") at ./FHEM/98_TRAFFIC.pm line 352.
Grüße
Hallo,
wenn ich die waypoints für die hinreise zur arbeit mit entsprechender fahrtrichtung setze und dann die rückreise automatisch inkludiere, dann gibt traffic fehler aus. Wie muss ich denn die waypoints für die rückreise setzen?
Hi.
Waypoints für die Rückreise geht aktuell nicht, werde mir was überlegen.
Wenn du z.b. eine Autobahnspur Richtung Norden als Waypoint definiert hast, hat die Rückreise natürlich ein Problem damit und Google gibt einen Fehler aus.
Ich denke fast dazu brauchen wir ein weiteres Attribut, return_waypoints oder sowas.
Hi,
das wäre echt richtig hilfreich, so könnte man nämlich hin anders routen als zurück, wenn man zB weiß das auf rück eh immer voll ist oder man Kinder von der Kita abholen muss oder oder oder.
Wäre ein tolles Weihnachtsgeschenk ;-)
Hey,
vielen Dank für dieses tolle Modul, das ersetzt die HTTPMOD-Variante perfekt!
Wenn das mit den Waypoints beim Rückweg https://forum.fhem.de/index.php/topic,56045.msg540133.html#msg540133 (https://forum.fhem.de/index.php/topic,56045.msg540133.html#msg540133) noch schaffst ist es vollkommen perfekt ;)
Grüße Dave
Das Feature - und ein noch viel cooleres <weihnachts-geschenk-smiley-hier> - ist fertig und wird in den nächsten Stunden eingecheckt
*wildimkreisrenn*
Dann schonmal vorab ein dickes DANKE!
Das Update ist eingecheckt.
Ganz wichtig, das Modul hat nun eine neue Abhängigkeit zum Perl Modul MIME::Base64
Ist aber zumindest im Raspbian per default dabei.
Neben dem optionalen Attribut returnWaypoints gibt es eine integrierte Karte, die euch den konfigurierten Weg für Hin- und Rückweg anzeigt.
Wenn die returnWaypoints nicht angegeben sind, werden die "normalen" waypoints in umgekehrter Reihenfolge abgearbeitet.
Details zur Karte findet ihr im Wiki Artikel (https://wiki.fhem.de/wiki/TRAFFIC), alternativ einfach mal das Device verbose auf 5 stellen, update durchführen und in den neuen Raum TRAFFIC_debug schauen bzw. dem Weblink darin. Wenn alles passt wieder verbose auf 1 oder 0 - je nachdem was ihr habt.
cheers
Hi,
das mit der Map ist sehr cool, leider kommt bei mir beim Aufruf der Map im Browser "Google Maps wurde auf dieser Seite nicht richtig geladen. Technische Details dazu entnimmst du der JavaScript-Konsole." Die maps javascript api habe ich aber im google api manager aktiv. In der JavaScript Konsole bekomme ich "MissingKeyMapError"
https://developers.google.com/maps/documentation/javascript/error-messages#missing-key-map-error
Irgendeine Idee?
Viele Grüße vom gent
Hi.
Kann nicht ganz nachvollziehen wo dein Problem auftritt, auf der debug-Karte?
Da brauchst du eigentlich keinen extra API Key.
Vielleicht kannst du bisschen mehr "zeigen".
Hi,
ja, auf der debug Karte, wenn ich auf den Link klicke open Map for TRAFFIC <devicename>
Es kommt dann - je nach browser (Safari, Chrome) - kurz die Karte und dann die Fehlermeldung und wenn ich dann in die Browser-Konsole (in meinem Fall Safari) gehe kommt die im Anhang
Hier noch ein Screenshot vom api manager
Hi gent,
bei mir funktioniert es mit lediglich zwei aktivierten API´s: Google Maps Directions API & Google Maps Distance Matrix API
Allerdings hab ich das Problem, daß der Aufruf über den Link:
http://fhem-ip:port/fhem/TRAFFIC_debug?name=<TRAFFIC-DEVICE>
nur funktioniert wenn verbose auf 5 gesetzt ist. Kleiner 5 bleibt´s nur ein graues Fenster ohne Karte.
Gruß
moskito
Hi.
Das ist works-as-designed.
Wenn du dir die Readings anschaust siehst du einen dicken Textblock. Das ist exakt die Polyline, also die Route, die das Modul zuletzt von Google erhalten hat. Und das Reading wird nur angelegt und befüllt bei verbose 5.
Ohne das Reading kann die Karte keinen Weg zeichnen.
Nee, das isses noch alles nicht:
Beide api's sind aktiviert und verbose=5 ist auch gesetzt. Trotzdem kommt keine Karte. Allerdings kommt der "dicke Textblock"
Da ist noch was nicht OK
Egal: Ist ja nicht so dramatisch.
Viele Grüße vom gent
ICh bekomme auch das dicke reading, aber wenn ich auf den Link klicke passiert garnix.
Wenn ich mal MIME:Base64 suche, kommt nur das hier: https://packages.debian.org/wheezy/libmime-base64-perl
Es explizites Paket gibt es wohl nicht..?? Zumindest habe ich aber keine Fehlermeldungen im log die auf ein Fehlen des Paketes hinweisen...
Hi Tobias.
Das debugPoly Reading (dicker Block) ist bereits Base64 encoded, also ist das Perl Packet nicht dein Problem.
Was sagt denn die Javascript Konsole auf der Seite wo die Karte sein sollte?
ahhh... und nun?
Strict-Transport-Security: Die Verbindung zur Website ist nicht vertrauenswürdig, daher wurde die angegebene Kopfzeile ignoriert.[Weitere Informationen] TRAFFIC_debug
Laden von gemischten aktiven Inhalten "http://maps.google.com/maps/api/js?libraries=geometry&sensor=false" wurde blockiert.[Weitere Informationen] TRAFFIC_debug
ReferenceError: google is not defined[Weitere Informationen]
Ursache gefunden: Mein Fhem läuft über einen Apachen per https. Nutze ich direkt fhem auf port 8083, gehts.
Hmm, also muss noch was gemacht werden damit es auch über https über einen Webserver funktioniert...??
Vermutlich reicht es wenn die google URL auch https ist. Kannst die URL ja in deinem 98_TRAFFIC.pm mal ändern und "reload 98_TRAFFIC" ausführen.
ich bekomme seit dem letzten update immer folgende meldung beim start:
Undefined subroutine &main::FW_fC called at ./FHEM/98_TRAFFIC.pm line 162, <$fh> line 12.
und Fhem startet nicht.
Wenn ich dann die Devices entferne dann startet fhem wieder.
würde aber Traffic gerne weiter nutzen
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!?
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
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
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
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.
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.
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
Zitat von: benkler am 05 Januar 2017, 14:21:11
Ich habe TRAFFIC in eine eigene cfg datei ausgelagert
Warum?
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
Und warum?
ist für mich einfach übersichtlicher !
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 :)
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
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
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
Zitat von: jnewton957 am 07 Januar 2017, 19:29:53
Hallo,
DANKE. Das hat geholfen.
Hast du in EINER Karte mehrere Strecken/Meldungen ??
Jörg
Hi,
nein - ich habe natürlich auch nur den einen Plot in der Karte. Aber anhand der "Form" der Strecke erkenne ich auf den ersten Blick, ob es der normale Weg oder eine Umleitung ist.
Wenn du die übliche Google-Karte mit mehreren Routenvorschlägen haben willst, müsstest du sie dir selbst als Route definieren und dann als IFRAME einbinden. Die Karte könnte man aber nicht ganz so klein darstellen, wie die hier aus dem Modul.
Gruss - Thomas
Hi.
Interessanter Einsatz der Karte, ich hatte es ja nur als Verifikation der konfigurierten Waypoints gedacht.
Bei eurem usecase ist verbose 5 zusätzlich blöd, da das fhem.log ja nun voll gespamt wird.
Und den Center im Code zu ändern funktioniert natürlich dann auch nur für 1 Route.
Ich nehm das mal auf meine Liste mit auf, die Karte ohne Verbose 5 bereit zu stellen und per attr zu konfigurieren ist eigentlich kein großes Ding.
Mehrere (oder alle?) Devices in eine Karte zu vereinen, da muss ich etwas mehr nachdenken vorher.
Wie unterscheidet man die Routen, unterschiedliche Farben, Routen aktivieren/deaktivieren -> Attribute draw-on-map oder sowas? etc.
Die dynamische Routenanpassung durch Google umgehe ich durch mehrere Waypoints mit dem ich die Route "fest-nagel".
Und dann nutze ich 2 Devices wobei ich anhand des Names schnell unterscheiden kann um welche Route es sich handelt. z.B. home2workStadt und home2workAutobahn. Dann genüg ein Blick auf "delay" um zu sehen welche schneller ist.
Gruß
Mike
Guten Morgen zusammen,
ich habe das Problem, dass bei mir der delay_min Wert im Modul Traffic immer auf 0 bleibt. Hat jemand einen Tipp für mich?
Hi.
delay_min muss berechnet werden (Differenz aus duration_in_traffic_sec und duration_sec von Google).
Unter umständen ist das Diff "negativ" da du trotz Verkehr schneller ans Ziel kommst als üblicherweise - laut Google.
In diesem Fall wird der Wert mit 0 überschrieben.
Schalte einfach mal verbose auf 5, set traffic update und dann ins Log schauen. Sollte das Beschriebene zutreffen gibt es einen Eintrag dazu... "delay_min was negative or less than 1min...."
Hallo nochmal,
ich hab das ganze nochmal überprüft und bei mir wird delay_min nicht berechnet... Oder muss ich das manuell machen?
MfG
EDIT: Mein Fehler... OutputReadings stand auf text
Hallo ich habe auch ein problem mit dem Modul
Habe neueste FHEM und auch die benötigten PERL Module installiert
kommt im Log aber imm der Fehler
Undefined subroutine &main::decode_json called at ./FHEM/98_TRAFFIC.pm line 384.
Was kann ich noch testen?
Ich glaube im aktuellen Modul fehlt ein "use JSON;"
Geb mal in der FHEM command line {use JSON} ein, danach geht es.
Modulupdate steht an, bin aber derzeit zu sehr eingespannt.
ohh mann bin ich blöd ..... :O
Habs ja gelesen und auch das use JSON; ins 98_TRAFFIC.pm eingebaut .... und gespeichert (nur die Meldung das ers nicht speichern kann weil ich das sudo vergessen hab ... dann übersehen)
Danke funktioniert nun :D
Zitat von: gent am 02 Januar 2017, 20:24:12
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
Hallo zusammen,
habe das Modul heute gefunden und direkt ausprobiert. Das Problem mit der nicht anzeigbaren Karte habe ich auch und der "Fix" löst das Problem bei mir. Eine generelle Lösung im Code wäre super.
VG
Michael
Was noch sehr schön wäre:
- Google Maps Traffic Layer in die Kartenansicht einbinden
- Mit Hilfe von attr die Größe der Kartenansicht bestimmen
- Mit Hilfe von attr die Übergabe der Zentrierungsposition der Kartenansicht
VG
Michael
Hallo Mike,
könntest Du Dein Modul bitte weniger "gesprächig" machen, wenn verbose _nicht_ gesetzt ist?
2017.03.16 09:50:56 3: TRAFFIC: (user.martin.traffic.home2work.01) TRAFFIC_FinishUpdate done
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) delay in seconds = 648 - 597
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) TRAFFIC_DoUpdate done
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) TRAFFIC_FinishUpdate start
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) ReadingsUpdate: duration - 10 Minuten
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) ReadingsUpdate: duration_in_traffic - 11 Minuten
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) ReadingsUpdate: eta - 10:01:45
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) ReadingsUpdate: delay - 0 min
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) ReadingsUpdate: status - OK
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) ReadingsUpdate: distance - 6,4 km
2017.03.16 09:50:57 3: TRAFFIC: (user.martin.traffic.home2work.01) ReadingsUpdate: state - OK
Aus meiner Sicht sind das für Loglevel 3 zu viele Informationen. Eine oder zwei zusammenfassende Zeile(n) pro update würde reichen. So müsste man nicht explizit erst Verbose auf 1 setzen.
Viele Grüße
Martin
Hallo zusammen,
wie kann man in TabletUI die Grafik einbinden welche im room TRAFFIC_debug als "open Map for TRAFFIC Verkehr_<Start>_<Ziel> " hinterlegt ist?
Viele Ostergrüße
Oliver
Hi Oliver.
Bin mit dem TabletUI nicht vertraut, da ich ein eigenes GUI nutze, aber ich möchte anmerken, dass es (hoffentlich) zeitnah das nächste Update gibt mit den gewünschten Änderungen und Verbesserungen.
Das Meiste habe ich bereits umgesetzt und hatte ich vor diese Art der Karte zu entfernen und nur noch innerhalb der Moduls ein Karten Toggle einzubauen, aber dann werde ich wohl die separate Webpage wieder einbauen.
Die Notwendigkeit zu Verbose 5 fällt auch jeden Fall weg ;)
Hab gestern mal kurz angefangen das Modul zu konfigurieren, hänge aber an einem "incomplete configuration", obwohl Start und Ziel definiert sind.
Woran könnte sowas liegen? (Kann leider erst heute abend Details der Config posten, da ich den ganzen Tag unterwegs bin. Aber vielleicht gibt es ja ne simple Lösung, die ich übersehe ;) )
Hi.
"Incomplete configuration" bekommst du nur wenn start_address oder end_address leer ist.
Wenn du die Werte gesetzt hast, mach mal ein update.
Die sind gesetzt. Ein Update von was machen? Von FHEM hab ich gerade Ende letzter Woche eins gemacht.
Ne ein update des Devices / der Wegstrecke..
set <dein-traffic-device> update
oder eben auf kleinen "set" Knopf oben links klicken.
Ah ok! Danke. Teste ich heute abend mal :)
ansonsten hilft immer das Posten von einem
list <DEVICE>
um zu sehen, ob alles richtig gemacht wurde ;)
Zitat von: Amenophis86 am 19 April 2017, 15:39:52
ansonsten hilft immer das Posten von einem
list <DEVICE>
um zu sehen, ob alles richtig gemacht wurde ;)
ich weiß, deswegen hab ich ja aber in der Frage geschrieben, dass ich unterwegs bin und das erst heute abend liefern könnte :)
Meinte auch eher direkt beim ersten Post von gestern quasi :)
Den hab ich aber doch erst heute gemacht ;) wollte das gestern komplett posten, hab es aber vergessen :(
Gesendet von meinem LG-H850 mit Tapatalk
Zitat von: jmike am 19 April 2017, 11:12:58
Ne ein update des Devices / der Wegstrecke..
set <dein-traffic-device> update
oder eben auf kleinen "set" Knopf oben links klicken.
Danke! Hat geklappt :)
Zitat von: Merlin123 am 19 April 2017, 20:53:28
Danke! Hat geklappt :)
Das ist die Hauptsache :)
Woran kann es denn liegen, wenn statt der Karte nur eine graue Fläche angezeigt wird?
Bei den Readings zeigt er eine realistische Zeit usw. an, er scheint die Route also zu berechenen. Verbose steht auf 5. Bei Debug Poly steht ne riesige Menge Zeichen
Gab schon einige die das gleiche Problem hatten, siehe vorherige Posts.
Eine richtige Lösung gibt es nicht wirklich, dazu muss der Modulcode geändert werden.
Werde die Karte mit der nächsten Version überarbeiten. Dann taucht es hoffentlich nicht mehr auf, ich hatte das Problem (leider) nie.
Danke, hatte ich irgendwie übersehen.
Hab jetzt die Zeile 510 wie in einem Post geändert und bekomme jetzt
"Oops! Something went wrong.
This page didn't load Google Maps correctly. See the JavaScript console for technical details."
Also warte ich mal, bis Du den Fehler gefunden hast
Hast Du auch vor in der kommenden Version unterschiedliche Styles der Kartendarstellung zu implementieren?
https://developers.google.com/maps/documentation/javascript/styling?hl=de
Fänd ich eigentlich ganz schick (gerade in FTUI)...
Hatte ich nicht vor, ist aber kein großes Ding ;)
Nur aus Neugier und damit ich etwas planen kann:
Für wann ist denn die nächste Version ungefähr angedacht? Fände es schon toll, wenn ich die Karte auch nutzen könnte :)
Zitat von: jmike am 21 April 2017, 08:18:11
Hatte ich nicht vor, ist aber kein großes Ding ;)
Cool! Das war fix! Danke!
Ist das Traffic-Layer auch schon implementiert oder finde ich es nur nicht?
Traffic Layer hab ich mir noch nicht angeschaut.
Noch ist nichts im SVN, wollte damit nur ankündigen, dass es im nächsten Update drin ist (voraussichtlich bis zum Wochenende fertig).
edit... Traffic Layer kommt :)
Version 1.3 kommt ab morgen per update.
Wer nicht warten will: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_TRAFFIC.pm?rev=14058&format=txt
Wiki ist up-to-date, da sind die neuen Attribute beschrieben.
Der Umweg über verbose 5 ist nicht mehr nötig, auch die Weblinks und der extra Debug-Raum ist ab jetzt unnötig.
Zum anschauen ist die Karte nun über ein Toggle auf der Device Page zu sehen (oben links, "toggle Map"), externe GUIs können jederzeit über die URL gehen (Achtung, die hat sich geändert! Link steht unter der Karte).
Sollte euch der Raum und die Weblinks nach dem Update noch angezeigt werden, einfach noch mal das Device neu definieren (DEF, dann modify klicken).
Ihr könnt nun Map Style, Größe, Zentrum, die Linienfarbe, Verkehr und Controls ein-/ausschalten/einstellen.
Viel Spass :)
Danke! Heute abend mal testen :)
Cool, da bin ich ja anscheinend gerade rechtzeitig auf Dein Modul aufmerksam geworden :-D
Danke für die Änderungen!
Nur, weil es mir gerade einfällt:
Ist die Zieladresse eigentlich auch dynamisch vergebbar? Mir ist grad bei der Mittags-Leberkässemmel eingefallen, dass man doch die Ortsangabe eines z.B. Google-Calendar-Termins (oder anderes FHEM-Reading) verwenden könnte um sich evtl. Verkehrsbehinderungen auf der Strecke dorthin anzeigen/ ausgeben zu lassen. Damit könnte man bei Stau die Abfahrtszeit ein bissl früher alarmieren lassen um rechtzeitig da zu sein, oder?
Hi.
@ tomster: sowas hier denkbar für dich? attr <device> end_address <fakestr 123>
Ich habe gerade Version 1.3.1 nachgelegt.
GoogleMapsZoom hatte gefehlt und GoogleMapsCenter hatte einen schlechten Namen und - die wirkliche Verbesserung - die Karte kann nun interaktiv positioniert werden.
D.h. man muss nicht per Hand mit den Parametern für GoogleMapsCenter und GoogleMapsZoom fummeln sondern kann die Karte in der Device Ansicht einfach Dragen/Zoomen und dann unten auf "save Zoom" bzw. "save Center" klicken. Fertig!
edit: für die eiligen: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_TRAFFIC.pm?rev=14059&format=txt
Leider ist da immer noch der Wurm drin.
Wenn ich auf "Toggle Map" gehe sehe ich ne grüne Linie (vermutlich der berechnete Weg) und ganz kurz die Karte, dann kommt wieder das "Oops...." auf grauem Grund.
Hab das Device neu defined (als DEF angeklickt und die Refresh Zeit minimal geändert, dann modify) und "update" gemacht.
Was steht in der Javascript Konsole?
Servus jmike,
ja das ist natürlich völlig ausreichend. Danke dafür!
Zitat von: jmike am 21 April 2017, 16:42:30
Was steht in der Javascript Konsole?
Wie ruf ich die auf?
Gesendet von meinem LG-H850 mit Tapatalk
Zitat von: Merlin123 am 21 April 2017, 16:44:37
Wie ruf ich die auf?
Kommt auf deinen Browser an.. siehe: https://webmasters.stackexchange.com/questions/8525/how-do-i-open-the-javascript-console-in-different-browsers
Ich vermute es ist etwas mit deinem API Key...
Google Maps API error: ApiNotActivatedMapError https://developers.google.com/maps/documentation/javascript/error-messages#api-not-activated-map-error
Api ist aktiviert, im API Manager sehe ich auch Zugriffe, die als 100% erfolgreich drin stehen.
EDIT:
Fehler gefunden. Man muss die Google Maps JavaScript API aktivieren!
Kannst Du das im Wiki ergänzen?
Alles klar, danke.
Zitat von: Merlin123 am 21 April 2017, 16:54:04
Kannst Du das im Wiki ergänzen?
...check!
Hab jetzt noch ein paar Fragen bzgl. der TabletUI Einbindung:
1. Wie muss ich den Center Parameter angeben?
2. Kann ich die Kartengröße im Device angeben? Oder nur via Parameter im HTML?
3. Kann ich die Farbe der berechneten Strecke ändern? Mit Traficlayer ist das grün schwer sichtbar.
4. Wie kann ich die geplante Fahrzeit und die verkehrsbedingten Verzögerungen angeben?
:) (Hoffe, ich hab die Antworten nicht irgendwo überlesen :( )
Zitat von: Merlin123 am 21 April 2017, 21:30:33
Hab jetzt noch ein paar Fragen bzgl. der TabletUI Einbindung:
Da kann ich dir nur bedingt weiterhelfen, hier springt sicher gern jemand ein.
Zitat von: Merlin123 am 21 April 2017, 21:30:33
1. Wie muss ich den Center Parameter angeben?
=>
attr testTraffic GoogleMapsCenter 48.16332129009845,11.63857300048836
Zitat von: Merlin123 am 21 April 2017, 21:30:33
2. Kann ich die Kartengröße im Device angeben? Oder nur via Parameter im HTML?
=>
attr testTraffic GoogleMapsSize 800,600
Zitat von: Merlin123 am 21 April 2017, 21:30:33
3. Kann ich die Farbe der berechneten Strecke ändern? Mit Traficlayer ist das grün schwer sichtbar.
=>
attr testTraffic GoogleMapsStroke #08eca7,#ec9c08
Zitat von: Merlin123 am 21 April 2017, 21:30:33
4. Wie kann ich die geplante Fahrzeit und die verkehrsbedingten Verzögerungen angeben?
=> Bin mir nicht sicher, was du damit meinst? Vielleicht mal Attribut outputReadings anschauen.
Das erweitert die Readings ungemein und die lassen sich dann im TabletUI als Text angeben.
Zitat von: Merlin123 am 21 April 2017, 21:30:33
:) (Hoffe, ich hab die Antworten nicht irgendwo überlesen :( )
Jaein, ein Blick ins Wiki würde ich dir empfehlen, da ist eigentlich alles dokumentiert inkl. Beispiele.
https://wiki.fhem.de/w/index.php?title=TRAFFIC
Lg
Danke für die Antworten. Standen die Google Attribute gestern schon im Wiki? Da hatte ich eigentlich geschaut
Gesendet von meinem LG-H850 mit Tapatalk
Jo, Wiki wurde mit 1.3 zusammen aktualisiert. Ist aber doch egal.
Ich überarbeite gerade noch mal das GoogleMapsStroke Attribut, damit optional auch Stärke und Transparenz der Linien angegeben werden können.
Gerade in Kombination mit dem Traffic Layer sicherlich hilfreich, denn dann sieht man den Stau durch die gewählte Wegstrecke hindurch.
Hab leider die commandref nicht aktualisiert, daher muss/will ich nochmal noch ein doc-fix nachlegen.
Wenn noch jemanden was auffällt, (geht/geht nicht) kurz bescheid geben.
Danke, hat alles geklappt :)
Gibt es für die einzelnen Readings eine Erklärung? Bin bei den Durations etwas irritiert ;) Duration in traffic ist kürzer als duration
Noch eine Frage: Bei Zoom 10 sind oben und unter so 25% des Platzen auf der Karte frei (also nicht teil der berechneten Strecke, die vor allem Nord/Süd geht). Bei Zoom 11 fehlt ein Teil. Man kann Google nicht zu Zwischenstufen überreden, oder? (Zoombuttons machen das genaso, vermute als ein prinzipielles Problem)
Guten Morgen
Ich hatte gestern das Update auf 1.3.1 gemacht und habe seitdem schön im Stundentakt diese Meldungen im Log.
Use of uninitialized value $GoogleMapsDisableUI in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 236.
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
bei verbose 5 sieht das dann so aus
Use of uninitialized value $GoogleMapsDisableUI in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 236.
Use of uninitialized value $GoogleMapsDisableUI in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 236.
Use of uninitialized value $GoogleMapsDisableUI in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 236.
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
2017.04.23 08:14:58 1: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate done
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
2017.04.23 08:14:58 1: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate done
Use of uninitialized value $GoogleMapsDisableUI in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 236.
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
2017.04.23 08:35:45 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:45 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:45 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) internal interval timer set to call StartUpdate again at 2017-04-23 09:35:46
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_DoUpdate start
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) internal interval timer set to call GetUpdate again in 3600 seconds
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) using https://maps.googleapis.com/maps/api/directions/json?origin=xxx&destination=xxx&mode=driving&language=de&departure_time=now&waypoints=via:xxx,xxx&key=xyz
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_DoUpdate start
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) internal interval timer set to call GetUpdate again in 3600 seconds
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) reversing waypoints
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) using https://maps.googleapis.com/maps/api/directions/json?origin=xxx&destination=xxx&mode=driving&language=de&departure_time=now&waypoints=via:xxx,xxx&key=xyz
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) delay in seconds = 418 - 432
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) delay_min was negative or less than 1min (-14), set to 0
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) returning from TRAFFIC_DoUpdate: {"HELPER":{"GoogleMapsCenter":"xxx,xxx","Poly":"d3Z6X0hrZGt5QENvQGBBQXRFR2ZAcUF8QHVCeEJxRlp5QVpDaEFDakBGakBYYkJmQWxCckFiQ3RC\nYkF4QGRDfkFkQXpAbEBuQHxBckF2QWxAckNyQHhAYkBgQXpAYEF0QGBAVHpBbkB0QFR0QEpwQEJU\nQ2JAR2hDZUB+QEdgRlZgQEpUSnZBbEFmQFhmQmxAUkxWXE5sQFBsQkxsQD9QRk5cbEBARkBGQERG\nXFB+QGZAYEJwQGRGYkB0RE5kQ050SUJmS0J8QlBmQ2RAZkViQG5FUm5BWHZAUFZYXGBBdEB4QX5A\ndEBcfEBWckBKcENMZkBDdEFbdEFNYkBAZkBKaEJqQFRCUkFwQVlsQE1SP1REfEBaeEBSdkFSbEA/\nZkBLXFF8QHVAZkBxQFhbXlFaP3ZAUmRBVlhOWlpgQG5AdEFmQmZDcENQd0BkQX1IbEFvSUZfQA==\n"},"READINGS":{"eta":"08:42:44","status":"OK","duration_in_traffic_min":7,"state":"OK","duration_in_traffic":"7 Minuten","delay":"0 min","delay_min":0,"duration_min":7,"duration":"7 Minuten","distance":"4,5 km"}}
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_DoUpdate done
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) delay in seconds = 390 - 400
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) delay_min was negative or less than 1min (-10), set to 0
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) returning from TRAFFIC_DoUpdate: {"READINGS":{"duration_min":7,"distance":"4,5 km","duration":"7 Minuten","duration_in_traffic_min":7,"state":"OK","delay_min":0,"duration_in_traffic":"7 Minuten","delay":"0 min","status":"OK","eta":"08:42:16"},"HELPER":{"GoogleMapsCenter":"xxx,xxx","Poly":"d2V1X0htaGh5QFlkQnNBeEp3QGhGR1pVVXFAdUBrQndCa0FlQmNAYUBhQE93QV1jQEldSF1Wa0F2\nQXlAakBhQExnQEJvQU93QE1nQV9AZUBLWUFlQl5tQEhpQEt1QWNAZ0BLY0BBe0BGb0JgQHlAQndB\nSWFBSX1AU3NAV2VBa0B1QV9Ba0BrQE9RW3FAU3dAXWVEW3lDaUBxRkN3QT9zRUl9SlN5R1VnQ31A\nX0hVb0FbYUFBX0A/eUBAQUBDRElAS0NXR0VHQ0tGZ0BnQE9dUWlCS3dAU2NAV1d9QWtAZ0BRdUFr\nQV9AV11NbUBHe0FHZ0JLY0BCeUNmQGVBTHFAQ2NARWFASWtBY0B3QXNAYUJzQWFAXWVAV29AV31B\nX0BlQV9Aa0BVbUBpQGdBYUFtQWlBZUR3QmNCd0FlQWFBZUFzQGlCb0F5QXlAa0BHb0BAdUBEW3hB\ne0F4RGNAYkFfQnpEd0dIQm5A\n"}}
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_DoUpdate done
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate start
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) HelperUpdate: GoogleMapsCenter - xxx,xxx
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) HelperUpdate: Poly - d3Z6X0hrZGt5QENvQGBBQXRFR2ZAcUF8QHVCeEJxRlp5QVpDaEFDakBGakBYYkJmQWxCckFiQ3RC
YkF4QGRDfkFkQXpAbEBuQHxBckF2QWxAckNyQHhAYkBgQXpAYEF0QGBAVHpBbkB0QFR0QEpwQEJU
Q2JAR2hDZUB+QEdgRlZgQEpUSnZBbEFmQFhmQmxAUkxWXE5sQFBsQkxsQD9QRk5cbEBARkBGQERG
XFB+QGZAYEJwQGRGYkB0RE5kQ050SUJmS0J8QlBmQ2RAZkViQG5FUm5BWHZAUFZYXGBBdEB4QX5A
dEBcfEBWckBKcENMZkBDdEFbdEFNYkBAZkBKaEJqQFRCUkFwQVlsQE1SP1REfEBaeEBSdkFSbEA/
ZkBLXFF8QHVAZkBxQFhbXlFaP3ZAUmRBVlhOWlpgQG5AdEFmQmZDcENQd0BkQX1IbEFvSUZfQA==
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_min - 7
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: distance - 4,5 km
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration - 7 Minuten
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_in_traffic_min - 7
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: state - OK
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: delay - 0 min
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_in_traffic - 7 Minuten
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: delay_min - 0
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: status - OK
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: eta - 08:42:44
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:46 1: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate done
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) Helper: $VAR1 = {
'Poly' => 'd3Z6X0hrZGt5QENvQGBBQXRFR2ZAcUF8QHVCeEJxRlp5QVpDaEFDakBGakBYYkJmQWxCckFiQ3RC
YkF4QGRDfkFkQXpAbEBuQHxBckF2QWxAckNyQHhAYkBgQXpAYEF0QGBAVHpBbkB0QFR0QEpwQEJU
Q2JAR2hDZUB+QEdgRlZgQEpUSnZBbEFmQFhmQmxAUkxWXE5sQFBsQkxsQD9QRk5cbEBARkBGQERG
XFB+QGZAYEJwQGRGYkB0RE5kQ050SUJmS0J8QlBmQ2RAZkViQG5FUm5BWHZAUFZYXGBBdEB4QX5A
dEBcfEBWckBKcENMZkBDdEFbdEFNYkBAZkBKaEJqQFRCUkFwQVlsQE1SP1REfEBaeEBSdkFSbEA/
ZkBLXFF8QHVAZkBxQFhbXlFaP3ZAUmRBVlhOWlpgQG5AdEFmQmZDcENQd0BkQX1IbEFvSUZfQA==
',
'return_Poly' => 'd2V1X0htaGh5QFlkQnNBeEp3QGhGR1pVVXFAdUBrQndCa0FlQmNAYUBhQE93QV1jQEldSF1Wa0F2
QXlAakBhQExnQEJvQU93QE1nQV9AZUBLWUFlQl5tQEhpQEt1QWNAZ0BLY0BBe0BGb0JgQHlAQndB
SWFBSX1AU3NAV2VBa0B1QV9Ba0BrQE9RW3FAU3dAXWVEW3lDaUBxRkN3QT9zRUl9SlN5R1VnQ31A
X0hVb0FbYUFBX0A/eUBAQUBDRElAS0NXR0VHQ0tGZ0BnQE9dUWlCS3dAU2NAV1d9QWtAZ0BRdUFr
QV9AV11NbUBHe0FHZ0JLY0BCeUNmQGVBTHFAQ2NARWFASWtBY0B3QXNAYUJzQWFAXWVAV29AV31B
X0BlQV9Aa0BVbUBpQGdBYUFtQWlBZUR3QmNCd0FlQWFBZUFzQGlCb0F5QXlAa0BHb0BAdUBEW3hB
e0F4RGNAYkFfQnpEd0dIQm5A
',
'GoogleMapsCenter' => 'xxx,xxx',
'return_GoogleMapsCenter' => 'xxx,xxx'
};
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate start
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) HelperUpdate: return_GoogleMapsCenter - xxx,xxx
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) HelperUpdate: return_Poly - d2V1X0htaGh5QFlkQnNBeEp3QGhGR1pVVXFAdUBrQndCa0FlQmNAYUBhQE93QV1jQEldSF1Wa0F2
QXlAakBhQExnQEJvQU93QE1nQV9AZUBLWUFlQl5tQEhpQEt1QWNAZ0BLY0BBe0BGb0JgQHlAQndB
SWFBSX1AU3NAV2VBa0B1QV9Ba0BrQE9RW3FAU3dAXWVEW3lDaUBxRkN3QT9zRUl9SlN5R1VnQ31A
X0hVb0FbYUFBX0A/eUBAQUBDRElAS0NXR0VHQ0tGZ0BnQE9dUWlCS3dAU2NAV1d9QWtAZ0BRdUFr
QV9AV11NbUBHe0FHZ0JLY0BCeUNmQGVBTHFAQ2NARWFASWtBY0B3QXNAYUJzQWFAXWVAV29AV31B
X0BlQV9Aa0BVbUBpQGdBYUFtQWlBZUR3QmNCd0FlQWFBZUFzQGlCb0F5QXlAa0BHb0BAdUBEW3hB
e0F4RGNAYkFfQnpEd0dIQm5A
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration - 7 Minuten
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: distance - 4,5 km
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_min - 7
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: status - OK
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: delay - 0 min
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: state - OK
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: delay_min - 0
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_in_traffic - 7 Minuten
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: duration_in_traffic_min - 7
2017.04.23 08:35:46 4: TRAFFIC: (xx.Verkehr.Conti) ReadingsUpdate: eta - 08:42:16
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) set xx.Verkehr.Conti ?
2017.04.23 08:35:46 1: TRAFFIC: (xx.Verkehr.Conti) TRAFFIC_FinishUpdate done
2017.04.23 08:35:46 5: TRAFFIC: (xx.Verkehr.Conti) Helper: $VAR1 = {
'Poly' => 'd3Z6X0hrZGt5QENvQGBBQXRFR2ZAcUF8QHVCeEJxRlp5QVpDaEFDakBGakBYYkJmQWxCckFiQ3RC
YkF4QGRDfkFkQXpAbEBuQHxBckF2QWxAckNyQHhAYkBgQXpAYEF0QGBAVHpBbkB0QFR0QEpwQEJU
Q2JAR2hDZUB+QEdgRlZgQEpUSnZBbEFmQFhmQmxAUkxWXE5sQFBsQkxsQD9QRk5cbEBARkBGQERG
XFB+QGZAYEJwQGRGYkB0RE5kQ050SUJmS0J8QlBmQ2RAZkViQG5FUm5BWHZAUFZYXGBBdEB4QX5A
dEBcfEBWckBKcENMZkBDdEFbdEFNYkBAZkBKaEJqQFRCUkFwQVlsQE1SP1REfEBaeEBSdkFSbEA/
ZkBLXFF8QHVAZkBxQFhbXlFaP3ZAUmRBVlhOWlpgQG5AdEFmQmZDcENQd0BkQX1IbEFvSUZfQA==
',
'return_Poly' => 'd2V1X0htaGh5QFlkQnNBeEp3QGhGR1pVVXFAdUBrQndCa0FlQmNAYUBhQE93QV1jQEldSF1Wa0F2
QXlAakBhQExnQEJvQU93QE1nQV9AZUBLWUFlQl5tQEhpQEt1QWNAZ0BLY0BBe0BGb0JgQHlAQndB
SWFBSX1AU3NAV2VBa0B1QV9Ba0BrQE9RW3FAU3dAXWVEW3lDaUBxRkN3QT9zRUl9SlN5R1VnQ31A
X0hVb0FbYUFBX0A/eUBAQUBDRElAS0NXR0VHQ0tGZ0BnQE9dUWlCS3dAU2NAV1d9QWtAZ0BRdUFr
QV9AV11NbUBHe0FHZ0JLY0BCeUNmQGVBTHFAQ2NARWFASWtBY0B3QXNAYUJzQWFAXWVAV29AV31B
X0BlQV9Aa0BVbUBpQGdBYUFtQWlBZUR3QmNCd0FlQWFBZUFzQGlCb0F5QXlAa0BHb0BAdUBEW3hB
e0F4RGNAYkFfQnpEd0dIQm5A
',
'GoogleMapsCenter' => 'xxx,xxx',
'return_GoogleMapsCenter' => 'xxx,xxx'
};
und noch das list
Internals:
APIKEY xyz
CFGFN
DEF xyz
INTERVAL 3600
NAME xx.Verkehr.Conti
NR 280
STATE OK
TRIGGERTIME 1492932010.85184
TRIGGERTIME_FMT 2017-04-23 09:20:10
TYPE TRAFFIC
VERSION 1.3.1
.userReadings:
HASH(0x60f5a80)
Readings:
2017-04-23 08:20:11 delay 0 min
2017-04-23 08:20:11 delay_min 0
2017-04-23 08:20:11 delay_text 0 min Verzögerung
2017-04-23 08:20:11 distance 4,5 km
2017-04-23 08:20:11 duration 7 Minuten
2017-04-23 08:20:11 duration_in_traffic 7 Minuten
2017-04-23 08:20:11 duration_in_traffic_min 7
2017-04-23 08:20:11 duration_min 7
2017-04-23 08:20:11 eta 08:27:09
2017-04-23 08:20:11 return_delay 0 min
2017-04-23 08:20:11 return_delay_min 0
2017-04-23 08:20:11 return_distance 4,5 km
2017-04-23 08:20:11 return_duration 7 Minuten
2017-04-23 08:20:11 return_duration_in_traffic 7 Minuten
2017-04-23 08:20:11 return_duration_in_traffic_min 7
2017-04-23 08:20:11 return_duration_min 7
2017-04-23 08:20:11 return_eta 08:26:41
2017-04-23 08:20:11 return_state OK
2017-04-23 08:20:11 return_status OK
2017-04-23 08:20:11 state OK
2017-04-23 08:20:11 status OK
Helper:
GoogleMapsCenter xxx,xxx
Poly d3Z6X0hrZGt5QENvQGBBQXRFR2ZAcUF8QHVCeEJxRlp5QVpDaEFDakBGakBYYkJmQWxCckFiQ3RC
YkF4QGRDfkFkQXpAbEBuQHxBckF2QWxAckNyQHhAYkBgQXpAYEF0QGBAVHpBbkB0QFR0QEpwQEJU
Q2JAR2hDZUB+QEdgRlZgQEpUSnZBbEFmQFhmQmxAUkxWXE5sQFBsQkxsQD9QRk5cbEBARkBGQERG
XFB+QGZAYEJwQGRGYkB0RE5kQ050SUJmS0J8QlBmQ2RAZkViQG5FUm5BWHZAUFZYXGBBdEB4QX5A
dEBcfEBWckBKcENMZkBDdEFbdEFNYkBAZkBKaEJqQFRCUkFwQVlsQE1SP1REfEBaeEBSdkFSbEA/
ZkBLXFF8QHVAZkBxQFhbXlFaP3ZAUmRBVlhOWlpgQG5AdEFmQmZDcENQd0BkQX1IbEFvSUZfQA==
return_GoogleMapsCenter xxx,xxx
return_Poly d2V1X0htaGh5QFlkQnNBeEp3QGhGR1pVVXFAdUBrQndCa0FlQmNAYUBhQE93QV1jQEldSF1Wa0F2
QXlAakBhQExnQEJvQU93QE1nQV9AZUBLWUFlQl5tQEhpQEt1QWNAZ0BLY0BBe0BGb0JgQHlAQndB
SWFBSX1AU3NAV2VBa0B1QV9Ba0BrQE9RW3FAU3dAXWVEW3lDaUBxRkN3QT9zRUl9SlN5R1VnQ31A
X0hVb0FbYUFBX0A/eUBAQUBDRElAS0NXR0VHQ0tGZ0BnQE9dUWlCS3dAU2NAV1d9QWtAZ0BRdUFr
QV9AV11NbUBHe0FHZ0JLY0BCeUNmQGVBTHFAQ2NARWFASWtBY0B3QXNAYUJzQWFAXWVAV29AV31B
X0BlQV9Aa0BVbUBpQGdBYUFtQWlBZUR3QmNCd0FlQWFBZUFzQGlCb0F5QXlAa0BHb0BAdUBEW3hB
e0F4RGNAYkFfQnpEd0dIQm5A
Attributes:
DbLogExclude .*
GoogleMapsCenter xxx,xxx
GoogleMapsSize 800,600
GoogleMapsStroke #08ecff,#ec9cff
GoogleMapsStyle default
GoogleMapsTrafficLayer 1
GoogleMapsZoom 10
alias Fahrzeit auf Arbeit
end_address xxx
includeReturn 1
language de
outputReadings min text
raw_data 0
room hidden
start_address xxx
travelMode driving
userReadings delay_text {ReadingsVal('xx.Verkehr.Conti','delay',99)." Verzögerung"}
verbose 0
waypoints xxx,xxx
Ich habe mehrere TRAFFIC-Devices definiert. bekomme auch für alle diese Meldungen.
Die Devices sind auch alle nach dem gleichen Schema definiert.
Ansonsten funktioniert die Anzeige der Karte und der Werte tadellos.
Hi.
Danke @Brause, ist korrigiert.
@Merlin: Ist leider eine Limitierung von Google Maps, 11.5 etc. geht leider nicht.
Version 1.3.2 ist committet, hatte noch einen Fehler beim StateReading gefunden, commandref aktualisiert und wie gesagt die Strokes noch weiter anpassbar gemacht:
attr GoogleMapsStroke <#-6-digit-hex-code>,[<weight>[,<opacity>],]<#-6-digit-hex-code>,[<weight>,[<opacity>]]
z.B:
attr GoogleMapsStroke #019cdf,15,50,#ffeb19,15,50
Ergibt z.b. eine dicke, transparente Blaue Linie für den Hinweg und eine gelbe, transparente Linie für den Rückweg.
Damit kann man den Traffic Layer durch die Wegstrecke sehen. Nicht Hübsch, aber wohl Informativ.
Des weiteren sind folgende Werte möglich:
- #019cdf,#ffeb19
-> Stärke und Transparenz sind optional, kann weggelassen werden - #019cdf,20,#ffeb19
- #019cdf,20,#ffeb19,15
- #019cdf,#ffeb19,15
-> Stärke ist für beide getrennt voneinander optional - #019cdf,20,80,#ffeb19
- #019cdf,#ffeb19,15,50
-> Transparenz kann nur nach Stärke folgen - sonst wird die Linie 80 Breit - #019cdf,20,80
-> es kann auch nur der Hinweg definiert werden - alles was nicht definiert ist, wird vom default überschrieben: #4cde44,6,100,#FF0000,1,100
...as always: per update morgen oder: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_TRAFFIC.pm?rev=14094&format=txt
Hallo,
vielleicht kann mir einer helfen.
Ich bin heute morgen im Stau gelandet, obwohl 0 Min angezeigt wurde und die Fahrstrecke grün.
Rufe ich die Strecke per Googelmaps auf, wird mir der Stau angezeigt ???
Hat einer eine Erklärung wie das kommen kann?
Gruß
Internals:
APIKEY xxxx
DEF xxx
INTERVAL 600
NAME Alex_nach_xxxx
NR 215
STATE OK
TRIGGERTIME 1493109631.11623
TRIGGERTIME_FMT 2017-04-25 10:40:31
TYPE TRAFFIC
VERSION 1.2
Readings:
2017-04-25 10:30:31 debugLocation xxx
2017-04-25 10:30:31 debugPoly xxx
2017-04-25 10:30:31 delay 0 min
2017-04-25 10:30:31 distance 62.6 km
2017-04-25 10:30:31 duration 41 mins
2017-04-25 10:30:31 duration_in_traffic 40 mins
2017-04-25 10:30:31 eta 11:10:29
2017-04-25 10:30:31 state OK
2017-04-25 10:30:31 status OK
Attributes:
end_address xxx
outputReadings text
room Staumeldung
start_address xxx
updateSchedule 7-8 1 60|7-8 2 60|7-8 3 60|7-8 4 60|7-8 5 60
userattr end_address outputReadings start_address updateSchedule verbose
verbose 5
Hat der Aktualsieriungszeitpunkt mit deinem Stauzeitpunkt überein gestimmt? Wenn du zB nur 1x die Stunde neue Daten ziehst und in dieser Zeit ein Stau entsteht, dann bekommst du das nicht mit.
Zitat von: achim60 am 25 April 2017, 10:43:29
Ich bin heute morgen im Stau gelandet
Das tut mir leid...
Hier ein paar Ideen:
Du nutzt Version 1.2, die konnte noch keinen TrafficLayer d.h. die eingezeichnete Wegstrecke ist
immer grün.
Du aktualisierst anscheinend alle 10min, und zwischen 7 und 8 jede Minute (Korrekt?), das sind also ~200 Requests pro Tag.
Schätze mal du hast keine 12 TRAFFIC Devices und schlägst dadurch gegen das API Limit (2500/Tag afaik), oder?
Du kannst auch im API Manager nach failed-API's schauen. Alternativ das fhem.log - das dürfte "dank" des verbose 5 sehr ausführlich sein :/ (-> v1.3.2 nutzen)
Ich sehe keine Waypoints und Google wird dir immer die schnellste Route raussuchen. Ist es Möglich dass er dir heute früh eine andere Route vorgeschlagen hat und daher Delay auf 0 war?!
Schreibst du für das Device ein Log, hast du einen Graphen dazu?
Würde mich interessieren ob es zu dem Zeitpunkt, als du los bist, keine oder falsche Einträge gegeben hat.
Aktuell ist auf dem Abschnitt zwar orange, so wie auch in deinem Screenshot, aber keine Verzögerung laut Google Maps.
Fahrzeit 7min für den Abschnitt, Regulär 7-9min. Keine Ahnung ob das was zu bedeuten hat...
Servus zusammen,
benutze das Modul seit gestern. Leider musste ich heute feststellen, dass ab 1 STD es nicht mehr in einem Plot darstellbar ist.
duration_in_traffic
1 hour 0 mins
Der Filelog sieht dann so aus:
2017-04-26_07:35:32 hinfahrtdummy 57 mins
2017-04-26_07:36:42 hinfahrtdummy 57 mins
2017-04-26_07:37:52 hinfahrtdummy 57 mins
2017-04-26_07:39:02 hinfahrtdummy 57 mins
2017-04-26_07:40:13 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:41:22 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:42:32 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:43:42 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:44:52 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:46:02 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:47:12 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:48:23 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:49:32 hinfahrtdummy 1 hour 0 mins
2017-04-26_07:50:42 hinfahrtdummy 1 hour 1 min
Nun kommt immer eine 1 in dem Plot an.
Hat jemand eine Idee wie ich dem Plot das anzeigen lassen kann?
Grüße
NIco
Hi Nico.
Ich hab bei mir überall das outputReading "min" mit drin und nutze diese Werte dann für die Plots.
"1 Stunde 5 Minuten" ist halt dann "65"
Juhuuu :) Danke dir!! tolles Modul!!
Zitat von: jmike am 25 April 2017, 12:26:34
Hier ein paar Ideen:
Du nutzt Version 1.2, ...................
Danke für die Infos, ich werde die Punkte ändern.
Nach dem Update auf 1.3.2 zeigt er mir keine Karte mehr an und bricht mit einer Fehlermeldung ab. :(
Ok..
was steht denn in der Javascript Konsole?
klappt jetzt wieder. Ich musste den Schlüssel neu erstellen, warum auch immer.
Google Maps API error: ApiNotActivatedMapError https://developers.google.com/maps/documentation/javascript/error-messages#api-not-activated-map-error"
Danke für die Hilfe. ;)
Hi,
ich habe das Modul schon eine Weile bei mir bisher problemlos laufen.
Am 24. habe ich FHEM aktualisiert und seit dem auch die Funktion der GoogleMaps Karte genutzt.
Seit dem wird mein Log alle 5 Minuten (also bei jeder Aktualisierung) mit folgender Fehlermeldung gefüllt:
2017.04.25 04:29:30 1: TRAFFIC: (Arbeit_Buero) TRAFFIC_FinishUpdate done
Use of uninitialized value in string eq at ./FHEM/98_TRAFFIC.pm line 632.
Hier meine Definition:
defmod Arbeit_Buero TRAFFIC xxxxx 300
attr Arbeit_Buero userattr GoogleMapsCenter GoogleMapsSize GoogleMapsStroke GoogleMapsStyle GoogleMapsTrafficLayer GoogleMapsZoom end_address event-on-change-reading icon includeReturn outputReadings start_address stateFormat verbose waypoints
attr Arbeit_Buero GoogleMapsCenter xxxxxxx
attr Arbeit_Buero GoogleMapsSize 1024,720
attr Arbeit_Buero GoogleMapsStyle default
attr Arbeit_Buero GoogleMapsTrafficLayer 1
attr Arbeit_Buero GoogleMapsZoom 14
attr Arbeit_Buero alias Arbeitsweg
attr Arbeit_Buero end_address xxxx
attr Arbeit_Buero event-on-change-reading duration_in_traffic,return_duration_in_traffic
attr Arbeit_Buero icon hue_room_driveway
attr Arbeit_Buero includeReturn 1
attr Arbeit_Buero outputReadings text
attr Arbeit_Buero room FHEM,Wohnung
attr Arbeit_Buero start_address xxxx
attr Arbeit_Buero stateFormat Hinweg: duration_in_traffic - Rückweg: return_duration_in_traffic
attr Arbeit_Buero verbose 1
attr Arbeit_Buero waypoints xxxxx
setstate Arbeit_Buero Hinweg: 20 mins - Rückweg: 19 mins
setstate Arbeit_Buero 2017-04-24 16:06:56 .map on
setstate Arbeit_Buero 2017-04-29 13:58:57 delay 0 min
setstate Arbeit_Buero 2017-04-29 13:58:57 distance 7.5 km
setstate Arbeit_Buero 2017-04-29 13:58:57 duration 20 mins
setstate Arbeit_Buero 2017-04-29 13:58:57 duration_in_traffic 20 mins
setstate Arbeit_Buero 2017-04-29 13:58:57 eta 14:19:08
setstate Arbeit_Buero 2017-04-29 13:58:57 return_delay 0 min
setstate Arbeit_Buero 2017-04-29 13:58:57 return_distance 7.2 km
setstate Arbeit_Buero 2017-04-29 13:58:57 return_duration 18 mins
setstate Arbeit_Buero 2017-04-29 13:58:57 return_duration_in_traffic 19 mins
setstate Arbeit_Buero 2017-04-29 13:58:57 return_eta 14:18:04
setstate Arbeit_Buero 2017-04-29 13:58:57 return_state OK
setstate Arbeit_Buero 2017-04-29 13:58:57 return_status OK
setstate Arbeit_Buero 2017-04-29 13:58:57 state OK
setstate Arbeit_Buero 2017-04-29 13:58:57 status OK
Woran kann das liegen?
Viele GRüße
Tino
schau mal ein paar Beiträge weiter oben.
schätze mal du hast Version 1.3.1 noch am laufen.
Zitat von: Brause am 29 April 2017, 14:16:26
schau mal ein paar Beiträge weiter oben.
schätze mal du hast Version 1.3.1 noch am laufen.
Habe nochmal ein Update gemacht und nun sind die Fehlermeldungen weg. Danke :)
Hallo Ascos,
zunächst vielen Dank für das tolle Modul! Ich hätte einen Wunsch nach einer kleinen Erweiterung:
Wäre es möglich, die Readings delay, distance, duration und duration_in_traffic zusätzlich jeweils ohne Einheit (also als rein numerischen Wert) ausgeben zu lassen? Die entsprechenden Werte für "return_" dann natürlich auch.
Das wäre super, wenn du das bei Gelegenheit vielleicht ergänzen könntest.
Viele Grüße und Danke im Voraus!
Dominik
Hi Dominik.
Hast du dir das Attribut outputReadings angeschaut?
Neben text, min, sec und average kannst du ja mal "raw" probieren, ob das deinen Anforderungen entspricht.
Leider ist das nicht das, was ich gerne hätte.
Ich hätte gern die Werte nach outputReadings "text". Nur eben ohne Einheit. Allerdings zusätzlich zu den bisherigen Readings.
Beste Grüße
Dominik
Hi,
kann ich mir die Map auch per telegram schicken lassen?
Die Karte kann ich ja per http://fhem-ip:port/fhem/TRAFFIC?name=<TRAFFIC-DEVICE> erreichen. Kann ich mir den Inhalt der URL auch per Telegram schicken?
Viele Grüße
@Dominik: wären user-readings eine Möglichkeit für dich? Da könntest du ja text einfach per Regex search-replace rauswerfen.
@gent: Ich denke (derzeit) nicht. Dazu bräuchten wir static-maps, die ein Bild zurückgeben.
Eventuell kommst du damit ja auch ohne TRAFFIC Modul aus, ansonsten kann ich für ein zukünftiges Release mal static-Maps einplanen.
Ich geh dann mal runter von der langen Leitung. Danke! Gelöst :)
ich habe eben etwas mit dem TRAFFIC modul gespielt. im prinzip ist es genau das was ich gerade brauche.
leider gibt es bei meiner strecke zwei oder drei alternative routen die im normalfall fast die gleiche zeit brauchen, sich in der strecke aber deutlich unterscheiden. mitten durch die stadt oder fast doppelt so weit über die autobahn und gerade mal 1 minute kürzer.
google liefert bei der beschränkung auf eine route (wie es das modul aktuell hat) leider fast immer die lange.
wie wäre es im modul auch die alternativen routen abzufragen, jeweils die zeiten für alle routen in readings zu stecken und also vorschlag noch die schnellste route zu liefern?
es müsste reichen ein &alternatives=true an die url anzuhängen und dann im route array nicht nur das erste element sondern alle auszuwerten. der 'name' der route ist im summary element zu finden.
wenn dann auf der karte alle routen zu sehen sind wäre das klasse
man könnte attribut gesteuert auch noch eine auswahl treffen wenn es wirklich viele alternativen sind oder man bestimmte direkt ausschliessen will.
lternativen zu sehen sind wäre das klasse.
gruss
andre
Hi Andre.
Du hast recht, aktuell geht das "Design" von 1 Route pro Device aus (mehr ode weniger statisch durch Waypoints).
Zitat von: justme1968 am 23 Mai 2017, 13:06:54
... es müsste reichen ein &alternatives=true an die url anzuhängen und dann im route array nicht nur das erste element sondern alle auszuwerten...
Das werde ich mir mal ansehen und überlegen, wie man es sauber darstellen/konfigurieren könnte. Am liebsten wäre mir dann eine variable Reading Konfiguration z.b. wie "attr readingFormat %r %t %d" wobei %r = route, %t = time und %d = delay oder so, wobei das natürlich eine Auswirkung auf alle Readings hat - und auch auf die return_* Readings.
ich würde den routen namen in den jeweiligen readings mit unterbringen. eine tabellarische darstellung könnte man dann mit einer readingsGroup machen. sogar sortiert. nach dauer.
die bisherigen readings könnte man dann für die schnellste route beibehalten. das müsste kompatibel bzw. zumindest sinnvoll sein.
noch eine ideee zur 'optimalen' route:
die auswahl könnte attribut gesteuert nach schnellster oder kürzester erfolgen.
man könnte auch beide angaben mit einem zusätzlichen schwellwert erlauben. damit könnte man abbilden nimm die kürzere so lange die schnellere nicht mehr als x minuten oder x prozent schneller ist.
noch etwas ist mir eben aufgefallen: kann es sein das in der eingezeichneten strecke die jeweiligen staus und behinderungen nicht mit gezeichnet werden sondern nur eine einzige farbe verwendet wird?
wenn man google maps direkt verwendet werden staus und ähnliches ja in orange und rot eingezeichnet.
kommt diese information in der json antwort mit?
hat eigentlich schon jemand die karte im tablet ui integriert? bei mir funktioniert das laden nicht. die url direkt im browser geht aber ...
gruss
andre
Hallo ich nutze das Traffic Modul um mir die Google Maps Karte anzuzeigen. Im Heimnetz funktioniert das auch super. Sobald ich von ausserhalb drauf zugreife (über Portfreigabe) bekomme ich einen Java Script Error. Zuvor wird die Karte jedoch sehr kurz angezeigt.
Die Konsolenausgabe ist:
22:38:12.255 FW_queryValue:{AttrVal("Karte","room","")} fhemweb.js:390:5
22:38:12.346 Inform-channel opened (HTTP) with filter Karte fhemweb.js:390:5
22:38:12.373 Rcvd: fhemweb.js:390:5
"Google Maps API error: MissingKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#missing-key-map-error" js:35:315
"Google Maps API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys" util.js:220:12
"Google Maps API warning: SensorNotRequired https://developers.google.com/maps/documentation/javascript/error-messages#sensor-not-required" util.js:220:1
und meine Definition von der Karte ist:
DEF iframe /fhem/TRAFFIC?name=HeusweilertoSaarbruecken
LINK /fhem/TRAFFIC?name=HeusweilertoSaarbruecken
NAME Karte
NR 151
STATE initialized
TYPE weblink
WLTYPE iframe
Jemand eine Idee?
Hatte heute folgenden Fehler im Log:
2017.06.01 16:40:02 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 16:40:02 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 650.
2017.06.01 16:40:02 3: eval: {TRAFFIC_FinishUpdate('VK.Etienne.Arbeit.A5;;;return;;;{"READINGS":{"duration_in_traffic":null,"status":"OK","duration":"30 Minuten","state":"OK","distance":"35,3 km"},"HELPER":{"Poly":"eWh0cEhfY2t0QGNKbUd3Q3NCbUVhRHNAbERpQnpIZUJpQWlCaUF3QGNAfU1vSm9KeUdNUWlBX0Fj\nQm9BV1FFVllmQWNGZlJxQWJFe0ByQWFGZkV9QmpDX0JuQ2NAfkBvQXJCdUBgQHtAUG9AUl9AYEBf\nQGRBXXhBZ0B4QGlAVm1EZkBtQEpZXGNEdkB5RXpBe0NkQXtGYEJ5Ql5nRFxlRlJxQ05nQlJ1QVh5\nQnJAc0N4QW9CcEFtT3JLe0NyQnNCakF9QmJBZ1F6Rl9DfkB7QmZBcUF0QF9CfEBfQWxAd0tuSGdN\neEplSGJGeUNoQmlDekFlQnhAe0J4QF9EdEBhRWhAd0A/d0BPYUBRdUBnQHFBe0BdS3FARW9ARHtA\nVHlCdkBjQmpAcUZ6Ql9DakFrQ2BDa0N6RHVAekFhQnJFYUB2QW1AckNxQGJGVWJFVXZMS3ZEZ0By\nSH1Abkd5QGxEZ0FmRGVCekR1QmpEY0JyQmtCYkJ3QWRBdUFgQV9BYkBtSnZEd0hqQ3tDckBhQUZf\nQz99QlV1QmNAX0JpQHlDeUFnSW9FeUNxQXtCa0B9QVNlQUd9Q0R9Qlh9QmxAeUJ+QHFDakJpQ2hD\nX0J4QndBaENzQX5DdUFwRXdAdERrQHpEX0BoRVVwRkFkRVJ6SVZmRXZAfEpkQXBMWmxFYkB6S0hs\nSEVqTFNoR19AaEhpQHpHd0F8S2VBfkZ9QGpFY0JwR3FCaEd3QnJGeUR8SHNDdEVvQnBDeUR0RXNH\nYEphRG5GbUFiQ2FBZENlQXhDc0FqRX1AdER9QHJFY0R2Um9CbEp3QX5FeUB4QnNBbkNjQmRDfUFk\nQndCZEJ1QXhAd0NqQXdDZEBtQkp3QUVxQU17QVtpQm9AfUF3QHFDdUJ9QWVCb0J3Q3tBd0N5RHVK\na0J9RWVDbUZtQl9EY0J1QnlCaUJvQXVAc0FvQGNCZ0B5QVVpQUlxQUFnQUJtQVBtQVZ3QWRAcURy\nQnNFdERxX0BkXntEckRzQFRrQmRCeUVwRntAcEFjQFxjQWZAZUFEY0V1QHlAP2tARGtBRGVATV1T\nZ0F9QW9DX0ZhQF9Ac01jWHNCfURrQ3dFe0JtRHtCd0N5RG9FaUdjR3VBZ0F3RWFEeUNlQnlDd0Fj\nSGlDX0dvQWlHdUBhR1lxSkJpZUFiQG9jQVpldUBWd1FAZ0hGX0lCZ1dIeUk/e0VXd0NdY0RpQHVG\nb0F7S29Db1dpR21JbUJnU2VGc2dAdUxlQVVfQGFAa0BlQF9AdUBhQGlBbUBvQFlLWUVxQ2NBZ0BN\nbUBJbUBEZ0BdZ0JrRmVBZ0NfRXNMb0F3RW1Aa0VNbUFRa0RVdURde0JhQGNCW2VBVWlBbUBrQWFB\nbUF9QXlBZ0JrQXtGdUNvQ3dBZ0FxQHlDYUJtQXdAWUdhQXtAdUB9QH1Ac0FhQWdCY01jWF9AaUFl\nQmlEZ0BzQW1EdUhZZUBdaUBrQndDeUJ7QmVBc0BxQ21BaUJrQFFNa0FZX0NtQG9IX0N3QFVxQGFA\nZUN5QmlGcUZ9T3NQfUFxQnNBe0JzTnVYc01nV29EZ0h9QV9ER1F9QW1FcUB3Q09lQWdCTG9BQXVC\nTW9CS09EYUdhQm9KbUN9RmdBYUxpQVhfUlNIe0JOYUJQY0R7UENhQD9jQGVAbURPa0A=\n","GoogleMapsCenter":"50.0802916,8.7456045"}}')}
2017.06.01 16:45:01 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 16:45:01 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 16:50:04 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 17:00:04 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 17:00:04 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 17:20:05 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 17:20:05 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 17:25:05 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 17:35:05 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.06.01 17:35:05 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
Kannste damit was anfangen jmike?
Zitat von: fabi29891 am 01 Juni 2017, 09:24:59
Jemand eine Idee?
Hi Fabi.
Hmm. Ich hab die Karte in einer query mobile App eingebaut (allerdings nur intranet), und da gehe ich einfach über ein
<embed src="http://fhem:8083/fhem/TRAFFIC?name=home2work" width="400" height="300">
Ich versteh gerade nicht ganz warum du ein weblink dafür definiert hast.
Ansonsten mal im Code der Website die nicht geht schauen was hinter "https://maps.google.com/maps/api/js?key=" steht. Da sollte dein API Key auftauchen.
Zitat von: Amenophis86 am 01 Juni 2017, 22:00:48
Kannste damit was anfangen jmike?
Ahoi, erstmal vorab, du möchtest evtl die Zeile mit "eval: {TRAFFIC_FinishUpdate(" entfernen. Die verrät Adressen usw. ;)
Die Fehlermeldung besagt, dass angeblich im Google return "duration->value" oder "duration_in_traffic->value" keinen Wert haben.
Beweise dafür gibt es nur im Output von Google.
Welche Version nutzt du? Zeile 650 passt irgendwie nicht bei Version 1.3.2.
Da wäre dann auch ein Verbose 5 Output hilfreich, denn ich sende da den kompletten RAW Json von Google ins Log.
Hallo Mike,
ist es irgendwie möglich eine Karte einzubinden auf die ich ausserhalb und innerhalb des Intranets zugreifen kann?
Hi.
Ich verstehe die Frage nicht wirklich.
Habe dir doch geschrieben wie ich es mache bzw. wie es bei mir in meiner Intranet-App geht ?!
Wenn du FHEM von Internet aus verfügbar gemacht hast, sollte das genau so gehen.
Hi,
erstmal vorweg: sehr schönes und nützliches Modul. Es einfacher zu handhaben als die "alte" Lösung.
Hier aber eine Frage: gibt es die Möglichkeit die Karte zu fixieren damit man nicht ungewollt darin zoomt etc. ?
Schön wäre auch wenn man mit einem Attribut die Karte im Modul anzeigen könnte statt nur dem Status "OK". Z.B. in zwei Spalten (Eine die Readings mit distance und duration daneben die Karte).
Was haltet Ihr dabvon ?
Zitat von: jmike am 02 Juni 2017, 15:53:25
Hi Fabi.
Hmm. Ich hab die Karte in einer query mobile App eingebaut (allerdings nur intranet), und da gehe ich einfach über ein
<embed src="http://fhem:8083/fhem/TRAFFIC?name=home2work" width="400" height="300">
Ich versteh gerade nicht ganz warum du ein weblink dafür definiert hast.
Ansonsten mal im Code der Website die nicht geht schauen was hinter "https://maps.google.com/maps/api/js?key=" steht. Da sollte dein API Key auftauchen.
Ahoi, erstmal vorab, du möchtest evtl die Zeile mit "eval: {TRAFFIC_FinishUpdate(" entfernen. Die verrät Adressen usw. ;)
Die Fehlermeldung besagt, dass angeblich im Google return "duration->value" oder "duration_in_traffic->value" keinen Wert haben.
Beweise dafür gibt es nur im Output von Google.
Welche Version nutzt du? Zeile 650 passt irgendwie nicht bei Version 1.3.2.
Da wäre dann auch ein Verbose 5 Output hilfreich, denn ich sende da den kompletten RAW Json von Google ins Log.
Mal ne doofe Frage. Für die Leute die keine zusätzliche App programmiert haben, sondern die Karte einfach direkt in ihr FHEMWEB eingebunden haben wollen, wie genau sollen die das machen außer über ein weblink?
Muss aber auch gestehen das ich das Modul nicht kenne. Mich hat nur die Aussage von Dir gerade verwirrt.
Grüße
Guten Abend !
Erst einmal danke für das tolle Modul !
Es werden die entfernungen und die dauer der fahrt und verzögerungen angzeigt ! Echt klasse !
Nur..... wie bekomme ich eine Karte angezeigt ! Ich habe Toggle Maps gelesen finde aber ums verrecken nix...
Wäre für kurzen Tip dankbar !
Alex
Hi Alex.
Ganz oben unter der FHEM Commandline, wenn du das Device geöffnet hast.
@hawkeyexp: kann ich mit einbauen
@coolTux: guter Punkt, muss ich mir bei Gelegenheit mal näher ansehen. Eventuell kann ich da im Modul auch noch was verbessern.
Super !
Vielen Dank, jezt läuft es !
Hallo Zusammen,
ich bin auch am rumspielen und probieren damit ich besser in die Materie finde...habe das traffic Modul nun mal installiert und leider bekomme ich eine incomplete Installation:
was mache ich falsch ? war auf der Developer seite und habe dort wie im Wiki stejt die beiden Seiten aktiviert und den API Schlüssel erstellt.
Hier mal ein List:
Internals:
APIKEY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CHANGED
DEF XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 600
INTERVAL 600
NAME Traffic
NR 152
STATE incomplete configuration
TRIGGERTIME 1500822879.43547
TRIGGERTIME_FMT 2017-07-23 17:14:39
TYPE TRAFFIC
VERSION 1.3.2
READINGS:
2017-07-23 17:04:39 state incomplete configuration
helper:
Attributes:
language de
outputReadings text
userattr language outputReadings verbose
verbose 1
Über Tipss vielen herzlichen Dank
Du musst die entsprechenden Attr anlegen welche Strecke überhaupt berechnet werden soll.
ok aber das "attr" kann ich nicht aus dem Dropdownfeld auswählen...richtig? (also bei mir ist es jedenfalls nicht zu finden im Dropdownfeld) das muss ich händisch in die Komandozeile von fhem eingeben...richtig?
wie würde diese zeile denn aussehen?
Gruss
auf der Google Developerseite muss ich doch nur den API Code genereieren...nicht noch ne Strecke festelegen...das mache ich doch dann in fhem normalerweise mit den "attr" oder?
Zitat von: Kusselin am 24 Juli 2017, 08:23:39
ok aber das "attr" kann ich nicht aus dem Dropdownfeld auswählen...richtig? (also bei mir ist es jedenfalls nicht zu finden im Dropdownfeld) das muss ich händisch in die Komandozeile von fhem eingeben...richtig?
wie würde diese zeile denn aussehen?
Gruss
auf der Google Developerseite muss ich doch nur den API Code genereieren...nicht noch ne Strecke festelegen...das mache ich doch dann in fhem normalerweise mit den "attr" oder?
So wie es in der Commandref steht:
ZitatAttributes:
"start_address" - Street, zipcode City (mandatory)
"end_address" - Street, zipcode City (mandatory)
ausgedachtes Beispiel:
attr start_address Langestraße 100, 27459
Das attribut start_address und end_address sollte bei dir aber vorhanden und auch auswählbar sein :o
Hallo Fixel,
danke dir für den Tipp..komisch, gestern stand das mit der strat und end adress noch nicht drinnen. Wg Aktualisierung noch..auf alle Fälle jetzt habe ich es mal gemacht und es hat funktioniert - soweit... also STATE ist auf O.K.
wenn ich jetzt oben unterhalb der Komandozeile im Device auf Toggle Map klicke...kommt folgende Meldung:
fhem?detail=Traffic&fw_id= line 109:
ReferencesError: Can´t find variable: google
wo mach ich noch den Fehler?
Gruss
Zitat von: Kusselin am 24 Juli 2017, 11:16:48
Hallo Fixel,
danke dir für den Tipp..komisch, gestern stand das mit der strat und end adress noch nicht drinnen. Wg Aktualisierung noch..auf alle Fälle jetzt habe ich es mal gemacht und es hat funktioniert - soweit... also STATE ist auf O.K.
wenn ich jetzt oben unterhalb der Komandozeile im Device auf Toggle Map klicke...kommt folgende Meldung:
fhem?detail=Traffic&fw_id= line 109:
ReferencesError: Can´t find variable: google
wo mach ich noch den Fehler?
Gruss
Also du hast Start und Ziel adresse im Modul eingegeben? Hast du anschließend mal auf update gedrückt und geschaut ob Readings erzeugt wurden?
Hallo Mike,
vielen Dank für dein Modul, hab es gerade bei mir eingebaut und funktioniert auf Anhieb.
Eine Frage zu dem Attribut "updateSchedule":
Kann man nur die Wochentage 0 - 6 für Sonntag bis Samstag deklarieren oder geht wie bei DOIF auch 0 - 8?
Bei DOIF entspricht: 0-Sonntag, 1-Montag, ... bis 6-Samstag sowie 7 für Wochenende und Feiertage und 8 für Arbeitstage.
Viele Grüße Gisbert
ich bin gerade nicht zuhause und probiere das ganze mit VPN gerade..
ja es werden readings erzeugt...zb delay, distance, duration, duration_in_traffic, eta, state und status sowie GoogleMapscenter und Poly
Gruss
Hallo Fixel2012,
es hat funktioniert. Zuhause wird jetzt oberhalb des Devices die Googlekarte angezeigt :)
Ne Frage: Kann ich auch jetzt noch ne zweite verbindung in Fhem eingeben? Also die jetztige Verbindung und eine zusätzliche Verbindung die dann auch in der Karte angezeigt wird vielleicht noch mit ner anderen Farbe??
Oder muss ich da einfach nochmal ein neues Traffic Devices erstellen mit anderem Namen?
Über ne Info vielen Dank.
Gruss
Kussel
Zitat von: Kusselin am 24 Juli 2017, 18:27:47
Hallo Fixel2012,
es hat funktioniert. Zuhause wird jetzt oberhalb des Devices die Googlekarte angezeigt :)
Ne Frage: Kann ich auch jetzt noch ne zweite verbindung in Fhem eingeben? Also die jetztige Verbindung und eine zusätzliche Verbindung die dann auch in der Karte angezeigt wird vielleicht noch mit ner anderen Farbe??
Oder muss ich da einfach nochmal ein neues Traffic Devices erstellen mit anderem Namen?
Über ne Info vielen Dank.
Gruss
Kussel
Ich habe mir dafür ein neues Traffic Device erstellt. Denke anders ist dies nicht möglich.
O.K....danke dir...noch ne Frage...hast du von deinem Traffic Modul ein HTML Code, den du mir zur Verfügung stellen könntest zum basteln und Probieren für Tablet UI
Ach..nochwas...die API kann ich für mehrer Devices verwenden..richtig?
Vielen Dank
Zitat von: Kusselin am 24 Juli 2017, 21:00:55
O.K....danke dir...noch ne Frage...hast du von deinem Traffic Modul ein HTML Code, den du mir zur Verfügung stellen könntest zum basteln und Probieren für Tablet UI
Das würde mich auch interessieren! Tablet UI integration wäre was feines!
Zitat von: Kusselin am 24 Juli 2017, 21:00:55
Ach..nochwas...die API kann ich für mehrer Devices verwenden..richtig?
Vielen Dank
Sollte gehen, ist von mir aber nicht getestet.
Doch habs eben probiert..gleiche API funzt!!
Wenn hier jemand sich bereit erklärt soll er den HTML Code für uns beide zur Verfügung stellen.
Danke
Hi, ich wieder,
soweit läuft das Modul jetzt udn ich kann die Strecke auch in google sehen,
mit welchen "attr" kannn ich nun noch anzeigen lassen wenn auf der Strecke zb. Stau herrscht....das es mir dann anzeigt stau da und +8min zb
Gruss
attr Verkehr GoogleMapsTrafficLayer 1
Zitat von: Gisbert am 24 Juli 2017, 11:42:35
Kann man nur die Wochentage 0 - 6 für Sonntag bis Samstag deklarieren oder geht wie bei DOIF auch 0 - 8?
Bei DOIF entspricht: 0-Sonntag, 1-Montag, ... bis 6-Samstag sowie 7 für Wochenende und Feiertage und 8 für Arbeitstage.
Hi Gisbert. Aktuell geht nur 0-6. Kann mal schauen ob ich das aus dem DOIF übernehmen kann. Wird aber etwas dauern.
@Kusselin: Hab selber kein TabletUI derzeit laufen, werde mir aber asap mal eins aufsetzen und die Integration vom Modul testen bzw. im Modul soweit anpassen dass es Möglich ist.
Und, auch wenn es bereits beantwortet wurde, pro Device nur 1 Strecke (mit Rückweg) derzeit.
@jmike:
Koenntest Du freundlicherweise noch die Funktion zum Splitten fuer das DBLOG Modul mit aufnehmen? Dann kann man daraus auch schoene Graphen und Statistiken erstellen.
ZitatBereitstellung der UNITS
Mit der DbLog_splitFn kann der Modulautor selbst festlegen, wie die Events des Moduls in die Bestandteile Reading/Value/Unit zerlegt werden um ein korrektes Logging per DbLog zu gewährleisten.
Dazu muss der Modulautor in der Initialize-Funktion eine DbLog_splitFn bereitstellen:
sub X_Initialize($)
{
my ($hash) = @_;
...
$hash->{DbLog_splitFn} = "X_DbLog_splitFn";
}
Die genaue Aufrufsyntax und Funktionweise einer DbLog_split-Funktion findet man hier (https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_DbLog_split).
Geht natuerlich auch mit einem userreading, so loese ich es grade, aber schoener waere natuerlich out of the box :)
Hi,
habe gerade ein Perl Warning im Log Eintrag vom Traffic Modul feststellen müssen.
2017.08.14 18:32:23 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 572.
2017.08.14 18:32:23 1: stacktrace:
2017.08.14 18:32:23 1: main::__ANON__ called by ./FHEM/98_TRAFFIC.pm (572)
2017.08.14 18:32:23 1: main::TRAFFIC_DoUpdate called by FHEM/Blocking.pm (183)
2017.08.14 18:32:23 1: main::BlockingStart called by FHEM/Blocking.pm (106)
2017.08.14 18:32:23 1: main::BlockingCall called by ./FHEM/98_TRAFFIC.pm (463)
2017.08.14 18:32:23 1: main::TRAFFIC_StartUpdate called by fhem.pl (3022)
2017.08.14 18:32:23 1: main::HandleTimeout called by fhem.pl (621)
2017.08.14 18:32:23 1: TRAFFIC: (Fahrzeit_Home_nach_blabla) did not receive duration_in_traffic, not able to calculate delay
Was könnte das sein?
Hi jmike,
würdest du in der Funktion "TRAFFIC_DoUpdate()" die folgende Zeile mit einfügen?
$returnJSON->{'READINGS'}->{'summary'} = $json->{'routes'}[0]->{'summary'};
Das hat den Vorteil, dass man erkennen kann, woher einen die Route führt. Im Reading "summary" oder "summary_return" ist dann der Kurztext enthalten, woher Google jemanden führen möchte :-)
Grüße, Tobias
Zitat von: TeeVau am 03 September 2017, 19:04:20
würdest du in der Funktion "TRAFFIC_DoUpdate()" die folgende Zeile mit einfügen?
Jop, klingt nach einem sinnvollen Reading!
Gleiches gilt für hillbicks request.
Mal sehen ob ich bis zum Wochenende eine neue Version zusammen bekomme.
Vielen Dank für das Modul, gefällt mir sehr gut.
Ich habe immer mal wieder folgenden Fehler im Log:
2017.09.07 15:46:59 1: TRAFFIC: (VK.Etienne.Arbeit.A5) did not receive duration_in_traffic, not able to calculate delay
2017.09.07 15:46:59 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 650.
2017.09.07 15:46:59 3: eval: {TRAFFIC_FinishUpdate('VK.Etienne.Arbeit.A5;;;return;;;{"READINGS":{"duration":"31 Minuten","state":"OK","distance":"35,3 km","duration_in_traffic":null,"status":"OK"},"HELPER":{"Poly":"xxx","GoogleMapsCenter":"50.0802916,8.7456045"}}')}
Jemand eine Ahnung wieso? Gerade das eval ... verstehe ich nicht.
Hi.
Die Meldung "not able to calculate delay" weißt auf eine unvollständige Antwort von Google hin, siehe auch deine letzte Message:
"duration_in_traffic":null,
Das wäre für 35km ziemlich schnell ;)
Ich kann zukünftig ein erneutes Update anstossen wenn das auftritt und versuchen den folge Fehler von line 650 abzufangen.
Das eval dürfte aus dem BlockingModul, welches das Device Update im Hintergrund ausführt.
Ich werde versuchen das mal zu simulieren und anstelle eines Updates mit fehlerhaften Werten einfach ein erneuten Versuch einbauen.
Dann sollte die PERL WARNING und eval verschwinden.
Dank dir
Möchte mich erstmal für das Modul und die Arbeit die du in das Modul investierst bedanken.
Wäre es möglich das Modul mit Homebridge zu koppeln?
Mit JeeLink hab ich mittlerweile einige Thermometer im Einsatz und kann die Readings (Temperatur und Luftfeuchtigkeit) in der Home App von iOS sehen. Feine Sache.
Es wäre schon Spielerei, auch die prognostizierte Fahrzeit dort zu finden, aber wäre es möglich?
Hallo,
jetzt hatte ich auch endlich mal Zeit mich dem Modul zu widmen :)
Also schon mal vielen Dank dafür!!
Leider funktioniert es irgendwie nicht.
Ich habe mal alles (versuchsweise) gelesen und im Forum gesucht aber nichts gefunden.
Ich habe sowohl mittels apt-get installiert (bzw. war schon) und sicherheitshalber auch die im Wiki genannten Pakete per CPAN installiert...
Aktuell zum Testen auf meinem Testsystem: PI 2B Raspbian Wheezy (jaja nicht besonders neu, muss ich auch mal ändern ;) ), vielleicht ist das ja auch bereits das Problem...
Ich habe auch schon alle "Tests" (bzgl. installierter Pakete) durch, alle ohne Fehler, bis auf:
perl -e "use Crypt::SSLeay"
(wird aber halt nicht erwähnt, dass das notwendig ist / andere ssl-Tests funktionieren)
Ich habe die Adressen sowohl als Adresse als auch als Geokoordinaten eingegeben, macht keinen Unterschied...
Hier ein list des Devices:
Internals:
APIKEY MEIN_API_KEY
CFGFN
CHANGED
DEF MEIN_API_KEY 600
INTERVAL 600
NAME GoogleMapsDirections
NR 8354
STATE Initialized
TRIGGERTIME 1504995724.28871
TRIGGERTIME_FMT 2017-09-10 00:22:04
TYPE TRAFFIC
VERSION 1.3.2
READINGS:
helper:
Attributes:
end_address 49.6711221,12.1031752
language de
outputReadings text
room Test
start_address 49.57214,10.8923477
travelMode driving
userattr end_address language outputReadings raw_data start_address travelMode verbose
verbose 5
Hier was bei einem Update im Log landet:
2017.09.10 00:16:23.793 5: TRAFFIC: (GoogleMapsDirections) set GoogleMapsDirections ?
2017.09.10 00:16:27.050 5: TRAFFIC: (GoogleMapsDirections) set GoogleMapsDirections update
2017.09.10 00:16:27.051 5: TRAFFIC: (GoogleMapsDirections) update command recieved
2017.09.10 00:16:27.052 5: TRAFFIC: (GoogleMapsDirections) no update burst set
2017.09.10 00:16:27.135 5: TRAFFIC: (GoogleMapsDirections) set GoogleMapsDirections ?
2017.09.10 00:16:28.058 4: TRAFFIC: (GoogleMapsDirections) internal interval timer set to call StartUpdate again at 2017-09-10 00:26:28
2017.09.10 00:16:28.087 4: TRAFFIC: (GoogleMapsDirections) TRAFFIC_DoUpdate start
2017.09.10 00:16:28.090 4: TRAFFIC: (GoogleMapsDirections) internal interval timer set to call GetUpdate again in 600 seconds
2017.09.10 00:16:28.090 4: TRAFFIC: (GoogleMapsDirections) no waypoints specified
2017.09.10 00:16:28.091 4: TRAFFIC: (GoogleMapsDirections) using https://maps.googleapis.com/maps/api/directions/json?origin=49.57214,10.8923477&destination=49.6711221,12.1031752&mode=driving&language=de&departure_time=now&key=MEIN_API_KEY
2017.09.10 00:16:28.247 5: TRAFFIC: (GoogleMapsDirections) set GoogleMapsDirections ?
2017.09.10 00:16:28.526 1: TRAFFIC: (GoogleMapsDirections) decode_json on googles return failed, cant continue
2017.09.10 00:16:28.541 4: TRAFFIC: (GoogleMapsDirections) TRAFFIC_FinishUpdate start
2017.09.10 00:16:28.543 4: TRAFFIC: (GoogleMapsDirections) TRAFFIC_FinishUpdate done
2017.09.10 00:16:28.545 5: TRAFFIC: (GoogleMapsDirections) Helper: $VAR1 = {};
2017.09.10 00:16:30.200 5: TRAFFIC: (GoogleMapsDirections) set GoogleMapsDirections ?
Wenn ich folgendes direkt in den Browser eingebe:
https://maps.googleapis.com/maps/api/directions/json?origin=49.57214,10.8923477&destination=49.6711221,12.1031752&mode=driving&language=de&departure_time=now&key=MEIN_API_KEY
kommt folgendes zurück:
{
"geocoded_waypoints" : [
{
"geocoder_status" : "OK",
"place_id" : "EjNadW0gRmx1Z2hhZmVuIDE1LCA5MTA3NCBIZXJ6b2dlbmF1cmFjaCwgRGV1dHNjaGxhbmQ",
"types" : [ "street_address" ]
},
{
"geocoder_status" : "OK",
"place_id" : "ChIJ0d-2aM05oEcR8gZb3F6xdtc",
"types" : [ "street_address" ]
}
],
"routes" : [
{
"bounds" : {
"northeast" : {
"lat" : 49.7683839,
"lng" : 12.1031752
},
"southwest" : {
"lat" : 49.4567947,
"lng" : 10.8923477
}
},
"copyrights" : "Kartendaten © 2017 GeoBasis-DE/BKG (©2009), Google",
"legs" : [
{
"distance" : {
"text" : "121 km",
"value" : 120829
},
"duration" : {
"text" : "1 Stunde, 19 Minuten",
"value" : 4717
},
"duration_in_traffic" : {
"text" : "1 Stunde, 13 Minuten",
"value" : 4396
},
"end_address" : "Holztratstraße 3, 92637 Weiden in der Oberpfalz, Deutschland",
"end_location" : {
"lat" : 49.6711221,
"lng" : 12.1031752
},
"start_address" : "Zum Flughafen 15, 91074 Herzogenaurach, Deutschland",
"start_location" : {
"lat" : 49.57214,
"lng" : 10.8923477
},
"steps" : [
{
"distance" : {
"text" : "77 m",
"value" : 77
},
"duration" : {
"text" : "1 Minute",
"value" : 8
},
"end_location" : {
"lat" : 49.5722318,
"lng" : 10.8931939
},
"html_instructions" : "Auf \u003cb\u003eZum Flughafen\u003c/b\u003e nach \u003cb\u003eNordosten\u003c/b\u003e starten",
"polyline" : {
"points" : "{`qmHelnaAm@qACG?E?C@E\\}@"
},
"start_location" : {
"lat" : 49.57214,
"lng" : 10.8923477
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0,6 km",
"value" : 616
},
"duration" : {
"text" : "2 Minuten",
"value" : 112
},
"end_location" : {
"lat" : 49.5756916,
"lng" : 10.899539
},
"html_instructions" : "Nach \u003cb\u003elinks\u003c/b\u003e abbiegen, um auf \u003cb\u003eZum Flughafen\u003c/b\u003e zu bleiben\u003cdiv style=\"font-size:0.9em\"\u003eDen Kreisverkehr passieren\u003c/div\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "maqmHmqnaAMUeCyC_BeC[c@o@aAm@cAg@_A]cA?G?MKm@@E@E?E?E?GAGCEAECCCAE?EYKk@UmAa@kBI]IWAISi@Qa@[e@EEy@{A"
},
"start_location" : {
"lat" : 49.5722318,
"lng" : 10.8931939
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "2,7 km",
"value" : 2672
},
"duration" : {
"text" : "3 Minuten",
"value" : 173
},
"end_location" : {
"lat" : 49.5646107,
"lng" : 10.9316843
},
"html_instructions" : "\u003cb\u003eRechts\u003c/b\u003e abbiegen auf \u003cb\u003eHans-Ort-Ring\u003c/b\u003e",
"maneuver" : "turn-right",
"polyline" : {
"points" : "awqmHcyoaAPo@J[L]|@yCh@qBXiAXiAdB_H|AkHTkAp@{CP{@@EF_@?ADYBIBUHc@PiAFYJe@|@eG\\cDv@mGf@}EPsCp@oHJwA@ILcBB]B]Du@Da@v@kHDW@KFe@r@oE@Eh@mCj@aCf@iBv@cCzAaE|AeDr@kA|BuDrC_Eb@u@`@q@d@eA`@_Aj@_Bz@oCz@aDPi@^iATg@jBoEBKPi@Ne@Ha@"
},
"start_location" : {
"lat" : 49.5756916,
"lng" : 10.899539
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0,8 km",
"value" : 781
},
"duration" : {
"text" : "1 Minute",
"value" : 52
},
"end_location" : {
"lat" : 49.5654139,
"lng" : 10.9418601
},
"html_instructions" : "Weiter auf \u003cb\u003eNiederndorfer Str.\u003c/b\u003e",
"polyline" : {
"points" : "yqomH_bvaAPo@DSVyARkAR}ABUB]B[HiCB_DCaBEi@A}@Ae@GqCKqBQiCCo@QgBU{AIs@Oo@EOIWS{@EGKKK]CIYy@w@aC"
},
"start_location" : {
"lat" : 49.5646107,
"lng" : 10.9316843
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "24,4 km",
"value" : 24445
},
"duration" : {
"text" : "14 Minuten",
"value" : 839
},
"end_location" : {
"lat" : 49.4652077,
"lng" : 11.2267625
},
"html_instructions" : "Auf \u003cb\u003eA3\u003c/b\u003e über die Auffahrt \u003cb\u003eErlangen\u003c/b\u003e/\u003cb\u003eFrauenaurach\u003c/b\u003e/\u003cb\u003eNürnberg\u003c/b\u003e",
"polyline" : {
"points" : "yvomHsaxaAKw@IWIWI]Ki@GYE[C[AWC[A_@?k@?i@@c@Be@Fk@Fc@F_@H_@FWFULc@FQ@G?C@C?C@E@Sl@gBj@eBzA{EJ_@Lc@BIHYV{@T{@ZkA^wAf@oBRu@Py@ZoA`@mBJi@`@mBb@{BVoATqAN}@Lu@Lw@Jm@n@kERwAX_C^yCP{AFk@Fk@B_@PcBVoCZgERuCFw@?ADu@?CLyBLmBHiB@QN_EJoCHuCDkBHqDFyCB}A?a@@a@BqA@o@?]?]@]@kA@kAByCBqD@{D@yD@uDB{K?qA?oABqU?iB@{C?{C@oA?wA@_D?_D?E@_@@sABmCFsCFwCFaBFyAHiBT_ETyC^mELgATsB^sC`@cCn@{DToAf@iC`@iBl@oCBMj@_CZkAZaAj@qBb@qAzAoEnAaDTi@d@eArAyCbAmBj@gAn@gAxAcCn@_AbB_CjA}A`BuB`AgA~A_BjBeBpAeArAiAxAmArAgArAgAx@o@v@q@tAiApAcA|@w@rAiAnAgApAmApAqAnAsAlAwAlA_B~AyBjAaBhAgBbAgBvAkCvAuCrA{CpAaDlAeDRo@~@uCBKxAgF^yAv@eDj@kCj@iCj@uC~@{EpHs_@lDuQh@gCDQLo@`AaFpAwGLm@p@oDrA_HbGuZp@iDdAiFxAqHd@aCxAwHh@iCnAsGJk@Lm@Lk@Ns@^_Bj@aCd@oB`@yANm@Ne@n@}BXcA|@sC^kA@A`@mA\\cATq@Vo@b@mA|@{B`@cA|@yBtA_DhCcGdA_CdBaEl@wAnCiGh@kAh@qArMkZP_@zE{KdAcCjAmCh@kAlAsC`A}B~@sBdA_C`ByDrA}CtBwExBgFl@uA^{@d@mA`@aAZy@f@sAfAyCf@yAZcAn@sBt@aCt@oC|@iD\\sA^yAZuA\\yAR_ATgAXyAXwAZaBx@cFpAaIx@gFJq@F_@XqBzAoJlBwLj@kDt@{E`@gCNaAPcARmARuATsAlB_Mz@iFbAoGh@gDToARiANw@d@aC^iBn@qC^}A^yARu@d@aBd@cBv@gC`@mAr@wBf@sAf@uAd@mApBcF|AyDbAiC`AaCXu@Ra@Vq@Zy@Vs@`@kA^gAl@oBt@cCj@yBp@iCp@wCZwAfDaOt@mDDSd@kBPq@^yAZgAPg@r@_Cl@iB^cAb@kAd@kA~AaEz@{BvAmDl@cBd@kAh@sAt@kB\\_AxAqDf@qAf@uAf@wAv@sBf@mAb@iAh@sAd@kAd@mAf@qAz@wBv@sBj@uA^}@Xs@d@iAZ}@n@}Af@oAh@uAd@oAf@oAlAyCd@oAf@sAd@iARg@Ri@f@oAf@qARi@Pa@d@mAf@oAf@qAd@iAf@oAf@qAd@mAb@kAr@gBl@{Ah@sAd@kAd@mAl@}A`@eAl@{AzAuDd@oAf@oAd@mAf@kAh@mAz@gBn@mAn@kAh@cAl@cAj@aAn@aAn@aAj@y@t@aAx@gAp@{@n@{@v@cAj@u@n@{@p@{@r@aAr@}@NQp@}@v@gAp@_AlA_Bj@s@h@m@BCDG~@kAtD_FLQHK~JuMZa@Za@vAmBpBiCbEmFNUNU\\_@n@y@p@}@zBuCr@aA`ByBd@q@jAgBd@y@f@}@\\o@b@{@Xi@d@cAd@eAfAoCx@_CZaA|@sCv@{Cj@aCb@oBZcBd@qCZuBPkAPwATsBNaBJkAPeCHmADcADgADcABeADgAByA@kA@}A?u@?u@CqDCeBAo@OwEQuDQwCOyBWeESyDaA}O_@eGa@cHWwEMeCImCGuCCeBAcB?iCB}CFmCF{BNaDFaBHiAP{BFm@XwC\\kCd@iDV{A"
},
"start_location" : {
"lat" : 49.5654139,
"lng" : 10.9418601
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "1,1 km",
"value" : 1061
},
"duration" : {
"text" : "1 Minute",
"value" : 41
},
"end_location" : {
"lat" : 49.4602698,
"lng" : 11.2389879
},
"html_instructions" : "An der Gabelung \u003cb\u003erechts\u003c/b\u003e halten, auf \u003cb\u003eA3\u003c/b\u003e bleiben und der Beschilderung für \u003cb\u003eA9\u003c/b\u003e/\u003cb\u003eRegensburg\u003c/b\u003e/\u003cb\u003ePrag\u003c/b\u003e/\u003cb\u003eTschechien\u003c/b\u003e/\u003cb\u003eAmberg\u003c/b\u003e/\u003cb\u003eBerlin\u003c/b\u003e/\u003cb\u003eDresden\u003c/b\u003e folgen",
"maneuver" : "fork-right",
"polyline" : {
"points" : "qd|lHgvocAVa@@ATeAf@uB`@qA\\iAZ}@Xs@`@}@^w@`@w@b@u@^m@dAcBp@gA\\k@x@{AP]b@cATi@Pa@Vu@`@mAPm@Rq@`@}ALq@ReALo@PmAJo@Jy@P}AFc@RuBl@qG"
},
"start_location" : {
"lat" : 49.4652077,
"lng" : 11.2267625
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "39,1 km",
"value" : 39052
},
"duration" : {
"text" : "20 Minuten",
"value" : 1205
},
"end_location" : {
"lat" : 49.7296475,
"lng" : 11.5111975
},
"html_instructions" : "Am Autobahnkreuz \u003cb\u003e88-Kreuz Nürnberg\u003c/b\u003e \u003cb\u003erechts\u003c/b\u003e halten und den Schildern \u003cb\u003eA9\u003c/b\u003e in Richtung \u003cb\u003eBerlin\u003c/b\u003e/\u003cb\u003eDresden\u003c/b\u003e/\u003cb\u003eHof\u003c/b\u003e/\u003cb\u003eBayreuth\u003c/b\u003e folgen",
"maneuver" : "ramp-right",
"polyline" : {
"points" : "ue{lHubrcAFIHUNaAJo@VqA\\cB\\uAZeA~@iDb@uAp@yBf@gBh@gBXcANYL[JWJOJOPOLGFCLCJAJ?H?H@PBTLNJNPHPFLBHDLDNBLBZBX?L?JAP?PEVG`@KZIRSVOPIDKFMDG@G?K@O?YGMEWMQKYWYWu@o@MKUUOMSQ{AwAe@a@sJ{IQWyCkCgB{AoC_CWUe@a@[YU@gAcAMKe@e@g@c@cC}BkE{DgDaDqBoB{BaCuAaBgAqA_BuBYa@u@eA{BaDeA}AeAyAu@gAo@aAuAoBu@iAc@o@]e@y@iAYa@SYwB}CcA{Au@gA}BaDo@{@uAoB}@kAc@i@gAuAwAgBkAwAqAyAaBmBoAsAoBsBgAiAuAsAkAgAuAqAuBiBgB_BiAcAeB}AaCyBgCyBmD_DqAkAu@o@}AuA[[qAgA{BoBmC}BsCcCw@s@eA_Au@q@cB}AeCyB{DkDgC{BgB{AuAmAsAkAuAmA{AwAGIaCuBaA{@wAqA{AsAaCsByBmBIIsBoBwAyAy@{@eAkAc@g@OQ{@cA_AgAoA_Bu@aAaAsAy@mAu@iA_AwAiAeBeAaBeA_BkAiBcBkCwAyBqAqBU]W_@k@{@s@_Ak@y@gAqAoAwA_AeAmBuB{CaDyBaCcDmDgCkCcCkCeCkCkBmBwA{AqJaKWYKKGGiCoCwDeEGGMMaAgAsBwBoCuC[_@[YmAqAkAqAmAqAaAcA}AcBsAwAaBcBaAgAgAiAqAuAmAmA_A}@u@o@q@i@y@q@q@i@{@k@}@m@y@i@kAs@{@c@kAm@}@c@aBq@g@Sk@Qk@SqAa@aAYs@Q{@SaB]}Be@oDs@cE{@{Dw@{FmAsH}AqE_A]IUESEgDq@uE_AiDs@sDw@wCm@iE}@kDq@gB_@SEUE_B]}Cq@WGw@WmDu@mCk@iUwEqAYsH{AkAWmIeB]I_@ImB_@}Bg@}A]yA]aBc@}@U_A[}@Y}@[]M_@M}@_@c@SWK]Q{@_@}@e@y@c@wBkAw@g@_@Wu@e@UQIGoA}@c@YiA_ASQ]Wg@c@g@c@gAeAkAgAWY{A}A{@_Ak@o@m@o@m@q@cDmDeIaJoAsAq@u@u@{@w@{@]_@_DiDgBoBiAiAkBiBiBiB_DiDoG_Hi@k@k@m@i@m@sA{Au@{@w@y@}CkDq@u@mBwBW[{@gAm@y@o@_AeAeBU_@Uc@Uc@Se@mAqC_AoBUa@Uc@W_@Wa@W]Y_@MMKM[[YY[Y[Uy@k@]S]S]Sw@a@]SWQo@a@[Ua@Wa@YYU[Y[[OOOOY]U[W_@We@Yc@aAiBWc@Wa@}@oAMQUY[]YYYY[W]W[S]Sy@e@{@_@}@c@[Q_@U[U]WYW[YY[Y]Y_@W_@Wa@Ua@Uc@Uc@Si@e@oAQg@Og@Qk@a@sAc@qAQg@Sg@Qe@Ue@Uc@Sc@Wa@KQKQW]W]Y]Y[Y[[YOKKK[W[S]U]Q]QMGOE]O_@K]K_@I_@GOCMAa@C_@C_@CO?O?_@?_A?{A@[?[A]?MAOA]C_@Ea@E]G]Ia@I]K_@M_@M_@MWKa@Q]Q_@Qy@c@u@a@a@Wa@WuA{@sBsAuBsAuA}@mFiDsCgBuBsAsBuAyAaAy@i@eAw@SOSOYS_Au@u@m@]Yy@s@u@u@u@s@[]s@w@[_@W]Y]W][a@m@{@Yc@Wa@m@eAWc@k@eAUg@g@iASe@Ui@Qe@Si@c@oAQk@YaAW{@_@wA[qAOs@Oo@WuAMo@Kk@W}AQeAOeAU}AS}AQ}AQaBYmCQeBO}AOcBe@qF_@}De@uFMqAE_@E_@O{AQ_BQ_B[oCSaBS}ASwAMs@a@iCW}AY{AKm@YyAMo@[wAKi@]_B[wAiA_FuA{FI_@I]wAcGiA}EYiAoBgIcAkEoBiIw@iD_AuDc@cBe@cBk@aBK[MY[u@cByDUc@We@k@_AMSc@q@uAqBw@aAuCwDgImKg@q@oE{F{BsCaDcEeB{Bo@y@yAmBuBoCm@u@m@u@uAaBmAyAcCoCgCiCSQQOCEWUAAKK{CmCQOIGKKAAOKIKoCwBgDkCu@k@oB}AqAcAsAeAiA{@k@e@w@u@s@q@e@g@cAkAYa@OSMUm@{@k@_AeAkB_AaBcAkB[i@c@s@eA}Ay@gAu@{@u@w@[Y}AqAs@g@s@c@_Ag@GEMGA?{@_@wAi@iAc@{Am@k@U_@SQIg@Y_@UeAu@u@m@mAiAa@e@i@k@c@o@i@w@W][g@Ua@We@Uc@]q@u@gBSg@e@sAGQQm@Og@[iA_@_BQ}@O}@UqAMy@Ku@K_AGo@I{@KsAI_BEaACgAImDCcCIwCGeBG}@GaAGy@MoAOsA[wB_@oBYwAMi@e@aBe@}AYu@c@kAi@mAYq@c@{@a@u@c@u@w@qA]g@yAwBeAwAs@}@KQUWS[mDqEeB}Bs@_AeB_CkA}Ao@y@s@_Aq@_AiAyAu@_AmDqE[a@QUQSCCMQKOsDsE_AoAkBaCgB}BgBsBcAaAYYw@s@YWEEWSw@i@g@]gAu@c@W]O_@QYQYOu@YoAg@cC{@kBc@_BUy@Km@Gq@Ec@CQAeBC{@?cAByAFm@DaBL{AJsBNoAJeCNaAH}BTeBNO@Q@A?S@G@uAJiE\\}E\\cGd@gHf@wCT{BPg@FyCTeCRaKt@}AJ_AHaBL_CR}BPcBLeBNW@_BN{@HO@E?W@sBP_BJe@D_BJ_CPaBNqAJkDVOBY@C?SBaHf@_BJgADy@DsDL{@@w@@k@?]?}@AeEI]C]E]Cy@IgAQQCWEmDm@c@Mm@QaCo@eDcA_@Oc@Qw@]s@]eAk@SMeAq@yFqD]Um@g@e@a@e@a@mDeDu@s@}@{@{AwAwBsBeF{EwCoCwBsB_B}AiAgA}FsFwDqD}A{AoAkAkAiAaA_A_AcAeAcAy@y@u@y@{@aAw@cAeA_BOUaAgBi@eA]q@k@qAo@cBi@}A{@wCi@}Bg@yBUkAY}Ag@eD_@aCe@eDwCmTm@kEyAoKaAaH{@eGYoBI_@SwACS]{B}@{G_CwPc@oCSkAOy@Qw@i@{B_@yAEMQi@AISk@GS[w@_@cAYw@]q@i@kAWe@_@u@OSS_@s@iAMQYa@Y_@u@_Ag@e@_@a@i@k@"
},
"start_location" : {
"lat" : 49.4602698,
"lng" : 11.2389879
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0,4 km",
"value" : 402
},
"duration" : {
"text" : "1 Minute",
"value" : 34
},
"end_location" : {
"lat" : 49.7280698,
"lng" : 11.5128099
},
"html_instructions" : "Bei Ausfahrt \u003cb\u003e44-Pegnitz\u003c/b\u003e auf \u003cb\u003eB85\u003c/b\u003e/\u003cb\u003eB470\u003c/b\u003e in Richtung \u003cb\u003ePegnitz\u003c/b\u003e/\u003cb\u003eWeiden\u003c/b\u003e/\u003cb\u003ePottenstein\u003c/b\u003e/\u003cb\u003eAuerbach\u003c/b\u003e fahren",
"maneuver" : "ramp-right",
"polyline" : {
"points" : "iyonH_hgeAOc@[a@QWOWKSISM]GUCQCU?U?WBQDOFODMFIFIHEJEFCDAHAJ?R?vCPX@f@HlBn@"
},
"start_location" : {
"lat" : 49.7296475,
"lng" : 11.5111975
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "7,6 km",
"value" : 7638
},
"duration" : {
"text" : "5 Minuten",
"value" : 325
},
"end_location" : {
"lat" : 49.7003078,
"lng" : 11.6041195
},
"html_instructions" : "\u003cb\u003eLinks\u003c/b\u003e abbiegen auf \u003cb\u003eB470\u003c/b\u003e/\u003cb\u003eB85\u003c/b\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "moonHargeAJFFWNq@X}@Pm@b@oAXs@hAgCVk@f@gAh@kAVe@^y@bAaCNg@Vk@JSr@{AlBcETe@r@{AfFaLh@iAlGeNZq@hH{ORc@`@}@f@kAL]L[Nc@To@Ro@Pm@Ru@Pw@R_ANy@RmAZoBTwBHaAHaAFqAJsBHgCj@qQDoAFeABc@FcAL_BL_BJ{@D_@T_BRuAToALs@Li@?ALk@Ja@No@Lg@^qALa@l@iBd@qAXq@d@iAJWP]d@}@n@kAhAkBbDeF|@uAlDsFl@cANW\\k@~AkCpAuBdAaBn@mAP]Zq@N]Zq@\\w@\\_ARk@J]ZgAJa@ZsAT_AZ{AJk@DS^yBVeB`@iDD[L}@L_AdAaJTqBPsAz@oH`@}CZkC\\mCPiA\\{BP}@N{@@Cd@oBRy@^qA^kAd@uAXu@\\{@Ti@RURa@b@aAl@eAh@aANUjCaFLa@HOfAkBnBoDjAwBhAuB^q@Xm@Rc@z@mBRe@Rk@h@{A^mAV_ARy@f@sBJg@Nw@P}@L{@PeAPyAPqAJsAJeAHeADu@D_AHsBBu@BeBByA?g@@g@EwACkBEaBEeAI{AEo@G}@QoBYuCUmB]aDSqB[yC_@_EIeAEq@GcAG_BI_CEkCCqE?{@BiCH_DJaCHyA\\qE@W^iEdAgN"
},
"start_location" : {
"lat" : 49.7280698,
"lng" : 11.5128099
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0,2 km",
"value" : 154
},
"duration" : {
"text" : "1 Minute",
"value" : 10
},
"end_location" : {
"lat" : 49.6993552,
"lng" : 11.6055941
},
"html_instructions" : "Die Auffahrt \u003cb\u003eB470\u003c/b\u003e nach \u003cb\u003eWeiden i.d.OPf.\u003c/b\u003e/\u003cb\u003eEschenbach\u003c/b\u003e/\u003cb\u003eGrafenwöhr Area\u003c/b\u003e nehmen",
"polyline" : {
"points" : "}ajnHwlyeARk@Ha@FWJWJWJQLSNSPQ`@]\\YBK"
},
"start_location" : {
"lat" : 49.7003078,
"lng" : 11.6041195
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "41,2 km",
"value" : 41198
},
"duration" : {
"text" : "28 Minuten",
"value" : 1679
},
"end_location" : {
"lat" : 49.69079079999999,
"lng" : 12.092954
},
"html_instructions" : "Weiter auf \u003cb\u003eB470\u003c/b\u003e",
"polyline" : {
"points" : "_|inH}uyeAZa@HUJYDU@OB[BY?MAUC_@CUEUK]O[MQIKYUmA{@uB{Aa@YWSeBkAm@c@WSYSa@[WOy@k@}AmAkA_Ay@s@wAsA{@}@qAyAcAqAaAsAo@aAk@}@OSMUYi@yByDuB}D}@_BaAoBmBwDk@eAaBmDe@_AoAqCo@{ASa@Oc@Oc@Yy@Yw@[gAa@uAYsAYwA_@aCIi@Ee@MoAUiCUkCQsBAQS_CYeCOaAAKIa@_@eB]yA_@{A_@oAW_Ai@eBc@yA_AyCm@oBu@_COg@M_@_AqCc@qAoAyDcAuCc@mAi@wAw@gBg@eAc@{@_@s@o@iAwCgFsC}Ee@iAS]S]u@yA}@_Bs@gA[i@WYc@w@g@}@{@}Aq@mA_BsC{@_BkBeD_CeEwByD_BoCeCqEoA{B}CoFyCkFQ[Q]y@wAOUkAuBo@gAmAyBm@iAkBiD{@cBuCeGaBmDcA_CeAcCw@qBmA_DyBgGWu@AEW{@Mc@c@aBOo@Su@a@mBQ_AUqAg@yDMkAGo@Go@C[MaBQmDE}ACm@GuAo@mTW}IUsGa@iNW}IKyDEwBGgEEuFAqDAgBH}XDuIBiH@eE?iDA_CC}AGwBK{BIyAQwBUgC_AkI]yCWqCMqAKsAKeBK{BEiBCeACeBG_FIkFGaCIsCSqDMmBQuBQiBSsBUgBUeBUyAGa@_@uBQ_Ac@wBg@wBUaAWeA}@uCo@oB{@cCgAmCg@kA]u@s@uAYk@_@s@u@oA_@o@_AwAs@aAw@cAa@i@_@c@e@i@o@s@wAyAgCmCaAcAkAqAmBaC_AuAi@}@]k@o@kAcA{BkAyCQg@Qi@m@oBU_AQq@g@{Ba@sBw@}Eu@mEY}AQu@WmA]sAs@aCw@}BgAuCm@wASg@Ui@Sg@Qg@e@qA[gAUu@_@uAOs@Mk@Oy@EYKk@M}@WyBOcBOkBG}@Eu@YyEAWGiAQaDg@kLMmEM{EKeFKcFAeBC{ACcCAiB?{@AeB@wB@aDB}A?o@DyBHmDBa@LoERsDP_DNaC?Mn@wJXiETaEXmFLuCPcFJgEBcD@}CA}EGcFGqCMiDQcEY_E[gE_@yDm@aFg@qDm@yD_@oBe@eCaAkEeA}DSk@o@mB}@wBc@aAaAoB}@}AaAyA_AwAqAeBoAiBo@cAk@eA[s@g@mA_@mAUw@Kc@WsAW_BK_AM}AE_ACw@CqA?cB@q@BSLyBBU@QJaAHm@LcAN}@t@kDLg@Li@Dg@@I@C^uATeAT_ARcAb@yBV}AN_AZsBR_Bn@_GP}ATwBRuBZoC`@yDJwANoBD[B[@i@Bs@@y@CoAAg@E}@IiAIq@E]AIEYO{@Oi@[aCIu@Em@IqAGuACeBA}ADgCHcFBgHAiGCeF@gD?]@[D}CHaDDeARuFHsC?g@@g@@gA@gBAgCCkD?e@Ae@AoCBoDB{@Bk@Bk@@_@DiABYFy@XqCh@cERyA@Q?C@KBUDg@N_BDeABs@@o@?w@AaA?KCy@Eu@Ce@Iu@Gk@My@Ms@Mo@U_AUw@e@oAk@qAS]q@}@w@}@OOS[[YUU[YeAy@WQw@g@c@[IEQGQQ_@a@YYa@e@w@gAk@_AcAeBi@cAWg@cAqBq@kAsAgCg@y@w@gAi@k@gAeAqCgCaEsDkAeAk@o@_@e@o@_Aa@m@e@aAi@kAc@qAQm@U}@]aBMu@OcAIq@MiAi@{FSmBQwAMs@Ow@Qy@U{@gAgDe@sAk@gBSq@a@wA]uA[{AAQAIIa@_@aC_@iCKcAOmA]aDSeCCIESMiBQyCSiEOgEGyBEyBE_DCsDA}D?aB@cDBuCByADoCBy@?SNkFVkGXmFd@eHZeETgCRiBLeALu@NmAd@yDd@yDBO?UFe@p@wEn@oEl@sDz@gFnAcIl@sDv@aFV{ABQBWLs@dAcHb@kDTaBZkCh@sENsAF[BUJ_A^wDLiBRiDC[NgCDw@FsBB_ABq@B{ABaB?gB?aBAgBCcCGeCGeCMeEGkCEeCAeB@cB@eBDgBHuBFaAF_AHaAHeAP}ARwALw@RoAHc@Jc@R_A\\wALg@\\kARs@N_@L_@h@yAv@iB\\s@JSXk@h@cAVa@^o@p@cAf@q@h@w@`AoAtAaBdAkAvA{AdCgC`CaC^_@|D_EvAyAdAeAjBoBpDwDhBoBxGiHzBcChDyDxA_BbFwF|DsEzDsE`EyEhDcEvBiCdHyIbDaEtBmCrBkCzDcFlBcCLKdAsAlDsEpCyDh@u@DQl@y@jH}JtGiJzLiQzFuInDsFNSNUrD{F~FeJpCqELKx@qAR[z@{A`BwCP]fBuDl@yAn@}ADQBIXq@hAyCd@sAn@mBb@uAt@mCf@kB^{Af@yBT_ANs@P}@P}@TiARmAPeAPcATaBPiAl@}EJ_Ab@}EDi@@QBUDg@FiAHgAJqBNsCBcAFcBDyAByABoBBkBB{C?YBS@W?aA@k@?iA?c@?[?i@?yDAuAA_@CS?{C?yA?sD@kBBiB@eABeABeADeADeAFaAFcAHiAHgAJ}@LeANgAL{@Ji@Lw@H_@No@Jg@R{@Nk@Lg@Ni@Pe@HQ^aABKXs@n@{Ab@_ARc@jAuB~BaETg@Zg@pBgDj@eApAcC|AyDVs@Xu@b@sA^qAV{@^uAZwA\\yAZwAX}AVyAV{AV{AN_AZ}BZ{B`@}C\\wCX{B~@eIVwBd@aDRoATsATsAb@wBVsAR}@Z}AR}@ZyAf@oBp@qC|@oDzCqLnB}HdAsEl@uCj@uCX}AX{ANcAN}@l@}D\\}Bf@yDv@sGv@kG`@eDBQn@kFp@{FtOkpA^sCLoAJkA\\mC^sCh@cEb@yC^cCb@uCPgA@ARoAp@yDh@sC^mBh@kC\\{A^gBv@kDfAsEfBuHR{@pAqFbFoTvAgGJe@`DaNJc@tCiMn@gCnCkLrAyFrL_h@hA}EJYDOZqA~@_E"
},
"start_location" : {
"lat" : 49.6993552,
"lng" : 11.6055941
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "2,2 km",
"value" : 2155
},
"duration" : {
"text" : "2 Minuten",
"value" : 149
},
"end_location" : {
"lat" : 49.6728847,
"lng" : 12.0973162
},
"html_instructions" : "\u003cb\u003eRechts\u003c/b\u003e abbiegen auf \u003cb\u003eDr.-Müller-Straße\u003c/b\u003e (Schilder nach \u003cb\u003eBrandweiher\u003c/b\u003e)",
"maneuver" : "turn-right",
"polyline" : {
"points" : "mfhnH}{xhANUFGHEJEHEBBPHLFTJHNl@|@jFpEdAr@l@Xd@T`Ab@~@`@bA\\ZJb@H^HXDLBbAFb@@b@Ch@IzCq@LCr@GPAREXOb@Yl@i@NMVSnDoCXM^OZKpAS`Dk@xPmD\\K`DqAzCyA~BaAjCeAh@Wz@c@DCRSRSt@gAxA_CpBuC"
},
"start_location" : {
"lat" : 49.69079079999999,
"lng" : 12.092954
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0,3 km",
"value" : 324
},
"duration" : {
"text" : "1 Minute",
"value" : 31
},
"end_location" : {
"lat" : 49.6705768,
"lng" : 12.1000153
},
"html_instructions" : "Weiter auf \u003cb\u003eHofackerstraße\u003c/b\u003e",
"polyline" : {
"points" : "ovdnHgwyhAlDmFFIn@iARMX]BC~@aAb@e@v@m@VS"
},
"start_location" : {
"lat" : 49.6728847,
"lng" : 12.0973162
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "0,2 km",
"value" : 234
},
"duration" : {
"text" : "1 Minute",
"value" : 35
},
"end_location" : {
"lat" : 49.6709436,
"lng" : 12.1032201
},
"html_instructions" : "\u003cb\u003eLinks\u003c/b\u003e abbiegen auf \u003cb\u003eLatscher Str.\u003c/b\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "chdnHchzhACWKcBIuA[kFQaE"
},
"start_location" : {
"lat" : 49.6705768,
"lng" : 12.1000153
},
"travel_mode" : "DRIVING"
},
{
"distance" : {
"text" : "20 m",
"value" : 20
},
"duration" : {
"text" : "1 Minute",
"value" : 24
},
"end_location" : {
"lat" : 49.6711221,
"lng" : 12.1031752
},
"html_instructions" : "\u003cb\u003eLinks\u003c/b\u003e abbiegen auf \u003cb\u003eHolztratstraße\u003c/b\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "kjdnHc|zhAc@F"
},
"start_location" : {
"lat" : 49.6709436,
"lng" : 12.1032201
},
"travel_mode" : "DRIVING"
}
],
"traffic_speed_entry" : [],
"via_waypoint" : []
}
],
"overview_polyline" : {
"points" : "{`qmHelnaAq@cB^cAsCoDyEoHeAyCM{AyAkGwCsGlHiXzIig@nIoy@~B_KdHwPvI}MnDuJtGiRhB}KCgUiBcRyEmQD_H`AoElIsYfKqi@bF{k@vAwk@\\izAXsZhCi_@bGu\\tJmZfOaXzT_UrQaOjSoUdQe_@xJu`@`k@euCfQev@z[qw@ls@aaBhIcTnIwZvTwrAhQwdAlHaWdNw]dGiQtLch@rU}o@vh@ysA`Rqe@pJ_V~JoQdXe^re@cn@bOcS|HgP|Iy]lCoWb@aR}@y]eF_|@C_`@xCe]jEuOhPk\\~Gic@~L}b@`B_@bBfBNpC}A`DyBQcEmDmd@_a@c^w^sO{Tw]if@iTmU{[qY{p@il@mh@_f@e_@ci@cLoOy^q`@ek@gm@yRySoNcMsOgI{PkEcrAeXciA}UaUsFoIiDeXeRgxA}}AcPcYkOmK_M{PcP{K_EeGeEcMkIeMmEcC}Ew@kOi@kW{Maf@y\\gGeHoGcL}Iw\\aIuv@iIuj@o[csA_HqOu[mb@qe@kk@{\\mXyHmIiLqRgM{K}J_EeJaHoFeIsEgMeCmOaAcYyBkTuFcQsKoPa`@qg@wN}QmJ_J{HiE_L}C}D]}Pd@qS~AceA~Hef@rDwg@nCqNy@cSiFqQwKgXaWuo@co@eJiRkHg_@oWkiByJyWwKcPNuChAg@lF\\xBv@ViAhBoFrDgIpIiRb]eu@pDuJxC_RdB{c@tBeRxIeXf^am@tD_MzC_SrGoi@lD_Q~EwLbMmUfIqPjEuPjBcQVqQoF{r@Ae`@tD{a@rCsDdAyDy@{DuLwIiKaIwMePg[eo@{DsQkCsXuOoi@eKsW}OoYuf@u{@qMkUoSac@{HuUcD{S}Byo@qB}~@LsbA{Dee@}Ds~@gEoVeJaXoJsOeOiPgMkU_Hg\\kOkf@uB{N{Bib@_Ach@TqZpCwg@~Aqo@o@cVcCcX{CaRkEcPeOiWyFiO}@}Qz@iJfI}b@dE}a@DeK}AeLW{Xz@i_A@gXnBySf@yHWaKoDcNoFoGgGqEiJkOeFuIeMmLgE{EuCmGeD_UyEcTiDaNwCcV{A}e@Pq[zDio@fD{WrQenAdBaV\\eTs@u`@v@qTnC}O|E_NjGcKzWcYdb@_d@`m@as@x\\wb@lf@mr@~_@sl@bMmV|GmSnE{R|D_[~@qOh@{`@b@gl@~EsYzFiMvOqZjFwRjEgYtFkb@tFaW|Oyq@dH}h@l\\ikCf`@seBx\\_xAvC}HlMjKdJ~C`L}@hJmGba@uJzPiItOkU~CyCAeFqAeL"
},
"summary" : "A9 und B470",
"warnings" : [],
"waypoint_order" : []
}
],
"status" : "OK"
}
Was läuft da schief?
Kann ich noch was liefern um mir zu helfen!?
Vielen Dank schon mal!
EDIT: die diversen Attribute (language, travelMode) habe ich nach einigen Versuchen hinzugefügt hat aber nichts geändert. Ich habe auch andere Adressen verwendet (vorher mit Umlauten, daher mal andere Adressen ohne Umlaute) hat aber auch keinen Unterschied gemacht...
Gruß, Joachim
Hi Joachim.
Wenn das JSON decode nie funktioniert, ist vielleicht mit deinem JSON was nicht in Ordnung.
Eigentlich sollte das Modul direkt einen Fehler spucken, falls das Perl Modul JSON nicht verfügbar ist.
Welche TRAFFIC Version setzt du ein?
Und führe mal folgendes auf der CLI aus:
perl -e "use JSON;my %test = ('json'=>'geht'); print encode_json(\%test);"
Hi,
danke für die schnelle Antwort!
Also:
perl -e "use JSON;my %test = ('json'=>'geht'); print encode_json(\%test);"
liefert:
{"json":"geht"}
Bedeutet wohl irgendwie dass es geht!? ;)
Version ist folgende:
98_TRAFFIC.pm 14094 2017-04-24 08:09:22Z jmike
Gruß, Joachim
So, habe es jetzt einfach auf meinem Hauptsystem ausprobiert (sehr verkürzte Testphase ;) ):
PI3 Raspbian Stretch lite (neu aufgesetzt vor einigen Tagen/Wochen)
Hier läuft es...
Da ist wohl mein Testsystem deutlich "verinstalliert" aber es ist ja auch genau dazu da: ausprobieren.
Ich werde dann wohl mal mein Testsystem schneller wieder gerade ziehen, damit ich auch (wieder) vernünftig testen kann... ;)
Aber es laufen halt noch einige Dinge im "Test.Modus" daher geht das nicht so schnell mit dem gatt ziehen/neu aufsetzen...
Aber (trotzdem) danke!
Gruß, Joachim
Ich Plotte gerade die Verspätungen. Dazu auch Return miit dabei.
Nun will ich return aber nur gegen 16-19 Uhr erfassen im Plot.
Hinfahrt kann ganz normal dauerhaft erfasst werden.
Lässt sich da etwas machen ? Oder muss ich für den Rückweg ein getrenntest Gerät erstellen mit einem Zeitraum?
@ChrisW.
Nachdem devices nix extra kosten wäre das sicherlich eine einfache Lösung :)
... Hab es jetzt nicht probiert aber eigentlich sollte man doch über die Function Spalte im SVG was machen können. $fld[1]=~"16|17|18|19" oder so in der Richtung.
Aber ich hab noch nicht ganz verstanden wie der Plot dann aussehen soll.
Hallo Zusammen,
erstmal Danke fürs Modul! Echt klasse!
Ich habe noch ne kleine Anmerkung bzw. sieht jmd. von Euch eine Alternative.
Ich möchte in meinem FTUI die Wegzeiten anzeigen, was auch funktioniert. Nur lässt die aktuelle Auswahl im Attribut "outputReadings" nicht die Anzeige zu, die ich gern hätte ;)
Beispiel: anstatt "14 mins" würde ich gern "00:14" ausgeben.
Gründe:
- es ist sehr kompakt
- wenn ich mehrere Strecken untereinander liste, sieht es einfach besser aus, da alle das selbe Format haben
Ich habe mich vorerst so beholfen, dass ich "duration" in Sekunden ausgeben lasse und dann "stateFormat" mit diesem Code fülle: {
my $sec1 = ReadingsVal($name,"duration_sec",0); #sekunden
my $sec2 = ReadingsVal($name,"duration_in_traffic_sec",0); #sekunden
my $m1 = int $sec1 / 60;
my $m2 = int $sec2 / 60;
my $h1 = int $m1 / 60;
my $h2 = int $m2 / 60;
$m1 = $m1 - ($h1 * 60);
$m2 = $m2 - ($h2 * 60);
sprintf("Normal:%02d:%02d Aktuell:%02d:%02d",$h1,$m1,$h2,$m2);
}
Mir scheint das aber nicht "sauber".
Kurzum, eigentlich wollte ich fragen, ob man das Ausgabeformat "hh:mm" noch implementieren könnte...
VG...
Zitat von: jmike am 07 September 2017, 20:57:37
Hi.
Die Meldung "not able to calculate delay" weißt auf eine unvollständige Antwort von Google hin, siehe auch deine letzte Message:
"duration_in_traffic":null,
Das wäre für 35km ziemlich schnell ;)
Ich kann zukünftig ein erneutes Update anstossen wenn das auftritt und versuchen den folge Fehler von line 650 abzufangen.
Das eval dürfte aus dem BlockingModul, welches das Device Update im Hintergrund ausführt.
Ich werde versuchen das mal zu simulieren und anstelle eines Updates mit fehlerhaften Werten einfach ein erneuten Versuch einbauen.
Dann sollte die PERL WARNING und eval verschwinden.
Gibt es hier schon etwas Neues, zumindest was die lange Fehlermeldung im Log unterbindet (abgesehen vom Verbose Level)?
Zitat von: friesenjung am 22 September 2017, 10:13:10
Hallo Zusammen,
erstmal Danke fürs Modul! Echt klasse!
Ich habe noch ne kleine Anmerkung bzw. sieht jmd. von Euch eine Alternative.
Ich möchte in meinem FTUI die Wegzeiten anzeigen, was auch funktioniert. Nur lässt die aktuelle Auswahl im Attribut "outputReadings" nicht die Anzeige zu, die ich gern hätte ;)
Beispiel: anstatt "14 mins" würde ich gern "00:14" ausgeben.
Gründe:
- es ist sehr kompakt
- wenn ich mehrere Strecken untereinander liste, sieht es einfach besser aus, da alle das selbe Format haben
Ich habe mich vorerst so beholfen, dass ich "duration" in Sekunden ausgeben lasse und dann "stateFormat" mit diesem Code fülle: {
my $sec1 = ReadingsVal($name,"duration_sec",0); #sekunden
my $sec2 = ReadingsVal($name,"duration_in_traffic_sec",0); #sekunden
my $m1 = int $sec1 / 60;
my $m2 = int $sec2 / 60;
my $h1 = int $m1 / 60;
my $h2 = int $m2 / 60;
$m1 = $m1 - ($h1 * 60);
$m2 = $m2 - ($h2 * 60);
sprintf("Normal:%02d:%02d Aktuell:%02d:%02d",$h1,$m1,$h2,$m2);
}
Mir scheint das aber nicht "sauber".
Kurzum, eigentlich wollte ich fragen, ob man das Ausgabeformat "hh:mm" noch implementieren könnte...
VG...
Gibt es hier schon was neues?
Wenn nein, wie gibst du "duration" in Sekunden aus?
Gruß
Zitat von: IcemanNRW am 03 Oktober 2017, 14:29:15
Gibt es hier schon was neues?
Wenn nein, wie gibst du "duration" in Sekunden aus?
Gruß
Hi, das kann man über ein Attribut einstellen. Setzt man dieses Attribut, wird ein neues Reading angelegt.
VG
Gesendet von iPhone mit Tapatalk
Zitat von: friesenjung am 03 Oktober 2017, 14:51:19
Hi, das kann man über ein Attribut einstellen. Setzt man dieses Attribut, wird ein neues Reading angelegt.
VG
Gesendet von iPhone mit Tapatalk
Hey,
kannst du mir sagen, welches, bzw. was ich dort eingeben soll?
Habe jetzt mehrere Schritte probiert, komme aber nicht weiter.
Habe es mit stateReading & outputReadings probiert, aber ohne Ergebnis.
Danke & Gruß
bei "outputReadings" einfach "sec" hinzufügen (durch Komma getrennt). Beim nächsten Aktualisieren kommt dann der gewünschte Reading für die Sekundenausgabe. Du solltest nochmal in der Commandref des Moduls schauen, da ist es auch so beschrieben.
VG...
Zitat von: Amenophis86 am 29 September 2017, 12:00:36
Gibt es hier schon etwas Neues, zumindest was die lange Fehlermeldung im Log unterbindet (abgesehen vom Verbose Level)?
Hi All, erstmal von mir auch ein Danke für das Modul, ich verwende es schon recht lange, ist wirklich super!
ich hab zwei Traffic Devices 1x Driving und 1x Transit - bei mir tritt der Warnings "Fehler" im Log bei sogut wie jeder Abfrage des Devices mit Transit TravelMode auf - ich hab mal versucht die Werte nachzuvollziehen und bin zu folgender Theorie gekommen:
Kann es sein dass (seit 05.07.2017) Google bei einer Strecke die
keine Verspätung hat, einfach auch keinerlei Rückgabewerte wie "delay" und "duration_in_traffic" mehr ausgibt?
Ich hab mal zwei Screenshots meiner deviceReadings angehängt - der Screenshot mit Delay funktioniert prima (ist eine Strecke auf der sogut wie immer Stau´s vorhanden sind, daher gibt´s hier auch nie irgendwelche Warnings im Log) - beim Screenshot ohne Delay (ist eine Zugstrecke mit sehr wenigen Verspaetungen) fehlen die Readings (eben seit 5.7.17) und die ETA wird auch nicht ausgegeben (wegen des fehlenden Delay Werts?) -> imho hier ständig Warnings im Log File...
Kann dies das "Problem" sein? - bzw. kann das jemand von euch nachvollziehen?
Danke und lg, Markus
Danke erstmal für das colle Modul. Habe es erst heute entdeckt.
Gibt es irgendwo eine Erklärung zu den Readings, ohne dass ich alle Posts hier durchlesen muss?
Das Wiki und die commendref helfen mir zu meinen Readings nur bedingt weiter.
Ich habe z. B. folgende:
2017-11-07 21:58:25 delay 0 min
2017-11-07 21:58:25 distance 18,0 km
2017-11-07 21:58:25 duration 26 Minuten
2017-11-07 21:58:25 duration_in_traffic 23 Minuten
2017-11-07 21:58:25 eta 22:21:03
2017-11-07 21:58:25 state 0 min
2017-11-07 21:58:25 status OK
Ich hätte nun erwartet, dass duration_in_traffic die Zeit mit verkehr ist und daher länger als duration.
Habe ich einen Denkfehler?
https://developers.google.com/maps/documentation/directions/intro?hl=de hier findest du alle Infos, die dir fehlen könnten.
jemand eine idee wie ich es hinbekomme das immer ein genauer Weg genommen wird ? Da manchmal einen anderen Weg über Landstraße genommen wird und die Zeiten dann nicht mehr Stimmen.
Zitat von: ChrisW am 08 November 2017, 18:13:51
jemand eine idee wie ich es hinbekomme das immer ein genauer Weg genommen wird ? Da manchmal einen anderen Weg über Landstraße genommen wird und die Zeiten dann nicht mehr Stimmen.
Schau dir mal das Attribut
waypoints an...
Gruß, Joachim
Zitat von: Naboo am 06 November 2017, 16:40:48
Kann es sein dass (seit 05.07.2017) Google bei einer Strecke die keine Verspätung hat, einfach auch keinerlei Rückgabewerte wie "delay" und "duration_in_traffic" mehr ausgibt?
...
Kann dies das "Problem" sein? - bzw. kann das jemand von euch nachvollziehen?
Hi Markus.
Kann ich leider nicht nachvollziehen. Bei mir werden immer alle Readings aktualisiert soweit ich sehen kann.
Wenn sich das breiter Verteilt, muss ich das definitiv im Modul abfangen.
Zitat von: Gunther am 07 November 2017, 22:08:23
Ich hätte nun erwartet, dass duration_in_traffic die Zeit mit verkehr ist und daher länger als duration.
Hi Gunther.
Das habe ich auch schon beobachtet und das Modul zeigt einfach das an, was Google liefert.
Meine Theorie ist, duration ist eine art Mittelwert und duration_in_traffic ist anhand von Mobile Daten relativ akkurat. Und wenn so wenig Verkehr ist, dass man schneller ist als der übliche Mittelwert, ist duration_in_traffic sogar schneller als normal.
Aber sicher bin ich mir damit nicht ;)
@ Amenophis86: Hab die neuen Änderungen so gut wie fertig, teste aber noch etwas rum.
Zitat von: jmike am 21 November 2017, 09:36:32
@ Amenophis86: Hab die neuen Änderungen so gut wie fertig, teste aber noch etwas rum.
Top, ich danke dir :)
Hi.
Da ich eine Menge Sachen geändert habe, und den nächsten Release nicht noch weitere Wochen durch meine Tests aufhalten möchte, hier im Beitrag die aktuelle Beta.
Vielleicht finden sich ein paar Beta-tester und wenn bei euch auch alles passt, geht es asap ins SVN.
Wiki und commandref ist auch noch nicht up to date.
Die wichtigsten Änderungen:
- JSON Fehler werden korrekt aufgefangen, und (hoffentlich) mit retry versehen. Das konnte ich nicht zu 100% testen.
- added Dbog_splitFn
- added reading summary
- new attr GoogleMapsFixedMap
- new attr alternatives, new reading alternatives (routen name + duration_in_traffic)
- alternatives displayed on map with lighter&thinner stroke than primary route
Sehr schön, dann schaue ich mal, ob ich die nächsten Tage zum testen kommen kann. Hab ja immerhin auch einen Wünsch geäußert gehabt :)
Seit ich es installiert habe, hatte ich bisher keine Fehler. Scheint also ganz gut zu laufen.
v1.3.3 ist im SVN und ab morgen per update Verfügbar.
Wie gesagt:
- JSON Fehler werden korrekt aufgefangen, und (hoffentlich) mit retry versehen. Das konnte ich nicht zu 100% testen.
- added Dbog_splitFn
- added reading summary
- new attr GoogleMapsFixedMap
- new attr alternatives, new reading alternatives (routen name + duration_in_traffic)
- alternatives displayed on map with lighter&thinner stroke than primary route
Wiki Update folgt.
...frohes Neues :)
Zu duration_in_traffic heißt es in der Google-Doku:
"duration_in_traffic gibt die Gesamtdauer dieses Abschnitts an. Dieser Wert ist eine Schätzung der Dauer auf der Grundlage gegenwärtiger und zurückliegender Verkehrsbedingungen. Im Parameter traffic_model finden Sie die Optionen, mit denen Sie eine optimistische, pessimistische oder bestmögliche Schätzung anfordern können."
"traffic_model" beeinflusst den im Feld duration_in_traffic zurückgegebenen Wert.
Welche Optionen sind denn im Traffic-Modul hinterlegt? Kann ich die ändern, um so die Ausgabe von duration_in_traffic zu beeinflussen?
Dazu brauchst du eine "premium google maps api-ID"...
...kostet wahrscheinlich Geld...
Siehe z.B. dort:
https://developers.google.com/maps/documentation/directions/intro?hl=de
Gruß, Joachim
Ich meinte, was im FHEM Modul hinterlegt ist. Das Reading spuckt doch nur duration_in_traffic aus. Aber welche Annahme ist da hinterlegt?
Zitat von: mcfhem am 03 Januar 2018, 11:14:46
Welche Optionen sind denn im Traffic-Modul hinterlegt? Kann ich die ändern, um so die Ausgabe von duration_in_traffic zu beeinflussen?
Das Modul nutzt den Wert aktuell gar nicht, d.h. es wird der default "best_guess" verwendet und er ist (aktuell) nicht konfigurierbar.
Zitat von: mcfhem am 03 Januar 2018, 11:49:22
Ich meinte, was im FHEM Modul hinterlegt ist. Das Reading spuckt doch nur duration_in_traffic aus. Aber welche Annahme ist da hinterlegt?
Wenn du die verlinkte Beschreibung (wirklich) gelesen hättest hätte es klar sein müssen...
Dort steht eben was default ist und dass Änderungen nur mit Premium-Zugang gehen, was für ein fhem-Modul nicht unbedingt eine Option ist/sein sollte... ;)
Gruß, Joachim
Moinmoin
Mal was anderes. Habe mein System auf DBLogging umgestellt und seit dem funktioniert das Logging vom Traffic Modul nicht mehr. Alle anderen Geräte schreiben schön in die Datenbank. Der Text-Log von vor der Umstellung zeigte alle Readings vom Traffic Modul. Auch ein DBLogInclude .* auf diesem Gerät zeigt keine Änderung.
Hat jemand ne Idee?
Gruß
CeFra
Wie haste Dblog logging definiert und warum will man da was loggen?
Hallo zusammen,
ich bin gerade etwas verwirrt :o
Ich habe mir eben die 99_myUtils.pm zerschossen und leider kein backup vorher gemacht. ::)
Nun wunder ich mich, warum mein Traffic nicht mehr läuft, da war doch für dieses Modul nichts drin, oder??
Meine Probleme sind folgende:
Bei Alternates ist plötzlich ein "-" sonst steht da immer eine Strecke,
Bei:
return_state, return_status, state & staus steht jeweils: ZERO_RESULTS
und wenn ich auf toggle Map klicke kommt ein Fenster mit:
fhem?detail=Fahrtzeit&fw_id= line 106:
Uncaught SyntaxError: Unexpected token ,
Hoffe mir kann da jemand weiterhelfen
EDIT:
im Logfile habe ich gerade das gefunden:
2018.01.15 09:44:04 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 706.
2018.01.15 09:44:04 3: eval: {TRAFFIC_FinishUpdate('Fahrtzeit;;;return;;;{"READINGS":{"duration":null,"summary":null,"distance":null,"alternatives":" - ","status":"ZERO_RESULTS","duration_in_traffic":null,"state":"ZERO_RESULTS"},"HELPER":{"GoogleMapsCenter":",","Poly":""}}')}
Kann mir da keiner weiterhelfen?
gelöscht, neu installiert, läuft :o
Warum, wieso, weshalb?? K.A
Nabend,
nochmal zum logging.
Also ich würde gern mindestens delay_min und return_delay_min mitloggen, um daraus einen Graph zu machen. Das gibt mir ein Gefühl dafür, wie sich meine Hausstrecke so über die Zeit verhält ...
Das ganze lief auch schon, solange in eine .txt geloggt wurde. Nach der Umstellung auf dbLogging (.*:.*) schreiben auch alle Geräte sofort alle readings in die Datenbank ... bis auf das TRAFFIC Gerät. Selbst wenn man die beiden o.g. readings explizit auf dem Gerät includiert.
Daher meine Frage: Hat jemand ein Logging eines TRAFFIC-device in die Datenbank am laufen und wie ist das gelungen?
Gruß
chris
das logging in eine DB lief noch bis ich am 2.Januar ein Update gemacht habe, seitdem nicht mehr
Vielleicht mal bei DBLog nachfragen, warum das so sein könnte.
Ich werde es mir Anfang der Woche mal näher ansehen.
Hatte ja auf Wunsch die Dbog_splitFn hinzugefügt. Ich vermute da liegt die Ursache.
Ich hatte das gleiche Problem mit dem Logging. Warum auch immer, nachdem ich die Version 1.3.2 (anstatt 1.3.3) wieder eingespielt habe, geht es wieder.
Alle anderen Loggings hatten weiter funktioniert, nur TRAFFIC ging nicht mehr.
Ich hatte auch verschiedene Filter bis hin zum .* versucht, jedoch ohne Erfolg, scheint wohl mit der neuen Modulversion zusammenzuhänge.
... Ich glaube ich hab da was falsch gemacht bei der DbLog Funktion. :o
@homer013 & kleineslichtHH: Probiert mal bitte die Version im Anhang hier.
Hi @jmike,
wo ist denn die funktion 'TRAFFIC_DbLog_split' definiert, die Du als DbLog_splitFn setzt:
$hash->{DbLog_splitFn} = "TRAFFIC_DbLog_split";
Ohne die wird es nicht funktionieren, oder? ;)
https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_DbLog_split
LG
Christian
Zitat von: choenig am 25 Januar 2018, 22:05:57
Hi @jmike,
wo ist denn die funktion 'TRAFFIC_DbLog_split' definiert, die Du als DbLog_splitFn setzt...
Danke.. ;)
...wenn man so lange auf den Beinen war sollte man keinen Code mehr anfassen.
Hab den beta code oben wieder rausgenommen und werde das morgen in aller Ruhe endgültig fixen... gut nacht 8)
Dankeschön :)
So.. jetzt aber ;) (Test-Version im Anhang)
Habe es sowohl mit DbLogInclude .* als auch mit expliziten Readings versucht.
Hoffe ich hab die Units alle korrekt identifizieren können anhand meiner aktuellen Outputs von Google.
Evtl können die DbLog User kurz bestätigen dass es so in Ordnung ist, dann geht es so ins SVN. -> v1.3.4 committed
Danke euch ;D
;D ;D
Die neue Version 1.3.4x2 funktioniert. Gute Arbeit...
Weiter so, und immer genug schlafen... ;)
Danke homer013.
Hab noch ein paar andere Kleinigkeiten und to-do's umgesetzt und v1.3.4 ins SVN gelegt.
Sollte dann morgen per update verfügbar sein.
Nach längerer Prüfung scheint es aber noch ein Problem zu geben.
- Geloggt wird nur noch ein Wert:
2018-01-26 23:24:47 ww2lev TRAFFIC return_duration_in_traffic_min: 39 duration_in_traffic_min 39 min
(Eintrag ín der Datenbank)
Filter ist bei mir:
.*:.*traffic.*
Hier erschienen vorher mit der alten Modulversion beide Werte, also Hin- und Rückwegzeit.
Es scheint beim Loggen eine Vermischung von Hin und Rückwegwert zu geben.
Sorry, war wohl vorschnell mit meiner Funktionsmeldung.
Hi.
Guter Punkt, returns hatte ich vergessen zu testen.
check mal die Version im Anhang, da mach ich das mit return_* Readings noch mal etwas anders.
lg
edit: neue Version ab morgen über update verfügbar
:D
Auf den ersten Blick scheint es jetzt zu klappen.
Beide Einträge in der DB werden jetzt geschrieben und aktualisiert.
Ich lass es mal bis heute Abend weiterlaufen und werde dann nochmal berichten.
;D
Auch auf den zweiten und dritten Blick läuft das neue Modul (Version 1.3.5x1) scheinbar augenscheinlich fehlerfrei.
Daher erstmal:
Gute Arbeit!
LG
Homer
PS: Wenn ich doch nen Fehler finde, behalte ich ihn... 8) 8)
Nur Spaß, dann sag ich natürlich Bescheid ;)
EDIT: In der Hoffnung, das jetzt alle zufrieden sind... ;)
Zitat von: homer013 am 27 Januar 2018, 20:06:22Auch auf den zweiten und dritten Blick läuft das neue Modul (Version 1.3.5x1) scheinbar fehlerfrei.
Kleiner Hinweis zum Gebrauch von scheinbar und anscheinend:
https://www.korrekturen.de/beliebte_fehler/scheinbar_anscheinend.shtml (https://www.korrekturen.de/beliebte_fehler/scheinbar_anscheinend.shtml)
Ansonsten Daumen hoch für die Entwicklung und das Testen !!
Da die gefixte Version eine Perl Warning beim initialisieren geworfen hat, habe ich gleich noch die 1.3.6 nachgelegt.
Sollte ab morgen im SVN verfügbar sein.
Das waren dann mal eben 3 fix-Releases ausschliesslich für die DbLog_SplitFn... Wie man sieht, nutze ich noch textfiles als Log ::)
Sehr gut. Und für mich heißt es: Wieder etwas gelernt. Beim nächsten Testen werde ich auch in die Initialisierung ein Auge werfen. War mein erstes Mal als Tester.
Grüße
Homer
Hallo Zusammen,
ich bin gerade am überlegen, das TRAFFIC Module einzusetzen. Allerdings benötige ich es nicht im "klassischen" Stil.
Auf meinem Weg zur Arbeit, gibt es eine Strasse, die mehrmals im Jahr anlässlich diverser Festlichkeiten voll gesperrt ist.
Kennt jemand einen Weg, dies über die Goolgle-Api abzufragen ? Mir würde ein einfaches TRUE/FALSE Return genügen.
Natürlich kann ich es auch selbst testen, dann müsste ich aber, um zu wissen was die Api zurückgibt, so lange warten, bis die nächste Sperrung (im Sommer) erfolgt.
Gruß,
JudgeDredd
Hi Dredd.
Vorausgesetzt Google kennt die Sperrung und zeigt sie auch an, könntest du entweder das Reading distance auswerten oder aber die Strecke mit Waypoints festlegen.
Die alternativ Route ist ja bestimmt länger, und per userReading könntest du das auf den Device State legen. Also ,,ok" oder ,,gesperrt" wenn sie länger ist.
Die zweite Option zu testen ist schwieriger, bräuchte man erstmal eine gesperrte Strecke in GMaps.
Hi,
ich habe jetzt mal zwei Strecken angelegt, die aktuell nahezu identisch sind. Und werde ein Notify auf das "distance" Reading ansetzen.
ZitatVorausgesetzt Google kennt die Sperrung und zeigt sie auch an
Ja, das ist dann der Knackpunkt. Daher werde ich wohl mit dem testen wirklich bis zur nächsten Sperrung warten müssen.
Hi zusammen,
zunächst einmal Danke für das tolle Modul!
Ich würde die Karte gerne verwenden, um sie mir auf mein Handy zu verschicken, sobald ich das Haus verlasse.
Natürlich kann ich den Link verschicken, smarter wäre aber direkt die Karte als Bild.
Irgendeine Idee wie ich das am einfachsten umgesetzt bekomme?
Ich müsste die Karte ja irgendwie als JPG od. ähnliches abspeichern, damit ich sie dann per Telegram verschicken kann.
Danke & Gruß,
Tobi
Hi.
Hm, ich dachte zuerst an Static Maps, aber die scheinen wohl kein Traffic Layer mehr zu können... https://developers.google.com/maps/documentation/static-maps/intro#MapTypes
Ich überleg mal ob eine integration von etwas wie html2canvas geht und Sinn macht.
Dann könnte das Modul das Bild ablegen (und man könnte auch sowas wie ein Timelapse Video davon machen ;) ).
Vielleicht hat ja noch wer eine andere Idee.
Hallo, ich habe am Wochenende das Modul TRAFFIC eingebunden was ansich auch alles sehr reibungsfrei geklappt hat. Jedoch habe ich festgestellt, dass wenn ich pro Tag zwei Zeiträume mit updateSchedule definiere anscheinend kein update gemacht wird. Wurde das schon mal getestet bzw. hat jemand auch diese Erfahrung gemacht:
Update klappt nicht:
attr Verkehr updateSchedule 7-9 1 300|16-18 1 300|7-9 2 300|16-18 2 300|7-9 3 300|16-18 3 300|7-9 4 300|16-18 4 300|7-9 5 300|16-18 5 300
Update klappt:
attr Verkehr updateSchedule 7-9 1 300|7-9 2 300|7-9 3 300|7-9 4 300|7-9 5 300
Hallo.
Danke für den Report, dachte ich hätte es konfiguriert wie im ersten Beispiel, hab ich aber nicht.
Werde ich mir ansehen.
Lg
Hallo, bin gestern auf das Modul gestoßen und finde es Klasse. Eine Kleinigkeit stört mich und ich wollte mal fragen ob man den Umstand, dass Schriftzeichen wie z.B. "ß" nicht richtig dargestellt werden. Gibt es da eine Möglichkeit?
Aufgrund des "Sonderzeichen" '?" können keine Nachrichten über TelegramBot verschickt werden. Wenn ich das Attribut mit dem "ß" außen vorlassen werden die Nachrichten verschickt!
Hi.
Die Sonderzeichen in Readings setze ich auf meine Liste. Müsste man eigentlich mit dem korrekten encoding, vermute mal utf8, lösen können.
Das Problem mit Telegram hab ich in einem anderen Modul auch mit einem "ö".
Kannst du noch mal genauer beschreiben was du machst, bzw. was du verschicken möchtest? Am besten so, dass ich es reproduzieren kann.
Danke.
Edit: Okay, glaube bin schon einen Schritt weiter.
Habe eine Route definiert bei der die Alternatives über eine Straße mit ß gehen.
Mit meinem fix bekomme ich nun ein sauberes Reading:
READINGS:
2018-03-02 13:50:24 alternatives Erhardtstraße - 10 mins, Rosenheimer Str. - 10 mins, Erhardtstraße and Regerstraße - 10 mins
Was jetzt noch nicht geht, ist z.b.
set telegram msg [traffic:alternatives]
... vermutlich weil im Reading ein ß enthalten ist.
Habe ich damit alles korrekt addressiert/verstanden?
nochmal EDIT:
im Telegram Modul muss man nur utf8special setzen:
attr telegram utf8Special 1
Dann geht auch eine telegram msg mti ß,ü,ö etc :)
lg
ps: @aaameyer: habe deinen Request nicht vergessen, bist als nächster dran ;)
Zitat von: aaameyer am 12 Februar 2018, 09:14:42
... habe ich festgestellt, dass wenn ich pro Tag zwei Zeiträume mit updateSchedule definiere anscheinend kein update gemacht wird.
Wurde das schon mal getestet bzw. hat jemand auch diese Erfahrung gemacht:
Hi.
Ich habe das nun mal nachgebaut und muss sagen, bei mir tut das eigentlich wie gewünscht.
Meine Vermutung ist, dein update Interval in der DEF des Devices ist relativ hoch. Das könnte dazu führen, dass das Device innerhalb des updateSchedules nicht aktualisiert wird und dadurch das updateSchedule-Fenster "verpasst".
Ich hab mal was eingebaut, was das nächste update per DEF/Interval gegen den nächsten updateSchedule vergleicht und ggf den updateSchedule ersetzt.
D.h. zum Beispiel per DEF Interval würde er eigentlich erst wieder um 20:00 laufen, der updateSchedule würde allerdings von 17:00 bis 18:00 laufen.
Aktuell würde er dann erst wieder um 20:00 laufen, nach dem updateSchedule -> fail.
Die Version im Anhang setzt das nächste Update automatisch auf 17:00 (anstatt 20:00) und ab da läuft dann der updateSchedule.
Also, 1.3.7-preSVN im Anhang:
- fix updateSchedule
- fix utf8 decoding vom Google return -> Sonderzeichen in Readings
Freue mich auf eure Testergebnisse.
lg
alles richtig wiedergegeben!!!
Ich verwende für Telegram u.a. das Reading "alternatives" und dort ist das 'ß' drin.
Funktioniert mit der neuen Version einwandfrei!
Ich muss aber dennoch in Telgram utf8special auf 1 setzten. Vorher ging die Nachricht nict raus
DANKE
Hallo,
bei mir wird die Farbe des Hin- und Rückwegs in rot angezeigt.
defmod gmaps TRAFFIC APIkey 600
attr gmaps userattr GoogleMapsCenter GoogleMapsStroke GoogleMapsZoom end_address includeReturn outputReadings start_address verbose
attr gmaps GoogleMapsStroke #00FF00,6,50,#FF0000,5,50
attr gmaps GoogleMapsZoom 13
attr gmaps includeReturn 1
attr gmaps outputReadings text
attr gmaps room Geo
Die Daten von Start- und Zieladresse habe ich entfernt.
Gruß
TWART016
Hi.
Funktioniert bei mir (1.3.7-preSVN) mit meiner fiktiven Teststrecke.
Habe den Stroke nur etwas dicker gemacht, aber ist grün und rot, siehe Anhang.
list traffic:
...
DbLogInclude .*
GoogleMapsDisableUI 1
GoogleMapsSize 650,450
GoogleMapsStroke #00FF00,16,50,#FF0000,15,50
GoogleMapsStyle night
GoogleMapsTrafficLayer 0
GoogleMapsZoom 9
alternatives 1
end_address Hiendlmayrstraße, 81541 München
includeReturn 1
outputReadings text min
returnWaypoints 48.147875,11.615923
start_address Ludwigsbrücke, 80331 München
updateSchedule 14-60 5 60
Wann wird die Version 1.3.7 offiziell übernommen? Mit jedem update erhalte ich wieder die Version 1.3.6
Hallo Zusammen,
gibt es irgendwie eine Möglichkeit als Start-Adresse Längen- und Breitengrad anzugeben anstatt einer Adresse?
VG, Thomas
@ToM_ToM
Hallo,
die Möglichkeit gibt es für die Attribute "start_address", "waypoints" und "end_address".
start_address 51.123456,7.123456
waypoints 51.234567,7.234567|51.345678,7.345678
end_address 51.456789,7.456789
Viele Grüße
Zitat von: bjoernbo am 14 März 2018, 06:09:54
Wann wird die Version 1.3.7 offiziell übernommen? Mit jedem update erhalte ich wieder die Version 1.3.6
Kommt ab morgen per update.
Lg
Zitat von: jmike am 02 März 2018, 14:59:57
Ich hab mal was eingebaut, was das nächste update per DEF/Interval gegen den nächsten updateSchedule vergleicht und ggf den updateSchedule ersetzt.
D.h. zum Beispiel per DEF Interval würde er eigentlich erst wieder um 20:00 laufen, der updateSchedule würde allerdings von 17:00 bis 18:00 laufen.
Aktuell würde er dann erst wieder um 20:00 laufen, nach dem updateSchedule -> fail.
Die Version im Anhang setzt das nächste Update automatisch auf 17:00 (anstatt 20:00) und ab da läuft dann der updateSchedule.
Hallo, vielen Dank für den Fix! Leider kam ich nicht direkt dazu die neue Funktion ausführlich zu testen, daher mein spätes Feedback:
Das Problem ist jetzt teilweise gelöst und zwar läuft der updateSchedule wie gewünscht, solange ich FHEM in dem Zeitfenster von updateSchedule neu starte, also der initiale 24 Stunden trigger von mir im updateSchedule Zeitfenster liegt.
Optimal wäre es natürlich wenn man nicht darauf achten müsste wann FHEM gestartet wird, da es ja auch mal nach einem Stromausfall unbemerkt passieren kann.
Ich habe gestern eine Mail von Google(?) hinsichtlich einer ab dem 11. Juni wirksamen Änderung der Nutzungsbedingungen für "Google Maps Platform projects" erhalten. Sieht authentisch aus - habt Ihr auch so etwas bekommen oder ist das ein Phishing-Versuch? Außer dem 98_TRAFFIC-Modul kommt bei mir nach bestem Wissen und Gewissen nichts anderes als Auslöser in Frage.
Falls es authentisch ist: Wie geht Ihr damit um? Ich mag meine Verkehrsanzeige im TabletUI, aber ob ich bereit bin, Google dafür Daten für ein eventuelles Billing zu spendieren, steht auf einem anderen Blatt.
Die Mail ist schon echt, siehe hier: https://forum.fhem.de/index.php/topic,87491.0.html
Danke, den anderen Thread habe ich dann (=zu spät) auch gesehen.
Hallo,
ich habe etwas Zeit gefunden und das Modul Traffic installiert. Nach der Beschreibung war es genau das, nachdem ich schon länger gesucht habe. Die Installation verlief ohne Fehlermeldungen. API-Key generiert. Abschließend in Fhem definiert. Update in Traffic funktioniert: Die aktuellen Streckendaten werden in den Readings angezeigt. Allerdings die Karte wird nicht richtig angezeigt: Es erscheint für ca 2 sek. die GoogleMaps Karte mit Streckenanzeige, dann verschwindet die Karte und es kommt das graue Feld mit dem Text "Hoppla, ...".
Ich finde einfach keinen Weg die Karte dauerhaft darzustellen...
Das Karten- Anzeigeproblem ist unabhängig vom Browser (Firefoe, IE, Chrome) oder Endgerät (PC, Tablet, Handy) vorhanden.
Kann mir jemand einen Tipp geben, wo ich suchen muss...? :-[
Ist die akt. Karte als Gif etc zwischengespeichert und wo kann ich die ggf. finden?
Vielen Dank für eure Unterstützung
Jörg
Hi Jörg.
Schau mal in eine Fehlerconsole vom Browser. Ich vermute deine Google API ist nicht korrekt freigeschaltet.
lg
Hallo jmike,
Danke für Deinen Hinweis. In der Konsole konnte ich sehen, das es Probleme beim Aufruf von "Maps JavaScript" gab. Dann war klar, das ich die "Maps JavaScript API" noch dem API-Key zuordnen musste.
Vielen Dank.
Welche Einschränkungen für den API-Key (GoogleAPIS) sind sinnvoll, bzw. hast Du gewählt, ohne das es zu Funktionseinschränkungen kommt?
lg
hmm hab seit ein paar Tagen fehle rim fhem log:
018.08.23 20:50:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
2018.08.23 20:50:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
2018.08.23 20:50:36 1: PERL WARNING: Use of uninitialized value in join or string at ./FHEM/98_TRAFFIC.pm line 626.
2018.08.23 20:50:36 1: PERL WARNING: Use of uninitialized value in join or string at ./FHEM/98_TRAFFIC.pm line 626.
2018.08.23 20:50:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 627.
2018.08.23 20:50:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 627.
2018.08.23 20:50:36 1: TRAFFIC: (traffic_ios) did not receive duration_in_traffic, not able to calculate delay
2018.08.23 20:50:36 1: TRAFFIC: (traffic_ios) did not receive duration_in_traffic, not able to calculate delay
2018.08.23 20:50:36 3: deletereading traffic_ios error_message : Deleted reading error_message for device traffic_ios
Oh sehe gerade:
You have exceeded your daily request quota for this API. If you did not set a custom daily request quota, verify your project has an active billing account: http://g.co/dev/maps-no-account
Ich hatte 3 abfragen 2x 600 und 1x 200 ich denke das war zu viel :) Mal sehen ob der Fehler morgen weg ist.
Zitat von: ChrisW am 23 August 2018, 20:56:01...verify your project has an active billing account: http://g.co/dev/maps-no-account...
Du müsstest eine Ankündigung (oder sogar mehrere) von Google per Mail bekommen haben, dass ein aktivierter Billing-Account seit ein paar Monaten auch für die bisherigen "free" Services notwendig ist.
Der muss zwar aktiv sein, wird dann aber einfach nicht belastet, wenn man innerhalb der Toleranzen bleibt, die Google einem kostenlos zur Verfügung stellt.
Schau doch mal in Deine Mails, ob Du das ggf. übersehen hast oder ob es einfach die vielen Zugriffe waren, die das getriggert haben :)
Hmm
Letzte 30 Tage: Directions API 33.831
E-Mails habe ich keine bekommen. Wenn nicht Automatisch habe ich da kein Konto Hinterlegt :D
Edt: Habe oben die Kostenlose Testversion gestartet und mal 20€ Budget/Monat erstellt. Hoffentlich ziehen die nicht einfach was ein ..
Hi.
Ich hab 4 Traffic Devices, mit jeweils unterschiedlichen Update Intervallen aber update-schedules.
Komme in 30 Tagen auf 4400 Anfragen, und damit unter dem Free-Limit von Google.
Eventuell mal deine Config überarbeiten und z.b. vermeiden auch Nachts jede Minute ein Update zu machen.
Das handling vom Modul ist trotzdem nicht optimal.. naja..
Aus eigener (schmerzlicher) Erfahrung, ganz wichtig:
Wenn ihr ein bestehendes Konto von vor der Umstellung auf Rechnungskonto habt,
lasst die Finger von der Einstellung bei Abrechnung und deaktiviert auf gar keinen Fall die Abrechnung.
Danach geht nur noch eine Abfrage am Tag und danach gibt es kein Zurück :-[ :'(
Bei mir war es das dann mit dem Traffic Modul.
Ich vermute, das man als "ALt-Nutzer" ein temporäres Rechnungskonto bekommen hat.
Lege ich jetzt über einen anderen Google-Account ein neues Projekt an, bleibt nur ide Angabe von Rechnungsinformationen.
Hatte vorher etwa 20.000 Abfragen pro 30 Tage und hatte die Mails von Google bisher ignoriert.
Also nochmal, Finger weg von Abrechnung deaktivieren!
Ansonsten kann ich nur sagen, das Modul ist super, aber Danke Google für deine Geldgier...
Guter Hinweis. Mal überlegen was alles in einer Sektion im Wiki dazu stehen müsste...
Zitat von: homer013 am 26 August 2018, 12:22:14...
Danach geht nur noch eine Abfrage am Tag und danach gibt es kein Zurück :-[ :'(
Bei mir war es das dann mit dem Traffic Modul.
...
Kann ich so nicht nachvollziehen, wenn man das hier liest:
https://cloud.google.com/maps-platform/pricing/?hl=de
Oder das hier:
https://cloud.google.com/maps-platform/pricing/sheet/
Dort steht zwar, dass die Preisänderungen sich auf die APIs von Maps, Routes und Places beschränkt. (Man hat praktisch ein Budget von 200$ zur freien Verfügung, das genutzt werden kann, ehe es verrechnet wird.)
Aber laut Google reicht das für: ~ 10.000 Aufrufen der Places API bzw. 40.000 Routes API Aufrufen oder > 25.000 Maps API Aufrufen.
Warum sollte dann für eine API nur noch eine einzige Abfrage am Tag zugelassen werden?
Was für einen Service brauchst Du denn so oft, dass Du den rund um die Uhr alle 2-3 Minuten aktualisieren musst? Ich habe auch 2 Traffic Module und komme bei weitem nicht an 20k Aufrufe / Monat.
Mir gefällt auch nicht, dass man für jedes (neue) Konto jetzt die Bezahl-Informationen hinterlegen muss... Aber wenn man sieht, wie häufig die Dienste kostenlos benutzt werden, war es nur eine Frage der Zeit, bis Google da etwas macht.
Das Problem ist das ich kein Abrechnungskonto mehr habe. Wenn ich jetzt in den"Genuss" der freien 200 Dollar kommen möchte muss ich ein Konto hinterlegen. Also volles Programm mit Kreditkarte Adresse usw.. daher auch meine Vermutung daß die altnutzer ein fiktives Konto bekommen haben. Deshalb mein Rat nicht die Abrechnung zu deaktivieren. Ohne die gibt es nur noch eine Abfrage pro Tag.
Ich glaube fast, dass es bei der Umstellung ein paar "Zwischenstufen" gibt bzw. gegeben hat.
Für mein FHEM Traffic Projekt habe ich (zumindest laut Google API Console) einen Billing Account - aber ohne, dass ich damals beim Umstellen meine Daten angegeben habe.
Gerade nochmal geschaut: 2 Traffic Instanzen brauchen bei mir ~ 5k Aufrufe in 30 Tagen und werden somit mit 0$ auf den Billing Account belastet.
na geil von Umstellung bis jetzt schon ca. 10€ Verbraten .. unglaublich wie teuer das ist ..
Hab nun mal die Updates angepasst. Mit Shedule hab ich mich noch nicht befassen können.
Zitat von: ChrisW am 27 August 2018, 13:19:50
na geil von Umstellung bis jetzt schon ca. 10€ Verbraten .. unglaublich wie teuer das ist ..
Tatsächlich "verbraten" (also insgesamt 210€ im Monat) oder mit den freien 200$ verrechnet? :-[
Denn wie gesagt: Ich komme mit 2 Traffic Instanzen ohne Schedule auf 5k "Directions" API Zugriffe in 30 Tagen (was ca. 50$ entspricht, die von den freien 200$ abgezogen werden).
Da sind scheinbar gut 20k Zugriffe pro Monat noch möglich, ohne, dass man etwas zahlt.
Pro Monat ? Hab gedacht 200 pro Jahr ?
Also ca. 10€ habe ich in den paar Tagen nun verbraucht hab dort Limits gesetzt weil ich dachte man hat nur 200€ / Jahr Free.
Hi,
auch ich stand gerade vor dem Problem mit der neuen Abrechnung bei den google api's. Folgendes musste ich machen:
1. Einen "Billing Account" anlegen. Der war bei mir zwar schon da, aber es haben ein paar Angaben gefehlt (Rechnungsadresse und aktuelle Kreditkarteninfo)
2. Dem Projekt "FHEM Verkehr" (so heißt das API Projekt bei mir) den Rechnugsaccount hinzufügen
Das hat nun folgende Auswirkungen:
1. Ich habe 300$ Guthaben für 365 Tage Testzeitraum
2. Ich habe jeden Monat 200$ frei für Anfragen über alle API's
Informationen dazu findet man hier:
https://developers.google.com/maps/documentation/directions/usage-and-billing?hl=de
Viele Grüße vom gent
Zitat von: ChrisW am 27 August 2018, 18:15:05
Pro Monat ? Hab gedacht 200 pro Jahr ?.
Pro Monat - siehe auch meine Links zuvor.
Zitat1. Ich habe 300$ Guthaben für 365 Tage Testzeitraum
Was meinst du damit?
Das beißt sich irgendwie mit
Zitat2. Ich habe jeden Monat 200$ frei für Anfragen über alle API's
Zu den
365 Tagen konnte ich bei google nichts finden.
VG, Thomas
Hallo Thomas,
also: Die erste Info findest Du hier https://cloud.google.com/maps-platform/pricing/
Dort gibt's auch einen Preisrechner.
Die 300$ bekommst Du, wenn Du Dich - wie bisher auf der GCP (google cloud platform) anmeldest:
https://cloud.google.com/free/
Die gelten aber nur für 365 Tage.
D.h.: Wenn Du mehr als die 200$ directions api Anfragen generierst (siehe Preisrechner oben), dann zahlst Du trotzdem nichts, solange Dein Guthaben von 300$ in den ersten 365 Tagen noch nicht aufgebraucht ist.
Im Grunde genommen ändert sich fast nix gegenüber früher, wo es noch keine "billing" gab. Wenn Du natürlich zig Traffic Devices hattest, die Du jeden Tag jede Minute abgefragt hast, dann fallen da jetzt Kosten an. Also solltest Du das Attribut "upadteSchedule" und die Anzahl an Traffic Devices mal prüfen.
Und: Laut google wird nichts berechnet, wenn Du die Limits überschreitest, bevor Du nicht ausdrücklich zugestimmt hast. Im schlimmsten Fall funktioniert das Traffic Device nicht mehr, aber Du landest nicht in der Schuldenfalle ;-)
Viele Grüße vom gent
Danke über den Link steht auch 200 / Monat. Bin mal gespannt..
Wie stelle ich upadteSchedule den ein für 2 Zeitfenster ?
Mo-Fr 6:30-10:00 und 16:00 bis 18:30 das er dort alle 5 Minuten abfragt. Andernfalls reicht mir alle 30 Minuten
Hi.
Musst jeden Zeitraum einzeln angeben, ggf siehe wiki ;)
attr traffic updateSchedule 6-10 1 300|16-19 1 300|6-10 2 300|16-19 2 300|6-10 3 300|16-19 3 300|6-10 4 300|16-19 4 300|6-10 5 300|16-19 5 300
Und dann eben die Device Def auf: <key> 1800
Hi, ich habe seit gestern Nacht keine Aktualisierung der Werte delay_min und return_delay_min. Allerdings gibt es nach wie vor eine Differenz aus (return_)duration_min und (return_)duration_in_traffic_min. Timestamp ist so aktuell wie die anderen.
Im Log (Verbose 1) stehen keine Fehler. Verändert habe ich auch nichts.
Hast Du evtl. eine Idee?
Gruß
Ronny
//Nachtrag:
Im Moment sind die ...duration_in_traffic_min Werte sogar niedriger als die ...duration_min Werte.
Hallo zusammen,
hat ds inzw. jemand geschafft die Karte via push aufs Handy zu senden?
Gruß,
Tobi
@FHEMAN: ist das Problem noch akut? Schätze mal nicht...
Das Phänomen, dass man trotz Verkehr kürzere Fahrzeit hat als normal, scheint öfter aufzutreten.
Haben wir hier im Thread auch schon ein paar Mal diskutiert. Ich glaube der Konsens war, dass duration_min ein von Google ermittelter Durchschnittswert ist und duration_in_traffic durch real-time Daten der Handys bestimmt wird.
Unter umständen ist man dann auch mal schneller unterwegs. Genau weiß das aber vermutlich nur Google, die Zahlen gibt das Modul nur weiter.
@onkel-tobi: Ich hatte mal verschiedene Ansätze durchprobiert, aus der Website ein Bild zu machen (html2canvas und so zeug) hat aber leider nicht geklappt und Google hat das derzeit auf den Static Maps nicht angeboten.
Ich werde bei Gelegenheit mal schauen obs da Änderungen gibt, die eine Lösung versprechen.
Hi jmike,
ich konnte zuletzt keine Probleme mehr feststellen. Anscheinend war das ein temporäres Aktualiasierungsproblem.
Viele Grüße
Auf bitte von Mike meine Anfrage aus dem Thread (https://forum.fhem.de/index.php/topic,96062.0.html) hier nochmal:
"Problem":
habe bei jedem Neustart den folgenden Log-Eintrag:
PERL WARNING: Use of uninitialized value $unit in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 823.
Antwort Mike:Zitat von: jmike am 18 Januar 2019, 14:26:12
Hi.
Die Frage wäre vermutlich besser im TRAFFIC Thread aufgehoben (https://forum.fhem.de/index.php/topic,56045.360.html).
Die Meldung ist zwar nicht normal, aber auch unkritisch. Kommt aus einem Logaufruf ab Loglevel 5. D.h. die siehst du normalerweise gar nicht.
Warum du die siehst ist mir nicht 100%tig klar, Verursacher ist auf jeden Fall die DbLog_split Funktion. Um das festzunageln müsste ich jetzt wissen in welcher IF-Abzweigung er sich bei dir befindet.
Kannst ja mal verbose auf 5 stellen, ein update machen und dann alles ausm Log holen was anfängt mit:
TRAFFIC: (<dein-device-name>) TRAFFIC_DbLog_split...
Ansonsten ein paar Tage warten bis ichs nachstellen konnte.
lg
Und Infos von mir:
Zitat von: Floriky am 18 Januar 2019, 15:01:52
AKann ich das irgendwie Verschieben? Sonst zitier ich deine Antwort einfach in dem Thread (sofern das geht).
Also hier das gewünschte Log:
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event status: OK on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning status, OK, text
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event eta: 15:19:03 on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning eta, 15:19:03, time
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event alternatives: L1208 - 21 Minuten on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning alternatives, L1208 - 21 Minuten, text
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event delay: 0 min on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning delay, 0 min, text
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event distance: 14,9 km on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning distance, 14,9 , km
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event state: OK on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning state, OK, text
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event summary: L1208 on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning summary, L1208, text
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event duration_in_traffic: 21 Minuten on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning duration_in_traffic, 21 Minuten, text
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event duration: 21 Minuten on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning duration, 21 Minuten, text
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event time_to_leave: 9 on device OUT_TRAFFIC_ST_SA
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split auto detect unit for reading time_to_leave value 9
2019.01.18 14:57:53 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning time_to_leave, 9,
...
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event eta: 15:19:24 on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning eta, 15:19:24, time
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event alternatives: L1208 - 21 Minuten on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning alternatives, L1208 - 21 Minuten, text
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event status: OK on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning status, OK, text
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event duration_in_traffic: 21 Minuten on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning duration_in_traffic, 21 Minuten, text
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event duration: 21 Minuten on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning duration, 21 Minuten, text
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event distance: 14,9 km on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning distance, 14,9 , km
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event delay: 0 min on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning delay, 0 min, text
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event state: OK on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning state, OK, text
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event summary: L1208 on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning summary, L1208, text
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split received event time_to_leave: 9 on device OUT_TRAFFIC_ST_SA
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split auto detect unit for reading time_to_leave value 9
2019.01.18 14:58:15 5: TRAFFIC: (OUT_TRAFFIC_ST_SA) TRAFFIC_DbLog_split returning time_to_leave, 9,
Hoffe das hilft dir weiter. Vielen DANK für deine Mühen!
Hallo,
ich habe seit 2 Tagen permante Logeinträge vom Traffic-Modul:
2019.06.30 21:04:11 1: PERL WARNING: Use of uninitialized value in join or string at ./FHEM/98_TRAFFIC.pm line 626.
2019.06.30 21:04:11 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 627.
2019.06.30 21:04:11 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
gefolgt von:
2019.06.30 20:54:09 1: TRAFFIC: (TrafficMaps_XXX) did not receive duration_in_traffic, not able to calculate delay
2019.06.30 20:54:09 3: deletereading TrafficMaps_XXX error_message : Deleted reading error_message for device TrafficMaps_XXX
Hat jemand das gleiche Problem?
Viele Grüße
Andreas
Zitat von: somansch am 30 Juni 2019, 21:17:34
Hallo,
ich habe seit 2 Tagen permante Logeinträge vom Traffic-Modul:
2019.06.30 21:04:11 1: PERL WARNING: Use of uninitialized value in join or string at ./FHEM/98_TRAFFIC.pm line 626.
2019.06.30 21:04:11 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 627.
2019.06.30 21:04:11 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
gefolgt von:
2019.06.30 20:54:09 1: TRAFFIC: (TrafficMaps_XXX) did not receive duration_in_traffic, not able to calculate delay
2019.06.30 20:54:09 3: deletereading TrafficMaps_XXX error_message : Deleted reading error_message for device TrafficMaps_XXX
Hat jemand das gleiche Problem?
Viele Grüße
Andreas
Hat sich erledigt. Ich musste das Google Cloud Konto upgraden ;)
Hallo jmike,
seit heute vormittag, ca. 10:50 bekomme ich keine updates mehr. Im state steht: OVER_QUERY_LIMIT.
An zu vielen Abfragen kann es eigentlich nicht liegen; ich frage nur engmaschiger ab, wenn bei mir üblicherweise eine Fahrt ansteht. Es gibt noch weitere Strecken, da ist es dasgleiche.
Anbei ein list des Devices.
Internals:
APIKEY ***GEHEIM***
CFGFN ./FHEM/Traffic.cfg
DEF ***GEHEIM*** 7200
FUUID 5c430dcd-f33f-b139-90f8-6b657caa5fad916b
INTERVAL 7200
NAME DormagenNachhause
NR 150
STATE 35 Min.
TRIGGERTIME 1563209176.88166
TRIGGERTIME_FMT 2019-07-15 18:46:16
TYPE TRAFFIC
UPDATESCHEDULE 16-20 1 150
VERSION 1.3.7
OLDREADINGS:
READINGS:
2019-07-15 18:43:47 alternatives -
2019-07-15 08:00:00 average_delay_min 2.5
2019-07-15 10:46:12 average_duration_in_traffic_min 32
2019-07-15 10:46:12 average_duration_min 32.5
2019-07-15 10:46:12 delay_min 0
2019-07-15 10:46:12 duration_in_traffic_min 33
2019-07-15 10:46:12 duration_min 33
2019-07-15 18:43:47 durationtrafficmin 35
2019-07-15 10:46:12 eta 11:19:24
2019-07-15 18:43:47 state OVER_QUERY_LIMIT
2019-07-15 18:43:47 status OVER_QUERY_LIMIT
2019-07-15 10:46:12 summary A1
helper:
GoogleMapsCenter ,
Poly
bm:
TRAFFIC_Attr:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 15.07. 10:16:04
max 0.000315189361572266
tot 0.000315189361572266
mAr:
set
DormagenNachhause
waypoints
51.027582, 7.055030
TRAFFIC_Set:
cnt 49
dmx -1000
dtot 0
dtotcnt 0
mTS 15.07. 18:16:14
max 0.000379085540771484
tot 0.00563430786132812
mAr:
HASH(0x555c9feecec8)
DormagenNachhause
Attributes:
GoogleMapsCenter 51.0419249060594,6.942634289062548
GoogleMapsStroke #001aff,6,50,#FF0000,1,100
GoogleMapsTrafficLayer 1
GoogleMapsZoom 12
disable 0
end_address Kuhlmannweg 8, 51375 Leverkusen
icon car
outputReadings min, average
room Mobile,Traffic
start_address 51.081735390574345,6.84137642
stateFormat = 40
"red":"black")}'>[$name:durationtrafficmin] Min.
updateSchedule 16-20 1 150|16-20 2 150|16-20 3 150|16-20 4 150|16-20 5 150|8-16 1 1800|8-16 2 1800|8-16 3 1800|8-16 4 1800|8-16 5 1800
userReadings durationtrafficmin {round(ReadingsVal($name,"duration_in_traffic_min",0)+2,0)}
userattr GoogleMapsCenter GoogleMapsStroke GoogleMapsTrafficLayer GoogleMapsZoom disable end_address icon outputReadings start_address stateFormat updateSchedule userReadings verbose waypoints
verbose 1
waypoints 51.027582, 7.055030
Viele Grüße Gisbert
Hast du bereits dein Google Cloud Konto aktualisiert?
Hallo somansch,
das war's wohl, bei Google Cloud Platform steht jetzt:
Ihre kostenlose Testversion ist abgelaufen, aber mit der Google Cloud Platform kann es weitergehen. Wenn Sie die Dienste weiterhin nutzen möchten, führen Sie bis zum 14. August 2019 ein Upgrade durch.
Wenn ich auf die angebotenen weiteren Informationen klicke, erhalte ich keine eindeutige Aussage, ob der Dienst für mich weiter kostenlos ist.
In der monatlichen Rechnung für Juni steht:
Anzahl: 8242
Betrag: 73,95 Euro,
wobei dieser dann auf Null gesetzt wurde.
Ich frage mich jetzt, ob ich in der Zukunft etwas zahlen müsste. Auf jeden Fall wäre es mir keine 74 Euro per Monat wert.
Wie ist deine Meinung?
Viele Grüße Gisbert
Hi Gisbert
Die Meldung OVER_QUERY_LIMIT ist eigentlich recht eindeutig. Entweder zu viele requests pro Sekunde, oder zu viele pro Tag.
Was steht denn bei dir im Google Account? Wie viele API Abfragen hast du denn pro API Key?
Ich werde in der neuen Version noch einen API counter einbauen.
Dann kann man im Device sehen wie viel Querys abgesetzt wurden.
lg
...Ich hoffe, die Info ist so noch aktuell und akkurat.
Google gibt dir, wenn ein Abrechnungskonto erstellt wurde, ein monatliches Kontingent von 200$ (~177€) kostenlos.
Damit wäre deine aktuelle Konfiguration inkludiert und im Prinzip umsonst.
Nach Registierung gibts noch mal 300$ für alles, was darüber hinaus geht. Zumindest fürs erste Jahr.
Angeblich gibts keine Belastung ohne ausdrückliche Infos seitens Google, darauf verlasse ich mich persönlich aktuell - denn gut und übersichtlich finde ich das Konstrukt nicht wirklich :/
Hallo jmike,
danke für die Info; dann wage ich es mal und hoffe, dass es kostenlos bleibt.
Viele Grüße Gisbert
Ich habe auch folgenden Fehler, den ich aber nicht auf die Abrechnung zurück führen kann. Ich nutze den travelMode transit und mir ist nur aufgefallen, wenn ich die Abfrage direkt im Browser mache, dass mir keine duration_in_traffic zurück gegeben wird (weil wahrscheinlich nicht vorhanden). Bei travelMode car wird dies schon zurückgegeben. Fehlt das in der Implementierung?
2019.09.13 08:52:53 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
2019.09.13 08:52:53 1: TRAFFIC: (TrafficGoogleZurArbeit) did not receive duration_in_traffic, not able to calculate delay
Danke für den report.
Die WARNING kann/werde ich rausmachen mit der nächsten Version, ist nur kosmetisch.
Die zweite Meldung ist, wie korrekterweise vermutet, weil Google einen benutzten Wert nicht zurück gibt. Möglich dass das für "transit" fehlt.
Muss ich mal schauen ob es Sinn macht, die Berechnung bei "transit" komplett auszulassen bzw. die Meldung hochzustufen dass sie nicht unter verbose 1 auftaucht. Soweit alles works-as-designed ;)
Lg
Erst mal vielen Dank für das tolle TRAFFIC Modul!
Zum update Mechanismus hätte ich eine Frage:
Ist es richtig, dass das Update IMMER im Raster des im DEF angeführten Intervalls ausgeführt wird und mittels updateSchedule zu bestimmten Zeiten anpassbar ist?
Ich versuche nämlich grade das ganze so zum Laufen zu bekommen, dass er ausschließlich in den updateSchedule Zeiträumen updatet und außerhalb gar nicht.
Wenn ich im DEF als Intervall "0" angebe, scheint das Modul "deaktiviert" zu sein und ignoriert die updateSchedule Zeiträume.
Ich nehme an, dass das so mit dem Modul nicht geht und ich mittels z.B. DOIF ein Update von extern anstoßen muss?
Gibt es denn keine alternative für diese GoogleAPI geschichte? Von mir wollten sie nach kurzer Zeit 370€ haben, weil anscheinend massiv Trafficabfragen entstanden. Habe dies dann durch den Support nicht zahlen müssen aber halte mich jetzt von der kostenpflichtigen API Geschichte fern. Dafür kenn ich mich damit zu wenig aus.
Oh. Das sind schlechte Nachrichten zumal ja dann das freie Limit von 360$ auch aufgebraucht war, d.h. >600€ generiert wurde.
Eventuell muss ich das sogar zukünftig im Modul abfangen.
Schade dass Google die APIs nicht auf Abrechnungs-los Konfigurieren lassen.
Wie viele devices mit welchem Intervall hattest du laufen?
Hier noch eine Variante zur Darstellung der Fahrzeiten für alle Pendler denen das mit der Google API zu gefährlich ist bezgl. kosten
define FHEM.Verkehr.HeimArbeit HTTPMOD https://route.api.here.com/routing/7.2/calculateroute.json?app_id=<APP_ID>&app_code=<APP_CODE>&waypoint0=geo!14.382610,10.060540&waypoint1=geo!10.382400,9.246920&mode=fastest;;car;;traffic:enabled 60
attr FHEM.Verkehr.HeimArbeit userattr get01JSON getData reading01JSON reading01Name requestHeader stateFormat
attr FHEM.Verkehr.HeimArbeit reading01JSON response_route_01_summary_trafficTime
attr FHEM.Verkehr.HeimArbeit reading01Name traffictime
attr FHEM.Verkehr.HeimArbeit requestHeader Content-Type: application/json
attr FHEM.Verkehr.HeimArbeit room E-Verteiler
attr FHEM.Verkehr.HeimArbeit stateFormat {sprintf("%02d:%02d:%02d", ReadingsVal($name,"traffictime",0)/3600, ReadingsVal($name,"traffictime",0)/60%60, ReadingsVal($name,"traffictime",0)%60)}
Einfach Account bei her*.com erstellen AppCode , AppID und geo Daten der Waypunkte ändern.
Anschließend bekommt ihr die Fahrzeit als state. Hilfreich für Pendler.
Hallo zusammen,
möglicherweise könnt Ihr mit bei meinem aktuellen Traffiv Thema helfen:
Link: https://forum.fhem.de/index.php/topic,110418.0.html
Beste Grüß
Desyer
Hallo jmike,
besten Dank für deine bisherige Arbeit.
Hättest du Lust, die Möglichkeit zu implementieren, den Basis-Updateprozess auszuschalten (vielleicht mit Intervall 0 oder so in der Richtung)? Die Stoßzeiten reichen mir völlig aus und einen unsinnig hohen Wert einzutragen, so wie ich es aktuell "gelöst" habe ist irgendwie doof :-)
Besten Dank und viele Grüße, Chris
Hi Chris.
Schau ich mir gerne an und mach ein Update/fix für.
Ich hab das Modul auch schon um TomTom Maps erweitert, die sind aktuell noch umsonst.
man kann doch "attr TRAFFIC disable 1" setzen, dann findet kein update prozess statt.
Im Gegensatz zum Setzen eines Attributes geht ein set active/inactive oder auch set disable/enable OHNE Konfigurationsänderung und somit ohne rotes Fragezeichen...
Und kann deshalb eindach programmatisch (z.B. für versch. Uhrzeiten etc.) aktiv und inaktiv setzen...
Gruß, Joachim
Hallo Joachim,
Gehört zwar nicht hierher, aber als generelle Frage fuer mich: Gibts sonst noch einen Nachteil, wenn wenn man eine Konfigurationsaenderung macht? Ich konfiguriere mein FHEM über die attribute dynamisch, z.B 'attr lat lon' fuer die Wettervorherssage zu Hause/im Office, also ueber Geofancy, dann z. B. Enablen/disablen von verschiedenen Services (wie z. B. Traffic, wie Du auch) um nicht zuviel Internet-traffic zu generieren, oder auch 'attr room' dynamisch um meine FHEM-Weboberflaeche zu anzupassen, je nachdem ob ich zu hause bin oder im Office, oder wenn der Fernseher eingeschaltet wird, wird die FHEM-Fernbedienung in den Raum 'Favourites' verschoben, ansonsten ist die nur im Raum 'Multimedia'.
Ich versteh das beim FHEM Neustart, sofern man vorher kein save gemacht hat, die jeweilige Konfig dann nicht gespeichert ist. Man bekommt also nicht automatisch wieder die gleiche Konfig wie vor dem Neustart. Aber da ich die attr Aenderungen in der 99_MyUtils.pm pflege und dort auch dynamisch setze/wegnehme, verliere ich ja nichts.
Da hilft dann eben ein 'save', das man auch nach einer attr aenderung ausfuehren kann (ok, schreibzugriff auf die platte/ssd).
Ansonsten noch ein Nachteil?
Ich weiß zwar nicht wie du die Zustände von Attributen etc. in deiner myUtils über einen fhem Neustart "speicherst" aber wenn du das so machst...
Naja wie du schon schreibst: Änderungen machen und kein save und dann shutdown restart -> letzte gespeicherte Konfig.
Wenn du dann evtl. noch andere Zustände in deiner myUtils hast -> "Merge-Problem" (also wer hat recht ;) )...
Und wenn du einfach immer ein save "nachschiebst" (es gibt ja Events auf Änderung), dann kannst du halt auch mal Dinge speichern, die du eigentlich nicht gespeichert haben wolltest ;)
Aber z.B. beim Wettermodul (gut kommt drauf an welches du hast) kannst du doch die "Koordinaten" dynamisch setzen (set newLocation)...
Und auch andere Module haben entweder disableForInterval, wenn es immer gleiche Zeiten sind oder eben ein set active/inactive...
...was eben KEINE Konfigurationsänderung ist...
EDIT: drum wollte ja chris303 das vermutlich eingebaut haben ;)
Ich sage ja auch nicht, dass ein solches Vorgehen generell "schlecht" ist, man muss halt die "Umstände" und "Risiken" kennen...
...und darf sich halt nicht "wundern" ;)
Gruß, Joachim
OK, danke, dann weiss ich was ich mache und kenne den Beipackzettel...
Zitat von: Jamo am 21 Juni 2020, 12:07:44
OK, danke, dann weiss ich was ich mache und kenne den Beipackzettel...
Ganz genau! Immer auf Sicht fahren ;)
Gruß, Joacim
ich komme hier mit der Suche nicht so richtig klar :(
wie sieht das mit den Farben der Route aus, speziell wenn Return und Alternatives gesetzt ist?
das passt bei mir irgendwie hinten und vorne nicht mit den Beschreibungen (Wiki und commandref) überein.
ganz blöd gefragt, das ist #RRGGBB oder?
Beispiel: #FF0000,#00FF00,#0000FF,#FFFF00,#00FFFF,#FF00FF
die "normale Hinfahrt" erscheint dann extrem fett in leuchtendem Grün, die Rückfahrt in dünnem Grün.
ich hätte erwartet, dass es: Hin1, Hin2, Hin3, Ret1, Ret2, Ret3 oder vielleicht Hin1, Ret1, Hin2, Ret2, Hin3, Ret3 ist aber das klappt so nicht und auch mit "wahllos ausprobieren" komme ich absolut auf kein halbwegs sinnvolles Muster
Den mismatch zwischen wiki und commandref schau ich mir gern an. Danke für den Report.
Zwecks den Farben, beschreibt mal genau was du erreichen willst, und was du aktuell konfiguriert hast.
Dann kann ich dir besser helfen.
naja, was will ich erreichen?
ich habe eine Route hin und zurück, dazu je zwei Alternativen, das macht 6 "Linien".
da möchte ich möglichst mit einem Blick erkennen können, ob die aktuell optimalen Hin und Zurück Strecken auf der "normalen" Route liegen oder davon abweichen. Und welche der Alternativen für den Hin oder Rückweg gelten.
ganz einfaches Beispiel:
ich wohne in Braunschweig und arbeite in Salzgitter. Normal sind das 27km und davon 25km Autobahn. Bei einer Vollsperrung auf der BAB in meiner Richtung müsste ich von Zuhause in die entgegengesetzte Richtung los fahren. Eine Sperrung in der anderen Richtung interessiert mich erst ca. 8 Stunden später ;)
oder wir können es auch kurz machen:
6 Linien: wie gebe ich für diese 6 Strecken die Farbe und Stärke an?!?
Hin1,Hin2,Hin3,Ret1,Ret2,Ret3 scheint es nicht zu sein, Hin1,Ret1,Hin2,Ret2,Hin3,Ret3 auch nicht.
die aktuelle (Test) Einstellung habe ich doch schon genannt:
#FF0000,#00FF00,#0000FF,#FFFF00,#00FFFF,#FF00FF
das führt zu einer fetten, hellgrünen Linie für die optimale Route (hin und/oder zurück kann ich nicht erkennen), dazu ZWEI dünne rote Linien.
wenn ich die Hex-Farbangaben richtig interpretiere (#RRGGBB oder ist das falsch???), dann wäre die "dominante" Linie der zweite Eintrag (#00FF00) in der Liste. Das ist doch schon sehr komisch, warum für die "Hauptlinie" die zweite Stelle? Da könnte man annehmen, dass erst die Hinfahrt "gemalt" und die von der Rückfahrt an zweiter Stelle überschrieben wird? Wäre zwar "unglücklich" aber irgendwie verständlich.
aber noch "verrückter" wird es bei den beiden dünnen roten Linien. Es gibt nur EINEN #FF0000 Eintrag aber ZWEI Linien, spätestens da verstehe ich dann gar nichts mehr...
Wie läuft das eigentlich jetzt aktuell mit Google und Kosten für die Abfragen?
Ist das noch kostenlos oder muss man zahlen?
Zitat von: chunter1 am 16 September 2020, 11:49:42
Wie läuft das eigentlich jetzt aktuell mit Google und Kosten für die Abfragen?
Ist das noch kostenlos oder muss man zahlen?
Oder anders gefragt, gibt es eine kostenlose Alternative?
Also ich hab das bei mir seitdem laufen und bisher kostenfrei, passt also für mich.
Letztlich musst Du es selbst anhand des Kontingents und der Abfragen einschätzen können.
Ronny
FYI, ich arbeite derzeit an der Implementierung der TomTom Maps. Deren API ist derzeit kostenlos aber nicht so powerful wie die von Google.
Die erste Version ist auch schon lauffähig und im Test... stay tuned ;)
Guten Morgen zusammen,
ich hab seit einiger Zeit diesen log Eintrag:
2020.10.13 09:19:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
2020.10.13 09:21:26 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
2020.10.13 09:23:04 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
2020.10.13 09:24:37 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
Sobald ich eine bestimmte "Route" update.
Ich hab insgesamt drei "Routen" in FHEM, eine macht Probleme.
Vielleicht weiß jemand Rat.
vg
pflock_y
Hi.
Da wird die Google Antwort "routes" bearbeitet, die in dem Reading "alternatives" gespeichert werden.
Kannst du mal checken wie das Device in FHEM aussieht bzw. wie das Reading alternatives gesetzt ist im Vergleich zu den anderen TRAFFIC Devices?
Next Step wäre dann mal die JSON Antwort von Google für besagte Route anzuschauen.
Sobald wir wissen was du da von Google bekommst, kann ich das im Code zukünftig abfangen.
Hi,
das reading "alternatives" ist bei allen drei Devices auf "1". meine Vermutung ist, das Reading ist zu lang ??? .
Einziger Unterschied zu den anderen Devices ist der "travelMode"
list ...
Internals:
APIKEY xxxxxxxxxxxx
DEF xxxxxxxxxxxx 28800
FUUID xxxxxxxxxxxx
INTERVAL 28800
NAME TrafficSchule
NR 719
STATE OK
TRIGGERTIME 1602602676.68776
TRIGGERTIME_FMT 2020-10-13 17:24:36
TYPE TRAFFIC
VERSION 1.3.7
OLDREADINGS:
READINGS:
2020-10-13 09:24:37 alternatives Lindenstraße und Wilhelm-Külz-Straße - , Lindenstraße -
2020-10-13 09:24:37 distance 2,2 km
2020-10-13 09:24:37 duration 8 Minuten
2020-10-13 09:24:37 duration_min 8
2020-10-13 09:24:37 state OK
2020-10-13 09:24:37 status OK
2020-10-13 09:24:37 summary Lindenstraße und Wilhelm-Külz-Straße
helper:
GoogleMapsCenter 52.xxxxxxx,13.xxxxxxx
Poly xxxxxxxxxxxxxxxx
Attributes:
GoogleMapsCenter 52.xxxxxxx,13.xxxxxxx
GoogleMapsDisableUI 1
GoogleMapsSize 750,600
GoogleMapsStroke #000000,2,80,#000011,2,80
GoogleMapsTrafficLayer 1
GoogleMapsZoom 15
alternatives 1
end_address Strasse Hausnummer, PLZ Ort
includeReturn 0
language de
outputReadings text min
room Traffic
start_address Strasse Hausnummer, PlZ Ort
travelMode bicycling
userattr GoogleMapsCenter GoogleMapsDisableUI GoogleMapsFixedMap GoogleMapsSize GoogleMapsStroke GoogleMapsStyle GoogleMapsTrafficLayer GoogleMapsZoom alternatives end_address includeReturn language outputReadings raw_data returnWaypoints start_address stateReading travelMode updateSchedule userReadings verbose waypoints
verbose 0
Sehr gut. Ich bau das mal nach und sag Bescheid.
Schätze aber "bicycle" verändert den Google Return etwas.
Das Reading passt übrigens, "1" ist das Attribut ;)
READINGS:
2020-10-13 09:24:37 alternatives Lindenstraße und Wilhelm-Külz-Straße - , Lindenstraße -
Hi,
habe seit 4.10.2020 folgendes im log:
2020.10.16 07:19:12 1: TRAFFIC: (xxxx) decode_json on googles return failed, cant continue
2020.10.16 07:19:12 1: TRAFFIC: (xxxx) TRAFFIC doUpdate returned an error "API error" will schedule a retry in 5 seconds
Gab es eine Änderung, von der ich nix mitbekommen habe? Seit der Änderung der Abrechnungsbedingungen habe ich auch am google Konto bzw. am Device nichts mehr gemacht.
Viele Grüße
Moin,
gibt es was neues zum log Eintrag
2020.11.11 09:06:21 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_TRAFFIC.pm line 624.
vg
pflock_y
Zitat von: chunter1 am 16 September 2019, 15:11:23
Erst mal vielen Dank für das tolle TRAFFIC Modul!
Zum update Mechanismus hätte ich eine Frage:
Ist es richtig, dass das Update IMMER im Raster des im DEF angeführten Intervalls ausgeführt wird und mittels updateSchedule zu bestimmten Zeiten anpassbar ist?
Ich versuche nämlich grade das ganze so zum Laufen zu bekommen, dass er ausschließlich in den updateSchedule Zeiträumen updatet und außerhalb gar nicht.
Wenn ich im DEF als Intervall "0" angebe, scheint das Modul "deaktiviert" zu sein und ignoriert die updateSchedule Zeiträume.
Ich nehme an, dass das so mit dem Modul nicht geht und ich mittels z.B. DOIF ein Update von extern anstoßen muss?
Hallo, erstmal vielen Dank für das tolle Modul!
Wenn ich nichts übersehen habe, dann gab es zu diesem Problem keine Antwort bzw. keine Lösung. Und da ich das gleiche Problem habe, möchte ich einmal fragen, wie ich Traffic so einstellen kann, dass es eben nur während des updateSchedules aktualisiert?
Moin,
habe jetzt nicht die ganze Unterhaltung verfolgt, aber ein Ansatz wäre doch, das Traffic-Device mit den Wunschabfrageparametern zu erstellen und dann über ein at/DOIF/notify das Attribut "disable" zu ändern, oder aber einen immens großen/langen Standardabfrageintervall zu definieren und dann mittels den "updateSchedule" Zeiten zu arbeiten.
Gruß
Danny
Guten Morgen,
@moskito vielen Dank für die Vorschläge mit DOIF und Co. Wollte eigentlich den internen Mechanismus nutzen, wenn es schon einen gibt. Auf Grund des folgenden Problems habe ich mich jetzt aber für ein DOIF entschieden.
Zum Problem: Wenn ich als "großes" Intervall z.B. 86400 setze, dann wird updateSchedule nach einem Neustart von fhem erst dann berücksichtigt, wenn das Intervall einmal abgelaufen ist. Selbst manuelles updaten bringt an der Stelle nichts - erst, wenn das erste Mal automatisch nach Ablauf von 86400 getriggert worden ist, wird updateSchedule berücksichtigt. So zumindest stellt es sich für mich momentan dar. Machen andere hier die gleiche oder andere Beobachtungen?
Moin.
Ich guck mir das die Tage mal an und dann gibts endlich mal eine neue Version.
Tomtom als provider war eigentlich auch schon fast fertig, aber dann waren plötzlich die Straßen eh leer... ;)
Hallo jmike,
konntest Du Dir das schon anschauen?
Viele Grüße und Danke
Hat eigentlich noch jemand das Phänomen, dass sich das attr GoogleMapsStroke nur auf Linienstärke und Opacity anwenden lässt, nicht jedoch auf die Farbe?
Ich vermute, es hat hiermit zu tun:
https://stackoverflow.com/questions/39733871/why-google-maps-polyline-strokecolor-always-black
Zitat von: jmike am 01 Oktober 2021, 20:08:57
Moin.
Ich guck mir das die Tage mal an und dann gibts endlich mal eine neue Version.
Tomtom als provider war eigentlich auch schon fast fertig, aber dann waren plötzlich die Straßen eh leer... ;)
Da sich hier wenig tut, einmal die frage:
Was macht das Update auf TomTom?
Ist es denn schon lauffähig und erhältlich?
Bei der Einrichtung der API bei Google wird man gefragt ob man die Nutzung der API aus Sicherheitsgründen Einschränken will. Funktioniert das für die Nutzung unter FHEM? Habe FHEM nur im internen Netz aktiv, kein Reverse Proxy oder sowas.
Zitat von: tomster am 29 November 2021, 17:23:22
Hat eigentlich noch jemand das Phänomen, dass sich das attr GoogleMapsStroke nur auf Linienstärke und Opacity anwenden lässt, nicht jedoch auf die Farbe?
Ich vermute, es hat hiermit zu tun:
https://stackoverflow.com/questions/39733871/why-google-maps-polyline-strokecolor-always-black
Moin, das Problem habe ich auch und ich konnte feststellen, das im HTML Code ein # vor der "Hinweg-Farbe" fehlte (siehe strokeColor).
var setRegionR = new google.maps.Polyline({
path: decodedPathR,
levels: decodedLevels,
strokeColor: "#FF0000",
strokeOpacity: 1,
strokeWeight: 1,
map: map
});var decodedPath = google.maps.geometry.encoding.decodePath(document.getElementById("path0").value);
var decodedLevels = decodeLevels("");
var setRegion = new google.maps.Polyline({
path: decodedPath,
levels: decodedLevels,
strokeColor: "4cde44",
strokeOpacity: 1,
strokeWeight: 6,
map: map
});
Ich habe den Modulecode mal debugged und festgestellt, dass die Funktion lightHex die eigentlich korrekt Farbe #4cde44 so verändert, das die Variable nachher nur noch 4cde44 enthält. Das wird dann ins HTML gepackt.
Mein dilletantischer Fix, nicht auf dem übergebenen Wert in der Methode weiterzuarbeiten, bringt dann auch wieder die korrekt Farbe hervor.
sub lightHex {
my $hexy = $_[0];
$hexy =~ s/#//g;
return sprintf '%02x'x3,
map{ ($_ *= 1+$_[1]) > 0xff ? 0xff : $_ }
map hex, unpack 'A2'x3, $hexy;
}
Wenn an diesem Modul noch gearbeitet wird, könnte das ja mal in schön eingebaut werden.
Hallo,
ich nutze das Modul schon seit Jahren. Bisher bin ich mit meinen kostenlosen Abfragen zurecht gekommen. Jetzt ergeben sich andere Wegstrecken und Abfragezeiten und ich würde gerne abschätzen, ob ich noch ohne Kosten auskomme. Ich kenne die Seite, auf der ich Kosten abschätzen kann und habe auch Zugriff auf mein Konto mit den monatlichen Rechnungen, die sich alle auf 0,00 EUR belaufen.
Was ich nicht herausfinden konnte, bis zu welcher Freigrenze keine Kosten berechnet werden. Ich hab wiederholt hier im Forum etwas von 200$ gelesen, aber ich weiß nicht ob es pro Monat oder Jahr ist. Für den Dezember 2022 wurden Nutzungskosten von 27.83 € ermittelt, die aber zu 100% gutgeschrieben wurden. Ab welchen Nutzungskosten (ungefähre Angabe reicht mir) muss ich mit Zahlungen an Google rechnen?
Ich bin für jede Information dankbar.
Viele Grüße
Gisbert
Hallo Gisbert,
ich nutze es auch schon seit Jahren und bisher nie was bezahlt, frage halt früh und Nachmittag ab. Weiss leider auch nicht, ab wann es Geld kostet, wollte aber zumindest Dir eine kurze Rückmeldung geben :)
Ronny
Hier steht ja $200/Monat, entspricht 28500 Abfragen
https://mapsplatform.google.com/pricing/?hl=de