Hallo Fhemler,
Ich schicke den Batteriestatus meiner HM-Rauchmelder über UDP zu meinen Loxone über folgenden Code in myutils:
sub LoxGateway_Rauchmelder($)
{
my ($device) = @_;
my $battery = ReadingsVal("$device","battery","1");
if ($battery eq "ok") {$battery = "1";}
if ($battery eq "low") {$battery = "0";}
UDP_Msg("10.0.1.2" , "7000" , "$device: $battery");
}
Nun würde ich gerne die IF Anweisung mit eq ,,low" etwas allgemeiner halten und im Grunde alles mit 0 senden was ungleich ,,ok" ist.
Hatte es mit ne ,,ok" versucht. Brachte aber leider keinen Erfolg. Egal welches event kommt wird dann eine 0 verschickt.
Vielleicht hat jemand von euch eine Idee.
Bedank.
Gruß Moalti
if ($battery eq "ok") {$battery = "1";}
else { $battery = "0";}
Zitat von: CoolTux am 20 Mai 2018, 19:08:02
if ($battery eq "ok") {$battery = "1";}
else { $battery = "0";}
oder
$battery eq "ok"?$battery = "1":$battery = "0";
Grüße Jörg
Zitat von: JoWiemann am 20 Mai 2018, 19:37:25
oder
$battery eq "ok"?$battery = "1":$battery = "0";
Grüße Jörg
Lieber
$battery = ($battery eq "ok")?1:0;
Dein Code funktioniert nicht, Jörg (precedence Problem; da fehlen mind. ein paar Klammern)
$battery eq "ok"?$battery = "1":($battery = "0");
;)
So... jetzt... lass uns spielen:
my $var1 = "";
my $var0 = "";
1 ? $var1 : $var0 = "Hello ";
0 ? $var1 : $var0 = "World\n";
print $var1.$var0;
ergibt
ZitatHello World
:)
Stimmt. War ein Schnellschuss ohne genauer nachzudenken ;)
Zitat von: CoolTux am 20 Mai 2018, 19:08:02
if ($battery eq "ok") {$battery = "1";}
else { $battery = "0";}
Vielen Dank!
Ist ja der Knüller. Auf die Lösung mit dem If Else bin ich einfach nicht gekommen!
Funktionierte auf Anhieb.
@Alle Anderen: schön das ihr Spaß habt [emoji6]
Vielen Dank nochmal!
Da fragt man gerne anstatt Stunden vor Google zu hängen!
Grüße