Problem mit Modul 98_GEOFANCY.pm "Out of Range"

Begonnen von mane88, 09 August 2015, 10:05:13

Vorheriges Thema - Nächstes Thema

mane88

Hallo,

seit einigen Tagen habe ich das Problem, dass FHEM abstürtzt. Dies erfolg immer mit dem Fehler. Nur die Zeit (Second) ändert sich


Second '59.057' out of range 0..59 at ./FHEM/98_GEOFANCY.pm line 410
oder
Second '59.042' out of range 0..59 at ./FHEM/98_GEOFANCY.pm line 410
oder
Second '59.965' out of range 0..59 at ./FHEM/98_GEOFANCY.pm line 410


Mittlerweile glaube ich, dass es daran liegt, dass meine Geofancy App (FhemApp) durch das schlechte Netz zu lange braucht um den Status zu senden. Der Fehler tritt nämlich immer nach dem Logeintrag

2015.08.05 11:59:27 2: ROOMMATE set rr_Julia location work
oder
2015.08.09 09:08:53 2: ROOMMATE set rr_Marco location underway


bzw. auch bei anderen Roommates und Orten.

Wie kann man diesen Fehler beheben?

Loredo

#1
Das sieht so aus, als wenn die FhemApp.app zwar eine Uhrzeit mitschickt, sich aber nicht an das Format hält.
Es übermittelt vermutlich eine Uhrzeit wie 11:27:59.042. Das wäre sogar für uns Menschen irritierend :-)


Das sollte der App Autor korrigieren.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

smurfix

Zitat von: Loredo am 09 August 2015, 10:11:30
Das sieht so aus, als wenn die FhemApp.app zwar eine Uhrzeit mitschickt, sich aber nicht an das Format hält.
Es übermittelt vermutlich eine Uhrzeit wie 11:59.042:27. Das wäre sogar für uns Menschen irritierend :-)
Wie kommst du darauf?? Angemeckert werde die Sekunden. Wenn, dann 11:27:59.042. Und dass jemand Sekundenbruchteile mitschickt, ist keinesfalls ungewöhnlich.

Was spricht denn dagegen, den Test zu korrigieren und statt "<=59" "<61" zu schreiben?
(Auch wenn es unwahrscheinlich ist, dass der Sender Schaltsekunden berücksichtigt und der Logeintrag gerade in dieser Sekunde kommt.)

Loredo

Zitat von: smurfix am 09 August 2015, 12:17:55
Wie kommst du darauf?? Angemeckert werde die Sekunden. Wenn, dann 11:27:59.042. Und dass jemand Sekundenbruchteile mitschickt, ist keinesfalls ungewöhnlich.


Ich habe mich vertan und die Sekunden in die Minuten Spalte kopiert, sorry.
Trotzdem habe ich noch nie eine Zeitangabe mit Sekundenbruchteilen gesehen. Sie entspricht zumindest nicht der ISO Norm (und eben auch nicht der Perl Norm).


Zitat von: smurfix am 09 August 2015, 12:17:55Was spricht denn dagegen, den Test zu korrigieren und statt "<=59" "<61" zu schreiben?


Die verwendete Perl Funktion timegm() erwartet hier (wie wohl die meisten zeitbedingten Perl Funktionen) die Angabe in vollen Sekunden zwischen 0 und 59.

Ich kann zwar im Modul die Sekunden selbst runden, sehe den Fehler aber in erster Linie bei der App, die eben volle Sekunden zu liefern hat. Es bringt auch keinen Mehrwert die Sekunden als Float Wert zu liefern, denn die Readings-Werte in FHEM, für das die Zeit dann verwendet wird, arbeiten ohnehin ebenfalls nur mit vollen Sekunden.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Ich habe gerade eine neue Version des Moduls mit verbesserter Input Validation eingecheckt, um Abstürze bei falsch übermittelten Werten zu verhindern.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

mane88

So habe das Modul geupdated leider bekomme ich nun den im Bild gezeigten Fehler in der App.

War das so gedacht?!

Loredo

Ja, denn der App-Autor muss die API in seiner App richtig implementieren.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

mane88

Aber die Fehlermeldung sendet doch genau das Datum welches nach Iso verlangt wird. Zumind schaut es auf dem Bild so aus

Loredo

Hm, im Regex gab es eine Ungereimtheit  :-[
Fix ist eingecheckt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

mane88

Hab wieder geupdatet leider ohne Erfolg hin Hinblick auf das zuvor beschriebene Problem.

Bekomme immer noch den gleichen Fehler den ich bereits zuvor im Bild gezeigt habe.


Loredo

Funktioniert des denn mit der Original-App Geofency?
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

mane88

#11
Kann ich dir leider nicht sagen da ich die App nicht besitze.

Allerdings funktioniert es jetzt. Geländer habe ich nichts nur den Support der fhem App angeschriebenen. Evtl haben die bereits irgendetwas geändert.

Sobald sich daran was ändert melde ich mich wieder.

Vielen Dank für den schnellen Support.

Edit
Heute funktioniert es wieder nicht. Habe es sowohl aus dem mobilen Netz als auch im WLAN versucht. Hat es evtl etwas mit dem Datum zu tun??

Edit2
Bekomme im Laufe des Tages eine Testversion der App. Melde mich dann wieder sobald ich mehr sagen kann. So die Testversion der App funktioniert teilweilse. Das Problem tritt derzeit morgen auf wenn die Stundenzahl noch nicht 2 stellig ist. Dann wird das Format z.b. 7:32:50Z statt 07:32:50Z gesendet

Edit3
Das Problem wurde in der App gelöst und wird beim nächsten Release behoben.

Danke für die Unterstützung