FHEM Forum

FHEM => Automatisierung => Thema gestartet von: jc am 19 Januar 2014, 12:43:09

Titel: 93_DbLog.pm - Ergänzung der FBDECT (Trennung value/unit)
Beitrag von: jc am 19 Januar 2014, 12:43:09
Hallo,

anbei ein kurzer Patch, damit in der Datenbank auch für das FBDECT Device die Felder Value und Unit passend gefüllt werden. Wäre schön wenn das noch jemand testen und ggf. mit in 93_DbLog.pm übernehmen könnte.
(Aufpassen muss dann natürlich jeder, der den Werte heute erst in der Definition im gplot File trennt ...)


--- 93_DbLog.pm 2014-01-19 12:29:46.634855787 +0100
+++ 93_DbLog.pm.CHANGED 2014-01-19 12:28:20.067574173 +0100
@@ -159,6 +159,14 @@
       }
   }

+  # FBDECT
+  elsif (($type eq "FBDECT")) {
+    if ( $value=~/([\.\d]+)\s([a-z])/i ) {
+     $value = $1;
+     $unit  = $2;
+    }
+  }
+
   # MAX
   elsif(($type eq "MAX")) {
     $unit= "°C" if(lc($reading) =~ m/temp/);


Vielleicht sollte man das ganze noch etwas generischer lösen, statt wie heute jedes Device einzeln zu behandeln oder habe ich da was missverstanden?!

Gruß
Jan
Titel: Antw:93_DbLog.pm - Ergänzung der FBDECT (Trennung value/unit)
Beitrag von: Tobias am 26 Januar 2014, 16:49:03
eingecheckt
Titel: Antw:93_DbLog.pm - Ergänzung der FBDECT (Trennung value/unit)
Beitrag von: Markus M. am 26 Januar 2014, 22:15:35
Funktioniert, bei energy macht er aus Wh jedoch anscheinend W.
Titel: Antw:93_DbLog.pm - Ergänzung der FBDECT (Trennung value/unit)
Beitrag von: Tobias am 27 Januar 2014, 08:23:10
Zitat von: Markus M. am 26 Januar 2014, 22:15:35
Funktioniert, bei energy macht er aus Wh jedoch anscheinend W.
Ersetze mal bitte im Modul die 3Zeile von oben durch folgendes:
if ( $value=~/([\.\d]+)\s([a-z]+)/i ) {
Funktioniert es jetzt?
Titel: Antw:93_DbLog.pm - Ergänzung der FBDECT (Trennung value/unit)
Beitrag von: jc am 27 Januar 2014, 08:44:50
Da hab ich wohl nicht genau genug hingeschaut, die RegEx trifft nur einen Buchstaben nach dem Whitespace richtig. Das Plus nach der Buchstabengruppe sollte dann solange zuschlagen bis kein Buchstabe mehr kommt. Eventuell sollten noch die Anker für Anfang und Ende des Strings mit rein, also:


if ( $value=~/^([\.\d]+)\s([a-z]+)$/i ) {


Dann hätte die RegEx im Zweifel gar nicht gegriffen.
Titel: Antw:93_DbLog.pm - Ergänzung der FBDECT (Trennung value/unit)
Beitrag von: betateilchen am 27 Januar 2014, 20:20:31
Bei mir liefert 93_DbLog seit dem heutigen Update keine Daten mehr fürs Plotten. Wenn ich die Version davor einspiele, funktioniert alles wie gehabt.

Hat das irgendwas mit Euren Basteleien hier zu tun?
Titel: Antw:93_DbLog.pm - Ergänzung der FBDECT (Trennung value/unit)
Beitrag von: jc am 28 Januar 2014, 11:32:35
Hallo Betateilchen,

mit dieser Bastelei im speziellen kann es meiner Meinung nach nichts zu tun haben, wenn ich mir die aktuelle SVN Version und ihren Vorgänger mal anschaue, dann haben aber noch wesentlich mehr Änderungen am Modul stattgefunden ;-)

Um zumindest meinen marginalen Patch als Fehlerquelle auszuschließen, kannst du ihn ja mal auf die zuletzt funktionierende Version (hab den Diff auf Version vom 2014-01-19) anwenden (ggf. das Plus in der RegEx noch ergänzen).

Gruß
Jan
Titel: Antw:93_DbLog.pm - Ergänzung der FBDECT (Trennung value/unit)
Beitrag von: betateilchen am 28 Januar 2014, 13:47:44
keine Sorge, hat nix mit Deinem Patch zu tun ;)

Zum DbLog-Problem seit dem Update generell gibts ja schon einen anderen Thread, ich bin nicht der Einzige, der es bemerkt hat.