FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: AndreM am 08 Januar 2017, 17:10:01

Titel: FHEM startet nur kurz nach speichern von Google API
Beitrag von: AndreM am 08 Januar 2017, 17:10:01
Hallo Forum,
ich habe ein großes Problem mit meiner Google Maps Distance Matrix API. Ich habe nach dem Tutorial von "Jürgens Technikblog" eine Verkehrsmeldung eingerichtet, die mir anzeigt wie lange ich aktuell zur Arbeit brauche. Ich trage die Daten wie beschrieben in die fhem.cfg ein und speichere alles ab. Anschließen funktioniert das was ich wollte auch wunderbar.

Jetzt zum Problem:
Starte ich den FHEM Server mit shutdown reboot neu, startet dieser nur noch für ca. 5s und fährt wieder runter!!??


Die Zeit ist gerade lang genug das ich in die fhem.cfg wechseln kann (dann shutdown).
Die fhem.cfg bleibt jedoch geöffnet so das ich das letzte Zeichen aus der API entfernen kann. Mit einem anschließenden Neustart über das raspberry Pi bleibt mir gerade wieder genug Zeit um die fhem.cfg zu speichern. Danach läuft der Server wieder einwandfrei!

Wenn ich dann nun einene neue Verkehrslage einrichte, läuft sie wieder rund bis ich einen Neustart machen muss. Dann geht das ganze von vorne los!

Kenn jemand diesen Fehler oder kennt Abhilfe?

Hier mal der Code den ich in die fhem.cfg einfüge:
define HometoWorkAndre HTTPMOD https://maps.googleapis.com/maps/api/distancematrix/json?origins=Ort,Strasse%20Nummer&destinations=Ort,Strasse%20Nummer&mode=driving&language=de-DE&departure_time=now&key=API CODE 3600
attr HometoWorkAndre userattr reading01Expr reading01Name reading01Regex reading02Expr reading02Name reading02Regex
attr HometoWorkAndre fp_Wohnzimmer 50,200,1
attr HometoWorkAndre reading01Expr GoogleExpr($val)
attr HometoWorkAndre reading01Name Standard
attr HometoWorkAndre reading01Regex (?s)duration.* "(.* Minuten).*duration_in
attr HometoWorkAndre reading02Expr GoogleExpr($val)
attr HometoWorkAndre reading02Name Verkehr
attr HometoWorkAndre reading02Regex (?s)duration_in.*"(.* Minuten)
attr HometoWorkAndre room Fahrzeiten
attr HometoWorkAndre stateFormat Normal:Standard Aktuell:Verkehr
Titel: Antw:FHEM startet nur kurz nach speichern von Google API
Beitrag von: marvin78 am 08 Januar 2017, 17:15:05
shutdown reboot gibt es nicht. Ein Log wäre gut.
Titel: Antw:FHEM startet nur kurz nach speichern von Google API
Beitrag von: AndreM am 08 Januar 2017, 17:24:53
Oh ja sorry shutdown restart!
Hier der Log von Beginn des Fehlers bis zum austragen der API und Neustart:

2017.01.08 17:17:19 3: Unregistering HTTPSRV TABLETUI for URL /ftui...
2017.01.08 17:17:19 1: Including fhem.cfg
2017.01.08 17:17:19 3: telnetPort: port 7072 opened
2017.01.08 17:17:19 3: WEB: port 8083 opened
2017.01.08 17:17:19 3: WEBphone: port 8084 opened
2017.01.08 17:17:19 3: WEBtablet: port 8085 opened
2017.01.08 17:17:19 2: eventTypes: loaded 226 events from ./log/eventTypes.txt
2017.01.08 17:17:19 3: TABLETUI: new ext defined infix:ftui/: dir:./www/tablet:
2017.01.08 17:17:19 3: Registering HTTPSRV TABLETUI for URL /ftui   and assigned link ftui/ ...
2017.01.08 17:17:19 3: HometoWorkAndre: Defined with URL https://maps.googleapis.com/maps/api/distancematrix/json?origins=Ort,Strasse%20Nummer&destinations=Ort,Strasse%20Nummer&mode=driving&language=de-DE&departure_time=now&key=API KEY and interval 3600
2017.01.08 17:17:19 1: Including ./log/fhem.save
Undefined subroutine &main::time_str2num called at ./FHEM/98_HTTPMOD.pm line 1655.
2017.01.08 17:17:44 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_myUtils.pm line 15.
2017.01.08 17:17:44 1: Including fhem.cfg
2017.01.08 17:17:44 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_Utils.pm line 15, <$fh> line 6.
2017.01.08 17:17:44 3: telnetPort: port 7072 opened
2017.01.08 17:17:44 3: WEB: port 8083 opened
2017.01.08 17:17:44 3: WEBphone: port 8084 opened
2017.01.08 17:17:44 3: WEBtablet: port 8085 opened
2017.01.08 17:17:44 2: eventTypes: loaded 226 events from ./log/eventTypes.txt
2017.01.08 17:17:50 3: TABLETUI: new ext defined infix:ftui/: dir:./www/tablet:
2017.01.08 17:17:50 3: Registering HTTPSRV TABLETUI for URL /ftui   and assigned link ftui/ ...
2017.01.08 17:17:50 3: HometoWorkAndre: Defined with URL https://maps.googleapis.com/maps/api/distancematrix/json?origins=Ort,Strasse%20Nummer&destinations=Ort,Strasse%20Nummer&mode=driving&language=de-DE&departure_time=now&key=API KEY and interval 3600
2017.01.08 17:17:50 1: PERL WARNING: Use of uninitialized value $Std_Min in sprintf at ./FHEM/99_myUtils.pm line 93, <$fh> line 72.
2017.01.08 17:17:50 1: PERL WARNING: Use of uninitialized value $Std_Min in sprintf at ./FHEM/99_myUtils.pm line 93, <$fh> line 75.
2017.01.08 17:17:50 1: Including ./log/fhem.save
2017.01.08 17:17:50 1: usb create starting
2017.01.08 17:17:50 3: Probing CUL device /dev/ttyAMA0
2017.01.08 17:17:50 3: Probing TCM_ESP3 device /dev/ttyAMA0
2017.01.08 17:17:51 3: Probing FRM device /dev/ttyAMA0
2017.01.08 17:17:56 1: usb create end
2017.01.08 17:17:56 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth. telnetPort has no associated allowed device with password/globalpassword.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2017.01.08 17:17:56 0: Featurelevel: 5.7
2017.01.08 17:17:56 0: Server started with 21 defined entities (fhem.pl:12966/2017-01-05 perl:5.020002 os:linux user:pi pid:4610)
Undefined subroutine &main::time_str2num called at ./FHEM/98_HTTPMOD.pm line 1655.
2017.01.08 17:18:05 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_myUtils.pm line 15.
2017.01.08 17:18:05 1: Including fhem.cfg
2017.01.08 17:18:05 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_Utils.pm line 15, <$fh> line 6.
2017.01.08 17:18:05 3: telnetPort: port 7072 opened
2017.01.08 17:18:06 3: WEB: port 8083 opened
2017.01.08 17:18:06 3: WEBphone: port 8084 opened
2017.01.08 17:18:06 3: WEBtablet: port 8085 opened
2017.01.08 17:18:06 2: eventTypes: loaded 226 events from ./log/eventTypes.txt
2017.01.08 17:18:11 3: TABLETUI: new ext defined infix:ftui/: dir:./www/tablet:
2017.01.08 17:18:11 3: Registering HTTPSRV TABLETUI for URL /ftui   and assigned link ftui/ ...
2017.01.08 17:18:11 3: HometoWorkAndre: Defined https://maps.googleapis.com/maps/api/distancematrix/json?origins=Ort,Strasse%20Nummer&destinations=Ort,Strasse%20Nummer&mode=driving&language=de-DE&departure_time=now&key=API KEY and interval 3600
2017.01.08 17:18:11 1: PERL WARNING: Use of uninitialized value $Std_Min in sprintf at ./FHEM/99_myUtils.pm line 93, <$fh> line 72.
2017.01.08 17:18:11 1: PERL WARNING: Use of uninitialized value $Std_Min in sprintf at ./FHEM/99_myUtils.pm line 93, <$fh> line 75.
2017.01.08 17:18:11 1: Including ./log/fhem.save
2017.01.08 17:18:11 1: usb create starting
2017.01.08 17:18:12 3: Probing CUL device /dev/ttyAMA0
2017.01.08 17:18:12 3: Probing TCM_ESP3 device /dev/ttyAMA0
2017.01.08 17:18:12 3: Probing FRM device /dev/ttyAMA0
2017.01.08 17:18:17 1: usb create end
2017.01.08 17:18:17 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth. telnetPort has no associated allowed device with password/globalpassword.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2017.01.08 17:18:17 0: Featurelevel: 5.7
2017.01.08 17:18:17 0: Server started with 21 defined entities (fhem.pl:12966/2017-01-05 perl:5.020002 os:linux user:pi pid:4621)
2017.01.08 17:18:18 3: Unregistering HTTPSRV TABLETUI for URL /ftui...
2017.01.08 17:18:18 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_Utils.pm line 15.
2017.01.08 17:18:18 1: Including fhem.cfg
2017.01.08 17:18:18 3: telnetPort: port 7072 opened
2017.01.08 17:18:18 3: WEB: port 8083 opened
2017.01.08 17:18:18 3: WEBphone: port 8084 opened
2017.01.08 17:18:18 3: WEBtablet: port 8085 opened
2017.01.08 17:18:18 2: eventTypes: loaded 226 events from ./log/eventTypes.txt
2017.01.08 17:18:19 3: TABLETUI: new ext defined infix:ftui/: dir:./www/tablet:
2017.01.08 17:18:19 3: Registering HTTPSRV TABLETUI for URL /ftui   and assigned link ftui/ ...

2017.01.08 17:18:19 3: HometoWorkAndre: Defined with URL https://maps.googleapis.com/maps/api/distancematrix/json?origins=Ort,Strasse%20Nummer&destinations=Ort,Strasse%20Nummer&mode=driving&language=de-DE&departure_time=now&key=API KEY and interval 3600
2017.01.08 17:18:19 1: Including ./log/fhem.save
2017.01.08 17:18:20 3: HometoWorkAndre: Read callback: request type was update retry 0, no headers, body empty,
Error: read from https://maps.googleapis.com:443 timed out
2017.01.08 17:18:21 3: HometoWorkAndre: Read response to update didn't match any Reading
Titel: Antw:FHEM startet nur kurz nach speichern von Google API
Beitrag von: AndreM am 09 Januar 2017, 19:41:42
Sooo.....
Nach Aufräumarbeiten in der fhem.cfg konnte ich den Fehler eingrenzen.
Irgendwas stimmt mit dieser Subroutine nicht. Aber ich sehe den Fehler nicht.
Ist die Programmierstruktur an sich korrekt?


sub GoogleExpr($) {
    my ($traffic) = @_;

   #Ermittlung der Minuten
   $traffic =~ /([\d]+) Minuten?/;
   my $Std_Min = $1;
   my $Std_Std = "0";

   #falls Stunden angegeben sind, diese nun ermitteln
   if($traffic =~ /([\d]+) Stunden?/) {
     $Std_Std = $1;
   }
   return sprintf("%02d:%02d",$Std_Std,$Std_Min);
}



Bin für jeden Hinweis dankbar
Titel: Antw:FHEM startet nur kurz nach speichern von Google API
Beitrag von: MKeY am 13 Januar 2017, 13:54:51
Hallo, ich bin leider kein Crack, aber ich denke, dass du lange genug gewartet hast...
https://maps.googleapis.com/maps/api/distancematrix/json?origins=Ort,Strasse%20Nummer&destinations=Ort,Strasse%20Nummer&mode=driving&language=de-DE&departure_time=now&key=API KEY
das dicke muss an deine strecke und dein API angepasst werden! Bitte lies nochmal die Anleitung von Juergen.

Das dürfte aber nicht deinen Fehler auslösen! Bitte poste mal deine 99_myUtils.pm

2017.01.08 17:18:05 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_myUtils.pm line 15. Hier ist irgendwas falsch
2017.01.08 17:18:05 1: Including fhem.cfg
2017.01.08 17:18:05 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_Utils.pm line 15, <$fh> line 6. hier sollte in der fhem.cfg in zeile 6 auch was falsch sein

am besten deine fhem.cfg und deine 99_myUtils.pm (passwörter weglassen)
Titel: Antw:FHEM startet nur kurz nach speichern von Google API
Beitrag von: jmike am 13 Januar 2017, 13:57:13
Hi.

Ohne dass ich mich aufdrängen will, warum nutzt ihr nicht das TRAFFIC Modul?
https://wiki.fhem.de/wiki/TRAFFIC
Titel: Antw:FHEM startet nur kurz nach speichern von Google API
Beitrag von: AndreM am 14 Januar 2017, 09:49:15
Danke das war mir so nicht bekannt. Funktioniert super!!