Autor Thema: Bug bei FHT8V und DbLog  (Gelesen 4956 mal)

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 908
Bug bei FHT8V und DbLog
« am: 08 März 2013, 19:32:02 »
Hallo zusammen,
ich hab mal ein wenig mit dem DbLog rumgespielt - dabei ist mir aufgefallen dass die Module die Werte korrekt in die Felder READING und VALUE eintragen - zb CUL_WS schreibt "temperature" in READING und "21.3" in VALUE.
Das Modul FHT8V schreibt jedoch "valve 18" in READING, VALUE bleibt leer. Da wird es wahrscheinlich auch schwierig mit dbplot eine Grafik zu erstellen.

Ich vermute mal da ist noch irgendwas "krumm".....

Offline tetzlav

  • Full Member
  • ***
  • Beiträge: 109
Aw: Bug bei FHT8V und DbLog
« Antwort #1 am: 17 März 2013, 17:07:08 »
Das FHT8V schreibt leider etwas nicht "normkonforme" Logs. Die meisten Geräte Module trennen den Stellwert vom Eventname mit ":". DbLog trennt bei unbekannten Readings ebenso.

Du kannst jedoch den FHT8V schnell mit DbLog bekannt machen. Dazu einfach in die 93_DbLog.pm in die sub DbLog_ParseEvent($$) z.B. nach der KS300-Definition folgendes einfügen:

  # KS300
  elsif($type eq "KS300") {
     if($event =~ m(T:.*)) { $reading= "data"; $value= $event; }
     if($event =~ m(avg_day)) { $reading= "data"; $value= $event; }
     if($event =~ m(avg_month)) { $reading= "data"; $value= $event; }
     if($reading eq "temperature") { $value=~ s/ \(Celsius\)//; $unit= "°C"; }
     if($reading eq "wind") { $value=~ s/ \(km\/h\)//; $unit= "km/h"; }
     if($reading eq "rain") { $value=~ s/ \(l\/m2\)//; $unit= "l/m2"; }
     if($reading eq "rain_raw") { $value=~ s/ \(counter\)//; $unit= ""; }
     if($reading eq "humidity") { $value=~ s/ \(\%\)//; $unit= "%"; }
     if($reading eq "israining") {
        $value=~ s/ \(yes\/no\)//;
        $value=~ s/no/0/;
        $value=~ s/yes/1/;
      }
  }
  # FHT8V
  elsif($type eq "FHT8V") {
     if($reading =~ m(valve)) {
        @parts= split(/ /,$event);
        $reading= $parts[0];
        $value= $parts[1];
        $unit= "%";
     }
  }

danach ein reload 93_DbLog oder fhem-Neustart und der Wert wird vom Reading getrennt in die Datenbank geschrieben.

Grüße
// tetzlav

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3993
Aw: Bug bei FHT8V und DbLog
« Antwort #2 am: 22 März 2013, 14:48:56 »
wenns funktioniert bitte kurze pm an mich und ich checke es ein
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 908
Aw: Bug bei FHT8V und DbLog
« Antwort #3 am: 22 März 2013, 14:53:55 »
@Tobias und tetzlav

Besten Dank erstmal für die Rückmeldungen. Aufgrund der genannten Probleme und der generell spärlichen Informationen die sich zu DBLog und Einbindung von DBlog in die gplot-Dateien finden lassen habe ich das erstmal wieder aufgegeben.
Ich kann es bei Gelegenheit aber auch gerne nochmal testen - generell ist mir eine "richtige" Datenbank lieber als einzelne Logfiles, da ich diese auch besser bereinigen kann.

Ich melde mich sobald ich was zu sagen kann.....

Gruß Tilo

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3993
Aw: Bug bei FHT8V und DbLog
« Antwort #4 am: 22 März 2013, 16:21:36 »
eigentlich war ich der Meinung dort genug Beispiele in der commendref hinterlassen zu haben ...
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 908
Aw: Bug bei FHT8V und DbLog
« Antwort #5 am: 22 März 2013, 19:27:12 »
Der DBlog selbst ist ja kein Problem - wo ich mich ein wenig schwer getan habe sind die entsprechenden Anpassungen in den einzelnen .gplot-Dateien.

Irgendwie müssen ja die beiden Einträge #FileLog und plot entsprechend angepasst werden. Da habe ich auch kaum nützliche Beispiele gefunden.

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 908
Aw: Bug bei FHT8V und DbLog
« Antwort #6 am: 24 März 2013, 02:21:56 »
Zitat von: tetzlav schrieb am So, 17 März 2013 17:07


  # FHT8V
  elsif($type eq "FHT8V") {
     if($reading =~ m(valve)) {
        @parts= split(/ /,$event);
        $reading= $parts[0];
        $value= $parts[1];
        $unit= "%";
     }
  }



Getestet und für gut befunden :-)
 Besten Dank @tetzlav

@Tobias: Wäre prima dies direkt in 93_DbLog einzupflegen.

Danke + Gruß
Tilo


Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 908
Aw: Bug bei FHT8V und DbLog
« Antwort #7 am: 24 März 2013, 09:20:49 »
...um auch DUMMYs plotten zu können wäre vielleicht auch noch diese Erweiterung sinnvoll:

 # DUMMY
  elsif($type eq "DUMMY") {
        $reading= "state";
        $value= $event;
        $unit= "";
  }


Gruß Tilo

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3993
Aw: Bug bei FHT8V und DbLog
« Antwort #8 am: 24 März 2013, 12:49:18 »
habe es erstmal ins contrib eingecheckt. Bitte testen, danach gehts in den Hauptzweig

zusätzlich ist noch das Attribut "DbLogType" hinzugekommen um auszuwählen, ob in die current- und/oder in die historytabelle geloggt werden soll
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 908
Aw: Bug bei FHT8V und DbLog
« Antwort #9 am: 25 März 2013, 09:17:36 »
So, hab jetzt umgestellt auf DbLog und die entsprechenden gplot-Dateien für meine Grafiken erstellt.
Mit den Anpassungen für FHT8V und DUMMY klappt das auch alles bestens :-)

Ein Problem habe ich aber noch - mit der Übersetzung von on/off des FS20 ST

Für den Filelog funktioniert die Zeile so:
#FileLog 3:Luefter:0:$fld[2]=~"on"?1:0

Doch wie bekomme ich das für den DbLog übersetzt?

Es müsste also irgendwie so aussehen:
#DBLog Luefter:data:0:"on"?1:0 ... doch das funktioniert nicht, "on" wird nicht als 1 erkannt

Gruß Tilo

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 908
Aw: Bug bei FHT8V und DbLog
« Antwort #10 am: 25 März 2013, 15:31:27 »
Jubel :-)
Habs hinbekommen:

#DbLog <SPEC1>:data:0::$val=~s/(on|off).*/$1eq"on"?1:0/eg

Aber eine Frage habe ich noch: Wie bekomme ich es vom Syntax hin nicht nur "on" auf 1 zu übersetzen sondern auch "dimup"
In etwa so, doch das geht leider nicht:

#DbLog <SPEC1>:data:0::$val=~s/(on|off|dimup|dimdown).*/$1eq("on"|"dimdown")?1:0/eg

Gruß Tilo

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3993
Aw: Bug bei FHT8V und DbLog
« Antwort #11 am: 26 März 2013, 07:17:39 »
ich denke mal ungefähr so:
#DbLog <SPEC1>:data:0::$val=~s/(on|off|dimup|dimdown).*/$1eq"on"||$1eq"dimdown")?1:0/eg
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 908
Aw: Bug bei FHT8V und DbLog
« Antwort #12 am: 26 März 2013, 08:41:23 »
....stimmt - es kann doch so einfach sein. Da links schon einfache | standen, kam ich nicht drauf doppelte || zu verwenden.
Die linke Klammer vor $1 fehlte aber noch.

Besten Dank + Gruß :-)