Hallo,
ich möchte gerne die Variable $hour in der 99_myUtils.pm verwenden. Leider klappen meine beiden Versuche nicht, sondern der Befehl wird immer ausgelöst.
Vielleicht kann mir jemand weiterhelfen. Großen Dank vorab!
Variante 1 (funktioniert nicht):
sub
test () {
if($hour == 16){\
fhem("set Lampe on")};
}
Variante 2 (funktioniert nicht):
sub
test () {
my $my_sec = 0;
my $my_min = 0;
my $my_hour =0;
my $my_mday =0;
my $my_mon =0;
my $my_year =0;
my $my_wday =0;
my $my_yday =0;
my $my_isdst;
($my_sec,$my_min,$my_hour,$my_mday,$my_mon,$my_year,$my_wday,$my_yday,$my_isdst) = localtime(time);
if($hour == 16){\
fhem("set Lampe on")};
}
http://fhem.de/commandref.html#perl (http://fhem.de/commandref.html#perl):
ZitatTo make date and time handling easier, the variables $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst are available in the perl oneliners (see also perldoc -f localtime).
Damit habe ich gemeint, dass diese Variablen fuer die in fhem ueblichen {} Ausdruecke in at/notify zur Verfuegung stehen.
In "normalen" Perl-Funktionen (wie die in 99_myUtils.pm) natuerlich nicht, deswegen funktioniert Variante 1 nicht.
Variante 2: wenn man $my_hour setzt, dann sollte man auch das abfragen, und nicht $hour.
Solche Fragen sind prima in dem Anfaengerfragen Bereich aufgehoben.
Zitat von: rudolfkoenig am 23 November 2014, 10:36:27
Variante 2: wenn man $my_hour setzt, dann sollte man auch das abfragen, und nicht $hour.
Uos, das Leben könnte so einfach sein.
Der Vollständigkeit halber hier der funktionierende Code:
sub
test () {
my $sec = 0;
my $min = 0;
my $hour =0;
my $mday =0;
my $mon =0;
my $year =0;
my $wday =0;
my $yday =0;
my $isdst;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
if($hour == 16){\
fhem("set Lampe on")};
}
@moderator: Bitte in den Anfängerbereich verschieben.
Hallo,
Zitat@moderator: Bitte in den Anfängerbereich verschieben.
Wenn du genau schaust wird dir auffallen das dieser Bereich keinen Moderator hat.
Für diese Fälle gibt es bei deinem Beitrag rechts unten die Möglichkeit dies einem Admin zu melden mit der Bitte den Beitrag zu verschieben.
Nur so als Anregung für die Zukunft ;)
Grüße