Autor Thema: [gelöst] FHEM Crash: Day '31' out of range 1..30  (Gelesen 4047 mal)

Offline schachti

  • New Member
  • *
  • Beiträge: 41
[gelöst] FHEM Crash: Day '31' out of range 1..30
« am: 31 Mai 2019, 08:36:56 »
Hi zusammen,

ich bin über das folgende Problem gestolpert: Auf einer Übersichtsseite mit mehreren Plots habe ich in einem Plot auf den Button für den Offset (Anzeige der vorherigen Periode) geklickt. Darauf stürzt FHEM reproduzierbar ab.

Ursache könnte sein, dass es sich um einen Plot mit Attribut "fixedrange month" handelt. Im FHEM-Log findet sich folgender Eintrag als letzte Meldung vor dem Crash:
Day '31' out of range 1..30 at ./FHEM/93_DbLog.pm line 2999.
Ist das schon die Ursache, dass beim Versuch, die vorherige Periode anzuzeigen, versucht wird, auf den 31. April (den es ja nicht gibt) zuzugreifen? Ist das Problem bereits bekannt?
« Letzte Änderung: 31 Dezember 2019, 11:56:11 von schachti »

Online DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5867
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #1 am: 31 Mai 2019, 09:31:01 »
Zitat
Ist das schon die Ursache, dass beim Versuch, die vorherige Periode anzuzeigen, versucht wird, auf den 31. April (den es ja nicht gibt) zuzugreifen?
Die Ursachenermittlung ist richtig. Vom SVG-Modul wird demnach ein Datum angefordert welches es nicht gibt.
Die sauberste Lösung wäre meiner Meinung nach, dass SVG dieses Datum nicht anfordert -> bitte im SVG-Forum dazu nachfragen bzw. den Beitrag erstmal dorthin verschieben.

Sollte das aus irgendwelchen Gründen nicht gehen bzw. zu aufwändig erscheinen, muß ich versuchen einen Workaround im DbLog einzubauen. In diesem Fall den Beitrag bitte zurück nach "Automation" stellen.

VG,
Heiko
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, SSChatBot, SSCal, DbLog/DbRep, Log2Syslog, SMAPortal, Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline doman75

  • Full Member
  • ***
  • Beiträge: 338
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #2 am: 31 Juli 2019, 12:26:57 »
hatte heute auch den Fehler gibts hier eine Lösung?

Offline schachti

  • New Member
  • *
  • Beiträge: 41
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #3 am: 22 Dezember 2019, 12:49:22 »
*push*

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22810
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #4 am: 23 Dezember 2019, 21:30:19 »
1. Verschobene Threads kriege ich nicht mit, das hier war purer Zufall. Bitte neue Diskussion aufmachen, oder mir ein PM senden.

2. Ich kann das Problem nicht nachvollziehen.
Mit fixedrange=month kriege ich beim zurueckblaettern in fhem.cfg.demo/Sensors folgende Intervalle:2019.12.23 21:24:34.732 1: F:2013-08-01_00:00:00 T:2013-08-31_23:59:59
2019.12.23 21:24:51.453 1: F:2013-07-01_00:00:00 T:2013-07-31_23:59:59
2019.12.23 21:24:58.263 1: F:2013-06-01_00:00:00 T:2013-06-30_23:59:59
2019.12.23 21:25:19.700 1: F:2013-05-01_00:00:00 T:2013-05-31_23:59:59
2019.12.23 21:25:39.455 1: F:2013-04-01_00:00:00 T:2013-04-30_23:59:59
2019.12.23 21:25:46.092 1: F:2013-03-01_00:00:00 T:2013-03-31_23:59:59

3. Es gibt ein Workaround: Umsteigen auf FileLog :)
« Letzte Änderung: 23 Dezember 2019, 21:36:18 von rudolfkoenig »

Online DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5867
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #5 am: 24 Dezember 2019, 12:37:42 »
Bei mir kann/konnte ich dieses Problem auch noch nicht nachstellen obwohl ich ausschliesslich dblog einsetze.  :)

Wenn Rudi nicht noch eine zündende Idee hat woher bzw. unter welchen Bedingungen ein Datum angefordert wird welches es nicht gibt, baue ich nach den Feiertagen eine Validitätsprüfung in dblog als Workaround ein.

Die sehr geringe Schreibfrequenz in diesem Thread lässt auch vermuten, dass dieses Problem wohl selten ist bzw. nur unter ganz bestimmten Bedingungen auftritt, die nicht so häufig vorkommen.

Schöne Weihnachten !
Heiko

ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, SSChatBot, SSCal, DbLog/DbRep, Log2Syslog, SMAPortal, Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline schachti

  • New Member
  • *
  • Beiträge: 41
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #6 am: 24 Dezember 2019, 13:28:32 »
@rudolfkoenig: entschuldige, das war mir nicht bewusst.

Ich werde nach Weihnachten nochmal probieren, ob ich es reproduzieren kann. Hat es vielleicht mit dem Datum zu tun, an dem man es probiert? Bei mir war es der 31.05., bei doman75 der 31.07. vielleicht am 31.12. das Problem nachstellen?

Online DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5867
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #7 am: 28 Dezember 2019, 08:20:03 »
Guten Morgen,

ich habe soeben eine neue DbLog-Version eingecheckt, die das angeforderte Datum auf Validität checked und ggf. einen Logeintrag schreibt wie z.B.

2019.12.28 07:46:34.501 1: DbLog LogSQLITE - Wrong date/time format (from: 2019-02-30 01:10:00) requested by SVG: Day '30' out of range 1..28 at ./FHEM/93_DbLog.pm line 5744.
 

Ein FHEM Crash wird verhindert. Vielleicht wird es dadurch auch erleichert die eigentliche Ursache zu finden. Es wird immer das angeforderte Datum der Zeitgrenzen mit ausgegeben (from/to).
Ist morgen früh im Regelupdate. Wer es eilig hat zu testen, kann die Version auch aus meinem contrib downloaden. In der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben:

"wget -qO ./FHEM/93_DbLog.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbLog.pm"

Danach FHEM restarten.

Grüße,
Heiko
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, SSChatBot, SSCal, DbLog/DbRep, Log2Syslog, SMAPortal, Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline schachti

  • New Member
  • *
  • Beiträge: 41
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #8 am: 30 Dezember 2019, 17:53:01 »
Wer es eilig hat zu testen, kann die Version auch aus meinem contrib downloaden.

Ich würde morgen testen - hat diese Version andere Abhängigkeiten (müssen ggf. weitere Teile von fhem aktualisiert werden)? Nachdem nach dem letzten globalen Update aufgrund nicht abwärtskompatibler Änderungen einige Funktionalitäten bei mir nicht mehr funktioniert haben, versuche ich eigentlich, an einer laufenden fhem-Installation keine Updates mehr vorzunehmen...

Sollte ich darüber hinaus zu Debugging-Zwecken z.B. das verbose-Level hochsetzen?

Online DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5867
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #9 am: 30 Dezember 2019, 18:59:51 »
Zitat
Ich würde morgen testen - hat diese Version andere Abhängigkeiten (müssen ggf. weitere Teile von fhem aktualisiert werden)?
Nein, gibt keine Anhängigkeiten. Du kannst die Version direkt nutzen. Die Änderungen sind minimal.
verbose musst du nicht erhöhen. Sobald ein nicht valides Datum angefordert wird, gibt es eine Meldung im Log mit verbose 1. Sonst gibt es keine Meldungen.

LG
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, SSChatBot, SSCal, DbLog/DbRep, Log2Syslog, SMAPortal, Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline schachti

  • New Member
  • *
  • Beiträge: 41
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #10 am: 31 Dezember 2019, 08:34:15 »
Das Problem scheint auch heute aufzutreten, führt aber nicht mehr zu einem Absturz von fhem:

2019.12.31 08:26:33 1: DbLog logdb - wrong date/time format (to: 2019-11-31 23:59:59) requested by SVG: Day '31' out of range 1..30
2019.12.31 08:26:37 1: DbLog logdb - wrong date/time format (to: 2019-09-31 23:59:59) requested by SVG: Day '31' out of range 1..30
2019.12.31 08:26:41 1: DbLog logdb - wrong date/time format (to: 2019-06-31 23:59:59) requested by SVG: Day '31' out of range 1..30

Online DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5867
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #11 am: 31 Dezember 2019, 08:44:32 »
Zitat
führt aber nicht mehr zu einem Absturz von fhem
Ja, das war das Ziel der Änderung.

Bei meinen SVG-Definitionen habe ich eben auch ausprobiert die Periode zu ändern -> war problemlos möglich ohne diese Meldung.

Du müsstest vermutlich Rudi eine genaue Definition deiner betroffenen SVG liefern. Seitens DbLog kann ich nun nichts weiter beitragen, weil SVG diese Funktion aufruft um Daten aus der DB zu ziehen. DbLog ist hier ein einfacher Datenlieferant und führt nur die Anweisung/Abfrage aus.
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, SSChatBot, SSCal, DbLog/DbRep, Log2Syslog, SMAPortal, Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline schachti

  • New Member
  • *
  • Beiträge: 41
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #12 am: 31 Dezember 2019, 09:04:11 »
Ich konnte es auf ein Minimalbeispiel mit einem Plot eindampfen.

defmod SVG_StromzaehlerTagesverbrauch SVG logdb:SVG_StromzaehlerTagesverbrauch:HISTORY
attr SVG_StromzaehlerTagesverbrauch fixedrange month
attr SVG_StromzaehlerTagesverbrauch group 02_Plots_Strom
attr SVG_StromzaehlerTagesverbrauch plotsize 1000,250
attr SVG_StromzaehlerTagesverbrauch room Strom
attr SVG_StromzaehlerTagesverbrauch sortby 2
attr SVG_StromzaehlerTagesverbrauch title 'Stromverbrauch letzte 30 Tage'

# Created by FHEM/98_SVG.pm, 2017-07-27 07:37:14
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid ytics
set ylabel "Stromverbrauch [kWh]"
set y2label "Stromverbrauch [kWh]"

#logdb Stromzaehler:statTotal_consumptionDayLast::

plot "<IN>" using 1:2 axes x1y1 notitle ls l0fill lw 1 with bars

Online DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5867
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #13 am: 31 Dezember 2019, 09:27:28 »
Ich habe deine Definition bei mir grob nachgebaut:

defmod SVG_LogDB_14 SVG LogDB:SVG_LogDB_14:HISTORY
attr SVG_LogDB_14 fixedrange month
attr SVG_LogDB_14 group 02_Plots_Strom
attr SVG_LogDB_14 plotsize 1000,250
attr SVG_LogDB_14 room SVG_MySQL
attr SVG_LogDB_14 title 'Stromverbrauch letzte 30 Tage'

# Created by FHEM/98_SVG.pm, 2017-06-15 22:21:44
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid
set ylabel "Humidity"
set y2label "Temperature"

#LogDB MyWetter:humidity
#LogDB MyWetter:temperature

plot "<IN>" using 1:2 axes x1y2 title 'Line 1' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Temp' ls l1 lw 1 with lines

Das Switchen der Periode geht ohne Probleme bei mir. Habe es durch das ganze Jahr geschoben.
Weil du geschrieben hattest, du updatest nicht mehr so "global" ... vielleicht ist die SVG-Version alt ?

Meine (aktuelle) ist: 98_SVG.pm            20818 2019-12-23 20:12:15Z rudolfkoenig
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, SSChatBot, SSCal, DbLog/DbRep, Log2Syslog, SMAPortal, Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline schachti

  • New Member
  • *
  • Beiträge: 41
Antw:FHEM Crash: Day '31' out of range 1..30
« Antwort #14 am: 31 Dezember 2019, 09:31:59 »
Meine scheint relativ aktuell zu sein, wenn man dem Dateiheader glaubt:

# $Id: 98_SVG.pm 18777 2019-03-03 13:16:05Z rudolfkoenig $

Das letzte globale Update habe ich im Juni gemacht (https://forum.fhem.de/index.php/topic,101120.msg945716.html).