FHEMWEB 1st.April Bug?

Begonnen von erwin, 01 April 2013, 08:49:47

Vorheriges Thema - Nächstes Thema

erwin

Hi Rudolf!

hatte gestern ein komisches Phänomen bei etlichen meiner Weblinks:

Definition:
define myweblink weblink dbplot myDbLog:TempHum

jedenfalls wurde gestern (am 31.3.) ein leere Resultat geplottet, obwohl Werte in der DB-history tabelle vohanden waren.
noch kurioser: die gleich Definition mit filelink funktionierte!

Nachdem heute (1.April...) die tagesAnsicht wieder funktionierte, hab ich mal auf <prev> gedrückt, und siehe da: keine werte für den 31.3 - noch mal <prev> : Werte für den 30.3. sind ok...

Ich vermute, das Problem liegt in der sub FW_calcWeblink und zwar hier:

  } elsif($zoom eq "day") {
    my $t = $now + $off*86400;
    my @l = localtime($t);
    $FW_devs{$d}{from} = sprintf("%04d-%02d-%02d",$l[5]+1900,$l[4]+1,$l[3]);
    $FW_devs{$d}{to}   = sprintf("%04d-%02d-%02d",$l[5]+1900,$l[4]+1,[color=red]$l[3]+1[/color]);

ich hab dann geändert auf:

  } elsif($zoom eq "day") {
    my $t = $now + $off*86400;
    my @l = localtime($t);
    $FW_devs{$d}{from} = sprintf("%04d-%02d-%02d",$l[5]+1900,$l[4]+1,$l[3]);
    @l = localtime($t+86400);
    $FW_devs{$d}{to}   = sprintf("%04d-%02d-%02d",$l[5]+1900,$l[4]+1,$l[3]);

... und dann klappts auch mit dem 32.März...

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

rudolfkoenig

Ich verwende kein DbLog, deswegen ist nur eine Vermutung: die Datums-Spalte in der DB wurde als Date angelegt, und manche Datenbanken sind pikiert, wenn sie diese Spalte mit einem nicht realen Datumswert vergleichen muessen.

Ich sehe mehrere Loesungen (in dieser Reihenfolge):
- die Spalte in der DB als CHAR anzulegen
- bei der Suche im DbLog TO_CHAR() oder vergleichbares verwenden
- 01_FHEMWEB.pm aendern, aber dann auch die anderen Zoom-Stufen pruefen.

Welche Zoom-Stufen funktionieren mit DbLog z.Zt. korrekt?

erwin

Hi Rudolf,

danke für's Feedback, deine Vermutung ist richtig, die datumsspalte wird als TIMESTAMP angelegt, so ist das in DbLog definiert
und du hast vermutlich recht, beim Filelog spielt es offensichtlich keine Rolle wenn
$FW_devs{$d}{to} = "2013-03-32"
entspricht, aber die datenbank wird pingelig...

Mein review der zoomstufen in FHEMWEB ergibt:

problem bei: hour , qday, day,
ok scheint: week, month, year

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

erwin

Hi Rudolf,

das wär mein Änderngsvorschlag für FHEMWEB.pm,
dzt. kann ich leider kein diff machen, weil ich noch an anderen Stellen mods drin habe.

  if($zoom eq "hour") {
    my $t = $now + $off*3600;
    my @l = localtime($t);
    $FW_devs{$d}{from}
        = sprintf("%04d-%02d-%02d_%02d",$l[5]+1900,$l[4]+1,$l[3],$l[2]);
    @l = localtime($t+3600);
    $FW_devs{$d}{to}
        = sprintf("%04d-%02d-%02d_%02d",$l[5]+1900,$l[4]+1,$l[3],$l[2]);

  } elsif($zoom eq "qday") {
    my $t = $now + $off*21600;
    my @l = localtime($t);
    $l[2] = int($l[2]/6)*6;
    $FW_devs{$d}{from}
        = sprintf("%04d-%02d-%02d_%02d",$l[5]+1900,$l[4]+1,$l[3],$l[2]);
    @l = localtime($t+21600);
    $l[2] = int($l[2]/6)*6;
    $FW_devs{$d}{to}
        = sprintf("%04d-%02d-%02d_%02d",$l[5]+1900,$l[4]+1,$l[3],$l[2]);

  } elsif($zoom eq "day") {
    my $t = $now + $off*86400;
    my @l = localtime($t);
    $FW_devs{$d}{from} = sprintf("%04d-%02d-%02d",$l[5]+1900,$l[4]+1,$l[3]);
    @l = localtime($t+86400);
    $FW_devs{$d}{to}   = sprintf("%04d-%02d-%02d",$l[5]+1900,$l[4]+1,$l[3]);



l.g. und danke!
Erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

rudolfkoenig

Hallo erwin, ich hab dein "Patch" eingespielt, obwohl es mir lieber gewesen waere, wenn Du nach meinem beschriebenen Praeferenz den Maintainer der DbLog.pm ueberzeugt haettest.