neues Modul: TRAFFIC - google maps directions

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

Vorheriges Thema - Nächstes Thema

jmike

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

mpl8580

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

jmike

#122
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.


l05443

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

jmike

#124
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.


Tobias

#125
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
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

l05443

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

jmike

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.

l05443

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

jmike

Ne, wir suchen sowas wie...

ZitatCan't locate some/module.pm......
BEGIN failed--compilation aborted at -e line 1.

l05443

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

mpl8580

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?

jmike

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.

mpl8580

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 ;-)


davedeluxe

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 noch schaffst ist es vollkommen perfekt ;)

Grüße Dave