Darstellung der EMWZ-Kostendaten aus MySQL

Begonnen von wkarl, 20 September 2013, 13:25:52

Vorheriges Thema - Nächstes Thema

wkarl

Hallo,

nach der Migration/Überarbeitung meiner fhem-Umgebung stehe ich vor folgender Problemstellung:

    die Daten sollen per Tag in einem Monatsdiagram dargestellt werden
    in der DB sieht das so aus

(siehe Anhang / see attachement)

wenn ich all das Gelesene (Google, commandref, Forum) sollte folgendes den Wert liefern: #DbLog StromZaehler:cum_day::$fld[5] - tut es aber nicht :-([/list]
Kann mir ein hilfreicher Geist auf die Sprünge helfen - Danke schon mal.

Edit: Sehe gerade, dass das Feld ein char(32) ist.Da passt die ganze Information gar nicht rein. Nichtsdestotrotz funktioniert die ober Zeile auch nciht bei den anderen Zahlenwerten.

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

Hallo,

bzgl des auf 32 char beschränkten Value-Feldes hat da jemand die Lust das auf 64 char zu erweitern? Meine Perl-Kenntnisse reichen maximal für einfache Routinen.

Besser wäre fast noch, den string in seine Werte aufzuteilen und als separate Werte zur Verfügung zu stellen. Ich will aber nicht gierig erscheinen ;-)

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

Und nochmal Hallo,

habe nun wie folgt value auf 64char erhöht.


(siehe Anhang / see attachement)


ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

Hallölö,

hab das ganze auf FileLog zurückgedreht und damit gespielt. Damit funktioniert die Geschichte mit $fld[].

Meine Schlussfolgerung ist nun, mit DbLog wird dieses Konstrukt nicht unterstützt :-(((

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

Hallo,

ich greife das Thema nochmal auf, da verschiedene Ansatzversuche zu keiner Lösung führten.

Zuerst wollte ich einen workaround schaffen indem der value-Inhalt zerlegt wird und mit tigger an das device gesendet wird. Leider verarbeitet dblog diese trigger nicht :-(

Nächste Ansatz mit awk vergleichbar mit fht.gplot. Auch dies scheint nicht zu funkionieren.
#DbLog <SPEC1>:cum_day::

plot "< awk '/:/{print $1, $2}' <IN>" using 1:2 axes x1y1 title 'Day [Euro]' ls l6fill lw 2 with lines

Egal was ich eintrage es ergeben sich keine Auswirkungen.

Kann mir jeman hier unter die Arme greifen?
Danke und ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

Hallo,

Problem gelöst. Ein Blick auf die folgende Routine in 93_DbLog.pm

     ############ Auswerten des 5. Parameters: Regexp ###################
      # die Regexep wird vor der Function ausgewertet und der Wert im Feld
      # Value angepasst.
      ####################################################################
      if($readings[$i]->[4] && $readings[$i]->[4]) {
        #evaluate
        my $val = $sql_value;
        my $ts  = $sql_timestamp;
        eval("$readings[$i]->[4]");
        $sql_value = $val;
        $sql_timestamp = $ts;
        if($@) {Log3 $hash->{NAME}, 3, "DbLog: Error in inline function: <".$readings[$i]->[4].">, Error: $@";}
        $out_tstamp = $sql_timestamp;
        $writeout=1;
      }

... in Verbindung mit dem Beispiel von commandref
get myDbLog - - 2012-11-10 2012-11-20 Bodenfeuchte:data:::$val=~s/.*B:\s([-\.\d]+).*/$1/eg
Example of OWAD: value like this: "A: 49.527 % B: 66.647 % C: 9.797 % D: 0.097 V"
and output for port B is like this: 2012-11-20_10:23:54 66.647

brachte die Erkenntnis. Das Resultat sieht nun so aus
#DbLog <SPEC1>:cum_day:::$val=~s/.*COST:\s([-\.\d]+).*/$1/eg
oder
#DbLog <SPEC1>:cum_day:::$val=~s/.*COST:\s([0-9]+(?:\.[0-9]*)?).*/$1/eg
ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen