Hallo zusammen,
gebe folgende push Nachricht (ReadingVal) die mir eine Temperatur anzeigt aus, das gut funktioniert. (um 7:30 Uhr)
Aber wie ist die Definition wenn ich die push Meldung nur ausgegeben will wen der Wert (Temperatur) über oder unterschritten wird?
define Aussen_FM_Push at *7:30:00 {my $temp = sprintf "%.2f °C", ReadingsVal("CUL_WS_5","temperature",0);;fhem("set Push #msg 'Temperatur' '$temp' '' -1 ''")}
Hi,
kannst Du mit if und einem Vergleich machen.
http://perldoc.perl.org/perlsyn.html#Compound-Statements
http://perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity
Gruß Otto
Bite code im CODE-tag einschließen.
define Aussen_FM_Push at *7:30:00 {
my $temp = sprintf "%.2f °C", ReadingsVal("CUL_WS_5","temperature",0);;
fhem("set Push #msg 'Temperatur' '$temp' '' -1 ''") if ReadingsVal("CUL_WS_5","temperature",0) < 10
}
Das if ReadingsVal..... muss vor das fehm(push.....
Zitat von: Wolfi am 27 Februar 2018, 12:22:00
Das if ReadingsVal..... muss vor das fehm(push.....
Wer sagt denn sowas?
Richtiger wäre aber
define Aussen_FM_Push at *7:30:00 {
my $temp = sprintf "%.2f °C", ReadingsVal("CUL_WS_5","temperature",0);
fhem("set Push #msg 'Temperatur' '$temp' '' -1 ''") if( ReadingsVal("CUL_WS_5","temperature",0) < 10 );
}
Zitat von: Wolfi am 27 Februar 2018, 12:22:00
Das if ReadingsVal..... muss vor das fehm(push.....
nicht in perl....
c/c++ schon :)