Werte ins Logfile Schreiben?

2,374 views
Skip to first unread message

dou...@gmx.de

unread,
Aug 5, 2012, 6:19:26 PM8/5/12
to fhem-...@googlegroups.com

Nachdem ich jetzt verschiedenste Code-Schippsel durchgelesen und lerne parallel noch Perl. 

Dennoch bekomme ich es nicht hin, das ich Variablenwerte ins Log schreiben kann. Was mach ich falsch? 
Hab sicher schon zwanzig verschiedene Schreibweisen ausprobiert, aber bekomme immer nur ".... 2012.08.05 19:17:44 1: Humidity in Ralfs BueroHASH(0x9d10b0) "

VG
Ralf


sub
TestProgramm()
 {
 {Log 1, "TestProg Entry"};
 my $hum = {ReadingsVal("Buero_Ralf","humidity","0")};
 {Log 1, "Humidity in Ralfs Buero".("$hum")};
 if ($hum > 60) {
     {Log 1, "Hum > 60"};
    }
 #{fhem ("set Buero_Ralf desired-temp 18.0 day-temp 18.5 night-temp 17.0")}
}

Aleksandar Lazic

unread,
Aug 5, 2012, 11:04:09 PM8/5/12
to fhem-...@googlegroups.com

Hallo,

Die Ausgabe HASH(0x9d10b0) ist eine hash reference.

http://perldoc.perl.org/perlref.html

In perl kann man mittels Data::Dumper diese Strukturen recht schön ausgeben

Ich bin noch etwas neu beim FHEM, daher kann es sein das die Syntax noch

nicht so passt.

Versuch mal bitte folgendes und schreib uns was im log als Ausgabe steht.

 

{use Data::Dumper;; Log 1, "Humidity in Ralfs Buero >>".Dumper($hum)};

LG

Aleks

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

dou...@gmx.de

unread,
Aug 6, 2012, 6:43:14 AM8/6/12
to fhem-...@googlegroups.com


Interessant! Danke für den Tipp!

Das hier ist die Ausgabe im Log (aus der ich auch nicht so ganz schlau werde :-)  ) ...obwohl: der Wert 73 kommt ja irgendwie an...

2012.08.06 08:40:46 1: TestProg Entry
2012.08.06 08:40:46 1: Humidity in Ralfs BueroHASH(0xd2feb8)
2012.08.06 08:40:46 1: Humidity in Ralfs Buero >>$VAR1 = {
          '73' => undef
        };

2012.08.06 08:40:46 1: Hum > 60

Aleksandar Lazic

unread,
Aug 6, 2012, 8:01:29 AM8/6/12
to fhem-...@googlegroups.com

Hallo,

versuch mal '{' && '}' weg zu nehmen.

von

my $hum = {ReadingsVal("Buero_Ralf","humidity","0")};

auf

my $hum = ReadingsVal("Buero_Ralf","humidity","0");

LG

Aleks

--

dou...@gmx.de

unread,
Aug 6, 2012, 1:36:03 PM8/6/12
to fhem-...@googlegroups.com

BINGO! 
Das war's! Danke schön!

Log Ausgabe sieht jetzt so aus:

2012.08.06 15:33:36 1: TestProg Entry
2012.08.06 15:33:36 1: Humidity in Ralfs Buero59
2012.08.06 15:33:36 1: Humidity in Ralfs Buero >>$VAR1 = '59';

Also alles perfekt! Was hab ich falsch gemacht?

VG
Ralf


Aleksandar Lazic

unread,
Aug 6, 2012, 2:38:04 PM8/6/12
to fhem-...@googlegroups.com

Hallo,

du hast perl angewiesen eine Hashreferenze zurück zu geben.

http://www.perl.org/books/beginning-perl/ => Chapter 3: Lists and Hashes

http://blob.perl.org/books/beginning-perl/3145_Chap03.pdf

=> Working with Hash Values

LG

Aleks

--
Reply all
Reply to author
Forward
0 new messages