dblog loggt spalte unit nicht und spalte value falsch

Begonnen von Guest, 21 Oktober 2011, 18:00:37

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo,

ich habe nun als Windows verwöhnter User, der aber Strom sparen will, FHEM
nebst WS300 und MySql auf einer kleinen Qnap Box laufen. Die Installation
ist für einen Linux Noob ein wahrer Schrecken und hat in Summe 16h Zeit
gekostet ..

Die Tabelle sieht so aus:

*history*  TIMESTAMP DEVICE TYPE EVENT READING VALUE UNIT   21.10.2011
16:50:09 Werkstatt WS300 lost_receives: 0 (counter) lost_receives 0
(counter)
 21.10.2011 16:50:09 Orangerie WS300 T: 16.1 H: 80 Bat: Ok LR: 0 T 16.1 H
 21.10.2011 16:50:09 Orangerie WS300 temperature: 16.1 (Celsius) temperature 16.1
(Celsius)
 
d.h.., in Spalte value steht nicht nur der Wert sondern auch noch die
Einheit.

Muss ich hier im 93_DbLog.pm
ändern? Ich weiss aber gerade mal in Sachen Perl, dass man mit perl -v die
Version abruft.

Ich will damit sagen, dass ich nicht zu den Typen gehöre, den man mal
schnell den** Kerningham und Ritchie hinwirft
und der daraus C lernt.









--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> ich habe nun als Windows verwöhnter User, der aber Strom sparen will, FHEM
> nebst WS300 und MySql auf einer kleinen Qnap Box laufen. Die Installation
> ist für einen Linux Noob ein wahrer Schrecken und hat in Summe 16h Zeit
> gekostet ..

Ich versuche es anders zu formulieren: In 16 Stunden schafft sogar ein
unerfahrener Benutzer fhem auf einem seltsamen und abgespeckten Rechner in
einem selten verwendeten und komplexen Konfiguration zu installieren.
Das kann man doch glatt als Lob verstehen :)


> Muss ich hier im 93_DbLog.pm ändern?

Ja. DbLog trennt die Werte nur fuer "bekannte" Geraete in Wert un Einheit auf.
WS300 gehoert nicht zu den bekannten Geraeten.


> Ich will damit sagen, dass ich nicht zu den Typen gehöre, den man mal
> schnell den** Kerningham und Ritchie hinwirft
> und der daraus C lernt.

Was soll man dazu sagen. Vielleicht dass fhem in perl geschrieben ist, d.h. K&R
zu lesen waere eh vergeblich?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

ja klar, aus dem KR habe vor 25 Jahren in einem Kurs C unter UNIX gelernt,
als es fast nur v24 ttys gab und MINIX gerade aufkam. Ich möchte wetten, da
gab es noch kein Perl...
Aber was will ich damit sagen: Hätte man mir den KR damals so einfach
hingeworfen, hätte ich nichts gerafft.Mit anderen Worten, ich könnte an
dieser Stelle etwas NachHilfe gebrauchen, weil ich quasi nicht der
Überflieger bin.

Kann ich dann in der 93_DbLog.pm
in
sub
DbLog_ParseEvent($$)
einen Block

elsif($type eq "WS300") {
#//Code aehnlich wie KS300
{

einbauen? Oder welches Device wäre besser geeignet? Ich müsste sicherlich
mit split arbeiten.

Wenn es leicht machbar ist?:
Wie kann ich mir eine pseudo debugmsg (beep oder schreiben in txt-File)
generieren?

Danke










 

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dr. Boris Neubert

                                             

Hallo Thomas,

Am 21.10.2011 21:36, schrieb Thomas Hase:
> Kann ich dann in der 93_DbLog.pm
> in
> sub
> DbLog_ParseEvent($$)
> einen Block
>
> elsif($type eq "WS300") {
> #//Code aehnlich wie KS300
> {
>
> einbauen?

ja, das wäre der Weg der Wahl.

> Wie kann ich mir eine pseudo debugmsg (beep oder schreiben in txt-File)
> generieren?

Log 1, "blablabla";

Viele Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Oskar

                                                     

Am 21.10.2011 um 21:36 schrieb Thomas Hase:

> ja klar, aus dem KR habe vor 25 Jahren in einem Kurs C unter UNIX gelernt, als es fast nur v24 ttys gab und MINIX gerade aufkam. Ich möchte wetten, da gab es noch kein Perl...

Stimmt, ist noch knapp über ein Jahr hin: 18.12.1987.

Davor war unser Perl noch die Combo aus awk/sed/sh.

Grüße
   Oskar

P.S.: Entschuldigt das Weg-Vom-Thema (Off-Topic)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
--
fhem geht auch auf mac os x

Guest

Originally posted by: <email address deleted>

Danke Boris,

ich habe mich gerade hingesetzt und mit C&P alles ausgetauscht.

 # WS300        
  elsif($type eq "WS300") {
     #Log 1, "--------------------------------  $event ";    
     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 "pressure") { $value=~ s/ \(hPa\)//; $unit= "hPa"; }
     #ungetestet fuer Regensensor
     if($reading eq "rain") { $value=~ s/ \(l\/m2\)//; $unit= "l/m2"; }
     if($reading eq "lost_receives") { $value=~ s/ \(counter\)//; $unit=
"Anzahl"; }
     if($reading eq "humidity") { $value=~ s/ \(\%\)//; $unit= "%"; }
     #ungetestet fuer Regensensor
     if($reading eq "israining") {
    $value=~ s/ \(yes\/no\)//;
        $value=~ s/no/0/;
        $value=~ s/yes/1/;
      }

     #Log 1, "Value   $value";
     #Log 1, "Unit   $unit";          
  }

und es läuft scheinbar. Allerdings habe ich Null Perl-Kenntnisse und keinen
Regensensor,
so dass ich nicht weiss, ob die Regengeschichten funktionieren.

Die Plotgeschichten lasse ich über einen cron job laufen, der sich die
Daten aus Queries/Views von MySQL in ein CSV saugt.

Ich nehme mal an, das diese Funktionalität in FHEM nicht enthalten ist (nur
Plot aus Logfile).

Gruss

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com